diff --git a/helpdesk/forms.py b/helpdesk/forms.py index 4d811a15..2d9aae4b 100644 --- a/helpdesk/forms.py +++ b/helpdesk/forms.py @@ -19,7 +19,7 @@ from helpdesk.lib import ( convert_value, process_attachments, safe_template_context, - get_active_users, + get_assignable_users, ) from helpdesk.models import ( Checklist, @@ -478,7 +478,10 @@ class TicketForm(AbstractTicketForm): self.fields["queue"].choices = queue_choices self.fields["body"].required = body_reqd self.fields["assigned_to"].choices = [("", "--------")] + [ - (u.id, u.get_username()) for u in get_active_users() + (u.id, u.get_username()) + for u in get_assignable_users( + helpdesk_settings.HELPDESK_STAFF_ONLY_TICKET_OWNERS + ) ] self._add_form_custom_fields() @@ -635,13 +638,9 @@ class TicketCCForm(forms.ModelForm): def __init__(self, *args, **kwargs): super(TicketCCForm, self).__init__(*args, **kwargs) - if helpdesk_settings.HELPDESK_STAFF_ONLY_TICKET_CC: - users = User.objects.filter(is_active=True, is_staff=True).order_by( - User.USERNAME_FIELD - ) - else: - users = User.objects.filter(is_active=True).order_by(User.USERNAME_FIELD) - self.fields["user"].queryset = users + self.fields["user"].queryset = get_assignable_users( + helpdesk_settings.HELPDESK_STAFF_ONLY_TICKET_CC + ) class TicketCCUserForm(forms.ModelForm): @@ -649,13 +648,9 @@ class TicketCCUserForm(forms.ModelForm): def __init__(self, *args, **kwargs): super(TicketCCUserForm, self).__init__(*args, **kwargs) - if helpdesk_settings.HELPDESK_STAFF_ONLY_TICKET_CC: - users = User.objects.filter(is_active=True, is_staff=True).order_by( - User.USERNAME_FIELD - ) - else: - users = User.objects.filter(is_active=True).order_by(User.USERNAME_FIELD) - self.fields["user"].queryset = users + self.fields["user"].queryset = get_assignable_users( + helpdesk_settings.HELPDESK_STAFF_ONLY_TICKET_CC + ) class Meta: model = TicketCC diff --git a/helpdesk/lib.py b/helpdesk/lib.py index 9132650d..c0a7b6a1 100644 --- a/helpdesk/lib.py +++ b/helpdesk/lib.py @@ -284,10 +284,10 @@ def daily_time_spent_calculation(earliest, latest, open_hours): return time_spent_seconds -def get_active_users() -> QuerySet: - users = User.objects.filter(is_active=True).order_by(User.USERNAME_FIELD) +def get_assignable_users(filter_staff: bool) -> QuerySet: + users = User.objects.filter(is_active=True) - if helpdesk_settings.HELPDESK_STAFF_ONLY_TICKET_OWNERS: + if filter_staff: users = users.filter(is_staff=True) - return users + return users.order_by(User.USERNAME_FIELD) diff --git a/helpdesk/templates/helpdesk/filters/owner.html b/helpdesk/templates/helpdesk/filters/owner.html index 6e1335e7..c9ab82de 100644 --- a/helpdesk/templates/helpdesk/filters/owner.html +++ b/helpdesk/templates/helpdesk/filters/owner.html @@ -12,7 +12,7 @@ {% trans "Unassigned" %} {% endwith %} - {% for u in user_choices %} + {% for u in assignable_users %} diff --git a/helpdesk/templates/helpdesk/ticket.html b/helpdesk/templates/helpdesk/ticket.html index da3422d7..17eda33c 100644 --- a/helpdesk/templates/helpdesk/ticket.html +++ b/helpdesk/templates/helpdesk/ticket.html @@ -159,7 +159,14 @@
- +