import graphene from vbv_lernwelt.core.utils import get_django_content_type from vbv_lernwelt.learnpath.models import Circle class CoursePageInterface(graphene.Interface): id = graphene.ID() title = graphene.String() slug = graphene.String() content_type = graphene.String() live = graphene.Boolean() translation_key = graphene.String() frontend_url = graphene.String() circle = graphene.Field("vbv_lernwelt.learnpath.graphql.types.CircleObjectType") course = graphene.Field("vbv_lernwelt.course.graphql.types.CourseObjectType") def resolve_frontend_url(self, info): return self.get_frontend_url() def resolve_content_type(self, info): return get_django_content_type(self) def resolve_circle(self, info): circle = self.get_ancestors().exact_type(Circle).first() if circle: return circle.specific return None def resolve_course(self, info): return self.get_course()