начал работать с интерфейсом
All checks were successful
Deploy MES Core / deploy (push) Successful in 9s
All checks were successful
Deploy MES Core / deploy (push) Successful in 9s
This commit is contained in:
65
shiftflow/templates/shiftflow/items_list copy.html
Normal file
65
shiftflow/templates/shiftflow/items_list copy.html
Normal file
@@ -0,0 +1,65 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block content %}
|
||||
{% include 'shiftflow/partials/_filter.html' %}
|
||||
|
||||
{% if not selected_machines %}
|
||||
<div class="alert alert-warning text-center mt-4">
|
||||
<i class="bi bi-info-circle me-2"></i> Станки не выбраны. Выберите станки в фильтре для отображения позиций.
|
||||
</div>
|
||||
{% else %}
|
||||
|
||||
{% if in_work is not None %}
|
||||
<h6 class="text-primary mt-4 fw-bold"><i class="bi bi-play-circle me-2"></i>В РАБОТЕ</h6>
|
||||
<div class="table-responsive rounded border shadow-sm mb-4">
|
||||
<table class="table table-hover align-middle mb-0">
|
||||
<thead class="table-custom-header small fw-bold text-uppercase">
|
||||
<tr>
|
||||
<th style="width: 80px;">Сделка</th>
|
||||
<th>Деталь / Чертеж</th>
|
||||
<th>Материал</th>
|
||||
<th class="text-center">План</th>
|
||||
<th class="text-center">Факт</th>
|
||||
{% if user_role in 'admin,technologist,master,operator' %}
|
||||
<th class="text-end">Действия</th>
|
||||
{% endif %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in in_work %}
|
||||
<tr>
|
||||
<td class="small">{{ item.deal.number }}</td>
|
||||
<td><strong>{{ item.drawing_name }}</strong> <small class="text-muted">({{ item.machine.name }})</small></td>
|
||||
<td><span class="badge bg-secondary opacity-75">{{ item.material.name }}</span></td>
|
||||
<td class="text-center fw-bold">{{ item.quantity_plan }}</td>
|
||||
<td class="text-center" style="width: 100px;">
|
||||
<input type="number" class="form-control form-control-sm text-center" value="{{ item.quantity_fact|default:0 }}" {% if user_role == 'clerk' %}readonly{% endif %}>
|
||||
</td>
|
||||
{% if user_role in 'admin,technologist,master,operator' %}
|
||||
<td class="text-end">
|
||||
<button class="btn btn-sm btn-outline-success"><i class="bi bi-check2-all"></i></button>
|
||||
</td>
|
||||
{% endif %}
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr><td colspan="6" class="text-center py-4 text-muted small">Активных заданий нет</td></tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if backlog is not None %}
|
||||
<h6 class="text-danger fw-bold"><i class="bi bi-exclamation-triangle me-2"></i>НЕДОДЕЛЫ (ХВОСТЫ)</h6>
|
||||
<div class="table-responsive rounded border shadow-sm mb-4">
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if done_items is not None %}
|
||||
<h6 class="text-success fw-bold"><i class="bi bi-check-circle me-2"></i>ЗАВЕРШЕНО</h6>
|
||||
<div class="table-responsive rounded border shadow-sm">
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
38
shiftflow/templates/shiftflow/items_list.html
Normal file
38
shiftflow/templates/shiftflow/items_list.html
Normal file
@@ -0,0 +1,38 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block content %}
|
||||
<div class="card shadow bg-dark text-light border-secondary">
|
||||
<div class="card-header border-secondary d-flex justify-content-between align-items-center">
|
||||
<h3 class="text-accent mb-0">Реестр деталей</h3>
|
||||
{% if user_role == 'admin' or user_role == 'technologist' %}
|
||||
<button class="btn btn-sm btn-outline-accent">+ Добавить заказ</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<table class="table table-dark table-hover">
|
||||
<thead>
|
||||
<tr class="table-custom-header">
|
||||
<th>ID</th>
|
||||
<th>Наименование</th>
|
||||
<th>Кол-во</th>
|
||||
<th>Статус</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in items %}
|
||||
<tr>
|
||||
<td>{{ item.id }}</td>
|
||||
<td>{{ item.name }}</td>
|
||||
<td>{{ item.quantity }}</td>
|
||||
<td><span class="badge bg-secondary">{{ item.status }}</span></td>
|
||||
</tr>
|
||||
{% empty %}
|
||||
<tr>
|
||||
<td colspan="4" class="text-center text-muted">Деталей пока нет</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
12
shiftflow/templates/shiftflow/landing.html
Normal file
12
shiftflow/templates/shiftflow/landing.html
Normal file
@@ -0,0 +1,12 @@
|
||||
{% extends 'base.html' %}
|
||||
|
||||
{% block content %}
|
||||
<div class="text-center">
|
||||
<h1 class="text-accent mb-4 display-3 fw-bold">
|
||||
<i class="bi bi-gear-fill me-3"></i>ShiftFlow
|
||||
</h1>
|
||||
<a href="{% url 'login' %}" class="btn btn-lg btn-outline-accent px-5 py-3 fw-bold shadow">
|
||||
ВОЙТИ В СИСТЕМУ
|
||||
</a>
|
||||
</div>
|
||||
{% endblock %}
|
||||
45
shiftflow/templates/shiftflow/partials/_filter.html
Normal file
45
shiftflow/templates/shiftflow/partials/_filter.html
Normal file
@@ -0,0 +1,45 @@
|
||||
<div class="card border-secondary mb-3 shadow-sm">
|
||||
<div class="card-body py-2">
|
||||
<form method="get" id="filter-form" class="row g-2 align-items-center">
|
||||
<input type="hidden" name="filtered" value="1"> <div class="col-md-4">
|
||||
<div class="small text-muted mb-1 fw-bold">Станки:</div>
|
||||
<div class="d-flex flex-wrap gap-1">
|
||||
{% for m in machines %}
|
||||
<div>
|
||||
<input type="checkbox" class="btn-check" name="m_ids" id="m_{{ m.id }}" value="{{ m.id }}"
|
||||
{% if m.id in selected_machines %}checked{% endif %} onchange="this.form.submit()">
|
||||
<label class="btn btn-outline-accent btn-sm" for="m_{{ m.id }}">{{ m.name }}</label>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="small text-muted mb-1 fw-bold">Статус:</div>
|
||||
<div class="d-flex flex-wrap gap-1">
|
||||
<input type="checkbox" class="btn-check" name="statuses" id="s_work" value="work" {% if 'work' in selected_statuses %}checked{% endif %} onchange="this.form.submit()">
|
||||
<label class="btn btn-outline-primary btn-sm" for="s_work">В работе</label>
|
||||
|
||||
<input type="checkbox" class="btn-check" name="statuses" id="s_partial" value="partial" {% if 'partial' in selected_statuses %}checked{% endif %} onchange="this.form.submit()">
|
||||
<label class="btn btn-outline-danger btn-sm" for="s_partial">Недодел</label>
|
||||
|
||||
<input type="checkbox" class="btn-check" name="statuses" id="s_done" value="done" {% if 'done' in selected_statuses %}checked{% endif %} onchange="this.form.submit()">
|
||||
<label class="btn btn-outline-success btn-sm" for="s_done">Завершено</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-2">
|
||||
<label class="small text-muted mb-1 fw-bold">С:</label>
|
||||
<input type="date" name="start_date" class="form-control form-control-sm" value="{{ start_date }}" onchange="this.form.submit()">
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<label class="small text-muted mb-1 fw-bold">По:</label>
|
||||
<input type="date" name="end_date" class="form-control form-control-sm" value="{{ end_date }}" onchange="this.form.submit()">
|
||||
</div>
|
||||
|
||||
<div class="col-md-1 text-end mt-auto">
|
||||
<a href="{% url 'registry' %}" class="btn btn-outline-secondary btn-sm w-100" title="Сбросить по умолчанию"><i class="bi bi-x-circle"></i></a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user