Добавил поис на странице реестра добавил еск для сброса фильтров
All checks were successful
Deploy MES Core / deploy (push) Successful in 11s
All checks were successful
Deploy MES Core / deploy (push) Successful in 11s
This commit is contained in:
@@ -435,6 +435,8 @@ class RegistryView(LoginRequiredMixin, ListView):
|
||||
# Диапазон дат, задаваемый пользователем. Если фильтры не активны или явно указан reset=1 — используем дефолты
|
||||
start_date = self.request.GET.get('start_date')
|
||||
end_date = self.request.GET.get('end_date')
|
||||
|
||||
q = (self.request.GET.get('q') or '').strip()
|
||||
# Дефолтный режим: последние 7 дней и только статус "В работе"
|
||||
is_default = (not filtered) or bool(reset)
|
||||
|
||||
@@ -451,6 +453,16 @@ class RegistryView(LoginRequiredMixin, ListView):
|
||||
|
||||
|
||||
# Ограничения по ролям
|
||||
if q:
|
||||
queryset = queryset.filter(
|
||||
Q(task__deal__number__icontains=q)
|
||||
| Q(task__drawing_name__icontains=q)
|
||||
| Q(task__entity__name__icontains=q)
|
||||
| Q(task__entity__drawing_number__icontains=q)
|
||||
| Q(task__material__name__icontains=q)
|
||||
| Q(task__material__full_name__icontains=q)
|
||||
)
|
||||
|
||||
if role == 'operator':
|
||||
user_machines = profile.machines.all() if profile else Machine.objects.none()
|
||||
queryset = queryset.filter(machine__in=user_machines)
|
||||
@@ -470,6 +482,7 @@ class RegistryView(LoginRequiredMixin, ListView):
|
||||
context['user_role'] = role
|
||||
context['user_roles'] = sorted(roles)
|
||||
context['is_readonly'] = bool(getattr(profile, 'is_readonly', False)) if profile else False
|
||||
context['q'] = (self.request.GET.get('q') or '').strip()
|
||||
|
||||
allowed_ws = list(profile.allowed_workshops.values_list('id', flat=True)) if profile else []
|
||||
context['allowed_workshop_ids'] = allowed_ws
|
||||
@@ -511,6 +524,16 @@ class RegistryView(LoginRequiredMixin, ListView):
|
||||
|
||||
work_qs = WorkItem.objects.select_related('deal', 'deal__company', 'entity', 'entity__planned_material', 'operation', 'machine', 'workshop')
|
||||
|
||||
q = (self.request.GET.get('q') or '').strip()
|
||||
if q:
|
||||
work_qs = work_qs.filter(
|
||||
Q(deal__number__icontains=q)
|
||||
| Q(entity__name__icontains=q)
|
||||
| Q(entity__drawing_number__icontains=q)
|
||||
| Q(entity__planned_material__name__icontains=q)
|
||||
| Q(entity__planned_material__full_name__icontains=q)
|
||||
)
|
||||
|
||||
m_ids = [int(i) for i in self.request.GET.getlist('m_ids') if str(i).isdigit()]
|
||||
if m_ids:
|
||||
work_qs = work_qs.filter(Q(machine_id__in=m_ids) | Q(machine_id__isnull=True))
|
||||
|
||||
Reference in New Issue
Block a user