Browse Source

Add ip address existing validate

devel
Dmitry 8 years ago
parent
commit
b1f6ce7552
  1. 6
      abonapp/forms.py
  2. 4
      abonapp/locale/ru/LC_MESSAGES/django.po
  3. 9
      abonapp/models.py
  4. 1
      abonapp/views.py

6
abonapp/forms.py

@ -1,4 +1,3 @@
# -*- coding: utf-8 -*-
from datetime import datetime
from django.utils.translation import ugettext as _
from django import forms
@ -7,6 +6,7 @@ from random import choice
from string import digits, ascii_lowercase
from . import models
from django.conf import settings
from djing import IP_ADDR_REGEX
TELEPHONE_REGEXP = getattr(settings, 'TELEPHONE_REGEXP', r'^\+[7,8,9,3]\d{10,11}$')
@ -56,6 +56,10 @@ class AbonForm(forms.ModelForm):
'class': 'form-control', 'type': 'password', 'autocomplete': 'new-password'
}))
ip_address = forms.CharField(widget=forms.TextInput(attrs={
'pattern': IP_ADDR_REGEX
}), label=_('Ip Address'))
class Meta:
model = models.Abon
fields = ['username', 'telephone', 'fio', 'group', 'description', 'street', 'house', 'is_active', 'ip_address']

4
abonapp/locale/ru/LC_MESSAGES/django.po

@ -876,10 +876,6 @@ msgstr "Нет исполнителей"
msgid "Tasks not found"
msgstr "Нет задач"
#: templates/abonapp/viewAbon.html:10
msgid "View the subscriber"
msgstr "Просмотр абонента"
#: templates/abonapp/viewAbon.html:24
msgid "yes,no"
msgstr "Да,Нет"

9
abonapp/models.py

@ -136,7 +136,7 @@ class Abon(BaseAccount):
current_tariff = models.ForeignKey(AbonTariff, null=True, blank=True, on_delete=models.SET_NULL)
group = models.ForeignKey(Group, models.SET_NULL, blank=True, null=True, verbose_name=_('User group'))
ballance = models.FloatField(default=0.0)
ip_address = MyGenericIPAddressField(blank=True, null=True)
ip_address = MyGenericIPAddressField(blank=True, null=True, verbose_name=_('Ip Address'))
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)
@ -269,13 +269,12 @@ class Abon(BaseAccount):
agent_trf = TariffStruct(trf.id, trf.speedIn, trf.speedOut)
return AbonStruct(self.pk, user_ip, agent_trf, bool(self.is_active))
def save(self, *args, **kwargs):
def clean(self):
# check if ip address already busy
if self.ip_address is not None and Abon.objects.filter(ip_address=self.ip_address).exclude(
pk=self.pk).count() > 0:
self.is_bad_ip = True
raise LogicError(_('Ip address already exist'))
super(Abon, self).save(*args, **kwargs)
raise ValidationError({'ip_address': [gettext('Ip address already exist')]})
return super(Abon, self).clean()
def sync_with_nas(self, created: bool) -> Optional[Exception]:
agent_abon = self.build_agent_struct()

1
abonapp/views.py

@ -332,7 +332,6 @@ class AbonHomeUpdateView(UpdateView):
dev = getattr(abon, 'device')
context = {
'group': self.group,
'is_bad_ip': getattr(abon, 'is_bad_ip', False),
'device': dev,
'dev_ports': DevPort.objects.filter(device=dev) if dev else None
}

Loading…
Cancel
Save