Skip to content
Snippets Groups Projects
Commit f75d5984 authored by magicfelix's avatar magicfelix
Browse files

Implement CRUD schema

parent f2f527b0
No related branches found
No related tags found
1 merge request!1Resolve "[New app] Gradebook"
from django.apps import apps
import graphene
from graphene_django.types import DjangoObjectType
from aleksis.core.schema.base import FilterOrderList
from ..models import Grade, GradeChoice, GradeSet, Effort, EffortType
from .grade_set import (
GradeChoiceBatchCreateMutation,
GradeChoiceBatchDeleteMutation,
GradeChoiceBatchPatchMutation,
GradeChoiceType,
GradeSetBatchCreateMutation,
GradeSetBatchDeleteMutation,
GradeSetBatchPatchMutation,
GradeSetType,
)
from .effort import (
EffortBatchCreateMutation,
EffortBatchDeleteMutation,
EffortBatchPatchMutation,
EffortTypeBatchCreateMutation,
EffortTypeBatchDeleteMutation,
EffortTypeBatchPatchMutation,
EffortType,
EffortTypeType,
)
from .grade import (
GradeBatchCreateMutation,
GradeBatchDeleteMutation,
GradeBatchPatchMutation,
GradeType,
)
class Query(graphene.ObjectType):
app_name = graphene.String()
grade_sets = FilterOrderList(GradeSetType)
grade_choices = FilterOrderList(GradeChoiceType)
grades = FilterOrderList(GradeType)
ranking_types = FilterOrderList(EffortTypeType)
rankings = FilterOrderList(EffortTypeType)
def resolve_app_name(root, info, **kwargs) -> str:
return apps.get_app_config("maka").verbose_name
class Mutation(graphene.ObjectType):
create_grade_sets = GradeSetBatchCreateMutation.Field()
delete_grade_sets = GradeSetBatchDeleteMutation.Field()
update_grade_sets = GradeSetBatchPatchMutation.Field()
create_grade_choices = GradeChoiceBatchCreateMutation.Field()
delete_grade_choices = GradeChoiceBatchDeleteMutation.Field()
update_grade_choices = GradeChoiceBatchPatchMutation.Field()
create_grades = GradeBatchCreateMutation.Field()
delete_grades = GradeBatchDeleteMutation.Field()
update_grades = GradeBatchPatchMutation.Field()
create_ranking_types = EffortTypeBatchCreateMutation.Field()
delete_ranking_types = EffortTypeBatchDeleteMutation.Field()
update_ranking_types = EffortTypeBatchPatchMutation.Field()
create_rankings = EffortBatchCreateMutation.Field()
delete_rankings = EffortBatchDeleteMutation.Field()
update_rankings = EffortBatchPatchMutation.Field()
from django.apps import apps
import graphene
from graphene_django.types import DjangoObjectType
from aleksis.core.schema.base import (
BaseBatchCreateMutation,
BaseBatchDeleteMutation,
BaseBatchPatchMutation,
DjangoFilterMixin,
PermissionsTypeMixin,
RulesObjectType,
)
from ..models import Effort, EffortType
class EffortTypeType(RulesObjectType, PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectType):
class Meta:
model = EffortType
fields = ("id", "name", "color", "icon", "default")
filter_fields = {
"id": ["exact"],
"name": ["icontains", "exact"],
}
class EffortTypeBatchCreateMutation(BaseBatchCreateMutation):
class Meta:
model = EffortType
permissions = ("maka.create_efforttype_rule",)
fields = (
"name",
"color",
"icon",
"default",
)
class EffortTypeBatchDeleteMutation(BaseBatchDeleteMutation):
class Meta:
model = EffortType
permissions = ("maka.delete_efforttype_rule",)
class EffortTypeBatchPatchMutation(BaseBatchPatchMutation):
class Meta:
model = EffortType
permissions = ("maka.edit_efforttype_rule",)
fields = (
"id",
"name",
"color",
"icon",
"default",
)
class EffortType(RulesObjectType, PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectType):
class Meta:
model = Effort
fields = ("id", "name", "weight", "effort_type", "group", "grade_set")
filter_fields = {
"id": ["exact"],
"name": ["icontains", "exact"],
}
class EffortBatchCreateMutation(BaseBatchCreateMutation):
class Meta:
model = Effort
permissions = ("maka.create_effort_rule",)
fields = (
"name",
"color",
"icon",
"default",
)
class EffortBatchDeleteMutation(BaseBatchDeleteMutation):
class Meta:
model = Effort
permissions = ("maka.delete_effort_rule",)
class EffortBatchPatchMutation(BaseBatchPatchMutation):
class Meta:
model = Effort
permissions = ("maka.edit_effort_rule",)
fields = (
"id",
"name",
"color",
"icon",
"default",
)
from django.apps import apps
import graphene
from graphene_django.types import DjangoObjectType
from aleksis.core.schema.base import (
BaseBatchCreateMutation,
BaseBatchDeleteMutation,
BaseBatchPatchMutation,
DjangoFilterMixin,
PermissionsTypeMixin,
RulesObjectType,
)
from ..models import Grade
class GradeType(RulesObjectType, PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectType):
class Meta:
model = Grade
fields = ("id", "person", "grade", "effort")
filter_fields = {
"id": ["exact"],
"name__lel": ["icontains", "exact"],
}
class GradeBatchCreateMutation(BaseBatchCreateMutation):
class Meta:
model = Grade
permissions = ("maka.create_grade_rule",)
fields = (
"person",
"grade",
"effort",
)
class GradeBatchDeleteMutation(BaseBatchDeleteMutation):
class Meta:
model = Grade
permissions = ("maka.delete_grade_rule",)
class GradeBatchPatchMutation(BaseBatchPatchMutation):
class Meta:
model = Grade
permissions = ("maka.edit_grade_rule",)
fields = (
"id",
"person",
"grade",
"effort",
)
from django.apps import apps
import graphene
from graphene_django.types import DjangoObjectType
from aleksis.core.schema.base import (
BaseBatchCreateMutation,
BaseBatchDeleteMutation,
BaseBatchPatchMutation,
DjangoFilterMixin,
PermissionsTypeMixin,
RulesObjectType,
)
from ..models import GradeChoice, GradeSet
class GradeSetType(RulesObjectType, PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectType):
class Meta:
model = GradeSet
fields = ("id", "name")
filter_fields = {
"id": ["exact"],
"name": ["icontains", "exact"],
}
class GradeSetBatchCreateMutation(BaseBatchCreateMutation):
class Meta:
model = GradeSet
permissions = ("maka.create_gradeset_rule",)
fields = (
"name",
)
class GradeSetBatchDeleteMutation(BaseBatchDeleteMutation):
class Meta:
model = GradeSet
permissions = ("maka.delete_gradeset_rule",)
class GradeSetBatchPatchMutation(BaseBatchPatchMutation):
class Meta:
model = GradeSet
permissions = ("maka.edit_gradeset_rule",)
fields = (
"id",
"name",
)
class GradeChoiceType(RulesObjectType, PermissionsTypeMixin, DjangoFilterMixin, DjangoObjectType):
class Meta:
model = GradeChoice
fields = ("id", "grade_set", "name", "value", "order")
filter_fields = {
"id": ["exact"],
"name": ["icontains", "exact"],
"value": ["icontains", "exact"],
}
class GradeChoiceBatchCreateMutation(BaseBatchCreateMutation):
class Meta:
model = GradeChoice
permissions = ("maka.create_gradechoice_rule",)
fields = (
"grade_set",
"name",
"value",
"order",
)
class GradeChoiceBatchDeleteMutation(BaseBatchDeleteMutation):
class Meta:
model = GradeChoice
permissions = ("maka.delete_gradechoice_rule",)
class GradeChoiceBatchPatchMutation(BaseBatchPatchMutation):
class Meta:
model = GradeChoice
permissions = ("maka.edit_gradechoice_rule",)
fields = (
"id",
"grade_set",
"name",
"value",
"order",
)
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