From 9eb69619df7cc315d5042ee3ac4af9f4cdb4dce2 Mon Sep 17 00:00:00 2001 From: bashmak Date: Mon, 24 Jul 2017 14:21:23 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D1=83=20=D1=81=20=D1=83=D0=BB?= =?UTF-8?q?=D0=B8=D1=86=D0=B0=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- abonapp/forms.py | 10 ++++ abonapp/locale/ru/LC_MESSAGES/django.po | 27 ++++++++++ .../templates/abonapp/modal_addstreet.html | 38 +++++++++++++ .../templates/abonapp/modal_editstreet.html | 38 +++++++++++++ abonapp/templates/abonapp/peoples.html | 8 +++ abonapp/urls_abon.py | 3 ++ abonapp/views.py | 54 +++++++++++++++++++ 7 files changed, 178 insertions(+) create mode 100644 abonapp/templates/abonapp/modal_addstreet.html create mode 100644 abonapp/templates/abonapp/modal_editstreet.html diff --git a/abonapp/forms.py b/abonapp/forms.py index 8d57d36..1666c8a 100644 --- a/abonapp/forms.py +++ b/abonapp/forms.py @@ -121,3 +121,13 @@ class ExtraFieldForm(forms.ModelForm): 'field_type': forms.Select(attrs={'class': 'form-control'}), 'data': forms.TextInput(attrs={'class': 'form-control'}) } + + +class AbonStreetForm(forms.ModelForm): + class Meta: + model = models.AbonStreet + fields = '__all__' + widgets = { + 'name': forms.TextInput(attrs={'class': 'form-control', 'required':'', 'autofocus':''}), + 'group': forms.Select(attrs={'class': 'form-control'}) + } diff --git a/abonapp/locale/ru/LC_MESSAGES/django.po b/abonapp/locale/ru/LC_MESSAGES/django.po index bc5df87..46877c6 100644 --- a/abonapp/locale/ru/LC_MESSAGES/django.po +++ b/abonapp/locale/ru/LC_MESSAGES/django.po @@ -653,6 +653,33 @@ msgstr "Не найдены улицы для группы" msgid "Services of subscriber" msgstr "Купленные абонентом услуги (назначенные тарифные планы)" +msgid "Add street" +msgstr "Добавить улицу" + +msgid "Edit streets" +msgstr "Редактировать улицы" + +msgid "Street successfully saved" +msgstr "Улица успешно сохранена" + +msgid "Streets has been saved" +msgstr "Улицы сохранены" + +msgid "Street title" +msgstr "Название улицы" + +msgid "One of these streets has not been found" +msgstr "Одна из этих улиц не была найдена" + +msgid "The street has not been found" +msgstr "Улица не найдена" + +msgid "The street successfully deleted" +msgstr "Улица успешно удалена" + +msgid "Streets has not been found" +msgstr "Улицы не найдены" + #: abonapp/templates/abonapp/services.html:9 msgid "Priority" msgstr "Приоритет" diff --git a/abonapp/templates/abonapp/modal_addstreet.html b/abonapp/templates/abonapp/modal_addstreet.html new file mode 100644 index 0000000..c723157 --- /dev/null +++ b/abonapp/templates/abonapp/modal_addstreet.html @@ -0,0 +1,38 @@ +{% load i18n %} +
{% csrf_token %} + + + {% include 'message_block.html' %} + + + +
diff --git a/abonapp/templates/abonapp/modal_editstreet.html b/abonapp/templates/abonapp/modal_editstreet.html new file mode 100644 index 0000000..bf2b39d --- /dev/null +++ b/abonapp/templates/abonapp/modal_editstreet.html @@ -0,0 +1,38 @@ +{% load i18n %} +
{% csrf_token %} + + + {% include 'message_block.html' %} + + + +
diff --git a/abonapp/templates/abonapp/peoples.html b/abonapp/templates/abonapp/peoples.html index 0d7d4f7..6dd709f 100644 --- a/abonapp/templates/abonapp/peoples.html +++ b/abonapp/templates/abonapp/peoples.html @@ -149,6 +149,14 @@ {% empty %} {% trans 'No streets found for that group' %} {% endfor %} +
+ + {% trans 'Add' %} + + + {% trans 'Edit' %} + +
diff --git a/abonapp/urls_abon.py b/abonapp/urls_abon.py index ce80f13..357900b 100644 --- a/abonapp/urls_abon.py +++ b/abonapp/urls_abon.py @@ -6,6 +6,9 @@ urlpatterns = [ url(r'^$', views.peoples, name='people_list'), url(r'^addabon$', views.addabon, name='add_abon'), url(r'^services$', views.chgroup_tariff, name='ch_group_tariff'), + url(r'^street/add$', views.street_add, name='street_add'), + url(r'^street/edit', views.street_edit, name='street_edit'), + url(r'^street/(?P\d+)/delete$', views.street_del, name='street_del'), url(r'^(?P\d+)$', views.abonhome, name='abon_home'), url(r'^(?P\d+)/services$', views.abon_services, name='abon_services'), diff --git a/abonapp/views.py b/abonapp/views.py index f579a05..8d0b6ab 100644 --- a/abonapp/views.py +++ b/abonapp/views.py @@ -873,6 +873,60 @@ def save_user_dev_port(request, gid, uid): return redirect('abonapp:abon_home', gid, uid) +@login_required +@permission_required('abonapp.add_abonstreet') +def street_add(request, gid): + if request.method == 'POST': + frm = forms.AbonStreetForm(request.POST) + if frm.is_valid(): + frm.save() + messages.success(request, _('Street successfully saved')) + return redirect('abonapp:people_list', gid) + else: + messages.error(request, _('fix form errors')) + else: + frm = forms.AbonStreetForm(initial={'group': gid}) + return render_to_text('abonapp/modal_addstreet.html', { + 'form': frm, + 'gid': gid + }, request=request) + + +@login_required +@permission_required('abonapp.change_abonstreet') +def street_edit(request, gid): + try: + if request.method == 'POST': + streets_pairs = [(int(sid), sname) for sid, sname in zip(request.POST.getlist('sid'), request.POST.getlist('sname'))] + for sid, sname in streets_pairs: + street = models.AbonStreet.objects.get(pk=sid) + street.name = sname + street.save() + messages.success(request, _('Streets has been saved')) + else: + return render_to_text('abonapp/modal_editstreet.html', { + 'gid': gid, + 'streets': models.AbonStreet.objects.filter(group=gid) + }, request=request) + + except models.AbonStreet.DoesNotExist: + messages.error(request, _('One of these streets has not been found')) + + return redirect('abonapp:people_list', gid) + + +@login_required +@permission_required('abonapp.delete_abonstreet') +def street_del(request, gid, sid): + try: + models.AbonStreet.objects.get(pk=sid, group=gid).delete() + messages.success(request, _('The street successfully deleted')) + except models.AbonStreet.DoesNotExist: + messages.error(request, _('The street has not been found')) + return redirect('abonapp:people_list', gid) + + + # API's def abons(request):