diff --git a/arches_lingo/serializers.py b/arches_lingo/serializers.py
index d8078f90..c2afb733 100644
--- a/arches_lingo/serializers.py
+++ b/arches_lingo/serializers.py
@@ -72,3 +72,19 @@ class Meta:
graph_slug = "concept"
nodegroups = "__all__"
fields = "__all__"
+
+
+class PersonRdmSystemSerializer(ArchesModelSerializer):
+ class Meta:
+ model = ResourceInstance
+ graph_slug = "person"
+ nodegroups = "__all__"
+ fields = "__all__"
+
+
+class GroupRdmSystemSerializer(ArchesModelSerializer):
+ class Meta:
+ model = ResourceInstance
+ graph_slug = "group"
+ nodegroups = "__all__"
+ fields = "__all__"
diff --git a/arches_lingo/src/arches_lingo/api.ts b/arches_lingo/src/arches_lingo/api.ts
index b57b5936..15119a9d 100644
--- a/arches_lingo/src/arches_lingo/api.ts
+++ b/arches_lingo/src/arches_lingo/api.ts
@@ -52,6 +52,20 @@ export const fetchTextualWorkRdmSystemList = async () => {
return parsed;
};
+export const fetchGroupRdmSystemList = async () => {
+ const response = await fetch(arches.urls.api_group_list);
+ const parsed = await response.json();
+ if (!response.ok) throw new Error(parsed.message || response.statusText);
+ return parsed;
+};
+
+export const fetchPersonRdmSystemList = async () => {
+ const response = await fetch(arches.urls.api_person_list);
+ const parsed = await response.json();
+ if (!response.ok) throw new Error(parsed.message || response.statusText);
+ return parsed;
+};
+
export const fetchSchemeCreation = async (schemeId: string) => {
const response = await fetch(arches.urls.api_scheme_creation(schemeId));
const parsed = await response.json();
diff --git a/arches_lingo/src/arches_lingo/components/generic/LabelEditor.vue b/arches_lingo/src/arches_lingo/components/generic/LabelEditor.vue
index 82c5df9d..65d8ac70 100644
--- a/arches_lingo/src/arches_lingo/components/generic/LabelEditor.vue
+++ b/arches_lingo/src/arches_lingo/components/generic/LabelEditor.vue
@@ -1,12 +1,18 @@
@@ -125,10 +165,22 @@ onMounted(async () => {
-
+
-
+
{% endblock arches_urls %}
diff --git a/arches_lingo/urls.py b/arches_lingo/urls.py
index ca85318a..39ba7b64 100644
--- a/arches_lingo/urls.py
+++ b/arches_lingo/urls.py
@@ -10,6 +10,8 @@
ConceptListCreateView,
ConceptStatementDetailView,
ConceptStatementListCreateView,
+ GroupRdmSystemSerializerView,
+ PersonRdmSystemSerializerView,
SchemeCreationView,
SchemeDetailView,
SchemeLabelTileView,
@@ -70,6 +72,16 @@
TextualWorkRdmSystemSerializerView.as_view(),
name="api-textualwork-list",
),
+ path(
+ "api/group-rdm-system",
+ GroupRdmSystemSerializerView.as_view(),
+ name="api-group-list",
+ ),
+ path(
+ "api/person-rdm-system",
+ PersonRdmSystemSerializerView.as_view(),
+ name="api-person-list",
+ ),
path(
"api/scheme/statements",
SchemeStatementListCreateView.as_view(),
diff --git a/arches_lingo/views/api/pythonic_models.py b/arches_lingo/views/api/pythonic_models.py
index 27daa1bf..3f82ed43 100644
--- a/arches_lingo/views/api/pythonic_models.py
+++ b/arches_lingo/views/api/pythonic_models.py
@@ -9,12 +9,14 @@
from arches_lingo.serializers import (
ConceptSerializer,
+ ConceptStatementSerializer,
+ GroupRdmSystemSerializer,
+ PersonRdmSystemSerializer,
SchemeCreationSerializer,
SchemeLabelSerializer,
SchemeLabelTileSerializer,
SchemeNamespaceSerializer,
SchemeSerializer,
- ConceptStatementSerializer,
SchemeStatementSerializer,
TextualWorkRdmSystemSerializer,
)
@@ -72,6 +74,18 @@ class TextualWorkRdmSystemSerializerView(ArchesModelAPIMixin, ListAPIView):
pagination_class = None
+class GroupRdmSystemSerializerView(ArchesModelAPIMixin, ListAPIView):
+ permission_classes = [RDMAdministrator]
+ serializer_class = GroupRdmSystemSerializer
+ pagination_class = None
+
+
+class PersonRdmSystemSerializerView(ArchesModelAPIMixin, ListAPIView):
+ permission_classes = [RDMAdministrator]
+ serializer_class = PersonRdmSystemSerializer
+ pagination_class = None
+
+
class ConceptDetailView(ArchesModelAPIMixin, RetrieveUpdateDestroyAPIView):
permission_classes = [RDMAdministrator]
serializer_class = ConceptSerializer