diff --git a/assets/src/bundles/add_forge/moderation-dashboard.js b/assets/src/bundles/add_forge/moderation-dashboard.js --- a/assets/src/bundles/add_forge/moderation-dashboard.js +++ b/assets/src/bundles/add_forge/moderation-dashboard.js @@ -48,8 +48,28 @@ { data: 'forge_url', name: 'forge_url', + render: function(data, type, row) { + if (type === 'display') { + let html = ''; + const sanitizedURL = $.fn.dataTable.render.text().display(data); + html += sanitizedURL; + html += ` ` + + ''; + return html; + } + return data; + } + }, + { + data: 'moderator', + name: 'moderator', render: $.fn.dataTable.render.text() }, + { + data: 'last_modified_date', + name: 'last_modified_date', + render: getHumanReadableDate + }, { data: 'status', name: 'status', diff --git a/swh/web/add_forge_now/views.py b/swh/web/add_forge_now/views.py --- a/swh/web/add_forge_now/views.py +++ b/swh/web/add_forge_now/views.py @@ -13,6 +13,7 @@ from django.shortcuts import render from swh.web.add_forge_now.models import Request as AddForgeRequest +from swh.web.add_forge_now.models import RequestHistory as AddForgeNowRequestHistory from swh.web.api.views.add_forge_now import ( AddForgeNowRequestPublicSerializer, AddForgeNowRequestSerializer, @@ -65,14 +66,26 @@ paginator = Paginator(add_forge_requests, per_page) page = paginator.page(page_num) - if has_add_forge_now_permission(request.user): requests = AddForgeNowRequestSerializer(page.object_list, many=True).data + for item in page.object_list: + history = AddForgeNowRequestHistory.objects.filter(request=item).order_by( + "id" + ) + for req in requests: + last_item = history[len(history) - 1] + if req["id"] == last_item.__dict__["request_id"]: + req["actor_role"] = last_item.__dict__["actor_role"] + if req["actor_role"] == "MODERATOR": + req["moderator"] = last_item.__dict__["actor"] + req["last_modified_date"] = last_item.__dict__["date"] + else: + req["moderator"] = "No action taken yet" + req["last_modified_date"] = req["submission_date"] + else: requests = AddForgeNowRequestPublicSerializer(page.object_list, many=True).data - - results = [dict(request) for request in requests] - + results = [dict(req) for req in requests] table_data["recordsFiltered"] = add_forge_requests.count() table_data["data"] = results return JsonResponse(table_data) diff --git a/swh/web/templates/add_forge_now/requests-moderation.html b/swh/web/templates/add_forge_now/requests-moderation.html --- a/swh/web/templates/add_forge_now/requests-moderation.html +++ b/swh/web/templates/add_forge_now/requests-moderation.html @@ -30,6 +30,8 @@ Submission date Forge type Forge URL + Moderator Name + Last Modified Date Status