it_manager/locations: редактор шаблона этикеток, раздельная печать QR/EAN и карточка поставщика.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -464,9 +464,13 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for vendor in vendors %}
|
||||
<tr class="tr-hover dislo-vendor-row" style="border-bottom:1px solid var(--color-border);"
|
||||
<tr class="tr-hover dislo-vendor-row" style="border-bottom:1px solid var(--color-border); cursor:pointer;"
|
||||
data-name="{{ vendor.name|default:''|escape }}"
|
||||
data-status="{% if vendor.is_active %}active{% else %}inactive{% endif %}">
|
||||
data-status="{% if vendor.is_active %}active{% else %}inactive{% endif %}"
|
||||
hx-get="/dislocation/vendors/{{ vendor.pk }}/"
|
||||
hx-target="#main-content"
|
||||
hx-push-url="/dislocation/vendors/{{ vendor.pk }}/"
|
||||
hx-indicator="#loader">
|
||||
<td style="padding:0.625rem 1rem; color:var(--color-card-foreground); font-weight:500;">{{ vendor.name|default:"—" }}</td>
|
||||
<td style="padding:0.625rem 1rem; color:var(--color-muted-foreground);">{{ vendor.location_region.name|default:"—" }}</td>
|
||||
<td style="padding:0.625rem 1rem; color:var(--color-foreground);">
|
||||
@@ -485,15 +489,16 @@
|
||||
{% endif %}
|
||||
</td>
|
||||
{% if can_manage_vendors %}
|
||||
<td style="padding:0.625rem 1rem; text-align:right;">
|
||||
<td style="padding:0.625rem 1rem; text-align:right;" onclick="event.stopPropagation();">
|
||||
<button type="button" class="btn btn-ghost" style="font-size:0.75rem; padding:0.25rem 0.5rem;"
|
||||
onclick="disloVendorEdit({{ vendor.pk }})"
|
||||
onclick="event.stopPropagation(); disloVendorEdit({{ vendor.pk }})"
|
||||
data-name="{{ vendor.name|escapejs }}"
|
||||
data-region="{{ vendor.location_region_id|default:'' }}"
|
||||
data-street="{{ vendor.street|escapejs }}"
|
||||
data-house="{{ vendor.house_number|escapejs }}"
|
||||
data-building="{{ vendor.building|escapejs }}"
|
||||
data-apartment="{{ vendor.apartment|escapejs }}"
|
||||
data-location="{{ vendor.location|escapejs }}"
|
||||
data-comments="{{ vendor.comments|escapejs }}"
|
||||
data-active="{% if vendor.is_active %}1{% else %}0{% endif %}">{% trans "Изменить" %}</button>
|
||||
</td>
|
||||
@@ -551,6 +556,10 @@
|
||||
{{ vendor_form.apartment }}
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<label style="display:block; font-size:0.8125rem; font-weight:500; color:var(--color-foreground); margin-bottom:0.375rem;">{% trans "Координаты" %} <span style="font-weight:400; color:var(--color-muted-foreground);">lat,lng</span></label>
|
||||
{{ vendor_form.location }}
|
||||
</div>
|
||||
<div>
|
||||
<label style="display:block; font-size:0.8125rem; font-weight:500; color:var(--color-foreground); margin-bottom:0.375rem;">{% trans "Комментарий" %}</label>
|
||||
{{ vendor_form.comments }}
|
||||
@@ -652,7 +661,7 @@ function disloVendorPanelOpen() {
|
||||
if (nameEl) nameEl.value = '';
|
||||
const regionEl = form.querySelector('[name="location_region"]');
|
||||
if (regionEl) regionEl.value = '';
|
||||
['street', 'house_number', 'building', 'apartment', 'comments'].forEach(function (n) {
|
||||
['street', 'house_number', 'building', 'apartment', 'location', 'comments'].forEach(function (n) {
|
||||
const el = form.querySelector('[name="' + n + '"]');
|
||||
if (el) el.value = '';
|
||||
});
|
||||
@@ -672,7 +681,7 @@ function disloVendorPanelClose() {
|
||||
function disloVendorEdit(pk) {
|
||||
const form = document.getElementById('dislo-vendor-form');
|
||||
if (!form) return;
|
||||
const btn = document.querySelector('button[onclick="disloVendorEdit(' + pk + ')"]');
|
||||
const btn = document.querySelector('button[onclick*="disloVendorEdit(' + pk + ')"]');
|
||||
if (!btn) return;
|
||||
form.setAttribute('hx-post', '/dislocation/vendors/' + pk + '/update/');
|
||||
if (window.htmx) htmx.process(form);
|
||||
@@ -688,6 +697,7 @@ function disloVendorEdit(pk) {
|
||||
set('house_number', btn.dataset.house);
|
||||
set('building', btn.dataset.building);
|
||||
set('apartment', btn.dataset.apartment);
|
||||
set('location', btn.dataset.location);
|
||||
set('comments', btn.dataset.comments);
|
||||
const activeEl = form.querySelector('[name="is_active"]');
|
||||
if (activeEl) activeEl.checked = btn.dataset.active === '1';
|
||||
|
||||
Reference in New Issue
Block a user