Update web/core/views.py
This commit is contained in:
parent
11911edeee
commit
28009ce6ae
@ -960,3 +960,43 @@ def delete_all_entries(request):
|
|||||||
return redirect("settings_home")
|
return redirect("settings_home")
|
||||||
|
|
||||||
return render(request, "settings/delete_all_confirm.html", {})
|
return render(request, "settings/delete_all_confirm.html", {})
|
||||||
|
|
||||||
|
# ----- Release announcements (superuser tools + dismiss) -----
|
||||||
|
from django.contrib.auth.decorators import login_required, user_passes_test
|
||||||
|
from django.views.decorators.http import require_POST
|
||||||
|
from django.http import JsonResponse, HttpResponseBadRequest
|
||||||
|
from .forms import AnnouncementForm
|
||||||
|
from .models_ann import Announcement, AnnouncementDismissal
|
||||||
|
|
||||||
|
is_superuser = user_passes_test(lambda u: u.is_superuser)
|
||||||
|
|
||||||
|
@is_superuser
|
||||||
|
@login_required
|
||||||
|
def announcement_tools(request):
|
||||||
|
"""
|
||||||
|
Superuser-only: publish an announcement. Users will see it once on next search page load.
|
||||||
|
"""
|
||||||
|
if request.method == "POST":
|
||||||
|
form = AnnouncementForm(request.POST)
|
||||||
|
if form.is_valid():
|
||||||
|
ann = form.save(commit=False)
|
||||||
|
ann.created_by = request.user
|
||||||
|
ann.save()
|
||||||
|
messages.success(request, "Announcement published.")
|
||||||
|
return redirect("settings_home")
|
||||||
|
else:
|
||||||
|
form = AnnouncementForm()
|
||||||
|
|
||||||
|
recent = Announcement.objects.order_by("-created_at")[:25]
|
||||||
|
return render(request, "settings/home.html", {
|
||||||
|
"announcement_form": form,
|
||||||
|
"announcements_recent": recent,
|
||||||
|
# Keep the rest of your settings page content intact; template guards will show this block
|
||||||
|
})
|
||||||
|
|
||||||
|
@login_required
|
||||||
|
@require_POST
|
||||||
|
def dismiss_announcement(request, pk):
|
||||||
|
ann = get_object_or_404(Announcement, pk=pk)
|
||||||
|
AnnouncementDismissal.objects.get_or_create(user=request.user, announcement=ann)
|
||||||
|
return JsonResponse({"ok": True})
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user