From 5d89786c8f5017538d0527c8c36081a9b4e4c8e1 Mon Sep 17 00:00:00 2001 From: klmp200 Date: Mon, 3 Apr 2017 10:41:36 +0200 Subject: [PATCH 1/5] Serious counter fix --- counter/views.py | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/counter/views.py b/counter/views.py index ab06c864..8351d0cc 100644 --- a/counter/views.py +++ b/counter/views.py @@ -158,8 +158,16 @@ class CounterClick(CounterTabsMixin, CanViewMixin, DetailView): def dispatch(self, request, *args, **kwargs): self.customer = get_object_or_404(Customer, user__id=self.kwargs['user_id']) + obj = self.get_object() if not self.customer.can_buy: raise Http404 + if obj.type == "BAR": + if not ('counter_token' in request.session.keys() and + request.session['counter_token'] == obj.token) or len(obj.get_barmen_list())<1: + raise PermissionDenied + else: + if not request.user.is_authenticated(): + raise PermissionDenied return super(CounterClick, self).dispatch(request, *args, **kwargs) def get(self, request, *args, **kwargs): @@ -376,14 +384,17 @@ class CounterClick(CounterTabsMixin, CanViewMixin, DetailView): def refill(self, request): """Refill the customer's account""" - form = RefillForm(request.POST) - if form.is_valid(): - form.instance.counter = self.object - form.instance.operator = self.operator - form.instance.customer = self.customer - form.instance.save() + if self.get_object().type == 'BAR': + form = RefillForm(request.POST) + if form.is_valid(): + form.instance.counter = self.object + form.instance.operator = self.operator + form.instance.customer = self.customer + form.instance.save() + else: + self.refill_form = form else: - self.refill_form = form + raise PermissionDenied def get_context_data(self, **kwargs): """ Add customer to the context """ From 1430479a1d167a5b89b154ae25bf1f4866b7b8c5 Mon Sep 17 00:00:00 2001 From: klmp200 Date: Mon, 3 Apr 2017 11:57:28 +0200 Subject: [PATCH 2/5] Some rights fix --- counter/views.py | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/counter/views.py b/counter/views.py index 8351d0cc..41bec0d0 100644 --- a/counter/views.py +++ b/counter/views.py @@ -2,6 +2,7 @@ from django.shortcuts import render, get_object_or_404 from django.http import Http404 from django.core.exceptions import PermissionDenied from django.views.generic import ListView, DetailView, RedirectView, TemplateView +from django.views.generic.base import View from django.views.generic.edit import UpdateView, CreateView, DeleteView, ProcessFormView, FormMixin from django.forms.models import modelform_factory from django.forms import CheckboxSelectMultiple @@ -28,6 +29,16 @@ from counter.models import Counter, Customer, Product, Selling, Refilling, Produ CashRegisterSummary, CashRegisterSummaryItem, Eticket, Permanency from accounting.models import CurrencyField +class IsCounterAdminMixin(View): + """ + This view is made to protect counter admin section + """ + def dispatch(self, request, *args, **kwargs): + res = super(CanEditCounterMixin, self).dispatch(request, *args, **kwargs) + if not (request.user.is_root or request.user.is_in_group(settings.SITH_GROUP_COUNTER_ADMIN_ID)): + raise PermissionDenied + return res + class GetUserForm(forms.Form): """ The Form class aims at providing a valid user_id field in its cleaned data, in order to pass it to some view, @@ -492,7 +503,7 @@ class CounterAdminTabsMixin(TabedViewMixin): }, ] -class CounterListView(CounterAdminTabsMixin, CanViewMixin, ListView): +class CounterListView(CounterAdminTabsMixin, CanViewMixin, ListView, IsCounterAdminMixin): """ A list view for the admins """ @@ -507,7 +518,7 @@ class CounterEditForm(forms.ModelForm): sellers = make_ajax_field(Counter, 'sellers', 'users', help_text="") products = make_ajax_field(Counter, 'products', 'products', help_text="") -class CounterEditView(CounterAdminTabsMixin, CanEditMixin, UpdateView): +class CounterEditView(CounterAdminTabsMixin, CanEditMixin, UpdateView, IsCounterAdminMixin): """ Edit a counter's main informations (for the counter's manager) """ @@ -520,7 +531,7 @@ class CounterEditView(CounterAdminTabsMixin, CanEditMixin, UpdateView): def get_success_url(self): return reverse_lazy('counter:admin', kwargs={'counter_id': self.object.id}) -class CounterEditPropView(CounterAdminTabsMixin, CanEditPropMixin, UpdateView): +class CounterEditPropView(CounterAdminTabsMixin, CanEditPropMixin, UpdateView, IsCounterAdminMixin): """ Edit a counter's main informations (for the counter's admin) """ @@ -530,7 +541,7 @@ class CounterEditPropView(CounterAdminTabsMixin, CanEditPropMixin, UpdateView): template_name = 'core/edit.jinja' current_tab = "counters" -class CounterCreateView(CounterAdminTabsMixin, CanEditMixin, CreateView): +class CounterCreateView(CounterAdminTabsMixin, CanEditCounterMixin, CreateView, IsCounterAdminMixin): """ Create a counter (for the admins) """ @@ -540,7 +551,7 @@ class CounterCreateView(CounterAdminTabsMixin, CanEditMixin, CreateView): template_name = 'core/create.jinja' current_tab = "counters" -class CounterDeleteView(CounterAdminTabsMixin, CanEditMixin, DeleteView): +class CounterDeleteView(CounterAdminTabsMixin, CanEditMixin, DeleteView, IsCounterAdminMixin): """ Delete a counter (for the admins) """ @@ -552,7 +563,7 @@ class CounterDeleteView(CounterAdminTabsMixin, CanEditMixin, DeleteView): # Product management -class ProductTypeListView(CounterAdminTabsMixin, CanEditPropMixin, ListView): +class ProductTypeListView(CounterAdminTabsMixin, CanEditPropMixin, ListView, IsCounterAdminMixin): """ A list view for the admins """ @@ -560,7 +571,7 @@ class ProductTypeListView(CounterAdminTabsMixin, CanEditPropMixin, ListView): template_name = 'counter/producttype_list.jinja' current_tab = "product_types" -class ProductTypeCreateView(CounterAdminTabsMixin, CanCreateMixin, CreateView): +class ProductTypeCreateView(CounterAdminTabsMixin, CanCreateMixin, CreateView, IsCounterAdminMixin): """ A create view for the admins """ @@ -569,7 +580,7 @@ class ProductTypeCreateView(CounterAdminTabsMixin, CanCreateMixin, CreateView): template_name = 'core/create.jinja' current_tab = "products" -class ProductTypeEditView(CounterAdminTabsMixin, CanEditPropMixin, UpdateView): +class ProductTypeEditView(CounterAdminTabsMixin, CanEditPropMixin, UpdateView, IsCounterAdminMixin): """ An edit view for the admins """ @@ -579,7 +590,7 @@ class ProductTypeEditView(CounterAdminTabsMixin, CanEditPropMixin, UpdateView): pk_url_kwarg = "type_id" current_tab = "products" -class ProductArchivedListView(CounterAdminTabsMixin, CanEditPropMixin, ListView): +class ProductArchivedListView(CounterAdminTabsMixin, CanEditPropMixin, ListView, IsCounterAdminMixin): """ A list view for the admins """ @@ -589,7 +600,7 @@ class ProductArchivedListView(CounterAdminTabsMixin, CanEditPropMixin, ListView) ordering = ['name'] current_tab = "archive" -class ProductListView(CounterAdminTabsMixin, CanEditPropMixin, ListView): +class ProductListView(CounterAdminTabsMixin, CanEditPropMixin, ListView, IsCounterAdminMixin): """ A list view for the admins """ @@ -627,7 +638,7 @@ class ProductEditForm(forms.ModelForm): c.save() return ret -class ProductCreateView(CounterAdminTabsMixin, CanCreateMixin, CreateView): +class ProductCreateView(CounterAdminTabsMixin, CanCreateMixin, CreateView, IsCounterAdminMixin): """ A create view for the admins """ @@ -636,7 +647,7 @@ class ProductCreateView(CounterAdminTabsMixin, CanCreateMixin, CreateView): template_name = 'core/create.jinja' current_tab = "products" -class ProductEditView(CounterAdminTabsMixin, CanEditPropMixin, UpdateView): +class ProductEditView(CounterAdminTabsMixin, CanEditPropMixin, UpdateView, IsCounterAdminMixin): """ An edit view for the admins """ From 824411b13daa4cef620aa911561fdd9a79e8960f Mon Sep 17 00:00:00 2001 From: klmp200 Date: Mon, 3 Apr 2017 13:50:28 +0200 Subject: [PATCH 3/5] Rights fix for counters --- counter/views.py | 43 +++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/counter/views.py b/counter/views.py index 41bec0d0..80b37f78 100644 --- a/counter/views.py +++ b/counter/views.py @@ -33,9 +33,17 @@ class IsCounterAdminMixin(View): """ This view is made to protect counter admin section """ + group_id_list = [settings.SITH_GROUP_COUNTER_ADMIN_ID] + def _test_group(self, user): + print(self.group_id_list) + for g in self.group_id_list: + if user.is_in_group(g): + return True + return False + def dispatch(self, request, *args, **kwargs): - res = super(CanEditCounterMixin, self).dispatch(request, *args, **kwargs) - if not (request.user.is_root or request.user.is_in_group(settings.SITH_GROUP_COUNTER_ADMIN_ID)): + res = super(IsCounterAdminMixin, self).dispatch(request, *args, **kwargs) + if not (request.user.is_root or self._test_group(request.user)): raise PermissionDenied return res @@ -503,7 +511,7 @@ class CounterAdminTabsMixin(TabedViewMixin): }, ] -class CounterListView(CounterAdminTabsMixin, CanViewMixin, ListView, IsCounterAdminMixin): +class CounterListView(CounterAdminTabsMixin, IsCounterAdminMixin, CanViewMixin, ListView): """ A list view for the admins """ @@ -518,7 +526,7 @@ class CounterEditForm(forms.ModelForm): sellers = make_ajax_field(Counter, 'sellers', 'users', help_text="") products = make_ajax_field(Counter, 'products', 'products', help_text="") -class CounterEditView(CounterAdminTabsMixin, CanEditMixin, UpdateView, IsCounterAdminMixin): +class CounterEditView(CounterAdminTabsMixin, UpdateView, IsCounterAdminMixin): """ Edit a counter's main informations (for the counter's manager) """ @@ -528,10 +536,17 @@ class CounterEditView(CounterAdminTabsMixin, CanEditMixin, UpdateView, IsCounter template_name = 'core/edit.jinja' current_tab = "counters" + def dispatch(self, request, *args, **kwargs): + obj = self.get_object() + self.group_id_list.append(obj.club.owner_group.id) + for g in obj.club.edit_groups.all(): + self.group_id_list.append(g.id) + return super(CounterEditView, self).dispatch(request, *args, **kwargs) + def get_success_url(self): return reverse_lazy('counter:admin', kwargs={'counter_id': self.object.id}) -class CounterEditPropView(CounterAdminTabsMixin, CanEditPropMixin, UpdateView, IsCounterAdminMixin): +class CounterEditPropView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditPropMixin, UpdateView): """ Edit a counter's main informations (for the counter's admin) """ @@ -541,7 +556,7 @@ class CounterEditPropView(CounterAdminTabsMixin, CanEditPropMixin, UpdateView, I template_name = 'core/edit.jinja' current_tab = "counters" -class CounterCreateView(CounterAdminTabsMixin, CanEditCounterMixin, CreateView, IsCounterAdminMixin): +class CounterCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditMixin, CreateView): """ Create a counter (for the admins) """ @@ -551,7 +566,7 @@ class CounterCreateView(CounterAdminTabsMixin, CanEditCounterMixin, CreateView, template_name = 'core/create.jinja' current_tab = "counters" -class CounterDeleteView(CounterAdminTabsMixin, CanEditMixin, DeleteView, IsCounterAdminMixin): +class CounterDeleteView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditMixin, DeleteView): """ Delete a counter (for the admins) """ @@ -563,7 +578,7 @@ class CounterDeleteView(CounterAdminTabsMixin, CanEditMixin, DeleteView, IsCount # Product management -class ProductTypeListView(CounterAdminTabsMixin, CanEditPropMixin, ListView, IsCounterAdminMixin): +class ProductTypeListView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditPropMixin, ListView): """ A list view for the admins """ @@ -571,7 +586,7 @@ class ProductTypeListView(CounterAdminTabsMixin, CanEditPropMixin, ListView, IsC template_name = 'counter/producttype_list.jinja' current_tab = "product_types" -class ProductTypeCreateView(CounterAdminTabsMixin, CanCreateMixin, CreateView, IsCounterAdminMixin): +class ProductTypeCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CanCreateMixin, CreateView): """ A create view for the admins """ @@ -580,7 +595,7 @@ class ProductTypeCreateView(CounterAdminTabsMixin, CanCreateMixin, CreateView, I template_name = 'core/create.jinja' current_tab = "products" -class ProductTypeEditView(CounterAdminTabsMixin, CanEditPropMixin, UpdateView, IsCounterAdminMixin): +class ProductTypeEditView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditPropMixin, UpdateView): """ An edit view for the admins """ @@ -590,7 +605,7 @@ class ProductTypeEditView(CounterAdminTabsMixin, CanEditPropMixin, UpdateView, I pk_url_kwarg = "type_id" current_tab = "products" -class ProductArchivedListView(CounterAdminTabsMixin, CanEditPropMixin, ListView, IsCounterAdminMixin): +class ProductArchivedListView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditPropMixin, ListView): """ A list view for the admins """ @@ -600,7 +615,7 @@ class ProductArchivedListView(CounterAdminTabsMixin, CanEditPropMixin, ListView, ordering = ['name'] current_tab = "archive" -class ProductListView(CounterAdminTabsMixin, CanEditPropMixin, ListView, IsCounterAdminMixin): +class ProductListView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditPropMixin, ListView): """ A list view for the admins """ @@ -638,7 +653,7 @@ class ProductEditForm(forms.ModelForm): c.save() return ret -class ProductCreateView(CounterAdminTabsMixin, CanCreateMixin, CreateView, IsCounterAdminMixin): +class ProductCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CanCreateMixin, CreateView): """ A create view for the admins """ @@ -647,7 +662,7 @@ class ProductCreateView(CounterAdminTabsMixin, CanCreateMixin, CreateView, IsCou template_name = 'core/create.jinja' current_tab = "products" -class ProductEditView(CounterAdminTabsMixin, CanEditPropMixin, UpdateView, IsCounterAdminMixin): +class ProductEditView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditPropMixin, UpdateView): """ An edit view for the admins """ From d4815df55f110b481d54d1f54f9e839088bffc34 Mon Sep 17 00:00:00 2001 From: klmp200 Date: Mon, 3 Apr 2017 15:00:13 +0200 Subject: [PATCH 4/5] Better right counter management --- counter/views.py | 59 +++++++++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 26 deletions(-) diff --git a/counter/views.py b/counter/views.py index 80b37f78..e09fa75a 100644 --- a/counter/views.py +++ b/counter/views.py @@ -33,17 +33,26 @@ class IsCounterAdminMixin(View): """ This view is made to protect counter admin section """ - group_id_list = [settings.SITH_GROUP_COUNTER_ADMIN_ID] + edit_group = [settings.SITH_GROUP_COUNTER_ADMIN_ID] + edit_club = [] + def _test_group(self, user): - print(self.group_id_list) - for g in self.group_id_list: + for g in self.edit_group: if user.is_in_group(g): return True return False + def _test_club(self, user): + for c in self.edit_club: + if c.can_be_edited_by(user): + return True + return False + + def dispatch(self, request, *args, **kwargs): res = super(IsCounterAdminMixin, self).dispatch(request, *args, **kwargs) - if not (request.user.is_root or self._test_group(request.user)): + if not (request.user.is_root or self._test_group(request.user) + or self._test_club(request.user)): raise PermissionDenied return res @@ -511,7 +520,7 @@ class CounterAdminTabsMixin(TabedViewMixin): }, ] -class CounterListView(CounterAdminTabsMixin, IsCounterAdminMixin, CanViewMixin, ListView): +class CounterListView(CounterAdminTabsMixin, CanViewMixin, ListView): """ A list view for the admins """ @@ -526,7 +535,7 @@ class CounterEditForm(forms.ModelForm): sellers = make_ajax_field(Counter, 'sellers', 'users', help_text="") products = make_ajax_field(Counter, 'products', 'products', help_text="") -class CounterEditView(CounterAdminTabsMixin, UpdateView, IsCounterAdminMixin): +class CounterEditView(CounterAdminTabsMixin, IsCounterAdminMixin, UpdateView): """ Edit a counter's main informations (for the counter's manager) """ @@ -538,15 +547,13 @@ class CounterEditView(CounterAdminTabsMixin, UpdateView, IsCounterAdminMixin): def dispatch(self, request, *args, **kwargs): obj = self.get_object() - self.group_id_list.append(obj.club.owner_group.id) - for g in obj.club.edit_groups.all(): - self.group_id_list.append(g.id) + self.edit_club.append(obj.club) return super(CounterEditView, self).dispatch(request, *args, **kwargs) def get_success_url(self): return reverse_lazy('counter:admin', kwargs={'counter_id': self.object.id}) -class CounterEditPropView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditPropMixin, UpdateView): +class CounterEditPropView(CounterAdminTabsMixin, IsCounterAdminMixin, UpdateView): """ Edit a counter's main informations (for the counter's admin) """ @@ -556,7 +563,7 @@ class CounterEditPropView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditPro template_name = 'core/edit.jinja' current_tab = "counters" -class CounterCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditMixin, CreateView): +class CounterCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CreateView): """ Create a counter (for the admins) """ @@ -566,7 +573,7 @@ class CounterCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditMixin template_name = 'core/create.jinja' current_tab = "counters" -class CounterDeleteView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditMixin, DeleteView): +class CounterDeleteView(CounterAdminTabsMixin, IsCounterAdminMixin, DeleteView): """ Delete a counter (for the admins) """ @@ -578,7 +585,7 @@ class CounterDeleteView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditMixin # Product management -class ProductTypeListView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditPropMixin, ListView): +class ProductTypeListView(CounterAdminTabsMixin, IsCounterAdminMixin, ListView): """ A list view for the admins """ @@ -586,7 +593,7 @@ class ProductTypeListView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditPro template_name = 'counter/producttype_list.jinja' current_tab = "product_types" -class ProductTypeCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CanCreateMixin, CreateView): +class ProductTypeCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CreateView): """ A create view for the admins """ @@ -595,7 +602,7 @@ class ProductTypeCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CanCreat template_name = 'core/create.jinja' current_tab = "products" -class ProductTypeEditView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditPropMixin, UpdateView): +class ProductTypeEditView(CounterAdminTabsMixin, IsCounterAdminMixin, UpdateView): """ An edit view for the admins """ @@ -605,7 +612,7 @@ class ProductTypeEditView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditPro pk_url_kwarg = "type_id" current_tab = "products" -class ProductArchivedListView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditPropMixin, ListView): +class ProductArchivedListView(CounterAdminTabsMixin, IsCounterAdminMixin, ListView): """ A list view for the admins """ @@ -615,7 +622,7 @@ class ProductArchivedListView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEdi ordering = ['name'] current_tab = "archive" -class ProductListView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditPropMixin, ListView): +class ProductListView(CounterAdminTabsMixin, IsCounterAdminMixin, ListView): """ A list view for the admins """ @@ -653,7 +660,7 @@ class ProductEditForm(forms.ModelForm): c.save() return ret -class ProductCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CanCreateMixin, CreateView): +class ProductCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CreateView): """ A create view for the admins """ @@ -662,7 +669,7 @@ class ProductCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CanCreateMix template_name = 'core/create.jinja' current_tab = "products" -class ProductEditView(CounterAdminTabsMixin, IsCounterAdminMixin, CanEditPropMixin, UpdateView): +class ProductEditView(CounterAdminTabsMixin, IsCounterAdminMixin, UpdateView): """ An edit view for the admins """ @@ -892,7 +899,7 @@ class CounterActivityView(DetailView): pk_url_kwarg = "counter_id" template_name = 'counter/activity.jinja' -class CounterStatView(DetailView, CanEditMixin): +class CounterStatView(DetailView, IsCounterAdminMixin): """ Show the bar stats """ @@ -954,7 +961,7 @@ class CounterStatView(DetailView, CanEditMixin): return super(CanEditMixin, self).dispatch(request, *args, **kwargs) raise PermissionDenied -class CashSummaryEditView(CanEditPropMixin, CounterAdminTabsMixin, UpdateView): +class CashSummaryEditView(CounterAdminTabsMixin, IsCounterAdminMixin, UpdateView): """Edit cash summaries""" model = CashRegisterSummary template_name = 'counter/cash_register_summary.jinja' @@ -970,7 +977,7 @@ class CashSummaryFormBase(forms.Form): begin_date = forms.DateTimeField(['%Y-%m-%d %H:%M:%S'], label=_("Begin date"), required=False, widget=SelectDateTime) end_date = forms.DateTimeField(['%Y-%m-%d %H:%M:%S'], label=_("End date"), required=False, widget=SelectDateTime) -class CashSummaryListView(CanEditPropMixin, CounterAdminTabsMixin, ListView): +class CashSummaryListView(CounterAdminTabsMixin, IsCounterAdminMixin, ListView): """Display a list of cash summaries""" model = CashRegisterSummary template_name = 'counter/cash_summary_list.jinja' @@ -1007,7 +1014,7 @@ class CashSummaryListView(CanEditPropMixin, CounterAdminTabsMixin, ListView): kwargs['refilling_sums'][c.name] = sum([s.amount for s in refillings.all()]) return kwargs -class InvoiceCallView(CounterAdminTabsMixin, TemplateView): +class InvoiceCallView(CounterAdminTabsMixin, IsCounterAdminMixin, TemplateView): template_name = 'counter/invoices_call.jinja' current_tab = 'invoices_call' @@ -1034,7 +1041,7 @@ class InvoiceCallView(CounterAdminTabsMixin, TemplateView): )).exclude(selling_sum=None).order_by('-selling_sum') return kwargs -class EticketListView(CounterAdminTabsMixin, CanEditPropMixin, ListView): +class EticketListView(CounterAdminTabsMixin, IsCounterAdminMixin, ListView): """ A list view for the admins """ @@ -1052,7 +1059,7 @@ class EticketForm(forms.ModelForm): } product = AutoCompleteSelectField('products', show_help_text=False, label=_("Product"), required=True) -class EticketCreateView(CounterAdminTabsMixin, CanEditPropMixin, CreateView): +class EticketCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CreateView): """ Create an eticket """ @@ -1061,7 +1068,7 @@ class EticketCreateView(CounterAdminTabsMixin, CanEditPropMixin, CreateView): form_class = EticketForm current_tab = "etickets" -class EticketEditView(CounterAdminTabsMixin, CanEditPropMixin, UpdateView): +class EticketEditView(CounterAdminTabsMixin, IsCounterAdminMixin, UpdateView): """ Edit an eticket """ From 34f3fadd3df4eceb42be02969bb272ceafee8c7b Mon Sep 17 00:00:00 2001 From: klmp200 Date: Tue, 4 Apr 2017 15:45:02 +0200 Subject: [PATCH 5/5] Rename counter mixin --- counter/views.py | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/counter/views.py b/counter/views.py index e09fa75a..59ace361 100644 --- a/counter/views.py +++ b/counter/views.py @@ -29,7 +29,7 @@ from counter.models import Counter, Customer, Product, Selling, Refilling, Produ CashRegisterSummary, CashRegisterSummaryItem, Eticket, Permanency from accounting.models import CurrencyField -class IsCounterAdminMixin(View): +class CounterAdminMixin(View): """ This view is made to protect counter admin section """ @@ -50,7 +50,7 @@ class IsCounterAdminMixin(View): def dispatch(self, request, *args, **kwargs): - res = super(IsCounterAdminMixin, self).dispatch(request, *args, **kwargs) + res = super(CounterAdminMixin, self).dispatch(request, *args, **kwargs) if not (request.user.is_root or self._test_group(request.user) or self._test_club(request.user)): raise PermissionDenied @@ -535,7 +535,7 @@ class CounterEditForm(forms.ModelForm): sellers = make_ajax_field(Counter, 'sellers', 'users', help_text="") products = make_ajax_field(Counter, 'products', 'products', help_text="") -class CounterEditView(CounterAdminTabsMixin, IsCounterAdminMixin, UpdateView): +class CounterEditView(CounterAdminTabsMixin, CounterAdminMixin, UpdateView): """ Edit a counter's main informations (for the counter's manager) """ @@ -553,7 +553,7 @@ class CounterEditView(CounterAdminTabsMixin, IsCounterAdminMixin, UpdateView): def get_success_url(self): return reverse_lazy('counter:admin', kwargs={'counter_id': self.object.id}) -class CounterEditPropView(CounterAdminTabsMixin, IsCounterAdminMixin, UpdateView): +class CounterEditPropView(CounterAdminTabsMixin, CounterAdminMixin, UpdateView): """ Edit a counter's main informations (for the counter's admin) """ @@ -563,7 +563,7 @@ class CounterEditPropView(CounterAdminTabsMixin, IsCounterAdminMixin, UpdateView template_name = 'core/edit.jinja' current_tab = "counters" -class CounterCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CreateView): +class CounterCreateView(CounterAdminTabsMixin, CounterAdminMixin, CreateView): """ Create a counter (for the admins) """ @@ -573,7 +573,7 @@ class CounterCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CreateView): template_name = 'core/create.jinja' current_tab = "counters" -class CounterDeleteView(CounterAdminTabsMixin, IsCounterAdminMixin, DeleteView): +class CounterDeleteView(CounterAdminTabsMixin, CounterAdminMixin, DeleteView): """ Delete a counter (for the admins) """ @@ -585,7 +585,7 @@ class CounterDeleteView(CounterAdminTabsMixin, IsCounterAdminMixin, DeleteView): # Product management -class ProductTypeListView(CounterAdminTabsMixin, IsCounterAdminMixin, ListView): +class ProductTypeListView(CounterAdminTabsMixin, CounterAdminMixin, ListView): """ A list view for the admins """ @@ -593,7 +593,7 @@ class ProductTypeListView(CounterAdminTabsMixin, IsCounterAdminMixin, ListView): template_name = 'counter/producttype_list.jinja' current_tab = "product_types" -class ProductTypeCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CreateView): +class ProductTypeCreateView(CounterAdminTabsMixin, CounterAdminMixin, CreateView): """ A create view for the admins """ @@ -602,7 +602,7 @@ class ProductTypeCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CreateVi template_name = 'core/create.jinja' current_tab = "products" -class ProductTypeEditView(CounterAdminTabsMixin, IsCounterAdminMixin, UpdateView): +class ProductTypeEditView(CounterAdminTabsMixin, CounterAdminMixin, UpdateView): """ An edit view for the admins """ @@ -612,7 +612,7 @@ class ProductTypeEditView(CounterAdminTabsMixin, IsCounterAdminMixin, UpdateView pk_url_kwarg = "type_id" current_tab = "products" -class ProductArchivedListView(CounterAdminTabsMixin, IsCounterAdminMixin, ListView): +class ProductArchivedListView(CounterAdminTabsMixin, CounterAdminMixin, ListView): """ A list view for the admins """ @@ -622,7 +622,7 @@ class ProductArchivedListView(CounterAdminTabsMixin, IsCounterAdminMixin, ListVi ordering = ['name'] current_tab = "archive" -class ProductListView(CounterAdminTabsMixin, IsCounterAdminMixin, ListView): +class ProductListView(CounterAdminTabsMixin, CounterAdminMixin, ListView): """ A list view for the admins """ @@ -660,7 +660,7 @@ class ProductEditForm(forms.ModelForm): c.save() return ret -class ProductCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CreateView): +class ProductCreateView(CounterAdminTabsMixin, CounterAdminMixin, CreateView): """ A create view for the admins """ @@ -669,7 +669,7 @@ class ProductCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CreateView): template_name = 'core/create.jinja' current_tab = "products" -class ProductEditView(CounterAdminTabsMixin, IsCounterAdminMixin, UpdateView): +class ProductEditView(CounterAdminTabsMixin, CounterAdminMixin, UpdateView): """ An edit view for the admins """ @@ -899,7 +899,7 @@ class CounterActivityView(DetailView): pk_url_kwarg = "counter_id" template_name = 'counter/activity.jinja' -class CounterStatView(DetailView, IsCounterAdminMixin): +class CounterStatView(DetailView, CounterAdminMixin): """ Show the bar stats """ @@ -961,7 +961,7 @@ class CounterStatView(DetailView, IsCounterAdminMixin): return super(CanEditMixin, self).dispatch(request, *args, **kwargs) raise PermissionDenied -class CashSummaryEditView(CounterAdminTabsMixin, IsCounterAdminMixin, UpdateView): +class CashSummaryEditView(CounterAdminTabsMixin, CounterAdminMixin, UpdateView): """Edit cash summaries""" model = CashRegisterSummary template_name = 'counter/cash_register_summary.jinja' @@ -977,7 +977,7 @@ class CashSummaryFormBase(forms.Form): begin_date = forms.DateTimeField(['%Y-%m-%d %H:%M:%S'], label=_("Begin date"), required=False, widget=SelectDateTime) end_date = forms.DateTimeField(['%Y-%m-%d %H:%M:%S'], label=_("End date"), required=False, widget=SelectDateTime) -class CashSummaryListView(CounterAdminTabsMixin, IsCounterAdminMixin, ListView): +class CashSummaryListView(CounterAdminTabsMixin, CounterAdminMixin, ListView): """Display a list of cash summaries""" model = CashRegisterSummary template_name = 'counter/cash_summary_list.jinja' @@ -1014,7 +1014,7 @@ class CashSummaryListView(CounterAdminTabsMixin, IsCounterAdminMixin, ListView): kwargs['refilling_sums'][c.name] = sum([s.amount for s in refillings.all()]) return kwargs -class InvoiceCallView(CounterAdminTabsMixin, IsCounterAdminMixin, TemplateView): +class InvoiceCallView(CounterAdminTabsMixin, CounterAdminMixin, TemplateView): template_name = 'counter/invoices_call.jinja' current_tab = 'invoices_call' @@ -1041,7 +1041,7 @@ class InvoiceCallView(CounterAdminTabsMixin, IsCounterAdminMixin, TemplateView): )).exclude(selling_sum=None).order_by('-selling_sum') return kwargs -class EticketListView(CounterAdminTabsMixin, IsCounterAdminMixin, ListView): +class EticketListView(CounterAdminTabsMixin, CounterAdminMixin, ListView): """ A list view for the admins """ @@ -1059,7 +1059,7 @@ class EticketForm(forms.ModelForm): } product = AutoCompleteSelectField('products', show_help_text=False, label=_("Product"), required=True) -class EticketCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CreateView): +class EticketCreateView(CounterAdminTabsMixin, CounterAdminMixin, CreateView): """ Create an eticket """ @@ -1068,7 +1068,7 @@ class EticketCreateView(CounterAdminTabsMixin, IsCounterAdminMixin, CreateView): form_class = EticketForm current_tab = "etickets" -class EticketEditView(CounterAdminTabsMixin, IsCounterAdminMixin, UpdateView): +class EticketEditView(CounterAdminTabsMixin, CounterAdminMixin, UpdateView): """ Edit an eticket """