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,
|
view_messages,
|
||||||
# Moderation
|
# Moderation
|
||||||
EventModerateView,
|
EventModerateView,
|
||||||
|
EventModerateBackView,
|
||||||
|
EventModerateForceView,
|
||||||
|
EventModerateNextView,
|
||||||
moderate_event_next,
|
moderate_event_next,
|
||||||
moderate_from_date,
|
moderate_from_date,
|
||||||
|
moderate_from_now,
|
||||||
# Organisations
|
# Organisations
|
||||||
OrganisationCreateView,
|
OrganisationCreateView,
|
||||||
OrganisationDeleteView,
|
OrganisationDeleteView,
|
||||||
@ -368,7 +372,7 @@ urlpatterns = [
|
|||||||
),
|
),
|
||||||
path("messages", view_messages, name="messages"),
|
path("messages", view_messages, name="messages"),
|
||||||
# Moderation
|
# Moderation
|
||||||
path("moderate", EventModerateView.as_view(), name="moderate"),
|
path("moderate", moderate_from_now, name="moderate"),
|
||||||
path(
|
path(
|
||||||
"event/<int:pk>/moderate",
|
"event/<int:pk>/moderate",
|
||||||
EventModerateView.as_view(),
|
EventModerateView.as_view(),
|
||||||
@ -376,17 +380,17 @@ urlpatterns = [
|
|||||||
),
|
),
|
||||||
path(
|
path(
|
||||||
"event/<int:pk>/moderate-force",
|
"event/<int:pk>/moderate-force",
|
||||||
EventModerateView.as_view(),
|
EventModerateForceView.as_view(),
|
||||||
name="moderate_event_force",
|
name="moderate_event_force",
|
||||||
),
|
),
|
||||||
path(
|
path(
|
||||||
"event/<int:pk>/moderate/after/<int:pred>",
|
"event/<int:pk>/moderate/after/<int:pred>",
|
||||||
EventModerateView.as_view(),
|
EventModerateNextView.as_view(),
|
||||||
name="moderate_event_step",
|
name="moderate_event_step",
|
||||||
),
|
),
|
||||||
path(
|
path(
|
||||||
"event/<int:pk>/moderate/back/<int:pred>",
|
"event/<int:pk>/moderate/back/<int:pred>",
|
||||||
EventModerateView.as_view(),
|
EventModerateBackView.as_view(),
|
||||||
name="moderate_event_backstep",
|
name="moderate_event_backstep",
|
||||||
),
|
),
|
||||||
path(
|
path(
|
||||||
|
@ -46,21 +46,6 @@ class EventModerateView(
|
|||||||
+ txt
|
+ 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):
|
def get_next_event(start_day, start_time, opk):
|
||||||
# select non moderated events
|
# select non moderated events
|
||||||
qs = Event.objects.filter(moderated_date__isnull=True)
|
qs = Event.objects.filter(moderated_date__isnull=True)
|
||||||
@ -92,25 +77,10 @@ class EventModerateView(
|
|||||||
|
|
||||||
return qs.first()
|
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):
|
def get_object(self, queryset=None):
|
||||||
if self.is_starting_moderation():
|
event = super().get_object(queryset)
|
||||||
now = datetime.now()
|
|
||||||
event = EventModerateView.get_next_event(now.date(), now.time(), None)
|
|
||||||
else:
|
|
||||||
event = super().get_object(queryset)
|
|
||||||
if event.status == Event.STATUS.DRAFT:
|
if event.status == Event.STATUS.DRAFT:
|
||||||
event.status = Event.STATUS.PUBLISHED
|
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
|
return event
|
||||||
|
|
||||||
def post(self, request, *args, **kwargs):
|
def post(self, request, *args, **kwargs):
|
||||||
@ -137,6 +107,35 @@ class EventModerateView(
|
|||||||
return self.object.get_absolute_url()
|
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/")
|
@login_required(login_url="/accounts/login/")
|
||||||
@permission_required("agenda_culturel.change_event")
|
@permission_required("agenda_culturel.change_event")
|
||||||
def moderate_event_next(request, pk):
|
def moderate_event_next(request, pk):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user