Browse Source

Реализовал динамические поля

devel
bashmak 9 years ago
parent
commit
c8bee14fbc
  1. 91
      abonapp/views.py

91
abonapp/views.py

@ -38,13 +38,17 @@ def peoples(request, gid):
if field:
peoples_list = peoples_list.order_by(field)
peoples_list = mydefs.pag_mn(request, peoples_list)
for abon in peoples_list:
if abon.ip_address is not None:
traf = StatModel.objects.traffic_by_ip( abon.ip_address )
if traf[1] is not None:
abon.traf = traf[1]
abon.is_online =traf[0]
try:
peoples_list = mydefs.pag_mn(request, peoples_list)
for abon in peoples_list:
if abon.ip_address is not None:
traf = StatModel.objects.traffic_by_ip(abon.ip_address)
if traf[1] is not None:
abon.traf = traf[1]
abon.is_online =traf[0]
except mydefs.LogicError as e:
messages.warning(request, e)
streets = models.AbonStreet.objects.filter(group=gid)
@ -132,7 +136,7 @@ def addabon(request, gid):
else:
messages.error(request, _('fix form errors'))
except (IntegrityError, NasFailedResult, NasNetworkError, models.LogicError) as e:
except (IntegrityError, NasFailedResult, NasNetworkError, mydefs.LogicError) as e:
messages.error(request, e)
except mydefs.MultipleException as errs:
for err in errs.err_list:
@ -280,7 +284,7 @@ def abonhome(request, gid, uid):
passw = models.AbonRawPassword.objects.get(account=abon).passw_text
frm = forms.AbonForm(instance=abon, initial={'password': passw})
abon_device = models.AbonDevice.objects.get(abon=abon)
except models.LogicError as e:
except mydefs.LogicError as e:
messages.error(request, e)
passw = models.AbonRawPassword.objects.get(account=abon).passw_text
frm = forms.AbonForm(instance=abon, initial={'password': passw})
@ -408,7 +412,7 @@ def pick_tariff(request, gid, uid):
abon.pick_tariff(trf, request.user, deadline=deadline)
messages.success(request, _('Tariff has been picked'))
return redirect('abonapp:abon_services', gid=gid, uid=abon.id)
except (models.LogicError, NasFailedResult) as e:
except (mydefs.LogicError, NasFailedResult) as e:
messages.error(request, e)
except NasNetworkError as e:
messages.error(request, e)
@ -486,11 +490,11 @@ def complete_service(request, gid, uid, srvid):
messages.success(request, _('Service has been finished successfully'))
return redirect('abonapp:abon_services', gid, uid)
else:
raise models.LogicError(_('Not confirmed'))
raise mydefs.LogicError(_('Not confirmed'))
time_use = mydefs.RuTimedelta(timezone.now() - abtar.time_start)
except (models.LogicError, NasFailedResult) as e:
except (mydefs.LogicError, NasFailedResult) as e:
messages.error(request, e)
except NasNetworkError as e:
messages.warning(request, e)
@ -524,7 +528,7 @@ def activate_service(request, gid, uid, srvid):
messages.success(request, _('Service has been activated successfully'))
return redirect('abonapp:abon_services', gid, uid)
except (NasFailedResult, models.LogicError) as e:
except (NasFailedResult, mydefs.LogicError) as e:
messages.error(request, e)
except NasNetworkError as e:
messages.warning(request, e)
@ -760,6 +764,67 @@ def charts(request, gid, uid):
})
@login_required
@permission_required('abonapp.add_extra_fields_model')
def make_extra_field(request, gid, uid):
abon = get_object_or_404(models.Abon, pk=uid)
try:
if request.method == 'POST':
frm = forms.ExtraFieldForm(request.POST)
if frm.is_valid():
field_instance = frm.save()
abon.extra_fields.add(field_instance)
messages.success(request, _('Extra field successfully created'))
else:
messages.error(request, _('fix form errors'))
return redirect('abonapp:abon_home', gid=gid, uid=uid)
else:
frm = forms.ExtraFieldForm()
except (NasNetworkError, NasFailedResult) as e:
messages.error(request, e)
frm = forms.ExtraFieldForm()
except mydefs.MultipleException as errs:
for err in errs.err_list:
messages.add_message(request, messages.constants.ERROR, err)
frm = forms.ExtraFieldForm()
return render_to_text('abonapp/modal_extra_field.html', {
'abon': abon,
'gid': gid,
'frm': frm
}, request=request)
@login_required
@permission_required('abonapp.change_extra_fields_model')
def extra_field_change(request, gid, uid):
extras = [(int(x), y) for x, y in zip(request.POST.getlist('ed'), request.POST.getlist('ex'))]
print(extras)
try:
for ex in extras:
extra_field = models.ExtraFieldsModel.objects.get(pk=ex[0])
extra_field.data = ex[1]
extra_field.save(update_fields=['data'])
messages.success(request, _("Extra fields has been saved"))
except models.ExtraFieldsModel.DoesNotExist:
messages.error(request, _('One or more extra fields has not been saved'))
return redirect('abonapp:abon_home', gid=gid, uid=uid)
@login_required
@permission_required('abonapp.delete_extra_fields_model')
def extra_field_delete(request, gid, uid, fid):
abon = get_object_or_404(models.Abon, pk=uid)
try:
extra_field = models.ExtraFieldsModel.objects.get(pk=fid)
abon.extra_fields.remove(extra_field)
extra_field.delete()
messages.success(request, _('Extra field successfully deleted'))
except models.ExtraFieldsModel.DoesNotExist:
messages.warning(request, _('Extra field does not exist'))
return redirect('abonapp:abon_home', gid=gid, uid=uid)
# API's
def abons(request):

Loading…
Cancel
Save