Changeset View
Changeset View
Standalone View
Standalone View
swh/web/add_forge_now/views.py
# Copyright (C) 2022 The Software Heritage developers | # Copyright (C) 2022 The Software Heritage developers | ||||
# See the AUTHORS file at the top-level directory of this distribution | # See the AUTHORS file at the top-level directory of this distribution | ||||
# License: GNU Affero General Public License version 3, or any later version | # License: GNU Affero General Public License version 3, or any later version | ||||
# See top-level LICENSE file for more information | # See top-level LICENSE file for more information | ||||
from typing import Any, Dict | from typing import Any, Dict, List | ||||
from django.conf.urls import url | from django.conf.urls import url | ||||
from django.core.paginator import Paginator | from django.core.paginator import Paginator | ||||
from django.db.models import Q | from django.db.models import Q | ||||
from django.http.request import HttpRequest | from django.http.request import HttpRequest | ||||
from django.http.response import HttpResponse, JsonResponse | from django.http.response import HttpResponse, JsonResponse | ||||
from django.shortcuts import render | |||||
from swh.web.add_forge_now.models import Request as AddForgeRequest | |||||
from swh.web.api.views.add_forge_now import ( | from swh.web.api.views.add_forge_now import ( | ||||
AddForgeNowRequestPublicSerializer, | AddForgeNowRequestPublicSerializer, | ||||
AddForgeNowRequestSerializer, | AddForgeNowRequestSerializer, | ||||
) | ) | ||||
from swh.web.auth.utils import ADD_FORGE_MODERATOR_PERMISSION | from swh.web.auth.utils import ADD_FORGE_MODERATOR_PERMISSION | ||||
from .models import Request as AddForgeRequest | |||||
def add_forge_request_list_datatables(request: HttpRequest) -> HttpResponse: | def add_forge_request_list_datatables(request: HttpRequest) -> HttpResponse: | ||||
"""Dedicated endpoint used by datatables to display the add-forge | """Dedicated endpoint used by datatables to display the add-forge | ||||
requests in the Web UI. | requests in the Web UI. | ||||
""" | """ | ||||
draw = int(request.GET.get("draw", 0)) | draw = int(request.GET.get("draw", 0)) | ||||
▲ Show 20 Lines • Show All 43 Lines • ▼ Show 20 Lines | def add_forge_request_list_datatables(request: HttpRequest) -> HttpResponse: | ||||
results = [dict(request) for request in requests] | results = [dict(request) for request in requests] | ||||
table_data["recordsFiltered"] = add_forge_requests.count() | table_data["recordsFiltered"] = add_forge_requests.count() | ||||
table_data["data"] = results | table_data["data"] = results | ||||
return JsonResponse(table_data) | return JsonResponse(table_data) | ||||
FORGE_TYPES: List[str] = [ | |||||
"bitbucket", | |||||
"cgit", | |||||
"gitlab", | |||||
"gitea", | |||||
"heptapod", | |||||
] | |||||
def create_request(request): | |||||
"""View to create a new 'add_forge_now' request. | |||||
""" | |||||
return render( | |||||
request, "add_forge_now/create-request.html", {"forge_types": FORGE_TYPES}, | |||||
) | |||||
urlpatterns = [ | urlpatterns = [ | ||||
url( | url( | ||||
r"^add-forge/request/list/datatables$", | r"^add-forge/request/list/datatables$", | ||||
add_forge_request_list_datatables, | add_forge_request_list_datatables, | ||||
name="add-forge-request-list-datatables", | name="add-forge-request-list-datatables", | ||||
), | ), | ||||
anlambert: You can remove the trailing slash here. | |||||
url(r"^add-forge/request/create$", create_request, name="forge-add"), | |||||
] | ] |
You can remove the trailing slash here.