7 changed files with 88 additions and 137 deletions
-
103abonapp/migrations/0002_ip_address_change.py
-
4abonapp/models.py
-
10agent/core.py
-
26agent/mod_mikrotik.py
-
65ip_pool/migrations/0001_initial.py
-
9ip_pool/models.py
-
8periodic.py
@ -1,103 +0,0 @@ |
|||||
# -*- coding: utf-8 -*- |
|
||||
# Generated by Django 1.11 on 2018-06-12 12:05 |
|
||||
from __future__ import unicode_literals |
|
||||
import os |
|
||||
import re |
|
||||
from json import load |
|
||||
|
|
||||
import django.core.validators |
|
||||
from django.db import migrations, models |
|
||||
from django.core import serializers |
|
||||
|
|
||||
|
|
||||
TMP_FILE = '/tmp/djing_ip_field_abonapp_migrate.json' |
|
||||
|
|
||||
|
|
||||
def backup_info(apps, _): |
|
||||
Abon = apps.get_model('abonapp', 'Abon') |
|
||||
obs = Abon.objects.all() |
|
||||
with open(TMP_FILE, 'w') as f: |
|
||||
serializers.serialize('json', obs, stream=f) |
|
||||
|
|
||||
|
|
||||
def restore_info_to_new_scheme(apps, _): |
|
||||
Abon = apps.get_model('abonapp', 'Abon') |
|
||||
with open(TMP_FILE, 'r') as f: |
|
||||
for abon in load(f): |
|
||||
Abon.objects.filter(pk=abon['pk']).update(ip_address=abon['fields']['ip_address']) |
|
||||
if os.path.isfile(TMP_FILE): |
|
||||
os.remove(TMP_FILE) |
|
||||
|
|
||||
|
|
||||
class Migration(migrations.Migration): |
|
||||
|
|
||||
dependencies = [ |
|
||||
('abonapp', '0001_initial'), |
|
||||
] |
|
||||
|
|
||||
operations = [ |
|
||||
migrations.RunPython(backup_info), |
|
||||
migrations.AlterModelOptions( |
|
||||
name='abon', |
|
||||
options={'ordering': ('fio',), 'permissions': (('can_buy_tariff', 'Buy service perm'), ('can_view_passport', 'Can view passport'), ('can_add_ballance', 'fill account'), ('can_ping', 'Can ping')), 'verbose_name': 'Abon', 'verbose_name_plural': 'Abons'}, |
|
||||
), |
|
||||
migrations.AlterModelOptions( |
|
||||
name='abonlog', |
|
||||
options={'ordering': ('-date',), 'permissions': (('can_view_abonlog', 'Can view subscriber logs'),)}, |
|
||||
), |
|
||||
migrations.AlterModelOptions( |
|
||||
name='abonstreet', |
|
||||
options={'ordering': ('name',), 'verbose_name': 'Street', 'verbose_name_plural': 'Streets'}, |
|
||||
), |
|
||||
migrations.AlterModelOptions( |
|
||||
name='abontariff', |
|
||||
options={'ordering': ('time_start',), 'permissions': (('can_complete_service', 'finish service perm'),), 'verbose_name': 'Abon service', 'verbose_name_plural': 'Abon services'}, |
|
||||
), |
|
||||
migrations.AlterModelOptions( |
|
||||
name='allpaylog', |
|
||||
options={'ordering': ('-date_action',)}, |
|
||||
), |
|
||||
migrations.AlterModelOptions( |
|
||||
name='alltimepaylog', |
|
||||
options={'ordering': ('-date_add',)}, |
|
||||
), |
|
||||
migrations.AlterModelOptions( |
|
||||
name='passportinfo', |
|
||||
options={'ordering': ('series',), 'verbose_name': 'Passport Info', 'verbose_name_plural': 'Passport Info'}, |
|
||||
), |
|
||||
migrations.AlterModelOptions( |
|
||||
name='periodicpayforid', |
|
||||
options={'ordering': ('last_pay',)}, |
|
||||
), |
|
||||
migrations.AlterField( |
|
||||
model_name='abon', |
|
||||
name='ip_address', |
|
||||
field=models.GenericIPAddressField(blank=True, null=True, verbose_name='Ip Address'), |
|
||||
), |
|
||||
migrations.AlterField( |
|
||||
model_name='additionaltelephone', |
|
||||
name='telephone', |
|
||||
field=models.CharField(max_length=16, validators=[django.core.validators.RegexValidator('^(\\+[7,8,9,3]\\d{10,11})?$')], verbose_name='Telephone'), |
|
||||
), |
|
||||
migrations.AlterField( |
|
||||
model_name='passportinfo', |
|
||||
name='abon', |
|
||||
field=models.OneToOneField(blank=True, null=True, on_delete=models.deletion.CASCADE, to='abonapp.Abon'), |
|
||||
), |
|
||||
migrations.AlterField( |
|
||||
model_name='passportinfo', |
|
||||
name='distributor', |
|
||||
field=models.CharField(max_length=64, verbose_name='Distributor'), |
|
||||
), |
|
||||
migrations.AlterField( |
|
||||
model_name='passportinfo', |
|
||||
name='number', |
|
||||
field=models.CharField(max_length=6, validators=[django.core.validators.RegexValidator(re.compile('^-?\\d+\\Z', 32), code='invalid', message='Enter a valid integer.')], verbose_name='Pasport number'), |
|
||||
), |
|
||||
migrations.AlterField( |
|
||||
model_name='passportinfo', |
|
||||
name='series', |
|
||||
field=models.CharField(max_length=4, validators=[django.core.validators.RegexValidator(re.compile('^-?\\d+\\Z', 32), code='invalid', message='Enter a valid integer.')], verbose_name='Pasport serial'), |
|
||||
), |
|
||||
migrations.RunPython(restore_info_to_new_scheme) |
|
||||
] |
|
||||
@ -0,0 +1,65 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# Generated by Django 1.11 on 2018-08-07 15:48 |
||||
|
from __future__ import unicode_literals |
||||
|
|
||||
|
from django.db import migrations, models |
||||
|
import django.db.models.deletion |
||||
|
import djing.fields |
||||
|
import ip_pool.fields |
||||
|
|
||||
|
|
||||
|
class Migration(migrations.Migration): |
||||
|
|
||||
|
initial = True |
||||
|
|
||||
|
dependencies = [ |
||||
|
('group_app', '0002_group_code'), |
||||
|
] |
||||
|
|
||||
|
operations = [ |
||||
|
migrations.CreateModel( |
||||
|
name='IpLeaseModel', |
||||
|
fields=[ |
||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||
|
('ip', models.GenericIPAddressField(unique=True, verbose_name='Ip address')), |
||||
|
('mac_addr', djing.fields.MACAddressField(blank=True, integer=True, null=True, unique=True, verbose_name='Mac address')), |
||||
|
('lease_time', models.DateTimeField(auto_now_add=True, verbose_name='Lease time')), |
||||
|
('is_dynamic', models.BooleanField(default=False, verbose_name='Is dynamic')), |
||||
|
('is_active', models.BooleanField(default=True, verbose_name='Is active')), |
||||
|
('device_info', models.CharField(blank=True, default=None, max_length=128, null=True)), |
||||
|
], |
||||
|
options={ |
||||
|
'verbose_name': 'Employed ip', |
||||
|
'verbose_name_plural': 'Employed ip addresses', |
||||
|
'db_table': 'ip_pool_employed_ip', |
||||
|
'ordering': ('-id',), |
||||
|
}, |
||||
|
), |
||||
|
migrations.CreateModel( |
||||
|
name='NetworkModel', |
||||
|
fields=[ |
||||
|
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
||||
|
('network', ip_pool.fields.GenericIpAddressWithPrefix(help_text='Ip address of network. For example: 192.168.1.0 or fde8:6789:1234:1::', unique=True, verbose_name='IP network')), |
||||
|
('kind', models.CharField(choices=[('inet', 'Internet'), ('guest', 'Guest'), ('trust', 'Trusted'), ('device', 'Devices'), ('admin', 'Admin')], default='guest', max_length=6, verbose_name='Kind of network')), |
||||
|
('description', models.CharField(max_length=64, verbose_name='Description')), |
||||
|
('ip_start', models.GenericIPAddressField(verbose_name='Start work ip range')), |
||||
|
('ip_end', models.GenericIPAddressField(verbose_name='End work ip range')), |
||||
|
('groups', models.ManyToManyField(to='group_app.Group', verbose_name='Groups')), |
||||
|
], |
||||
|
options={ |
||||
|
'verbose_name': 'Network', |
||||
|
'verbose_name_plural': 'Networks', |
||||
|
'db_table': 'ip_pool_network', |
||||
|
'ordering': ('network',), |
||||
|
}, |
||||
|
), |
||||
|
migrations.AddField( |
||||
|
model_name='ipleasemodel', |
||||
|
name='network', |
||||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='ip_pool.NetworkModel', verbose_name='Parent network'), |
||||
|
), |
||||
|
migrations.AlterUniqueTogether( |
||||
|
name='ipleasemodel', |
||||
|
unique_together={('ip', 'network')}, |
||||
|
), |
||||
|
] |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue