Skip to content

Commit

Permalink
Merge pull request #424 from akatsoulas/event-archive
Browse files Browse the repository at this point in the history
Event archive
  • Loading branch information
akatsoulas authored Jan 9, 2024
2 parents df001c0 + 54e5096 commit a0819c6
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 2 deletions.
2 changes: 2 additions & 0 deletions moderator/moderate/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -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):
"""
Expand Down Expand Up @@ -132,6 +133,7 @@ class Meta:
"body",
"is_moderated",
"moderators",
"archived",
"users_can_vote",
]
widgets = (
Expand Down
14 changes: 14 additions & 0 deletions moderator/moderate/templates/archive.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,20 @@
<span class="questions-counter"> {{ event.questions.count() }} questions asked</span>
</a>
</div>
{% if event.created_by == request.user or request.user in event.moderators.all() %}
<div>
<div class="edit-container">
<a href="{{ url('edit_event', slug=event.slug) }}"
class="btn btn-primary btn-sm">edit</a>
</div>
{% if event.created_by == request.user %}
<div class="delete-container">
<a href="{{ url('delete_event', slug=event.slug) }}"
class="btn btn-danger btn-sm">delete</a>
</div>
{% endif %}
</div>
{% endif %}
</div>
{% endfor %}

Expand Down
10 changes: 9 additions & 1 deletion moderator/moderate/templates/create_event.jinja
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
</label>
</div>
{% endif %}
{% if user.is_superuser %}
{% if user_can_edit %}
<div class="checkbox-moderated">
{{ event_form.users_can_vote }}
<label for="{{ event_form.users_can_vote.id_for_label }}">
Expand All @@ -76,6 +76,14 @@
Is this a moderated event?
</label>
</div>
{% if event %}
<div class="checkbox-moderated">
{{ event_form.archived }}
<label for="{{ event_form.archived.id_for_label }}">
Should this event be archived?
</label>
</div>
{% endif %}
<div>
{{ event_form.moderators.label_tag() }}
{{ event_form.moderators }}
Expand Down
9 changes: 8 additions & 1 deletion moderator/moderate/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")

Expand All @@ -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():
Expand All @@ -102,13 +106,16 @@ 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 = {
"slug": event.slug if event else None,
"event_form": event_form,
"event": event,
"profile": user.userprofile,
"user_can_edit": user_can_edit,
}

return render(request, "create_event.jinja", ctx)
Expand Down

0 comments on commit a0819c6

Please sign in to comment.