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. 24
      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:
"""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.
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():
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
pass
@ -189,7 +190,8 @@ class OLTDevice(DevBase, SNMPBaseWorker):
def is_use_device_port():
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
pass
@ -263,7 +265,8 @@ class OnuDevice(DevBase, SNMPBaseWorker):
except EasySNMPTimeoutError as 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
try:
int(v)
@ -454,7 +457,8 @@ class ZteOnuDevice(OnuDevice):
def get_template_name(self):
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
try:
fiber_num, onu_port = v.split('.')

6
devapp/forms.py

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

24
devapp/views.py

@ -126,7 +126,6 @@ class DeviceUpdate(UpdateView):
pass
r = super().form_valid(form)
# change device info in dhcpd.conf
print(self.object)
self.object.update_dhcp()
messages.success(self.request, _('Device info has been saved'))
return r
@ -171,9 +170,8 @@ class DeviceCreateView(CreateView):
def form_valid(self, form):
# check if that device is exist
device_id = self.kwargs.get(self.pk_url_kwarg)
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
if already_dev.group:
messages.warning(self.request, _('You have redirected to existing device'))
@ -185,7 +183,6 @@ class DeviceCreateView(CreateView):
pass
r = super().form_valid(form)
# change device info in dhcpd.conf
print(self.object)
self.object.update_dhcp()
messages.success(self.request, _('Device info has been saved'))
return r
@ -202,15 +199,16 @@ class DeviceCreateView(CreateView):
return super().dispatch(request, *args, **kwargs)
def get_initial(self):
return {
'group': self.device_group,
'devtype': self.request.GET.get('t'),
'mac_addr': self.request.GET.get('mac'),
'comment': self.request.GET.get('c'),
'ip_address': self.request.GET.get('ip'),
'man_passw': getattr(settings, 'DEFAULT_SNMP_PASSWORD', ''),
'snmp_extra': self.request.GET.get('n') or ''
}
if self.request.method == 'GET':
return {
'group': self.device_group,
'devtype': self.request.GET.get('t'),
'mac_addr': self.request.GET.get('mac'),
'comment': self.request.GET.get('c'),
'ip_address': self.request.GET.get('ip'),
'man_passw': getattr(settings, 'DEFAULT_SNMP_PASSWORD', ''),
'snmp_extra': self.request.GET.get('n') or ''
}
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)

2
dialing_app/forms.py

@ -5,4 +5,4 @@ from .models import SMSOut
class SMSOutForm(forms.ModelForm):
class Meta:
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 Meta:
model = Dot
exclude = ['devices']
exclude = ('devices',)
widgets = {
'title': forms.TextInput(attrs={'required': '', 'autofocus': ''}),

4
msg_app/forms.py

@ -18,7 +18,7 @@ class ConversationForm(forms.ModelForm):
class Meta:
model = Conversation
exclude = ['date_create', 'author']
exclude = ('date_create', 'author')
def create(self, author):
participants = self.cleaned_data['participants']
@ -39,7 +39,7 @@ class ConversationForm(forms.ModelForm):
class MessageForm(forms.ModelForm):
class Meta:
model = Message
exclude = ['sent_at', 'author', 'conversation', 'account_status']
exclude = ('sent_at', 'author', 'conversation', 'account_status')
widgets = {
'text': forms.Textarea(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 Meta:
model = models.PeriodicPay
exclude = ['when_add', 'extra_info']
exclude = ('when_add', 'extra_info')
Loading…
Cancel
Save