Skip to content
Snippets Groups Projects
Commit c92022f0 authored by Hangzhi Yu's avatar Hangzhi Yu
Browse files

Add preference for priority group type in coursebook select field

parent cc8f29d6
No related branches found
No related tags found
1 merge request!394Resolve "Show class groups at top of group select"
Pipeline #192035 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