Add RRO, portal section perms, dislocation presets, and hiring intern flow.
Ship cash-register registry, section-based portal access, configurable dislocation columns, and trial-hire intern accounts with credentials PDF.
This commit is contained in:
@@ -3,7 +3,7 @@ from datetime import datetime
|
||||
from django.contrib.auth import get_user_model
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.db import models
|
||||
from django.db.models import Sum
|
||||
from django.db.models import Q, Sum
|
||||
from django.http import HttpResponseForbidden
|
||||
from django.shortcuts import get_object_or_404
|
||||
from django.utils import timezone
|
||||
@@ -22,9 +22,20 @@ Employee = get_user_model()
|
||||
|
||||
|
||||
def _is_it_staff(user):
|
||||
return user.is_superuser or user.groups.filter(name='IT').exists()
|
||||
from core.portal_access import user_can_access
|
||||
return user_can_access(user, 'it_manager')
|
||||
|
||||
|
||||
def _it_assignees():
|
||||
"""Кандидаты в исполнители: группа IT, а также staff/superuser
|
||||
(если в группу IT ещё никого не добавили — селект не пустой)."""
|
||||
return (
|
||||
Employee.objects.filter(is_active=True)
|
||||
.filter(Q(groups__name='IT') | Q(is_staff=True) | Q(is_superuser=True))
|
||||
.distinct()
|
||||
.order_by('last_name', 'first_name')
|
||||
)
|
||||
|
||||
def _directory_choices(type_code):
|
||||
"""(code, name)-кортежі активних записів довідника — та сама форма,
|
||||
що й колишні CharField(choices=...), для сумісності з шаблонами."""
|
||||
@@ -136,7 +147,7 @@ def _it_manager_context(request):
|
||||
'ticket_statuses': ticket_statuses,
|
||||
'ticket_priorities': _directory_choices('ticket_priority'),
|
||||
'ticket_types': _directory_choices('ticket_type'),
|
||||
'it_staff': Employee.objects.filter(groups__name='IT', is_active=True).order_by('last_name'),
|
||||
'it_staff': _it_assignees(),
|
||||
|
||||
'worklogs_page': worklogs_page,
|
||||
'worklog_types': _directory_choices('worklog_type'),
|
||||
|
||||
Reference in New Issue
Block a user