diff --git a/la_chariotte/order/views/grouped_order.py b/la_chariotte/order/views/grouped_order.py index 094358d..4457f09 100644 --- a/la_chariotte/order/views/grouped_order.py +++ b/la_chariotte/order/views/grouped_order.py @@ -13,7 +13,7 @@ from icalendar import Calendar, Event, vCalAddress, vText from ..forms import GroupedOrderForm, Item, JoinGroupedOrderForm from ..models import GroupedOrder, OrderAuthor -from .helpers import UserCanAccessGroupedOrderOverviewMixin +from .mixins import UserIsOrgaMixin class IndexView(LoginRequiredMixin, generic.ListView): @@ -128,7 +128,7 @@ class GroupedOrderDetailView(generic.DetailView): return context -class GroupedOrderOverview(UserCanAccessGroupedOrderOverviewMixin, generic.DetailView): +class GroupedOrderOverview(UserIsOrgaMixin, generic.DetailView): model = GroupedOrder template_name = "order/grouped_order_overview.html" context_object_name = "grouped_order" @@ -137,7 +137,7 @@ class GroupedOrderOverview(UserCanAccessGroupedOrderOverviewMixin, generic.Detai return get_object_or_404(GroupedOrder, code=self.kwargs.get("code")) def test_func(self): - # Access for grouped order manager, superuser, and staff (staff can see but not edit grouped orders) + # Staff can see but not edit grouped orders return super().test_func() or self.request.user.is_staff def get(self, request, *args, **kwargs): @@ -176,9 +176,7 @@ class GroupedOrderCreateView(LoginRequiredMixin, generic.CreateView): return super().form_valid(form) -class GroupedOrderUpdateView( - UserCanAccessGroupedOrderOverviewMixin, generic.UpdateView -): +class GroupedOrderUpdateView(UserIsOrgaMixin, generic.UpdateView): model = GroupedOrder template_name = "order/grouped_order_update.html" context_object_name = "grouped_order" @@ -193,9 +191,7 @@ class GroupedOrderUpdateView( return kwargs -class GroupedOrderDuplicateView( - UserCanAccessGroupedOrderOverviewMixin, generic.RedirectView -): +class GroupedOrderDuplicateView(UserIsOrgaMixin, generic.RedirectView): def get_object(self, queryset=None): return get_object_or_404(GroupedOrder, code=self.kwargs.get("code")) @@ -235,9 +231,7 @@ class GroupedOrderDuplicateView( ) -class GroupedOrderDeleteView( - UserCanAccessGroupedOrderOverviewMixin, generic.DeleteView -): +class GroupedOrderDeleteView(UserIsOrgaMixin, generic.DeleteView): model = GroupedOrder template_name = "order/grouped_order_confirm_delete.html" context_object_name = "grouped_order" @@ -279,9 +273,7 @@ class GroupedOrderAddItemsView(UserPassesTestMixin, generic.ListView): return grouped_order.orga == self.request.user -class GroupedOrderExportView( - UserCanAccessGroupedOrderOverviewMixin, generic.DetailView -): +class GroupedOrderExportView(UserIsOrgaMixin, generic.DetailView): model = GroupedOrder template_name = "order/grouped_order_sheet.html" context_object_name = "grouped_order" diff --git a/la_chariotte/order/views/helpers.py b/la_chariotte/order/views/mixins.py similarity index 81% rename from la_chariotte/order/views/helpers.py rename to la_chariotte/order/views/mixins.py index 781a6a1..7915956 100644 --- a/la_chariotte/order/views/helpers.py +++ b/la_chariotte/order/views/mixins.py @@ -1,7 +1,7 @@ from django.contrib.auth.mixins import UserPassesTestMixin -class UserCanAccessGroupedOrderOverviewMixin(UserPassesTestMixin): +class UserIsOrgaMixin(UserPassesTestMixin): """ The view is accessible only if the request user is orga or superuser """ diff --git a/la_chariotte/tests/test_order_views_grouped_order.py b/la_chariotte/tests/test_order_views_grouped_order.py index ef1d247..4eaa729 100644 --- a/la_chariotte/tests/test_order_views_grouped_order.py +++ b/la_chariotte/tests/test_order_views_grouped_order.py @@ -735,7 +735,7 @@ class TestGroupedOrderOverview: response = client_log.get(orga_view_url) assert response.status_code == 403 - def test_user_superuser_ok(self, other_user, admin_client): + def test_superuser_can_access_overview(self, other_user, admin_client): """ A superuser that is not orga can get the GroupedOrderOverview """