Fetch topic information from API
This commit is contained in:
parent
181a06424a
commit
febed9adc4
|
|
@ -1,12 +1,9 @@
|
||||||
|
#import "./fragments/moduleParts.gql"
|
||||||
query ModulesQuery {
|
query ModulesQuery {
|
||||||
modules {
|
modules {
|
||||||
edges {
|
edges {
|
||||||
node {
|
node {
|
||||||
id
|
...ModuleParts
|
||||||
title
|
|
||||||
metaTitle
|
|
||||||
teaser
|
|
||||||
slug
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
fragment ModuleParts on ModuleNode {
|
||||||
|
id
|
||||||
|
title
|
||||||
|
metaTitle
|
||||||
|
teaser
|
||||||
|
slug
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
#import "./fragments/moduleParts.gql"
|
||||||
|
query Topic($slug: String!){
|
||||||
|
topic(slug: $slug) {
|
||||||
|
id
|
||||||
|
title
|
||||||
|
teaser
|
||||||
|
description
|
||||||
|
modules {
|
||||||
|
edges {
|
||||||
|
node {
|
||||||
|
...ModuleParts
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,11 +1,8 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="topic">
|
<div class="topic">
|
||||||
<h1 class="topic__title">Berufliche Grundbildung</h1>
|
<h1 class="topic__title">{{topic.title}}</h1>
|
||||||
<p class="topic__teaser">
|
<p class="topic__teaser">
|
||||||
Die berufliche Grundbildung lehrt Sie, den Arbeitsalltag erfolgreich zu bewältigen, Ihre Fähigkeiten zu entwickeln
|
{{topic.teaser}}
|
||||||
und beruflich flexibel zu sein. Ebenso wichtig ist der Umgang mit verschiedensten Mitmenschen. Eine angemessene
|
|
||||||
mündliche Kommunikation erleichtert
|
|
||||||
das Zusammenleben und Zusammenarbeiten.
|
|
||||||
</p>
|
</p>
|
||||||
<div class="topic__modules">
|
<div class="topic__modules">
|
||||||
<module-teaser v-for="module in modules" :key="module.id" v-bind="module"></module-teaser>
|
<module-teaser v-for="module in modules" :key="module.id" v-bind="module"></module-teaser>
|
||||||
|
|
@ -15,7 +12,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import ModuleTeaser from '@/components/modules/ModuleTeaser.vue';
|
import ModuleTeaser from '@/components/modules/ModuleTeaser.vue';
|
||||||
import MODULES_QUERY from '@/graphql/gql/allModules.gql';
|
import TOPIC_QUERY from '@/graphql/gql/topicQuery.gql';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
components: {
|
components: {
|
||||||
|
|
@ -23,17 +20,30 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
apollo: {
|
apollo: {
|
||||||
modules: {
|
topic: {
|
||||||
query: MODULES_QUERY,
|
query: TOPIC_QUERY,
|
||||||
|
variables: {
|
||||||
|
slug: 'geld-und-kauf'
|
||||||
|
},
|
||||||
update(data) {
|
update(data) {
|
||||||
return this.$getRidOfEdges(data).modules || {};
|
return this.$getRidOfEdges(data).topic || {};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
computed: {
|
||||||
|
modules() {
|
||||||
|
return this.topic.modules;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
modules: []
|
topic: {
|
||||||
|
modules: {
|
||||||
|
edges: []
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -152,7 +152,7 @@ class FilteredChapterNode(DjangoObjectType):
|
||||||
|
|
||||||
class BookQuery(object):
|
class BookQuery(object):
|
||||||
book = relay.Node.Field(BookNode)
|
book = relay.Node.Field(BookNode)
|
||||||
topic = relay.Node.Field(TopicNode)
|
topic = graphene.Field(TopicNode, slug=graphene.String())
|
||||||
module = graphene.Field(ModuleNode, slug=graphene.String())
|
module = graphene.Field(ModuleNode, slug=graphene.String())
|
||||||
chapter = relay.Node.Field(FilteredChapterNode)
|
chapter = relay.Node.Field(FilteredChapterNode)
|
||||||
content_block = relay.Node.Field(ContentBlockNode)
|
content_block = relay.Node.Field(ContentBlockNode)
|
||||||
|
|
@ -183,3 +183,13 @@ class BookQuery(object):
|
||||||
if slug is not None:
|
if slug is not None:
|
||||||
return Module.objects.get(slug=slug)
|
return Module.objects.get(slug=slug)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def resolve_topic(self, info, **kwargs):
|
||||||
|
slug = kwargs.get('slug')
|
||||||
|
id = kwargs.get('id')
|
||||||
|
|
||||||
|
if id is not None:
|
||||||
|
return get_object(Topic, id)
|
||||||
|
if slug is not None:
|
||||||
|
return Topic.objects.get(slug=slug)
|
||||||
|
return None
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue