Filter Modules by Id
This commit is contained in:
parent
aa095ac7ea
commit
f60f0d68da
|
|
@ -104,14 +104,14 @@
|
||||||
// filter by Lehrjahr
|
// filter by Lehrjahr
|
||||||
if (selectedCategory.value.name !== '---') {
|
if (selectedCategory.value.name !== '---') {
|
||||||
filteredModules = filteredModules.filter((module) => {
|
filteredModules = filteredModules.filter((module) => {
|
||||||
return module.categoryName.includes(selectedCategory.value.name);
|
return module.category.id == selectedCategory.value.id;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//filter by Lernfeld
|
//filter by Lernfeld
|
||||||
if (selectedLernfeld.value.name !== '---') {
|
if (selectedLernfeld.value.name !== '---') {
|
||||||
filteredModules = filteredModules.filter((module) => {
|
filteredModules = filteredModules.filter((module) => {
|
||||||
return module.categoryTypeName.includes(selectedLernfeld.value.name);
|
return module.categoryType.id == selectedLernfeld.value.id;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
<p class="module-teaser__description">
|
<p class="module-teaser__description">
|
||||||
{{ teaser }}
|
{{ teaser }}
|
||||||
</p>
|
</p>
|
||||||
<span :value="attribute" v-for="attribute in [categoryName, categoryTypeName]">
|
<span :value="attribute" v-for="attribute in [category.name, categoryType.name]">
|
||||||
<div class="module-teaser__module-category" v-if="attribute">{{attribute}}</div>
|
<div class="module-teaser__module-category" v-if="attribute">{{attribute}}</div>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -26,7 +26,7 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
props: ['metaTitle', 'title', 'teaser', 'id', 'slug', 'heroImage', 'categoryName', 'categoryTypeName'],
|
props: ['metaTitle', 'title', 'teaser', 'id', 'slug', 'heroImage', 'category', 'categoryType'],
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
moduleLink() {
|
moduleLink() {
|
||||||
|
|
|
||||||
|
|
@ -9,8 +9,14 @@ fragment ModuleParts on ModuleNode {
|
||||||
heroSource
|
heroSource
|
||||||
solutionsEnabled
|
solutionsEnabled
|
||||||
inEditMode @client
|
inEditMode @client
|
||||||
categoryName
|
category {
|
||||||
categoryTypeName
|
id
|
||||||
|
name
|
||||||
|
}
|
||||||
|
categoryType {
|
||||||
|
id
|
||||||
|
name
|
||||||
|
}
|
||||||
topic {
|
topic {
|
||||||
slug
|
slug
|
||||||
title
|
title
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,11 @@ from graphene_django.filter import DjangoFilterConnectionField
|
||||||
|
|
||||||
from assignments.models import StudentSubmission
|
from assignments.models import StudentSubmission
|
||||||
from assignments.schema.types import AssignmentNode, StudentSubmissionNode
|
from assignments.schema.types import AssignmentNode, StudentSubmissionNode
|
||||||
from books.models import Module, Chapter, ContentBlock, RecentModule
|
from books.models import Module, Chapter, ContentBlock, RecentModule, ModuleCategory, ModuleType
|
||||||
from books.schema.interfaces.module import ModuleInterface
|
from books.schema.interfaces.module import ModuleInterface
|
||||||
from books.schema.nodes.chapter import ChapterNode
|
from books.schema.nodes.chapter import ChapterNode
|
||||||
|
from books.schema.nodes.module_category import ModuleCategoryNode
|
||||||
|
from books.schema.nodes.module_category_type import ModuleCategoryTypeNode
|
||||||
from notes.models import ModuleBookmark, ContentBlockBookmark, ChapterBookmark
|
from notes.models import ModuleBookmark, ContentBlockBookmark, ChapterBookmark
|
||||||
from notes.schema import (
|
from notes.schema import (
|
||||||
ModuleBookmarkNode,
|
ModuleBookmarkNode,
|
||||||
|
|
@ -34,8 +36,8 @@ class ModuleNode(DjangoObjectType):
|
||||||
"hero_image",
|
"hero_image",
|
||||||
"hero_source",
|
"hero_source",
|
||||||
"topic",
|
"topic",
|
||||||
"category_name",
|
"category",
|
||||||
"category_type_name",
|
"category_type",
|
||||||
]
|
]
|
||||||
filter_fields = {
|
filter_fields = {
|
||||||
"slug": ["exact", "icontains", "in"],
|
"slug": ["exact", "icontains", "in"],
|
||||||
|
|
@ -54,8 +56,8 @@ class ModuleNode(DjangoObjectType):
|
||||||
snapshots = graphene.List("books.schema.nodes.SnapshotNode")
|
snapshots = graphene.List("books.schema.nodes.SnapshotNode")
|
||||||
objective_groups = graphene.List(ObjectiveGroupNode)
|
objective_groups = graphene.List(ObjectiveGroupNode)
|
||||||
assignments = graphene.List(AssignmentNode)
|
assignments = graphene.List(AssignmentNode)
|
||||||
category_name = graphene.String()
|
category = graphene.Field(ModuleCategoryNode)
|
||||||
category_type_name = graphene.String()
|
category_type = graphene.Field(ModuleCategoryTypeNode)
|
||||||
|
|
||||||
def resolve_chapters(self, info, **kwargs):
|
def resolve_chapters(self, info, **kwargs):
|
||||||
return Chapter.get_by_parent(self)
|
return Chapter.get_by_parent(self)
|
||||||
|
|
@ -106,7 +108,13 @@ class ModuleNode(DjangoObjectType):
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def resolve_objective_groups(parent, info, **kwargs):
|
def resolve_objective_groups(parent, info, **kwargs):
|
||||||
return parent.objective_groups.all().prefetch_related("hidden_for")
|
return parent.objective_groups.all().prefetch_related("hidden_for") @ staticmethod
|
||||||
|
|
||||||
|
def resolve_category(self, info, **kwargs):
|
||||||
|
return ModuleCategory.objects.get(pk=self.category_id) if self.category_id else None
|
||||||
|
|
||||||
|
def resolve_category_type(self, info, **kwargs):
|
||||||
|
return ModuleType.objects.get(pk=self.category_type_id) if self.category_type_id else None
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def resolve_snapshots(parent, info, **kwargs):
|
def resolve_snapshots(parent, info, **kwargs):
|
||||||
|
|
@ -119,6 +127,7 @@ class ModuleNode(DjangoObjectType):
|
||||||
def resolve_assignments(parent: Module, info, **kwargs):
|
def resolve_assignments(parent: Module, info, **kwargs):
|
||||||
return parent.assignments.all()
|
return parent.assignments.all()
|
||||||
|
|
||||||
|
|
||||||
class RecentModuleNode(DjangoObjectType):
|
class RecentModuleNode(DjangoObjectType):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = RecentModule
|
model = RecentModule
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue