From 7b36eb55387da3a5bcbc69bd0f7394ecb9cdc12b Mon Sep 17 00:00:00 2001 From: bashmak Date: Tue, 26 Jun 2018 11:06:21 +0300 Subject: [PATCH] remove extra field --- abonapp/admin.py | 1 - abonapp/forms.py | 11 ---- abonapp/models.py | 44 ------------- abonapp/templates/abonapp/editAbon.html | 65 +++++++------------ .../templates/abonapp/modal_extra_field.html | 45 ------------- abonapp/urls.py | 13 +--- abonapp/views.py | 59 ----------------- 7 files changed, 26 insertions(+), 212 deletions(-) delete mode 100644 abonapp/templates/abonapp/modal_extra_field.html diff --git a/abonapp/admin.py b/abonapp/admin.py index 2a8fe7d..9448164 100644 --- a/abonapp/admin.py +++ b/abonapp/admin.py @@ -9,7 +9,6 @@ admin.site.register(models.AbonTariff) admin.site.register(models.AbonStreet) admin.site.register(models.AllTimePayLog) admin.site.register(models.AbonRawPassword) -admin.site.register(models.ExtraFieldsModel) admin.site.register(models.AllPayLog) admin.site.register(models.PassportInfo) admin.site.register(models.AdditionalTelephone) diff --git a/abonapp/forms.py b/abonapp/forms.py index e0ebc59..f02cb6b 100644 --- a/abonapp/forms.py +++ b/abonapp/forms.py @@ -106,17 +106,6 @@ class PassportForm(forms.ModelForm): } -class ExtraFieldForm(forms.ModelForm): - class Meta: - model = models.ExtraFieldsModel - fields = '__all__' - widgets = { - 'title': forms.TextInput(attrs={'class': 'form-control'}), - 'field_type': forms.Select(attrs={'class': 'form-control'}), - 'data': forms.TextInput(attrs={'class': 'form-control'}) - } - - class AbonStreetForm(forms.ModelForm): class Meta: model = models.AbonStreet diff --git a/abonapp/models.py b/abonapp/models.py index 5a19756..a203c7a 100644 --- a/abonapp/models.py +++ b/abonapp/models.py @@ -16,7 +16,6 @@ from accounts_app.models import UserProfile, MyUserManager, BaseAccount from agent import Transmitter, AbonStruct, TariffStruct, NasFailedResult, NasNetworkError from group_app.models import Group from djing.lib import ip2int, LogicError -from djing import IP_ADDR_REGEX from tariff_app.models import Tariff, PeriodicPay from bitfield import BitField @@ -84,48 +83,6 @@ class AbonStreet(models.Model): ordering = ('name',) -class ExtraFieldsModel(models.Model): - DYNAMIC_FIELD_TYPES = ( - ('int', _('Digital field')), - ('str', _('Text field')), - ('dbl', _('Floating field')), - ('ipa', _('Ip Address')) - ) - - title = models.CharField(max_length=16, default='no title') - field_type = models.CharField(max_length=3, choices=DYNAMIC_FIELD_TYPES, default='str') - data = models.CharField(max_length=64, null=True, blank=True) - - def get_regexp(self): - if self.field_type == 'int': - return r'^[+-]?\d+$' - elif self.field_type == 'dbl': - return r'^[-+]?\d+[,.]\d+$' - elif self.field_type == 'str': - return r'^[a-zA-ZА-Яа-я0-9]+$' - elif self.field_type == 'ipa': - return IP_ADDR_REGEX - - def clean(self): - d = self.data - if self.field_type == 'int': - validators.validate_integer(d) - elif self.field_type == 'dbl': - try: - float(d) - except ValueError: - raise ValidationError(_('Double invalid value'), code='invalid') - elif self.field_type == 'str': - str_validator = validators.MaxLengthValidator(64) - str_validator(d) - - def __str__(self): - return "%s: %s" % (self.get_field_type_display(), self.data) - - class Meta: - db_table = 'abon_extra_fields' - - class AbonManager(MyUserManager): def get_queryset(self): return super(MyUserManager, self).get_queryset().filter(is_admin=False) @@ -139,7 +96,6 @@ class Abon(BaseAccount): 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) - extra_fields = models.ManyToManyField(ExtraFieldsModel, blank=True) device = models.ForeignKey('devapp.Device', null=True, blank=True, on_delete=models.SET_NULL) dev_port = models.ForeignKey('devapp.Port', null=True, blank=True, on_delete=models.SET_NULL) is_dynamic_ip = models.BooleanField(default=False) diff --git a/abonapp/templates/abonapp/editAbon.html b/abonapp/templates/abonapp/editAbon.html index fbd20bf..a28d907 100644 --- a/abonapp/templates/abonapp/editAbon.html +++ b/abonapp/templates/abonapp/editAbon.html @@ -194,51 +194,36 @@ {% endif %} - {% if perms.abonapp.add_extrafieldsmodel %} +
-

