Clarification des fonctionnements de la modération
This commit is contained in:
parent
77c94644d5
commit
dbf059fd23
@ -88,8 +88,12 @@ from .views import (
|
||||
view_messages,
|
||||
# Moderation
|
||||
EventModerateView,
|
||||
EventModerateBackView,
|
||||
EventModerateForceView,
|
||||
EventModerateNextView,
|
||||
moderate_event_next,
|
||||
moderate_from_date,
|
||||
moderate_from_now,
|
||||
# Organisations
|
||||
OrganisationCreateView,
|
||||
OrganisationDeleteView,
|
||||
@ -368,7 +372,7 @@ urlpatterns = [
|
||||
),
|
||||
path("messages", view_messages, name="messages"),
|
||||
# Moderation
|
||||
path("moderate", EventModerateView.as_view(), name="moderate"),
|
||||
path("moderate", moderate_from_now, name="moderate"),
|
||||
path(
|
||||
"event/<int:pk>/moderate",
|
||||
EventModerateView.as_view(),
|
||||
@ -376,17 +380,17 @@ urlpatterns = [
|
||||
),
|
||||
path(
|
||||
"event/<int:pk>/moderate-force",
|
||||
EventModerateView.as_view(),
|
||||
EventModerateForceView.as_view(),
|
||||
name="moderate_event_force",
|
||||
),
|
||||
path(
|
||||
"event/<int:pk>/moderate/after/<int:pred>",
|
||||
EventModerateView.as_view(),
|
||||
EventModerateNextView.as_view(),
|
||||
name="moderate_event_step",
|
||||
),
|
||||
path(
|
||||
"event/<int:pk>/moderate/back/<int:pred>",
|
||||
EventModerateView.as_view(),
|
||||
EventModerateBackView.as_view(),
|
||||
name="moderate_event_backstep",
|
||||
),
|
||||
path(
|
||||
|
@ -46,21 +46,6 @@ class EventModerateView(
|
||||
+ txt
|
||||
)
|
||||
|
||||
def is_moderate_next(self):
|
||||
return "after" in self.request.path.split("/")
|
||||
|
||||
def is_moderate_back(self):
|
||||
return "back" in self.request.path.split("/")
|
||||
|
||||
def is_moderate_force(self):
|
||||
return "moderate-force" in self.request.path.split("/")
|
||||
|
||||
def is_starting_moderation(self):
|
||||
return "pk" not in self.kwargs
|
||||
|
||||
def is_moderation_from_date(self):
|
||||
return "m" in self.kwargs and "y" in self.kwargs and "d" in self.kwargs
|
||||
|
||||
def get_next_event(start_day, start_time, opk):
|
||||
# select non moderated events
|
||||
qs = Event.objects.filter(moderated_date__isnull=True)
|
||||
@ -92,25 +77,10 @@ class EventModerateView(
|
||||
|
||||
return qs.first()
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
if self.is_moderate_next():
|
||||
context["pred"] = self.kwargs["pred"]
|
||||
return context
|
||||
|
||||
def get_object(self, queryset=None):
|
||||
if self.is_starting_moderation():
|
||||
now = datetime.now()
|
||||
event = EventModerateView.get_next_event(now.date(), now.time(), None)
|
||||
else:
|
||||
event = super().get_object(queryset)
|
||||
event = super().get_object(queryset)
|
||||
if event.status == Event.STATUS.DRAFT:
|
||||
event.status = Event.STATUS.PUBLISHED
|
||||
if self.is_moderate_back():
|
||||
pred = Event.objects.filter(pk=self.kwargs["pred"]).first()
|
||||
pred.free_modification_lock(self.request.user)
|
||||
if self.is_moderate_force():
|
||||
event.free_modification_lock(self.request.user, False)
|
||||
return event
|
||||
|
||||
def post(self, request, *args, **kwargs):
|
||||
@ -137,6 +107,35 @@ class EventModerateView(
|
||||
return self.object.get_absolute_url()
|
||||
|
||||
|
||||
class EventModerateNextView(EventModerateView):
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context["pred"] = self.kwargs["pred"]
|
||||
return context
|
||||
|
||||
|
||||
class EventModerateBackView(EventModerateView):
|
||||
def get_object(self, queryset=None):
|
||||
pred = Event.objects.filter(pk=self.kwargs["pred"]).first()
|
||||
pred.free_modification_lock(self.request.user)
|
||||
return super().get_object(queryset)
|
||||
|
||||
|
||||
class EventModerateForceView(EventModerateView):
|
||||
def get_object(self, queryset=None):
|
||||
event = super().get_object(queryset)
|
||||
event.free_modification_lock(self.request.user, False)
|
||||
return super().get_object(queryset)
|
||||
|
||||
|
||||
@login_required(login_url="/accounts/login/")
|
||||
@permission_required("agenda_culturel.change_event")
|
||||
def moderate_from_now(request):
|
||||
now = datetime.now()
|
||||
obj = EventModerateView.get_next_event(now.date(), now.time(), None)
|
||||
return HttpResponseRedirect(reverse_lazy("moderate_event", args=[obj.pk]))
|
||||
|
||||
|
||||
@login_required(login_url="/accounts/login/")
|
||||
@permission_required("agenda_culturel.change_event")
|
||||
def moderate_event_next(request, pk):
|
||||
|
Loading…
x
Reference in New Issue
Block a user