Browse Source

Fix creating device.

devel
bashmak 8 years ago
parent
commit
78e9d951cf
  1. 4
      devapp/base_intr.py
  2. 12
      devapp/dev_types.py
  3. 6
      devapp/forms.py
  4. 6
      devapp/views.py
  5. 2
      dialing_app/forms.py
  6. 2
      mapapp/forms.py
  7. 4
      msg_app/forms.py
  8. 2
      tariff_app/forms.py

4
devapp/base_intr.py

@ -53,8 +53,8 @@ class DevBase(object, metaclass=ABCMeta):
def is_use_device_port() -> bool: def is_use_device_port() -> bool:
"""True if used device port while opt82 authorization""" """True if used device port while opt82 authorization"""
@abstractmethod
def validate_extra_snmp_info(self, v: str) -> None:
@abstract_static_method
def validate_extra_snmp_info(v: str) -> None:
""" """
Validate extra snmp field for each device. Validate extra snmp field for each device.
If validation failed then raise en exception from djing.lib.tln.ValidationError If validation failed then raise en exception from djing.lib.tln.ValidationError

12
devapp/dev_types.py

@ -108,7 +108,8 @@ class DLinkDevice(DevBase, SNMPBaseWorker):
def is_use_device_port(): def is_use_device_port():
return True return True
def validate_extra_snmp_info(self, v: str) -> None:
@staticmethod
def validate_extra_snmp_info(v: str) -> None:
# Dlink has no require snmp info # Dlink has no require snmp info
pass pass
@ -189,7 +190,8 @@ class OLTDevice(DevBase, SNMPBaseWorker):
def is_use_device_port(): def is_use_device_port():
return False return False
def validate_extra_snmp_info(self, v: str) -> None:
@staticmethod
def validate_extra_snmp_info(v: str) -> None:
# Olt has no require snmp info # Olt has no require snmp info
pass pass
@ -263,7 +265,8 @@ class OnuDevice(DevBase, SNMPBaseWorker):
except EasySNMPTimeoutError as e: except EasySNMPTimeoutError as e:
return {'err': "%s: %s" % (_('ONU not connected'), e)} return {'err': "%s: %s" % (_('ONU not connected'), e)}
def validate_extra_snmp_info(self, v: str) -> None:
@staticmethod
def validate_extra_snmp_info(v: str) -> None:
# DBCOM Onu have en integer snmp port # DBCOM Onu have en integer snmp port
try: try:
int(v) int(v)
@ -454,7 +457,8 @@ class ZteOnuDevice(OnuDevice):
def get_template_name(self): def get_template_name(self):
return 'onu_for_zte.html' return 'onu_for_zte.html'
def validate_extra_snmp_info(self, v: str) -> None:
@staticmethod
def validate_extra_snmp_info(v: str) -> None:
# for example 268501760.5 # for example 268501760.5
try: try:
fiber_num, onu_port = v.split('.') fiber_num, onu_port = v.split('.')

6
devapp/forms.py

