Skip to content
Snippets Groups Projects
Commit 140b0ce9 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Merge branch '290-only-use-a-subset-of-absence-reasons-in-class-register' into 'master'

Resolve "Only use a subset of absence reasons in class register"

Closes #290

See merge request !382
parents 6578adf5 0faf8d8c
No related branches found
No related tags found
1 merge request!382Resolve "Only use a subset of absence reasons in class register"
Pipeline #191923 failed
......@@ -19,3 +19,16 @@ class AlsijilConfig(AppConfig):
([2021], "Lloyd Meins", "meinsll@katharineum.de"),
([2024], "Michael Bauer", "michael-bauer@posteo.de"),
)
def post_migrate(
self,
app_config: AppConfig,
verbosity: int,
interactive: bool,
using: str,
**kwargs,
) -> None:
super().post_migrate(app_config, verbosity, interactive, using, **kwargs)
from .util.alsijil_helpers import get_absence_reason_tag
get_absence_reason_tag()
query absenceReasons($orderBy: [String], $filters: JSONString) {
items: absenceReasons(orderBy: $orderBy, filters: $filters) {
items: coursebookAbsenceReasons(orderBy: $orderBy, filters: $filters) {
id
shortName
name
......
......@@ -8,6 +8,8 @@ import graphene
from aleksis.apps.chronos.models import LessonEvent
from aleksis.apps.cursus.models import Course
from aleksis.apps.cursus.schema import CourseType
from aleksis.apps.kolego.models import AbsenceReason
from aleksis.apps.kolego.schema.absence import AbsenceReasonType
from aleksis.core.models import Group, Person
from aleksis.core.schema.base import FilterOrderList
from aleksis.core.schema.group import GroupType
......@@ -67,6 +69,8 @@ class Query(graphene.ObjectType):
extra_marks = FilterOrderList(ExtraMarkType)
coursebook_absence_reasons = FilterOrderList(AbsenceReasonType)
def resolve_documentations_by_course_id(root, info, course_id, **kwargs):
documentations = Documentation.objects.filter(
Q(course__pk=course_id) | Q(amends__course__pk=course_id)
......@@ -210,6 +214,12 @@ class Query(graphene.ObjectType):
return lessons_for_person
@staticmethod
def resolve_coursebook_absence_reasons(root, info, **kwargs):
if not info.context.user.has_perm("kolego.fetch_absencereasons_rule"):
return []
return AbsenceReason.objects.filter(tags__short_name="class_register")
class Mutation(graphene.ObjectType):
create_or_update_documentations = DocumentationBatchCreateOrUpdateMutation.Field()
......
......@@ -15,6 +15,7 @@ from aleksis.apps.alsijil.forms import FilterRegisterObjectForm
from aleksis.apps.alsijil.models import LessonDocumentation
from aleksis.apps.chronos.models import Event, ExtraLesson, Holiday, LessonPeriod
from aleksis.apps.chronos.util.chronos_helpers import get_el_by_pk
from aleksis.apps.kolego.models import AbsenceReasonTag
from aleksis.core.models import Group
from aleksis.core.util.core_helpers import get_site_preferences
......@@ -401,3 +402,11 @@ def generate_list_of_all_register_objects(filter_dict: Dict[str, Any]) -> List[D
register_objects = sorted(register_objects, key=itemgetter("date_sort", "period_sort"))
return register_objects
return []
def get_absence_reason_tag():
return AbsenceReasonTag.objects.managed_by_app("alsijil").get_or_create(
managed_by_app_label="alsijil",
short_name="class_register",
defaults={"name": "Class Register"},
)
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