Улучшен layout страницы клиента: две колонки вверху

- Информация о клиенте — левая колонка (col-md-6)
- Операции с кошельком — правая колонка (col-md-6)
- Баланс кошелька перенесён из таблицы в заголовок блока операций
- История кошелька и история заказов остаются в полную ширину
- Компактный вертикальный layout форм в правой колонке
This commit is contained in:
2025-11-29 18:48:43 +03:00
parent 4b7241bcfc
commit c4e83fd535

View File

@@ -19,7 +19,7 @@
<div class="row"> <div class="row">
<!-- Customer Info --> <!-- Customer Info -->
<div class="col-md-12"> <div class="col-md-6">
<div class="card mb-4"> <div class="card mb-4">
<div class="card-header"> <div class="card-header">
<h5>Информация о клиенте</h5> <h5>Информация о клиенте</h5>
@@ -42,18 +42,6 @@
<th>Сумма покупок:</th> <th>Сумма покупок:</th>
<td>{{ customer.total_spent|floatformat:2 }} руб.</td> <td>{{ customer.total_spent|floatformat:2 }} руб.</td>
</tr> </tr>
<tr>
<th>Баланс кошелька:</th>
<td>
{% if customer.wallet_balance > 0 %}
<span class="badge bg-success" style="font-size: 1.1em;">{{ customer.wallet_balance|floatformat:2 }} руб.</span>
{% elif customer.wallet_balance == 0 %}
<span class="badge bg-secondary">{{ customer.wallet_balance|floatformat:2 }} руб.</span>
{% else %}
<span class="badge bg-danger">{{ customer.wallet_balance|floatformat:2 }} руб.</span>
{% endif %}
</td>
</tr>
<tr> <tr>
<th>Общий долг по активным заказам:</th> <th>Общий долг по активным заказам:</th>
<td> <td>
@@ -83,15 +71,22 @@
</div> </div>
<!-- Операции с кошельком --> <!-- Операции с кошельком -->
<div class="col-md-12"> <div class="col-md-6">
<div class="card mb-4"> <div class="card mb-4">
<div class="card-header"> <div class="card-header d-flex justify-content-between align-items-center">
<h5>Операции с кошельком клиента</h5> <h5 class="mb-0">Операции с кошельком клиента</h5>
<span>
{% if customer.wallet_balance > 0 %}
<span class="badge bg-success" style="font-size: 1.1em;">{{ customer.wallet_balance|floatformat:2 }} руб.</span>
{% elif customer.wallet_balance == 0 %}
<span class="badge bg-secondary" style="font-size: 1.1em;">{{ customer.wallet_balance|floatformat:2 }} руб.</span>
{% else %}
<span class="badge bg-danger" style="font-size: 1.1em;">{{ customer.wallet_balance|floatformat:2 }} руб.</span>
{% endif %}
</span>
</div> </div>
<div class="card-body"> <div class="card-body">
<div class="row">
<!-- Пополнение --> <!-- Пополнение -->
<div class="col-md-6">
<h6 class="text-success mb-3"><i class="bi bi-plus-circle"></i> Пополнение кошелька</h6> <h6 class="text-success mb-3"><i class="bi bi-plus-circle"></i> Пополнение кошелька</h6>
<form method="post" action="{% url 'customers:wallet-deposit' customer.pk %}"> <form method="post" action="{% url 'customers:wallet-deposit' customer.pk %}">
{% csrf_token %} {% csrf_token %}
@@ -105,7 +100,6 @@
name="amount" name="amount"
placeholder="0.00" placeholder="0.00"
required> required>
<div style="height: 1.25rem;"></div>
</div> </div>
<div class="mb-3"> <div class="mb-3">
<label for="wallet_deposit_description" class="form-label">Описание (обязательно)</label> <label for="wallet_deposit_description" class="form-label">Описание (обязательно)</label>
@@ -116,13 +110,13 @@
placeholder="Например: Подарок, компенсация за некачественный товар" placeholder="Например: Подарок, компенсация за некачественный товар"
required></textarea> required></textarea>
</div> </div>
<button type="submit" class="btn btn-success w-100"><i class="bi bi-plus-circle"></i> Пополнить кошелёк</button> <button type="submit" class="btn btn-success w-100 mb-4"><i class="bi bi-plus-circle"></i> Пополнить кошелёк</button>
</form> </form>
</div>
<hr>
<!-- Возврат / списание --> <!-- Возврат / списание -->
<div class="col-md-6"> <h6 class="text-danger mb-3 mt-4"><i class="bi bi-dash-circle"></i> Возврат / списание с кошелька</h6>
<h6 class="text-danger mb-3"><i class="bi bi-dash-circle"></i> Возврат / списание с кошелька</h6>
<form method="post" action="{% url 'customers:wallet-withdraw' customer.pk %}"> <form method="post" action="{% url 'customers:wallet-withdraw' customer.pk %}">
{% csrf_token %} {% csrf_token %}
<div class="mb-3"> <div class="mb-3">
@@ -136,7 +130,7 @@
name="amount" name="amount"
placeholder="0.00" placeholder="0.00"
required> required>
<small class="text-muted d-block" style="height: 1.25rem; line-height: 1.25rem;">Макс: {{ customer.wallet_balance|floatformat:2 }} руб.</small> <small class="text-muted d-block">Макс: {{ customer.wallet_balance|floatformat:2 }} руб.</small>
</div> </div>
<div class="mb-3"> <div class="mb-3">
<label for="wallet_withdraw_description" class="form-label">Описание (обязательно)</label> <label for="wallet_withdraw_description" class="form-label">Описание (обязательно)</label>
@@ -149,10 +143,9 @@
</div> </div>
<button type="submit" class="btn btn-danger w-100"><i class="bi bi-dash-circle"></i> Списать с кошелька</button> <button type="submit" class="btn btn-danger w-100"><i class="bi bi-dash-circle"></i> Списать с кошелька</button>
</form> </form>
</div>
</div> <div class="alert alert-info mb-0 mt-4">
<div class="alert alert-info mb-0 mt-3"> <i class="bi bi-info-circle"></i> Все операции автоматически логируются в истории транзакций ниже.
<i class="bi bi-info-circle"></i> Все операции с кошельком автоматически логируются в истории транзакций ниже.
</div> </div>
</div> </div>
</div> </div>