Добавил превьюшки дхф и настройки сервера
All checks were successful
Deploy MES Core / deploy (push) Successful in 3m32s
All checks were successful
Deploy MES Core / deploy (push) Successful in 3m32s
This commit is contained in:
@@ -25,7 +25,7 @@
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<form method="post" id="mainForm" class="card-body p-4">
|
||||
<form method="post" enctype="multipart/form-data" id="mainForm" class="card-body p-4">
|
||||
{% csrf_token %}
|
||||
<input type="hidden" name="next" value="{{ back_url }}">
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<small class="text-muted d-block">Материал</small>
|
||||
<strong>{{ item.task.material.name }}</strong>
|
||||
<strong>{{ item.task.material.full_name|default:item.task.material.name }}</strong>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<small class="text-muted d-block">План</small>
|
||||
@@ -60,9 +60,67 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-4 d-flex gap-2">
|
||||
{% if item.task.drawing_file %}<a href="{{ item.task.drawing_file.url }}" target="_blank" class="btn btn-outline-info btn-sm">DXF</a>{% endif %}
|
||||
{% if item.task.extra_drawing %}<a href="{{ item.task.extra_drawing.url }}" target="_blank" class="btn btn-outline-danger btn-sm">PDF</a>{% endif %}
|
||||
<div class="row g-3 mb-4 border-bottom border-secondary pb-3 text-body">
|
||||
<div class="col-md-6">
|
||||
<small class="text-muted d-block">Размер детали</small>
|
||||
<strong>{{ item.task.size_value|default:"-" }}</strong>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<small class="text-muted d-block">Габариты заготовки</small>
|
||||
<strong>{{ item.task.blank_dimensions|default:"—" }}</strong>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="mb-4">
|
||||
<div class="small text-muted mb-2">Превью</div>
|
||||
<div class="row g-3">
|
||||
<div class="col-md-8">
|
||||
<div class="border border-secondary rounded p-2" style="height: 200px; overflow: hidden;">
|
||||
{% if item.task.preview_image %}
|
||||
<img src="{{ item.task.preview_image.url }}" alt="Превью DXF" style="max-width:100%; max-height:100%; object-fit:contain; display:block; margin:0 auto;">
|
||||
{% else %}
|
||||
<div style="width:100%; height:100%;"></div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="mb-3">
|
||||
<div class="d-flex align-items-center gap-2 mb-2">
|
||||
{% if item.task.drawing_file %}
|
||||
<a href="{{ item.task.drawing_file.url }}" target="_blank" class="btn btn-sm btn-outline-info p-1" title="DXF/STEP">
|
||||
<i class="bi bi-file-earmark-code"></i>
|
||||
</a>
|
||||
{% else %}
|
||||
<span class="btn btn-sm btn-outline-secondary p-1 disabled" title="DXF/STEP">
|
||||
<i class="bi bi-file-earmark-code"></i>
|
||||
</span>
|
||||
{% endif %}
|
||||
<div class="small text-muted">DXF/STEP</div>
|
||||
</div>
|
||||
{% if user_role == 'admin' %}
|
||||
<input type="file" name="drawing_file" class="form-control border-secondary" accept=".dxf,.iges,.igs,.step,.stp">
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div class="d-flex align-items-center gap-2 mb-2">
|
||||
{% if item.task.extra_drawing %}
|
||||
<a href="{{ item.task.extra_drawing.url }}" target="_blank" class="btn btn-sm btn-outline-danger p-1" title="PDF">
|
||||
<i class="bi bi-file-pdf"></i>
|
||||
</a>
|
||||
{% else %}
|
||||
<span class="btn btn-sm btn-outline-secondary p-1 disabled" title="PDF">
|
||||
<i class="bi bi-file-pdf"></i>
|
||||
</span>
|
||||
{% endif %}
|
||||
<div class="small text-muted">PDF</div>
|
||||
</div>
|
||||
{% if user_role == 'admin' %}
|
||||
<input type="file" name="extra_drawing" class="form-control border-secondary" accept="application/pdf">
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<input type="hidden" name="status" id="id_status" value="{{ item.status }}">
|
||||
|
||||
72
shiftflow/templates/shiftflow/maintenance.html
Normal file
72
shiftflow/templates/shiftflow/maintenance.html
Normal file
@@ -0,0 +1,72 @@
|
||||
{% extends 'base.html' %}
|
||||
{% load l10n %}
|
||||
|
||||
{% block content %}
|
||||
<div class="card shadow border-secondary">
|
||||
<div class="card-header border-secondary py-3 d-flex justify-content-between align-items-center">
|
||||
<h3 class="text-accent mb-0"><i class="bi bi-tools me-2"></i>Обслуживание сервера</h3>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<div class="text-muted small mb-3">
|
||||
Здесь настраиваем и обслуживаем генерацию превью DXF (PNG) на сервере.
|
||||
</div>
|
||||
|
||||
<div class="card border-secondary mb-3">
|
||||
<div class="card-header border-secondary py-2">
|
||||
<strong>DXF</strong>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<form method="post" class="row g-3 align-items-end">
|
||||
{% csrf_token %}
|
||||
|
||||
<div class="col-md-3">
|
||||
<label class="small text-muted">Цвет превью</label>
|
||||
<input type="color" name="line_color" class="form-control form-control-color border-secondary" value="{{ dxf_settings.line_color|default:'#006400'|slice:':7' }}">
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<label class="small text-muted">Толщина линии (коэфф.)</label>
|
||||
<input type="number" step="0.1" min="0.1" name="lineweight_scaling" class="form-control border-secondary" value="{{ dxf_settings.lineweight_scaling|default_if_none:1.0|unlocalize }}">
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<label class="small text-muted">Мин. толщина (мм)</label>
|
||||
<input type="number" step="0.05" min="0" name="min_lineweight" class="form-control border-secondary" value="{{ dxf_settings.min_lineweight|default_if_none:0.1|unlocalize }}">
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" id="keepColors" name="keep_original_colors" {% if dxf_settings.keep_original_colors %}checked{% endif %}>
|
||||
<label class="form-check-label" for="keepColors">Оставить оригинальные цвета</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-12 d-flex gap-2">
|
||||
<button type="submit" class="btn btn-outline-accent" name="action" value="save_settings">
|
||||
<i class="bi bi-save me-2"></i>Сохранить настройки
|
||||
</button>
|
||||
<button type="submit" class="btn btn-outline-accent" name="action" value="update_previews">
|
||||
<i class="bi bi-arrow-repeat me-2"></i>Обновить превьюшки DXF
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div class="col-12">
|
||||
<div class="text-muted small">
|
||||
Пакетное обновление пробегает по сделкам в статусах «Зашла» и «В работе».
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if messages %}
|
||||
<div class="mt-3">
|
||||
{% for message in messages %}
|
||||
<div class="alert alert-{{ message.tags }}">{{ message }}</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
@@ -35,7 +35,7 @@
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="row g-3">
|
||||
<div class="col-md-8">
|
||||
<div class="col-12">
|
||||
<label class="form-label small text-muted">{{ form.drawing_name.label }}</label>
|
||||
{{ form.drawing_name }}
|
||||
{% for e in form.drawing_name.errors %}<div class="text-danger small">{{ e }}</div>{% endfor %}
|
||||
@@ -50,7 +50,7 @@
|
||||
{{ form.size_value }}
|
||||
{% for e in form.size_value.errors %}<div class="text-danger small">{{ e }}</div>{% endfor %}
|
||||
</div>
|
||||
<div class="col-md-8 d-flex align-items-end">
|
||||
<div class="col-md-4 d-flex align-items-end">
|
||||
<div class="form-check form-switch">
|
||||
{{ form.is_bend }}
|
||||
<label class="form-check-label ms-2">{{ form.is_bend.label }}</label>
|
||||
|
||||
Reference in New Issue
Block a user