Skip to content

Commit

Permalink
updates with components for individual sections
Browse files Browse the repository at this point in the history
  • Loading branch information
aarongundel committed Nov 10, 2024
1 parent 7f78547 commit f6a0b30
Show file tree
Hide file tree
Showing 11 changed files with 157 additions and 28 deletions.
8 changes: 8 additions & 0 deletions arches_lingo/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,14 @@ class Meta:
fields = "__all__"


class SchemeUriComponents(ArchesModelSerializer):
class Meta:
model = ResourceInstance
graph_slug = "scheme"
nodegroups = ["namespace", "identifier"]
fields = "__all__"


class SchemeSerializer(ArchesModelSerializer):
class Meta:
model = ResourceInstance
Expand Down
7 changes: 3 additions & 4 deletions arches_lingo/src/arches_lingo/api.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,9 @@ export const fetchUser = async () => {
return parsed;
};

export const fetchSchemeResource = async (id: string | string[]) => {
const resourceRequest = await fetch(
`${arches.urls.api_resources(id)}?format=json&v=beta&hide_empty_nodes=false`,
);
export const fetchSchemeUri = async (id: string | string[]) => {
console.log(arches.urls);
const resourceRequest = await fetch(`${arches.urls.api_url_resources(id)}`);
try {
const resource = await resourceRequest.json();
if (resourceRequest.ok) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<script setup lang="ts">
import Button from "primevue/button";
</script>

<template>
<div style="margin: 0 20px">
<div
style="
display: flex;
align-items: center;
border-bottom: 1px solid #ddd;
"
>
<h2>Trusted Authorities</h2>
<div style="flex: 1"></div>
<div><Button label="Add Trusted Authority"> </Button></div>
</div>
<pre style="margin: 10px 0"></pre>
</div>
</template>
20 changes: 20 additions & 0 deletions arches_lingo/src/arches_lingo/components/detail/SchemeLicense.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<script setup lang="ts">
import Button from "primevue/button";
</script>

<template>
<div style="margin: 0 20px">
<div
style="
display: flex;
align-items: center;
border-bottom: 1px solid #ddd;
"
>
<h2>License</h2>
<div style="flex: 1"></div>
<div><Button label="Add License"> </Button></div>
</div>
<pre style="margin: 10px 0"></pre>
</div>
</template>
20 changes: 20 additions & 0 deletions arches_lingo/src/arches_lingo/components/detail/SchemeNote.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<script setup lang="ts">
import Button from "primevue/button";
</script>

<template>
<div style="margin: 0 20px">
<div
style="
display: flex;
align-items: center;
border-bottom: 1px solid #ddd;
"
>
<h2>Scheme Notes</h2>
<div style="flex: 1"></div>
<div><Button label="Add Note"> </Button></div>
</div>
<pre style="margin: 10px 0"></pre>
</div>
</template>
20 changes: 20 additions & 0 deletions arches_lingo/src/arches_lingo/components/detail/SchemeStandard.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<script setup lang="ts">
import Button from "primevue/button";
</script>

<template>
<div style="margin: 0 20px">
<div
style="
display: flex;
align-items: center;
border-bottom: 1px solid #ddd;
"
>
<h2>Standards Followed</h2>
<div style="flex: 1"></div>
<div><Button label="Add Standard"> </Button></div>
</div>
<pre style="margin: 10px 0"></pre>
</div>
</template>
33 changes: 33 additions & 0 deletions arches_lingo/src/arches_lingo/components/detail/SchemeUri.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
<script setup lang="ts">
import Button from "primevue/button";
import { onMounted, ref } from "vue";
import { fetchSchemeUri } from "@/arches_lingo/api.ts";
import { useRoute } from "vue-router";
const schemeResource = ref();
const route = useRoute();
onMounted(async () => {
const resource = await fetchSchemeUri(route.params.id);
schemeResource.value = resource;
console.log(schemeResource);
});
</script>

<template>
<div style="margin: 0 20px">
<div
style="
display: flex;
align-items: center;
border-bottom: 1px solid #ddd;
"
>
<h2>Scheme Uris</h2>
<div style="flex: 1"></div>
<div><Button label="Add Scheme Uri"> </Button></div>
</div>
<pre style="margin: 10px 0">
{{ schemeResource }}
</pre>
</div>
</template>
44 changes: 20 additions & 24 deletions arches_lingo/src/arches_lingo/pages/SchemeReport.vue
Original file line number Diff line number Diff line change
@@ -1,31 +1,27 @@
<script setup lang="ts">
import { onMounted, ref } from "vue";
import { useRoute } from "vue-router";
import { fetchSchemeResource } from "@/arches_lingo/api.ts";
import type { SchemeResource } from "@/arches_lingo/types.ts";
import SchemeSection from "@/arches_lingo/components/detail/SchemeSection.vue";
import { ref } from "vue";
import SchemeLicense from "@/arches_lingo/components/detail/SchemeLicense.vue";
import SchemeNote from "@/arches_lingo/components/detail/SchemeNote.vue";
import SchemeUri from "@/arches_lingo/components/detail/SchemeUri.vue";
import SchemeStandard from "@/arches_lingo/components/detail/SchemeStandard.vue";
import SchemeAuthority from "@/arches_lingo/components/detail/SchemeAuthority.vue";
import Splitter from "primevue/splitter";
import SplitterPanel from "primevue/splitterpanel";
const route = useRoute();
const schemeResource = ref<SchemeResource | null>(null);
onMounted(async () => {
const resource = (await fetchSchemeResource(
route.params.id,
)) as SchemeResource;
schemeResource.value = resource;
});
const sectionSize = ref<number>(75);
const splitterKey = ref<number>(0);
</script>

<template>
<div v-if="schemeResource">
<div
v-for="(section, resourceKey) in schemeResource.resource"
:key="resourceKey"
>
<SchemeSection
:section="section"
:resource-key="resourceKey"
/>
</div>
<div>
<Splitter :key="splitterKey">
<SplitterPanel :size="sectionSize">
<SchemeNote />
<SchemeAuthority />
<SchemeStandard />
<SchemeLicense />
<SchemeUri />
</SplitterPanel>
</Splitter>
</div>
</template>
1 change: 1 addition & 0 deletions arches_lingo/templates/arches_urls.htm
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@
<div class="arches-urls"
api_concepts="{% url 'api-concepts' %}"
api_search="{% url 'api-search' %}"
api_uri_components='(pluginid)=>{return "{% url "api-uri-components" "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" %}".replace("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa", pluginid)}'
></div>
{% endblock arches_urls %}
6 changes: 6 additions & 0 deletions arches_lingo/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
SchemeListCreateView,
SchemeStatementDetailView,
SchemeStatementListCreateView,
SchemeUriComponentsView,
)

urlpatterns = [
Expand All @@ -39,6 +40,11 @@
),
path("api/schemes", SchemeListCreateView.as_view(), name="schemes-list-create"),
path("api/scheme/<uuid:pk>", SchemeDetailView.as_view(), name="scheme-detail"),
path(
"api/scheme/<uuid:pk>/uri-components",
SchemeUriComponentsView.as_view(),
name="api-uri-components",
),
path(
"api/scheme/statements",
SchemeStatementListCreateView.as_view(),
Expand Down
6 changes: 6 additions & 0 deletions arches_lingo/views/api/pythonic_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
SchemeSerializer,
ConceptStatementSerializer,
SchemeStatementSerializer,
SchemeUriComponents,
)


Expand All @@ -31,6 +32,11 @@ class SchemeStatementDetailView(ArchesModelAPIMixin, RetrieveUpdateDestroyAPIVie
serializer_class = SchemeStatementSerializer


class SchemeUriComponentsView(ArchesModelAPIMixin, RetrieveUpdateDestroyAPIView):
permission_classes = [IsAuthenticated]
serializer_class = SchemeUriComponents


class ConceptListCreateView(ArchesModelAPIMixin, ListCreateAPIView):
permission_classes = [IsAuthenticated]
serializer_class = ConceptSerializer
Expand Down

0 comments on commit f6a0b30

Please sign in to comment.