Source code for swh.web.add_forge_now.admin_views

# Copyright (C) 2022-2026  The Software Heritage developers
# See the AUTHORS file at the top-level directory of this distribution
# License: GNU Affero General Public License version 3, or any later version
# See top-level LICENSE file for more information

from __future__ import annotations

from typing import TYPE_CHECKING

from django.conf import settings
from django.contrib.auth.decorators import user_passes_test
from django.shortcuts import render

from swh.web.add_forge_now.models import RequestStatus
from swh.web.auth.utils import (
    ADD_FORGE_NOW_CHANGE_REQUEST_PERMISSION,
    ADD_FORGE_NOW_VIEW_REQUEST_PERMISSION,
    is_add_forge_now_moderator,
)
from swh.web.utils import reverse

if TYPE_CHECKING:
    from django.http.request import HttpRequest
    from django.http.response import HttpResponse


[docs] @user_passes_test(is_add_forge_now_moderator) def add_forge_now_requests_moderation_dashboard(request: HttpRequest) -> HttpResponse: """Moderation dashboard to allow listing current requests.""" return render( request, "add-forge-requests-moderation.html", {"heading": "Add forge now requests moderation"}, )
[docs] @user_passes_test(is_add_forge_now_moderator) def add_forge_now_request_dashboard( request: HttpRequest, request_id: int ) -> HttpResponse: """Moderation dashboard to allow listing current requests.""" request_edit_url = "" if "swh.web.admin" in settings.SWH_DJANGO_APPS and request.user.has_perms( ( ADD_FORGE_NOW_VIEW_REQUEST_PERMISSION, ADD_FORGE_NOW_CHANGE_REQUEST_PERMISSION, ) ): request_edit_url = reverse( "admin:swh_web_add_forge_now_request_change", url_args={"object_id": request_id}, ) return render( request, "add-forge-request-dashboard.html", { "request_id": request_id, "heading": "Add forge now request dashboard", "next_statuses_for": RequestStatus.next_statuses_str(), "request_edit_url": request_edit_url, }, )