Add language filter to instruments
This commit is contained in:
parent
6de2cc3ff0
commit
2246e9ca3c
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ fragment InstrumentParts on InstrumentNode {
|
|||
title
|
||||
intro
|
||||
slug
|
||||
language
|
||||
bookmarks {
|
||||
uuid
|
||||
note {
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ query InstrumentsQuery {
|
|||
title
|
||||
contents
|
||||
slug
|
||||
language
|
||||
type {
|
||||
id
|
||||
type
|
||||
|
|
|
|||
|
|
@ -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: {
|
||||
|
|
|
|||
|
|
@ -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())
|
||||
|
|
|
|||
Loading…
Reference in New Issue