diff --git a/moderator/moderate/forms.py b/moderator/moderate/forms.py
index 96ff1f5..35d7b92 100644
--- a/moderator/moderate/forms.py
+++ b/moderator/moderate/forms.py
@@ -98,6 +98,7 @@ def __init__(self, *args, **kwargs):
self.fields["name"].required = True
else:
self.fields["moderators"].initial = User.objects.filter(id=self.user.pk)
+ del self.fields["archived"]
def clean(self):
"""
@@ -132,6 +133,7 @@ class Meta:
"body",
"is_moderated",
"moderators",
+ "archived",
"users_can_vote",
]
widgets = (
diff --git a/moderator/moderate/templates/archive.jinja b/moderator/moderate/templates/archive.jinja
index a4ebf09..9f7a282 100644
--- a/moderator/moderate/templates/archive.jinja
+++ b/moderator/moderate/templates/archive.jinja
@@ -16,6 +16,20 @@
{{ event.questions.count() }} questions asked
+ {% if event.created_by == request.user or request.user in event.moderators.all() %}
+
+
+ {% if event.created_by == request.user %}
+
+ {% endif %}
+
+ {% endif %}
{% endfor %}
diff --git a/moderator/moderate/templates/create_event.jinja b/moderator/moderate/templates/create_event.jinja
index 025911a..4e73876 100644
--- a/moderator/moderate/templates/create_event.jinja
+++ b/moderator/moderate/templates/create_event.jinja
@@ -63,7 +63,7 @@
{% endif %}
- {% if user.is_superuser %}
+ {% if user_can_edit %}
{{ event_form.users_can_vote }}
+ {% if event %}
+
+ {{ event_form.archived }}
+
+
+ {% endif %}
{{ event_form.moderators.label_tag() }}
{{ event_form.moderators }}
diff --git a/moderator/moderate/views.py b/moderator/moderate/views.py
index 40e5819..245bb91 100644
--- a/moderator/moderate/views.py
+++ b/moderator/moderate/views.py
@@ -64,7 +64,7 @@ def archive(request):
# Filter out NDA events for non-NDA users
if not request.user.userprofile.is_nda_member and not request.user.is_superuser:
q_args["is_nda"] = False
- events_list = Event.objects.filter(**q_args)
+ events_list = Event.objects.filter(**q_args).order_by("-created_at")
paginator = Paginator(events_list, settings.ITEMS_PER_PAGE)
page = request.GET.get("page")
@@ -83,11 +83,15 @@ def edit_event(request, slug=None):
"""Creates a new event."""
user = request.user
query_args = []
+ user_can_edit = False
if not user.is_superuser:
query_args = [Q(created_by=user) | Q(moderators=user)]
event = get_object_or_404(Event, *query_args, slug=slug) if slug else None
+ # if there is an event or no slug, the user can edit
+ if event or not slug:
+ user_can_edit = True
event_form = EventForm(request.POST or None, instance=event, user=user)
if event_form.is_valid():
@@ -102,6 +106,8 @@ def edit_event(request, slug=None):
else:
msg = "Event successfully created."
messages.success(request, msg)
+ if e.archived:
+ return redirect(reverse("archive"))
return redirect(reverse("main"))
ctx = {
@@ -109,6 +115,7 @@ def edit_event(request, slug=None):
"event_form": event_form,
"event": event,
"profile": user.userprofile,
+ "user_can_edit": user_can_edit,
}
return render(request, "create_event.jinja", ctx)