Files
MES_Core/shiftflow/views.py
tertelius b256bec04b
All checks were successful
Deploy MES Core / deploy (push) Successful in 8s
добавил детальный вид итема, пока недопиленый
2026-03-29 02:49:28 +03:00

57 lines
2.8 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from django.shortcuts import redirect
from django.urls import reverse_lazy
from django.views.generic import TemplateView, ListView, UpdateView
from django.contrib.auth.mixins import LoginRequiredMixin
from .models import Item # Проверь, как точно называется твоя модель деталей/заказов
# Класс главной страницы (роутер)
class IndexView(TemplateView):
template_name = 'shiftflow/landing.html'
def get(self, request, *args, **kwargs):
# Если юзер авторизован — сразу отправляем его в реестр
if request.user.is_authenticated:
return redirect('registry')
# Если нет — показываем кнопку "Войти"
return super().get(request, *args, **kwargs)
# Класс реестра деталей (защищен LoginRequiredMixin)
class RegistryView(LoginRequiredMixin, ListView):
model = Item
template_name = 'shiftflow/registry.html'
context_object_name = 'items'
def get_queryset(self):
# Позже здесь добавим: .filter(machine__in=request.user.profile.machines.all())
# Сортируем: сначала статус (по алфавиту или логике choices),
# затем по дате (свежие сверху), по станку и по номеру сделки
return Item.objects.all().order_by('status', '-date', 'machine__name', 'deal__number')
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
# Передаем роль в шаблон, чтобы скрывать/показывать кнопки
if hasattr(self.request.user, 'profile'):
context['user_role'] = self.request.user.profile.role
return context
# Вьюха детального вида и редактирования
class ItemUpdateView(LoginRequiredMixin, UpdateView):
model = Item
template_name = 'shiftflow/item_detail.html'
# Перечисляем поля, которые можно редактировать (укажи нужные)
fields = [
'drawing_name', 'machine', 'quantity_plan', 'quantity_fact',
'material', 'size_value', 'status', 'is_synced_1c', 'extra_drawing'
]
context_object_name = 'item'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
# Обязательно добавляем роль в контекст этого шаблона!
if hasattr(self.request.user, 'profile'):
context['user_role'] = self.request.user.profile.role
return context
def get_success_url(self):
# После сохранения возвращаемся в реестр
return reverse_lazy('registry')