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