Конкретно пересмотрел логику работы. Легаси вынесена в архив
All checks were successful
Deploy MES Core / deploy (push) Successful in 13s
All checks were successful
Deploy MES Core / deploy (push) Successful in 13s
This commit is contained in:
60
templates/components/_add_to_deal.html
Normal file
60
templates/components/_add_to_deal.html
Normal file
@@ -0,0 +1,60 @@
|
||||
{% if can_add_to_deal %}
|
||||
<button type="button" class="btn btn-outline-accent btn-sm" data-bs-toggle="modal" data-bs-target="#addToDealModal{{ entity.id }}">
|
||||
Добавить в сделку
|
||||
</button>
|
||||
|
||||
<div class="modal fade" id="addToDealModal{{ entity.id }}" tabindex="-1" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<form method="post" action="{% url 'deal_item_upsert' %}" class="modal-content border-secondary">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="entity_id" value="{{ entity.id }}">
|
||||
<input type="hidden" name="next" value="{{ request.get_full_path }}">
|
||||
|
||||
<div class="modal-header border-secondary">
|
||||
<h5 class="modal-title">Добавить в сделку</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Закрыть"></button>
|
||||
</div>
|
||||
|
||||
<div class="modal-body">
|
||||
<div class="row g-2">
|
||||
<div class="col-md-8">
|
||||
<label class="form-label">Сделка (Зашла)</label>
|
||||
<select class="form-select bg-body text-body border-secondary" name="deal_id" required {% if not deals_for_add %}disabled{% endif %}>
|
||||
{% if deals_for_add %}
|
||||
{% for d in deals_for_add %}
|
||||
<option value="{{ d.id }}">{{ d.number }}{% if d.company %} ({{ d.company }}){% endif %}</option>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<option value="">Нет сделок в статусе «Зашла»</option>
|
||||
{% endif %}
|
||||
</select>
|
||||
{% if not deals_for_add %}
|
||||
<div class="form-text text-danger">Нечего добавить: нет сделок в статусе «Зашла».</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="col-md-4">
|
||||
<label class="form-label">Кол-во, шт</label>
|
||||
<input class="form-control bg-body text-body border-secondary" type="number" name="quantity" value="1" min="1" required>
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">Отгрузка (опц.)</label>
|
||||
<input class="form-control bg-body text-body border-secondary" type="date" name="due_date">
|
||||
</div>
|
||||
|
||||
<div class="col-md-6">
|
||||
<label class="form-label">Компонент</label>
|
||||
<input class="form-control bg-body text-body border-secondary" value="{{ entity }}" disabled>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer border-secondary">
|
||||
<button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Отмена</button>
|
||||
<button type="submit" class="btn btn-outline-accent">Добавить</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
@@ -1,61 +0,0 @@
|
||||
<nav class="navbar navbar-expand-lg border-bottom shadow-sm">
|
||||
<div class="container-fluid">
|
||||
<a class="navbar-brand fw-bold text-accent" href="/">
|
||||
<i class="bi bi-gear-fill me-2"></i>ShiftFlow
|
||||
</a>
|
||||
|
||||
<button class="navbar-toggler text-light border-secondary" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
|
||||
<span class="navbar-toggler-icon" style="filter: invert(1);"></span>
|
||||
</button>
|
||||
|
||||
<div class="collapse navbar-collapse">
|
||||
<ul class="navbar-nav me-auto">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if request.resolver_match.url_name == 'items_list' %}active{% endif %}" href="{% url 'registry' %}">Реестр</a>
|
||||
</li>
|
||||
|
||||
{% if user_role in 'admin,technologist' %}
|
||||
<li class="nav-item"><a class="nav-link" href="#">Планирование</a></li>
|
||||
{% endif %}
|
||||
|
||||
{% if user_role in 'admin,technologist,master,operator' %}
|
||||
<li class="nav-item"><a class="nav-link" href="#">Закрытие</a></li>
|
||||
{% endif %}
|
||||
|
||||
{% if user_role in 'admin,technologist,clerk' %}
|
||||
<li class="nav-item"><a class="nav-link" href="#">Списание</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
|
||||
<div class="d-flex align-items-center gap-3">
|
||||
<span class="badge bg-secondary opacity-75 px-3 py-2 fw-normal">
|
||||
<i class="bi bi-person-circle me-1"></i>
|
||||
{% if user_role == 'admin' %}Админ
|
||||
{% elif user_role == 'technologist' %}Технолог
|
||||
{% elif user_role == 'master' %}Мастер
|
||||
{% elif user_role == 'operator' %}Оператор
|
||||
{% elif user_role == 'clerk' %}Учетчик
|
||||
{% endif %}
|
||||
({{ request.user.username|upper }})
|
||||
</span>
|
||||
|
||||
{% if user_role == 'admin' %}
|
||||
<a href="/admin/" class="btn btn-link text-decoration-none text-reset p-0" title="Админка">
|
||||
<i class="bi bi-shield-lock fs-5"></i>
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
<button class="btn btn-link text-reset p-0" onclick="toggleTheme()" title="Сменить тему">
|
||||
<i id="theme-icon" class="bi fs-5"></i>
|
||||
</button>
|
||||
|
||||
<form action="{% url 'logout' %}" method="post" class="d-inline">
|
||||
{% csrf_token %}
|
||||
<button type="submit" class="btn btn-link text-danger p-0 ms-2" title="Выйти">
|
||||
<i class="bi bi-box-arrow-right fs-5"></i>
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
@@ -14,11 +14,24 @@
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if request.resolver_match.url_name == 'registry' %}active{% endif %}" href="{% url 'registry' %}">Реестр</a>
|
||||
</li>
|
||||
|
||||
{% if user_role in 'admin,supply,observer,clerk,prod_head,director' %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if request.resolver_match.url_name == 'procurement' %}active{% endif %}" href="{% url 'procurement' %}">Снабжение</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if user_role in 'admin,technologist,master,clerk,observer' %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if request.resolver_match.url_name == 'planning' or request.resolver_match.url_name == 'planning_deal' %}active{% endif %}" href="{% url 'planning' %}">Сделки</a>
|
||||
</li>
|
||||
|
||||
{% if user_role in 'admin,technologist,master,clerk' %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if request.resolver_match.url_name == 'planning_stages' %}active{% endif %}" href="{% url 'planning_stages' %}">План</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if request.resolver_match.url_name == 'customers' or request.resolver_match.url_name == 'customer_deals' %}active{% endif %}" href="{% url 'customers' %}">Заказчик</a>
|
||||
</li>
|
||||
@@ -27,24 +40,51 @@
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if user_role in 'admin,technologist,observer' or request.user.is_superuser %}
|
||||
{% if user_role in 'admin,technologist,master,clerk,observer,prod_head,director' %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if request.resolver_match.url_name == 'products' %}active{% endif %}" href="{% url 'products' %}">Изделия</a>
|
||||
<a class="nav-link {% if request.resolver_match.url_name == 'directories' or request.resolver_match.url_name == 'materials_catalog' or request.resolver_match.url_name == 'material_categories_catalog' or request.resolver_match.url_name == 'steel_grades_catalog' or request.resolver_match.url_name == 'supply_catalog' or request.resolver_match.url_name == 'locations_catalog' or request.resolver_match.url_name == 'workshops_catalog' or request.resolver_match.url_name == 'workshop_detail' or request.resolver_match.url_name == 'machines_catalog' %}active{% endif %}" href="{% url 'directories' %}">Справочники</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if user_role in 'admin,master,operator,observer' %}
|
||||
{% if user_role == 'admin' or user_role == 'technologist' or user_role == 'observer' or request.user.is_superuser %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if request.resolver_match.url_name == 'closing' %}active{% endif %}" href="{% url 'closing' %}">Закрытие</a>
|
||||
<a class="nav-link {% if request.resolver_match.url_name == 'products' or request.resolver_match.url_name == 'product_detail' or request.resolver_match.url_name == 'product_info' %}active{% endif %}" href="{% url 'products' %}">Изделия</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if user_role in 'admin,clerk,observer' %}
|
||||
{% if user_role in 'admin,master,operator,prod_head' %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if request.resolver_match.url_name == 'closing_workitems' or request.resolver_match.url_name == 'closing' %}active{% endif %}" href="{% url 'closing_workitems' %}">Закрытие</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
{% if user_role in 'admin,clerk,observer,prod_head,director' %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if request.resolver_match.url_name == 'writeoffs' %}active{% endif %}" href="{% url 'writeoffs' %}">Списание</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle {% if request.resolver_match.url_name == 'legacy_registry' or request.resolver_match.url_name == 'legacy_closing' %}active{% endif %}" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
Архив
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li>
|
||||
<a class="dropdown-item" href="{% url 'legacy_registry' %}">Архив / Реестр</a>
|
||||
</li>
|
||||
{% if user_role in 'admin,master,operator,prod_head' %}
|
||||
<li>
|
||||
<a class="dropdown-item" href="{% url 'legacy_closing' %}">Архив / Закрытие</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% if user_role in 'admin,clerk,observer,prod_head,director' %}
|
||||
<li>
|
||||
<a class="dropdown-item" href="{% url 'legacy_writeoffs' %}">Архив / Списание</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</li>
|
||||
|
||||
{% if user_role == 'admin' %}
|
||||
<li class="nav-item">
|
||||
<a class="nav-link {% if request.resolver_match.url_name == 'maintenance' %}active{% endif %}" href="{% url 'maintenance' %}">Обслуживание сервера</a>
|
||||
|
||||
Reference in New Issue
Block a user