Add language filter to instruments

This commit is contained in:
Lorenz Padberg 2023-08-29 15:10:47 +02:00
parent 6de2cc3ff0
commit 2246e9ca3c
5 changed files with 27 additions and 2 deletions

View File

@ -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;
};

View File

@ -3,6 +3,7 @@ fragment InstrumentParts on InstrumentNode {
title
intro
slug
language
bookmarks {
uuid
note {

View File

@ -4,6 +4,7 @@ query InstrumentsQuery {
title
contents
slug
language
type {
id
type

View File

@ -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: {

View File

@ -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())