{% trans 'Extra fields' %}

+

{% trans 'Ip addresses' %}

-
-
{% csrf_token %} - - {% for ef in abon.extra_fields.all %} -
- -
- -
- - - - - - - -
- -
-
- {% empty %} -

{% trans 'Extra field does not exist' %}

- {% endfor %} - -
-
- - {% trans 'Add' %} - - - -
-
- -
+
    + {% for lease in abon.ip_addresses.all %} +
  • + {% if lease.is_active %} + × + {% else %} + × + {% endif %} + + {{ lease }} + {% trans 'Leased by:' %} {{ lease.lease_time|date:'d-m H:i:s' }} + +
  • + {% empty %} +
  • {% trans 'Leases does not found' %}
  • + {% endfor %} +
+
- {% endif %} +

{% trans 'User flags' %}

diff --git a/abonapp/templates/abonapp/modal_extra_field.html b/abonapp/templates/abonapp/modal_extra_field.html deleted file mode 100644 index 7f2ff2f..0000000 --- a/abonapp/templates/abonapp/modal_extra_field.html +++ /dev/null @@ -1,45 +0,0 @@ -{% load i18n %} - -
{% csrf_token %} - - - - -
diff --git a/abonapp/urls.py b/abonapp/urls.py index 025b136..ce54d51 100644 --- a/abonapp/urls.py +++ b/abonapp/urls.py @@ -15,10 +15,7 @@ subscriber_patterns = [ url(r'^passport_view/$', views.PassportUpdateView.as_view(), name='passport_view'), url(r'^chart/$', views.charts, name='charts'), url(r'^dials/$', views.DialsListView.as_view(), name='dials'), - url(r'^reset_ip/$', views.reset_ip, name='reset_ip'), - url(r'^extra_field/$', views.make_extra_field, name='extra_field'), - url(r'^extra_field/(?P\d+)/delete$', views.extra_field_delete, name='extra_field_delete'), - url(r'^extra_field/edit$', views.extra_field_change, name='extra_field_edit'), + # url(r'^reset_ip/$', views.reset_ip, name='reset_ip'), url(r'^unsubscribe_service(?P\d+)/$', views.unsubscribe_service, name='unsubscribe_service'), url(r'^dev/$', views.dev, name='dev'), url(r'^del$', views.DelAbonDeleteView.as_view(), name='del_abon'), @@ -47,21 +44,13 @@ group_patterns = [ ] urlpatterns = [ - url(r'^$', views.GroupListView.as_view(), name='group_list'), - url(r'^fin_report$', views.fin_report, name='fin_report'), - url(r'^(?P\d+)/', include(group_patterns)), - url(r'^log$', views.LogListView.as_view(), name='log'), - url(r'^pay$', views.terminal_pay, name='terminal_pay'), - url(r'^debtors$', views.DebtorsListView.as_view(), name='debtors'), - url(r'^ping$', views.abon_ping, name='ping'), - # Api's url(r'^api/abons$', views.abons), url(r'^api/abon_filter$', views.search_abon), diff --git a/abonapp/views.py b/abonapp/views.py index b4a9bf9..005d1ad 100644 --- a/abonapp/views.py +++ b/abonapp/views.py @@ -646,65 +646,6 @@ def charts(request, gid, uname): }) -@login_required -@permission_required('abonapp.add_extrafieldsmodel') -def make_extra_field(request, gid, uname): - abon = get_object_or_404(models.Abon, username=uname) - 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, username=uname) - else: - frm = forms.ExtraFieldForm() - - except (NasNetworkError, NasFailedResult) as e: - messages.error(request, e) - frm = forms.ExtraFieldForm() - except lib.MultipleException as errs: - for err in errs.err_list: - messages.error(request, 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, uname): - try: - for ed, ex in zip(request.POST.getlist('ed'), request.POST.getlist('ex')): - extra_field = models.ExtraFieldsModel.objects.get(pk=ed) - extra_field.data = ex - 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, uname=uname) - - -@login_required -@permission_required('abonapp.delete_extra_fields_model') -def extra_field_delete(request, gid, uname, fid): - abon = get_object_or_404(models.Abon, username=uname) - 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, uname=uname) - - @login_required @permission_required('abonapp.can_ping') @json_view