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

Merge branch '305-show-class-groups-at-top-of-group-select' into 'master'

Resolve "Show class groups at top of group select"

Closes #305

See merge request !394
parents b53498fe c92022f0
No related branches found
No related tags found
1 merge request!394Resolve "Show class groups at top of group select"
Pipeline #192210 failed
...@@ -6,6 +6,7 @@ from dynamic_preferences.types import ( ...@@ -6,6 +6,7 @@ from dynamic_preferences.types import (
BooleanPreference, BooleanPreference,
ChoicePreference, ChoicePreference,
IntegerPreference, IntegerPreference,
ModelChoicePreference,
ModelMultipleChoicePreference, ModelMultipleChoicePreference,
) )
...@@ -203,3 +204,20 @@ class GroupTypesRegisterAbsence(ModelMultipleChoicePreference): ...@@ -203,3 +204,20 @@ class GroupTypesRegisterAbsence(ModelMultipleChoicePreference):
help_text = _( help_text = _(
"If you leave it empty, all member of groups the user is an owner of will be shown." "If you leave it empty, all member of groups the user is an owner of will be shown."
) )
@site_preferences_registry.register
class GroupTypePriorityCoursebook(ModelChoicePreference):
section = alsijil
name = "group_type_priority_coursebook"
required = False
default = None
model = GroupType
verbose_name = _(
"Group type of groups to be shown first in the group "
"select field on the coursebook overview page"
)
help_text = _("If you leave it empty, no group type will be used.")
def get_queryset(self):
return GroupType.objects.managed_and_unmanaged()
from datetime import datetime from datetime import datetime
from django.core.exceptions import PermissionDenied from django.core.exceptions import PermissionDenied
from django.db.models.query_utils import Q from django.db.models import BooleanField, ExpressionWrapper, Q
import graphene import graphene
...@@ -156,6 +156,13 @@ class Query(graphene.ObjectType): ...@@ -156,6 +156,13 @@ class Query(graphene.ObjectType):
Group.objects.for_current_school_term_or_all() Group.objects.for_current_school_term_or_all()
.filter(Q(members=person) | Q(owners=person) | Q(parent_groups__owners=person)) .filter(Q(members=person) | Q(owners=person) | Q(parent_groups__owners=person))
.distinct() .distinct()
.annotate(
is_priority=ExpressionWrapper(
Q(group_type=get_site_preferences()["alsijil__group_type_priority_coursebook"]),
output_field=BooleanField(),
)
)
.order_by("is_priority")
) )
@staticmethod @staticmethod
......
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