Skip to content
Snippets Groups Projects
Verified Commit 86a8bf49 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Refactor schema to own submodule

parent 8499f85c
No related branches found
No related tags found
1 merge request!1095[Vue] About page
from django.apps import apps
from django.conf import settings
from django.utils import translation
import graphene
from graphene import ObjectType
from graphene_django import DjangoObjectType
from graphene_django.forms.mutation import DjangoModelFormMutation
from .forms import PersonForm
from .models import Group, Notification, Person
from .util.apps import AppConfig
from .util.core_helpers import get_app_module, get_app_packages, has_person
from .util.frontend_helpers import get_language_cookie
class NotificationType(DjangoObjectType):
class Meta:
model = Notification
class PersonType(DjangoObjectType):
class Meta:
model = Person
full_name = graphene.Field(graphene.String)
def resolve_full_name(root: Person, info, **kwargs):
return root.full_name
class GroupType(DjangoObjectType):
class Meta:
model = Group
class AppURLType(ObjectType):
name = graphene.String(required=True)
url = graphene.String(required=True)
class CopyrightType(ObjectType):
years = graphene.String(required=True)
name = graphene.String(required=True)
email = graphene.String(required=True)
class LicenceFlagsType(ObjectType):
isFsfLibre = graphene.Boolean(required=True)
isOsiApproved = graphene.Boolean(required=True)
class SubLicenceType(ObjectType):
isDeprecatedLicenseId = graphene.Boolean(default_value=False)
isFsfLibre = graphene.Boolean(default_value=False)
isOsiApproved = graphene.Boolean(default_value=False)
licenseId = graphene.String(required=True)
name = graphene.String(required=True)
referenceNumber = graphene.Int(default_value=-1)
url = graphene.String()
class LicenceType(ObjectType):
verbose_name = graphene.String(required=True)
flags = graphene.Field(LicenceFlagsType, required=True)
licences = graphene.List(SubLicenceType)
class AppType(ObjectType):
copyrights = graphene.List(CopyrightType)
licence = graphene.Field(LicenceType)
name = graphene.String(required=True)
verbose_name = graphene.String(required=True)
version = graphene.String()
urls = graphene.List(AppURLType)
class LanguageType(ObjectType):
code = graphene.String(required=True)
name = graphene.String(required=True)
name_local = graphene.String(required=True)
name_translated = graphene.String(required=True)
bidi = graphene.Boolean(required=True)
cookie = graphene.String(required=True)
class SystemPropertiesType(graphene.ObjectType):
current_language = graphene.String(required=True)
available_languages = graphene.List(LanguageType)
def resolve_current_language(parent, info, **kwargs):
return info.context.LANGUAGE_CODE
def resolve_available_languages(parent, info, **kwargs):
return [
translation.get_language_info(code) | {"cookie": get_language_cookie(code)}
for code, name in settings.LANGUAGES
]
class PersonMutation(DjangoModelFormMutation):
person = graphene.Field(PersonType)
class Meta:
form_class = PersonForm
class MarkNotificationReadMutation(graphene.Mutation):
class Arguments:
id = graphene.ID() # noqa
notification = graphene.Field(NotificationType)
@classmethod
def mutate(cls, root, info, id): # noqa
notification = Notification.objects.get(pk=id)
# FIXME permissions
notification.read = True
notification.save()
return notification
from ..models import Notification, Person
from ..util.apps import AppConfig
from ..util.core_helpers import get_app_module, get_app_packages, has_person
from .group import GroupType # noqa
from .installed_apps import AppType
from .notification import MarkNotificationReadMutation, NotificationType
from .person import PersonMutation, PersonType
from .system_properties import SystemPropertiesType
class Query(graphene.ObjectType):
......
from graphene_django import DjangoObjectType
from ..models import Group
class GroupType(DjangoObjectType):
class Meta:
model = Group
import graphene
from graphene import ObjectType
class AppURLType(ObjectType):
name = graphene.String(required=True)
url = graphene.String(required=True)
class CopyrightType(ObjectType):
years = graphene.String(required=True)
name = graphene.String(required=True)
email = graphene.String(required=True)
class LicenceFlagsType(ObjectType):
isFsfLibre = graphene.Boolean(required=True)
isOsiApproved = graphene.Boolean(required=True)
class SubLicenceType(ObjectType):
isDeprecatedLicenseId = graphene.Boolean(default_value=False)
isFsfLibre = graphene.Boolean(default_value=False)
isOsiApproved = graphene.Boolean(default_value=False)
licenseId = graphene.String(required=True)
name = graphene.String(required=True)
referenceNumber = graphene.Int(default_value=-1)
url = graphene.String()
class LicenceType(ObjectType):
verbose_name = graphene.String(required=True)
flags = graphene.Field(LicenceFlagsType, required=True)
licences = graphene.List(SubLicenceType)
class AppType(ObjectType):
copyrights = graphene.List(CopyrightType)
licence = graphene.Field(LicenceType)
name = graphene.String(required=True)
verbose_name = graphene.String(required=True)
version = graphene.String()
urls = graphene.List(AppURLType)
import graphene
from graphene_django import DjangoObjectType
from ..models import Notification
class NotificationType(DjangoObjectType):
class Meta:
model = Notification
class MarkNotificationReadMutation(graphene.Mutation):
class Arguments:
id = graphene.ID() # noqa
notification = graphene.Field(NotificationType)
@classmethod
def mutate(cls, root, info, id): # noqa
notification = Notification.objects.get(pk=id)
# FIXME permissions
notification.read = True
notification.save()
return notification
import graphene
from graphene_django import DjangoObjectType
from graphene_django.forms.mutation import DjangoModelFormMutation
from ..forms import PersonForm
from ..models import Person
class PersonType(DjangoObjectType):
class Meta:
model = Person
full_name = graphene.Field(graphene.String)
def resolve_full_name(root: Person, info, **kwargs):
return root.full_name
class PersonMutation(DjangoModelFormMutation):
person = graphene.Field(PersonType)
class Meta:
form_class = PersonForm
from django.conf import settings
from django.utils import translation
import graphene
from ..util.frontend_helpers import get_language_cookie
class LanguageType(graphene.ObjectType):
code = graphene.String(required=True)
name = graphene.String(required=True)
name_local = graphene.String(required=True)
name_translated = graphene.String(required=True)
bidi = graphene.Boolean(required=True)
cookie = graphene.String(required=True)
class SystemPropertiesType(graphene.ObjectType):
current_language = graphene.String(required=True)
available_languages = graphene.List(LanguageType)
def resolve_current_language(parent, info, **kwargs):
return info.context.LANGUAGE_CODE
def resolve_available_languages(parent, info, **kwargs):
return [
translation.get_language_info(code) | {"cookie": get_language_cookie(code)}
for code, name in settings.LANGUAGES
]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment