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' %}
-
-
+
+ {% 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 %}
-
-
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