Update app.py
Browse files
app.py
CHANGED
|
@@ -1808,7 +1808,7 @@ ADMIN_ORDERS_TEMPLATE = '''
|
|
| 1808 |
<head>
|
| 1809 |
<meta charset="UTF-8">
|
| 1810 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 1811 |
-
<title>История заказов - {{ settings
|
| 1812 |
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap" rel="stylesheet">
|
| 1813 |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
|
| 1814 |
<style>
|
|
@@ -1851,29 +1851,29 @@ ADMIN_ORDERS_TEMPLATE = '''
|
|
| 1851 |
<div class="order-item">
|
| 1852 |
<div class="order-header">
|
| 1853 |
<div>
|
| 1854 |
-
<span class="order-id">Заказ #{{ order
|
| 1855 |
-
<span class="order-date">{{ order
|
| 1856 |
</div>
|
| 1857 |
<div style="display: flex; gap: 8px; align-items: center;">
|
| 1858 |
-
<a href="{{ url_for('order_invoice', env_id=env_id, order_id=order
|
| 1859 |
-
<form method="POST" action="{{ url_for('delete_order', env_id=env_id, order_id=order
|
| 1860 |
<button type="submit" class="button delete-button"><i class="fas fa-trash-alt"></i></button>
|
| 1861 |
</form>
|
| 1862 |
</div>
|
| 1863 |
</div>
|
| 1864 |
<div class="customer-info">
|
| 1865 |
-
<p><strong>Покупатель:</strong> {{ order
|
| 1866 |
-
<p><strong>Телефон:</strong> <a href="tel:{{ order
|
| 1867 |
</div>
|
| 1868 |
<div class="order-details">
|
| 1869 |
-
{% for pid, item in order
|
| 1870 |
<div class="product-row">
|
| 1871 |
-
<span>{{ item
|
| 1872 |
-
<span>{{ "%.2f"|format(item
|
| 1873 |
</div>
|
| 1874 |
{% endfor %}
|
| 1875 |
<div class="order-total">
|
| 1876 |
-
Итого: {{ "%.2f"|format(order
|
| 1877 |
</div>
|
| 1878 |
</div>
|
| 1879 |
</div>
|
|
@@ -2163,7 +2163,7 @@ def admin(env_id):
|
|
| 2163 |
elif b_type == 'pdf':
|
| 2164 |
b_url = ''
|
| 2165 |
pdf_file = request.files.get('block_pdf')
|
| 2166 |
-
if pdf_file
|
| 2167 |
try:
|
| 2168 |
ext = os.path.splitext(pdf_file.filename)[1].lower()
|
| 2169 |
pdf_filename = f"pdf_{uuid4().hex[:8]}{ext}"
|
|
@@ -2531,4 +2531,4 @@ if __name__ == '__main__':
|
|
| 2531 |
backup_thread = threading.Thread(target=periodic_backup, daemon=True)
|
| 2532 |
backup_thread.start()
|
| 2533 |
port = int(os.environ.get('PORT', 7860))
|
| 2534 |
-
app.run(debug=False, host='0.0.0.0', port=port)
|
|
|
|
| 1808 |
<head>
|
| 1809 |
<meta charset="UTF-8">
|
| 1810 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
| 1811 |
+
<title>История заказов - {{ settings.organization_name }}</title>
|
| 1812 |
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap" rel="stylesheet">
|
| 1813 |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
|
| 1814 |
<style>
|
|
|
|
| 1851 |
<div class="order-item">
|
| 1852 |
<div class="order-header">
|
| 1853 |
<div>
|
| 1854 |
+
<span class="order-id">Заказ #{{ order.id }}</span>
|
| 1855 |
+
<span class="order-date">{{ order.date }}</span>
|
| 1856 |
</div>
|
| 1857 |
<div style="display: flex; gap: 8px; align-items: center;">
|
| 1858 |
+
<a href="{{ url_for('order_invoice', env_id=env_id, order_id=order.id) }}" target="_blank" class="button" style="padding: 6px 12px; font-size: 0.9rem; min-height: 38px;"><i class="fas fa-file-invoice"></i> Накладная</a>
|
| 1859 |
+
<form method="POST" action="{{ url_for('delete_order', env_id=env_id, order_id=order.id) }}" style="margin: 0;" onsubmit="return confirm('Вы уверены, что хотите удалить этот заказ из истории?');">
|
| 1860 |
<button type="submit" class="button delete-button"><i class="fas fa-trash-alt"></i></button>
|
| 1861 |
</form>
|
| 1862 |
</div>
|
| 1863 |
</div>
|
| 1864 |
<div class="customer-info">
|
| 1865 |
+
<p><strong>Покупатель:</strong> {{ order.customer_name }}</p>
|
| 1866 |
+
<p><strong>Телефон:</strong> <a href="tel:{{ order.customer_phone }}">{{ order.customer_phone }}</a></p>
|
| 1867 |
</div>
|
| 1868 |
<div class="order-details">
|
| 1869 |
+
{% for pid, item in order.items.items() %}
|
| 1870 |
<div class="product-row">
|
| 1871 |
+
<span>{{ item.name }} ({{ item.qty }} шт.)</span>
|
| 1872 |
+
<span>{{ "%.2f"|format(item.price * item.qty) }} {{ currency }}</span>
|
| 1873 |
</div>
|
| 1874 |
{% endfor %}
|
| 1875 |
<div class="order-total">
|
| 1876 |
+
Итого: {{ "%.2f"|format(order.total) }} {{ currency }}
|
| 1877 |
</div>
|
| 1878 |
</div>
|
| 1879 |
</div>
|
|
|
|
| 2163 |
elif b_type == 'pdf':
|
| 2164 |
b_url = ''
|
| 2165 |
pdf_file = request.files.get('block_pdf')
|
| 2166 |
+
if pdf_file and pdf_file.filename and HF_TOKEN_WRITE:
|
| 2167 |
try:
|
| 2168 |
ext = os.path.splitext(pdf_file.filename)[1].lower()
|
| 2169 |
pdf_filename = f"pdf_{uuid4().hex[:8]}{ext}"
|
|
|
|
| 2531 |
backup_thread = threading.Thread(target=periodic_backup, daemon=True)
|
| 2532 |
backup_thread.start()
|
| 2533 |
port = int(os.environ.get('PORT', 7860))
|
| 2534 |
+
app.run(debug=False, host='0.0.0.0', port=port)
|