From 94a97d45a20732378931a6fe02aeb49a12196ae1 Mon Sep 17 00:00:00 2001 From: Dmitry Novikov Date: Tue, 23 Apr 2019 13:16:37 +0300 Subject: [PATCH] fix when disconnect service from group. Services removes from autoconnect from users in group --- abonapp/templates/abonapp/group_tariffs.html | 2 +- abonapp/views.py | 13 ++++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/abonapp/templates/abonapp/group_tariffs.html b/abonapp/templates/abonapp/group_tariffs.html index e03547d..ca079ba 100644 --- a/abonapp/templates/abonapp/group_tariffs.html +++ b/abonapp/templates/abonapp/group_tariffs.html @@ -32,4 +32,4 @@ -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/abonapp/views.py b/abonapp/views.py index b30d403..4d1610b 100644 --- a/abonapp/views.py +++ b/abonapp/views.py @@ -633,9 +633,16 @@ def chgroup_tariff(request, gid): if not request.user.has_perm('group_app.change_group', grp): raise PermissionDenied if request.method == 'POST': - tr = request.POST.getlist('tr') - grp.tariff_set.clear() - grp.tariff_set.add(*tr) + ma = frozenset(t.id for t in grp.tariff_set.all()) + mb = frozenset(map(int, request.POST.getlist('tr'))) + sub = ma - mb + add = mb - ma + grp.tariff_set.remove(*sub) + grp.tariff_set.add(*add) + models.Abon.objects.filter( + group=grp, + last_connected_tariff__in=sub + ).update(last_connected_tariff=None) messages.success(request, _('Successfully saved')) return redirect('abonapp:ch_group_tariff', gid) tariffs = Tariff.objects.all()