aboutsummaryrefslogtreecommitdiff
path: root/administration/annoucements/views.py
blob: 4d7f25c4d8475f5e2c79398ab9aaea42cfe9ab1f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
from django.shortcuts import render
from django.contrib.auth.decorators import login_required, user_passes_test
from administration.annoucements.functions import (
    get_announcements,
    update_announcement,
    create_announcement,
)


@login_required
@user_passes_test(lambda u: u.is_superuser)
def home(request):
    title_map = {
        "en": "Announcements Manager",
        "ja": "アナウンスメントマネージャー",
    }
    request.meta.title = title_map.get(request.LANGUAGE_CODE)

    if request.method == "POST":
        mode = request.POST.get("mode")

        content = request.POST.get("content")
        is_new = request.POST.get("is_new") == "on"
        is_public = request.POST.get("is_public") == "on"

        if mode == "edit":
            announcement_id = request.POST.get("announcement_id")
            update_announcement(announcement_id, content, is_new, is_public)
        else:
            create_announcement(content, is_new, is_public, author=request.user)

    context = {
        "announcements": get_announcements(request.LANGUAGE_CODE),
    }

    return render(request, "administration/announcements.html", context)