@ -22,9 +22,9 @@ class DeviceForm(forms.ModelForm):
if snmp_extra is None: if snmp_extra is None:
return return
device = self.instance device = self.instance
manager = device.get_manager_object()
manager_class = device.get_manager_klass()
try: try:
manager.validate_extra_snmp_info(snmp_extra)
manager_class.validate_extra_snmp_info(snmp_extra)
except TlnValidationError as e: except TlnValidationError as e:
raise ValidationError( raise ValidationError(
e, code='invalid' e, code='invalid'
@ -48,7 +48,7 @@ class DeviceForm(forms.ModelForm):
class PortForm(forms.ModelForm): class PortForm(forms.ModelForm):
class Meta: class Meta:
model = models.Port model = models.Port
exclude = ['device']
exclude = ('device',)
widgets = { widgets = {
'num': forms.NumberInput(attrs={ 'num': forms.NumberInput(attrs={
'min': '0' 'min': '0'

6
devapp/views.py

@ -126,7 +126,6 @@ class DeviceUpdate(UpdateView):
pass pass
r = super().form_valid(form) r = super().form_valid(form)
# change device info in dhcpd.conf # change device info in dhcpd.conf
print(self.object)
self.object.update_dhcp() self.object.update_dhcp()
messages.success(self.request, _('Device info has been saved')) messages.success(self.request, _('Device info has been saved'))
return r return r
@ -171,9 +170,8 @@ class DeviceCreateView(CreateView):
def form_valid(self, form): def form_valid(self, form):
# check if that device is exist # check if that device is exist
device_id = self.kwargs.get(self.pk_url_kwarg)
try: try:
already_dev = self.model.objects.exclude(pk=device_id).get(mac_addr=self.request.POST.get('mac_addr'))
already_dev = self.model.objects.get(mac_addr=self.request.POST.get('mac_addr'))
self.already_dev = already_dev self.already_dev = already_dev
if already_dev.group: if already_dev.group:
messages.warning(self.request, _('You have redirected to existing device')) messages.warning(self.request, _('You have redirected to existing device'))
@ -185,7 +183,6 @@ class DeviceCreateView(CreateView):
pass pass
r = super().form_valid(form) r = super().form_valid(form)
# change device info in dhcpd.conf # change device info in dhcpd.conf
print(self.object)
self.object.update_dhcp() self.object.update_dhcp()
messages.success(self.request, _('Device info has been saved')) messages.success(self.request, _('Device info has been saved'))
return r return r
@ -202,6 +199,7 @@ class DeviceCreateView(CreateView):
return super().dispatch(request, *args, **kwargs) return super().dispatch(request, *args, **kwargs)
def get_initial(self): def get_initial(self):
if self.request.method == 'GET':
return { return {
'group': self.device_group, 'group': self.device_group,
'devtype': self.request.GET.get('t'), 'devtype': self.request.GET.get('t'),

2
dialing_app/forms.py

@ -5,4 +5,4 @@ from .models import SMSOut
class SMSOutForm(forms.ModelForm): class SMSOutForm(forms.ModelForm):
class Meta: class Meta:
model = SMSOut model = SMSOut
fields = ['dst', 'text']
fields = ('dst', 'text')

2
mapapp/forms.py

@ -6,7 +6,7 @@ from .models import Dot
class DotForm(forms.ModelForm): class DotForm(forms.ModelForm):
class Meta: class Meta:
model = Dot model = Dot
exclude = ['devices']
exclude = ('devices',)
widgets = { widgets = {
'title': forms.TextInput(attrs={'required': '', 'autofocus': ''}), 'title': forms.TextInput(attrs={'required': '', 'autofocus': ''}),

4
msg_app/forms.py

@ -18,7 +18,7 @@ class ConversationForm(forms.ModelForm):
class Meta: class Meta:
model = Conversation model = Conversation
exclude = ['date_create', 'author']
exclude = ('date_create', 'author')
def create(self, author): def create(self, author):
participants = self.cleaned_data['participants'] participants = self.cleaned_data['participants']
@ -39,7 +39,7 @@ class ConversationForm(forms.ModelForm):
class MessageForm(forms.ModelForm): class MessageForm(forms.ModelForm):
class Meta: class Meta:
model = Message model = Message
exclude = ['sent_at', 'author', 'conversation', 'account_status']
exclude = ('sent_at', 'author', 'conversation', 'account_status')
widgets = { widgets = {
'text': forms.Textarea(attrs={'class': 'form-control'}), 'text': forms.Textarea(attrs={'class': 'form-control'}),
'attachment': forms.FileInput(attrs={'class': 'form-control'}) 'attachment': forms.FileInput(attrs={'class': 'form-control'})

2
tariff_app/forms.py

@ -12,4 +12,4 @@ class TariffForm(forms.ModelForm):
class PeriodicPayForm(forms.ModelForm): class PeriodicPayForm(forms.ModelForm):
class Meta: class Meta:
model = models.PeriodicPay model = models.PeriodicPay
exclude = ['when_add', 'extra_info']
exclude = ('when_add', 'extra_info')
Loading…
Cancel
Save