diff --git a/abonapp/templates/abonapp/group_tariffs.html b/abonapp/templates/abonapp/group_tariffs.html
new file mode 100644
index 0000000..160415b
--- /dev/null
+++ b/abonapp/templates/abonapp/group_tariffs.html
@@ -0,0 +1,33 @@
+{% extends request.is_ajax|yesno:'bajax.html,base.html' %}
+{% load i18n %}
+{% block main %}
+
+
+
+ - {% trans 'User groups' %}
+ - {{ abon_group.title }}
+ - {% trans 'Belonging services for groups' %}
+
+
+ {% include 'message_block.html' %}
+
+
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/abonapp/urls_abon.py b/abonapp/urls_abon.py
index 4182ff2..b13c1b3 100644
--- a/abonapp/urls_abon.py
+++ b/abonapp/urls_abon.py
@@ -5,6 +5,7 @@ from . import views
urlpatterns = [
url(r'^$', views.peoples, name='people_list'),
url(r'^addabon$', views.addabon, name='add_abon'),
+ url(r'^groups$', views.chgroup_tariff, name='ch_group_tariff'),
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 0529282..1157c69 100644
--- a/abonapp/views.py
+++ b/abonapp/views.py
@@ -329,22 +329,15 @@ def add_invoice(request, gid, uid):
@login_required
@permission_required('abonapp.can_buy_tariff')
def pick_tariff(request, gid, uid):
- frm = None
grp = get_object_or_404(models.AbonGroup, id=gid)
abon = get_object_or_404(models.Abon, id=uid)
+ tariffs = grp.tariffs.all()
try:
if request.method == 'POST':
- frm = forms.BuyTariff(request.POST)
- if frm.is_valid():
- cd = frm.cleaned_data
- abon.pick_tariff(cd['tariff'], request.user)
- #abon.save()
- messages.success(request, _('Tariff has been picked'))
- return redirect('abonapp:abon_services', gid=gid, uid=abon.id)
- else:
- messages.error(request, _('fix form errors'))
- else:
- frm = forms.BuyTariff()
+ trf = Tariff.objects.get(pk=request.POST.get('tariff'))
+ abon.pick_tariff(trf, request.user)
+ messages.success(request, _('Tariff has been picked'))
+ return redirect('abonapp:abon_services', gid=gid, uid=abon.id)
except models.LogicError as e:
messages.error(request, e)
except NasFailedResult as e:
@@ -352,9 +345,11 @@ def pick_tariff(request, gid, uid):
except NasNetworkError as e:
messages.error(request, e)
return redirect('abonapp:abon_services', gid=gid, uid=abon.id)
+ except Tariff.DoesNotExist:
+ messages.error(request, _('Tariff your picked does not exist'))
return render(request, 'abonapp/buy_tariff.html', {
- 'form': frm or forms.BuyTariff(),
+ 'tariffs': tariffs,
'abon': abon,
'abon_group': grp
})
@@ -552,6 +547,22 @@ def passport_view(request, gid, uid):
})
+@login_required
+@mydefs.only_admins
+def chgroup_tariff(request, gid):
+ grp = get_object_or_404(models.AbonGroup, pk=gid)
+ if request.method == 'POST':
+ tr = request.POST.getlist('tr')
+ grp.tariffs.clear()
+ grp.tariffs.add(*[int(d) for d in tr])
+ grp.save()
+ tariffs = Tariff.objects.all()
+ return render(request, 'abonapp/group_tariffs.html', {
+ 'abon_group': grp,
+ 'tariffs': tariffs
+ })
+
+
# API's
def abons(request):