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 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