Update app.py
Browse files
app.py
CHANGED
|
@@ -3197,7 +3197,9 @@ INVENTORY_CONTENT = """
|
|
| 3197 |
<div id="modal-scanner-add" class="mb-2" style="display:none;"></div>
|
| 3198 |
<hr>
|
| 3199 |
<h6>Варианты товара</h6>
|
| 3200 |
-
<div
|
|
|
|
|
|
|
| 3201 |
<button type="button" class="btn btn-sm btn-outline-success mt-2" id="add-variant-btn-add">Добавить вариант</button>
|
| 3202 |
</div>
|
| 3203 |
<div class="modal-footer"><button type="submit" class="btn btn-primary">Сохранить</button></div>
|
|
@@ -3220,34 +3222,36 @@ INVENTORY_CONTENT = """
|
|
| 3220 |
</div>
|
| 3221 |
<hr>
|
| 3222 |
<h6>Варианты товара</h6>
|
| 3223 |
-
<div
|
| 3224 |
-
{
|
| 3225 |
-
|
| 3226 |
-
|
| 3227 |
-
|
| 3228 |
-
|
| 3229 |
-
|
| 3230 |
-
|
| 3231 |
-
|
| 3232 |
-
|
| 3233 |
-
|
| 3234 |
-
|
| 3235 |
-
|
| 3236 |
-
|
| 3237 |
-
|
| 3238 |
-
|
| 3239 |
-
|
| 3240 |
-
|
| 3241 |
-
|
| 3242 |
-
|
| 3243 |
-
|
| 3244 |
-
|
| 3245 |
-
|
| 3246 |
-
|
| 3247 |
-
|
| 3248 |
-
|
|
|
|
|
|
|
|
|
|
| 3249 |
</div>
|
| 3250 |
-
{% endfor %}
|
| 3251 |
</div>
|
| 3252 |
<button type="button" class="btn btn-sm btn-outline-success mt-2 add-variant-btn-edit" data-target-container="variants-container-edit-{{ p.id }}">Добавить вариант</button>
|
| 3253 |
</div>
|
|
@@ -4583,4 +4587,4 @@ if __name__ == '__main__':
|
|
| 4583 |
backup_thread.start()
|
| 4584 |
for key in DATA_FILES.keys():
|
| 4585 |
load_json_data(key)
|
| 4586 |
-
app.run(debug=False, host='0.0.0.0', port=7860, use_reloader=False)
|
|
|
|
| 3197 |
<div id="modal-scanner-add" class="mb-2" style="display:none;"></div>
|
| 3198 |
<hr>
|
| 3199 |
<h6>Варианты товара</h6>
|
| 3200 |
+
<div style="max-height: 40vh; overflow-y: auto; padding: 10px; border: 1px solid #dee2e6; border-radius: .25rem;" class="mb-2">
|
| 3201 |
+
<div id="variants-container-add"></div>
|
| 3202 |
+
</div>
|
| 3203 |
<button type="button" class="btn btn-sm btn-outline-success mt-2" id="add-variant-btn-add">Добавить вариант</button>
|
| 3204 |
</div>
|
| 3205 |
<div class="modal-footer"><button type="submit" class="btn btn-primary">Сохранить</button></div>
|
|
|
|
| 3222 |
</div>
|
| 3223 |
<hr>
|
| 3224 |
<h6>Варианты товара</h6>
|
| 3225 |
+
<div style="max-height: 40vh; overflow-y: auto; padding: 10px; border: 1px solid #dee2e6; border-radius: .25rem;" class="mb-2">
|
| 3226 |
+
<div id="variants-container-edit-{{ p.id }}">
|
| 3227 |
+
{% for v in p.variants %}
|
| 3228 |
+
<div class="card mb-3 variant-row">
|
| 3229 |
+
<div class="card-body">
|
| 3230 |
+
<input type="hidden" name="variant_id[]" value="{{ v.id }}">
|
| 3231 |
+
<div class="row g-2 align-items-center">
|
| 3232 |
+
<div class="col-12 col-md-3">
|
| 3233 |
+
<img src="{{ v.image_url if v.image_url else url_for('static', filename='placeholder.png') }}" class="img-thumbnail variant-preview mb-1" style="width: 80px; height: 80px; object-fit: cover;">
|
| 3234 |
+
<input type="file" class="form-control form-control-sm variant-image-upload" accept="image/*">
|
| 3235 |
+
<input type="hidden" class="variant-image-url-input" name="variant_image_url[]" value="{{ v.image_url }}">
|
| 3236 |
+
</div>
|
| 3237 |
+
<div class="col-12 col-md-9">
|
| 3238 |
+
<div class="row g-2">
|
| 3239 |
+
<div class="col-12"><label>Название варианта</label><input type="text" name="variant_name[]" class="form-control" value="{{ v.option_value }}" required></div>
|
| 3240 |
+
<div class="col-12 col-sm-4"><label>Цена Общая</label><input type="text" name="variant_price_regular[]" class="form-control" value="{{ v.get('price_regular', v.get('price'))|string|replace('.', ',') }}" inputmode="decimal"></div>
|
| 3241 |
+
<div class="col-12 col-sm-4"><label>Цена Мин.</label><input type="text" name="variant_price_min[]" class="form-control" value="{{ v.get('price_min', '0.00')|string|replace('.', ',') }}" inputmode="decimal"></div>
|
| 3242 |
+
<div class="col-12 col-sm-4"><label>Цена Опт.</label><input type="text" name="variant_price_wholesale[]" class="form-control" value="{{ v.get('price_wholesale', '0.00')|string|replace('.', ',') }}" inputmode="decimal"></div>
|
| 3243 |
+
<div class="col-12 col-sm-6"><label>Себестоимость</label><input type="text" name="variant_cost_price[]" class="form-control" value="{{ v.cost_price|string|replace('.', ',') }}" inputmode="decimal"></div>
|
| 3244 |
+
<div class="col-12 col-sm-6"><label>Остаток</label><input type="number" name="variant_stock[]" class="form-control" value="{{ v.stock }}"></div>
|
| 3245 |
+
</div>
|
| 3246 |
+
</div>
|
| 3247 |
+
<div class="col-12 text-end">
|
| 3248 |
+
<button type="button" class="btn btn-sm btn-danger remove-variant-btn"><i class="fas fa-times"></i> Удалить вариант</button>
|
| 3249 |
+
</div>
|
| 3250 |
+
</div>
|
| 3251 |
+
</div>
|
| 3252 |
+
</div>
|
| 3253 |
+
{% endfor %}
|
| 3254 |
</div>
|
|
|
|
| 3255 |
</div>
|
| 3256 |
<button type="button" class="btn btn-sm btn-outline-success mt-2 add-variant-btn-edit" data-target-container="variants-container-edit-{{ p.id }}">Добавить вариант</button>
|
| 3257 |
</div>
|
|
|
|
| 4587 |
backup_thread.start()
|
| 4588 |
for key in DATA_FILES.keys():
|
| 4589 |
load_json_data(key)
|
| 4590 |
+
app.run(debug=False, host='0.0.0.0', port=7860, use_reloader=False)
|