diff --git a/client/src/components/modules/ModuleFilter.vue b/client/src/components/modules/ModuleFilter.vue index c5df8c94..72f5b6f2 100644 --- a/client/src/components/modules/ModuleFilter.vue +++ b/client/src/components/modules/ModuleFilter.vue @@ -121,7 +121,6 @@ const filterByCategory = (module: ModuleNode, category: ModuleCategoryNode) => { }; const filterByLanguage = (module: ModuleNode, language: string) => { - // TODO: implement filter by language here. return module.language === language; }; diff --git a/client/src/graphql/gql/fragments/instrumentParts.gql b/client/src/graphql/gql/fragments/instrumentParts.gql index 9d90b65a..7db4dfdb 100644 --- a/client/src/graphql/gql/fragments/instrumentParts.gql +++ b/client/src/graphql/gql/fragments/instrumentParts.gql @@ -3,6 +3,7 @@ fragment InstrumentParts on InstrumentNode { title intro slug + language bookmarks { uuid note { diff --git a/client/src/graphql/gql/queries/instrumentsQuery.gql b/client/src/graphql/gql/queries/instrumentsQuery.gql index 6d042b07..09744164 100644 --- a/client/src/graphql/gql/queries/instrumentsQuery.gql +++ b/client/src/graphql/gql/queries/instrumentsQuery.gql @@ -4,6 +4,7 @@ query InstrumentsQuery { title contents slug + language type { id type diff --git a/client/src/pages/instrumentOverview.vue b/client/src/pages/instrumentOverview.vue index 145a8f30..f4d26ee6 100644 --- a/client/src/pages/instrumentOverview.vue +++ b/client/src/pages/instrumentOverview.vue @@ -29,6 +29,8 @@ import InstrumentEntry from '@/components/instruments/InstrumentEntry.vue'; import INSTRUMENTS_QUERY from '@/graphql/gql/queries/instrumentsQuery.gql'; import INSTRUMENT_FILTER_QUERY from 'gql/local/instrumentFilter.gql'; import FilterBar from '@/components/instruments/FilterBar.vue'; +import ME_QUERY from '@/graphql/gql/queries/meQuery.gql'; +import { graphql } from '@/__generated__'; export default { components: { @@ -61,6 +63,15 @@ export default { return instrumentFilter; }, }, + me: { + query: graphql(` + query MeLanguage { + me { + language @client + } + } + `), + }, }, data() { @@ -71,14 +82,23 @@ export default { currentFilter: '', }, searchText: '', + me: { language: 'de' }, }; }, computed: { filteredInstruments() { + // Filter by category and category type let instruments = this.instruments.filter((i) => this.filter(i)); - return instruments.filter((i) => i.title.toLowerCase().includes(this.searchText.toLowerCase())); + // Filter by language + instruments = instruments.filter((i) => i.language === this.me.language); + // Filter by search text + instruments = instruments.filter((i) => i.title.toLowerCase().includes(this.searchText.toLowerCase())); + return instruments; }, + // language() { + // return this.instruments.value?.me.language || 'de'; + // }, }, methods: { diff --git a/server/basicknowledge/queries.py b/server/basicknowledge/queries.py index 9ea16977..5ba40933 100644 --- a/server/basicknowledge/queries.py +++ b/server/basicknowledge/queries.py @@ -44,6 +44,7 @@ class InstrumentNode(DjangoObjectType): bookmarks = graphene.List(InstrumentBookmarkNode) type = graphene.Field(InstrumentTypeNode) contents = GenericStreamFieldType() + language = graphene.String() class Meta: model = BasicKnowledge @@ -63,6 +64,9 @@ class InstrumentNode(DjangoObjectType): instrument=self ) + def resolve_language(self, info, **kwargs): + return self.locale.language_code + class InstrumentQuery(object): instrument = graphene.Field(InstrumentNode, slug=graphene.String(), id=graphene.ID())