From 24fdfd345cf498f2ee98eeabfd66a8a088ec4056 Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Wed, 9 Jan 2019 17:50:15 +0100
Subject: [PATCH] Display policy data in account/domain tables

---
 api/funkwhale_api/manage/views.py                        | 4 ++++
 front/src/components/manage/moderation/AccountsTable.vue | 6 +++++-
 front/src/components/manage/moderation/DomainsTable.vue  | 4 ++++
 3 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/api/funkwhale_api/manage/views.py b/api/funkwhale_api/manage/views.py
index d460cf91..e42915eb 100644
--- a/api/funkwhale_api/manage/views.py
+++ b/api/funkwhale_api/manage/views.py
@@ -109,6 +109,7 @@ class ManageDomainViewSet(
         federation_models.Domain.objects.external()
         .with_actors_count()
         .with_outbox_activities_count()
+        .prefetch_related("instance_policy")
         .order_by("name")
     )
     serializer_class = serializers.ManageDomainSerializer
@@ -121,6 +122,7 @@ class ManageDomainViewSet(
         "nodeinfo_fetch_date",
         "actors_count",
         "outbox_activities_count",
+        "instance_policy",
     ]
 
     @detail_route(methods=["get"])
@@ -147,6 +149,7 @@ class ManageActorViewSet(
         .with_uploads_count()
         .order_by("-creation_date")
         .select_related("user")
+        .prefetch_related("instance_policy")
     )
     serializer_class = serializers.ManageActorSerializer
     filter_class = filters.ManageActorFilterSet
@@ -161,6 +164,7 @@ class ManageActorViewSet(
         "last_fetch_date",
         "uploads_count",
         "outbox_activities_count",
+        "instance_policy",
     ]
 
     def get_object(self):
diff --git a/front/src/components/manage/moderation/AccountsTable.vue b/front/src/components/manage/moderation/AccountsTable.vue
index a0bf5416..d8050ecb 100644
--- a/front/src/components/manage/moderation/AccountsTable.vue
+++ b/front/src/components/manage/moderation/AccountsTable.vue
@@ -34,6 +34,7 @@
         @action-launched="fetchData"
         :objects-data="result"
         :actions="actions"
+        action-url="manage/accounts/action/"
         :filters="actionFilters">
         <template slot="header-cells">
           <th><translate>Name</translate></th>
@@ -41,6 +42,7 @@
           <th><translate>Uploads</translate></th>
           <th><translate>First seen</translate></th>
           <th><translate>Last seen</translate></th>
+          <th><translate>Under moderation rule</translate></th>
         </template>
         <template slot="row-cells" slot-scope="scope">
           <td>
@@ -67,6 +69,9 @@
           <td>
             <human-date v-if="scope.obj.last_fetch_date" :date="scope.obj.last_fetch_date"></human-date>
           </td>
+          <td>
+            <span v-if="scope.obj.instance_policy"><i class="shield icon"></i> <translate>Yes</translate></span>
+          </td>
         </template>
       </action-table>
     </div>
@@ -78,7 +83,6 @@
         :current="page"
         :paginate-by="paginateBy"
         :total="result.count"
-        action-url="manage/accounts/action/"
         ></pagination>
 
       <span v-if="result && result.results.length > 0">
diff --git a/front/src/components/manage/moderation/DomainsTable.vue b/front/src/components/manage/moderation/DomainsTable.vue
index 7b9a1c02..835b04db 100644
--- a/front/src/components/manage/moderation/DomainsTable.vue
+++ b/front/src/components/manage/moderation/DomainsTable.vue
@@ -40,6 +40,7 @@
           <th><translate>Users</translate></th>
           <th><translate>Received messages</translate></th>
           <th><translate>First seen</translate></th>
+          <th><translate>Under moderation rule</translate></th>
         </template>
         <template slot="row-cells" slot-scope="scope">
           <td>
@@ -54,6 +55,9 @@
           <td>
             <human-date :date="scope.obj.creation_date"></human-date>
           </td>
+          <td>
+            <span v-if="scope.obj.instance_policy"><i class="shield icon"></i> <translate>Yes</translate></span>
+          </td>
         </template>
       </action-table>
     </div>
-- 
GitLab