From a17e175571db77042543e6bfcc0a9fb32e25ca3e Mon Sep 17 00:00:00 2001 From: Dmitry Novikov Date: Thu, 1 Nov 2018 15:53:12 +0300 Subject: [PATCH] hot fix ip addresses unique --- abonapp/migrations/0007_auto_20181101_1545.py | 23 ++++++++++++++++ abonapp/models.py | 3 ++- djing/lib/__init__.py | 6 +---- gw_app/migrations/0002_auto_20181101_1545.py | 27 +++++++++++++++++++ 4 files changed, 53 insertions(+), 6 deletions(-) create mode 100644 abonapp/migrations/0007_auto_20181101_1545.py create mode 100644 gw_app/migrations/0002_auto_20181101_1545.py diff --git a/abonapp/migrations/0007_auto_20181101_1545.py b/abonapp/migrations/0007_auto_20181101_1545.py new file mode 100644 index 0000000..865b3c7 --- /dev/null +++ b/abonapp/migrations/0007_auto_20181101_1545.py @@ -0,0 +1,23 @@ +# Generated by Django 2.1 on 2018-11-01 15:45 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('gw_app', '0002_auto_20181101_1545'), + ('abonapp', '0006_change_ip'), + ] + + operations = [ + migrations.AlterField( + model_name='abon', + name='ip_address', + field=models.GenericIPAddressField(blank=True, null=True, verbose_name='Ip address'), + ), + migrations.AlterUniqueTogether( + name='abon', + unique_together={('ip_address', 'nas')}, + ), + ] diff --git a/abonapp/models.py b/abonapp/models.py index 15eaf4d..1af42ae 100644 --- a/abonapp/models.py +++ b/abonapp/models.py @@ -89,7 +89,7 @@ class Abon(BaseAccount): current_tariff = models.OneToOneField(AbonTariff, null=True, blank=True, on_delete=models.SET_NULL, default=None) group = models.ForeignKey(Group, on_delete=models.SET_NULL, blank=True, null=True, verbose_name=_('User group')) ballance = models.FloatField(default=0.0) - ip_address = models.GenericIPAddressField(verbose_name=_('Ip address'), unique=True, null=True, blank=True) + ip_address = models.GenericIPAddressField(verbose_name=_('Ip address'), null=True, blank=True) description = models.TextField(_('Comment'), null=True, blank=True) street = models.ForeignKey(AbonStreet, on_delete=models.SET_NULL, null=True, blank=True, verbose_name=_('Street')) house = models.CharField(_('House'), max_length=12, null=True, blank=True) @@ -138,6 +138,7 @@ class Abon(BaseAccount): verbose_name = _('Abon') verbose_name_plural = _('Abons') ordering = ('fio',) + unique_together = ('ip_address', 'nas') def add_ballance(self, current_user, amount, comment): AbonLog.objects.create( diff --git a/djing/lib/__init__.py b/djing/lib/__init__.py index ae46b5c..16e94b9 100644 --- a/djing/lib/__init__.py +++ b/djing/lib/__init__.py @@ -103,13 +103,9 @@ def check_sign(get_list, sign): my_sign = calc_hash(hashed) return sign == my_sign -# -# only one process for function -# - class ProcessLocked(OSError): - pass + """only one process for function""" def process_lock(fn): diff --git a/gw_app/migrations/0002_auto_20181101_1545.py b/gw_app/migrations/0002_auto_20181101_1545.py new file mode 100644 index 0000000..593e98d --- /dev/null +++ b/gw_app/migrations/0002_auto_20181101_1545.py @@ -0,0 +1,27 @@ +# Generated by Django 2.1 on 2018-11-01 15:45 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('gw_app', '0001_initial'), + ] + + operations = [ + migrations.AlterModelOptions( + name='nasmodel', + options={'ordering': ('ip_address',), 'verbose_name': 'Network access server. Gateway', 'verbose_name_plural': 'Network access servers. Gateways'}, + ), + migrations.AlterField( + model_name='nasmodel', + name='auth_login', + field=models.CharField(max_length=64, verbose_name='Auth login'), + ), + migrations.AlterField( + model_name='nasmodel', + name='auth_passw', + field=models.CharField(max_length=127, verbose_name='Auth password'), + ), + ]