demo/templates/edit_partner.html
2026-01-29 16:09:09 +05:00

142 lines
7.7 KiB
HTML

{% extends "base.html" %}
{% block content %}
<div class="container mt-4">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">
<h2 class="card-title mb-0">
<i class="fas fa-edit"></i> Редактирование партнера
</h2>
</div>
<div class="card-body">
<!-- Flash сообщения -->
{% with messages = get_flashed_messages(with_categories=true) %}
{% if messages %}
{% for category, message in messages %}
<div class="alert alert-{{ 'danger' if category == 'error' else 'success' }} alert-dismissible fade show">
{{ message }}
<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
</div>
{% endfor %}
{% endif %}
{% endwith %}
<form method="POST" id="partnerForm">
<div class="row">
<!-- Основная информация -->
<div class="col-md-6">
<h5 class="border-bottom pb-2 mb-3">Основная информация</h5>
<div class="mb-3">
<label for="name" class="form-label">Название компании *</label>
<input type="text" class="form-control" id="name" name="name"
value="{{ partner.name }}" required maxlength="255">
</div>
<div class="mb-3">
<label for="director" class="form-label">Директор</label>
<input type="text" class="form-control" id="director" name="director"
value="{{ partner.director or '' }}" maxlength="255">
</div>
<div class="mb-3">
<label for="partner_type_id" class="form-label">Тип партнера *</label>
<select class="form-select" id="partner_type_id" name="partner_type_id" required>
<option value="">Выберите тип партнера</option>
{% for type in partner_types %}
<option value="{{ type.id }}"
{% if type.id == partner.partner_type_id %}selected{% endif %}>
{{ type.type_name }}
</option>
{% endfor %}
</select>
</div>
<div class="mb-3">
<label for="rating" class="form-label">Рейтинг</label>
<input type="number" class="form-control" id="rating" name="rating"
min="0" max="5" step="0.1" value="{{ partner.rating or 0.0 }}">
<div class="form-text">От 0.0 до 5.0</div>
</div>
</div>
<!-- Контактная информация -->
<div class="col-md-6">
<h5 class="border-bottom pb-2 mb-3">Контактная информация</h5>
<div class="mb-3">
<label for="email" class="form-label">Email *</label>
<input type="email" class="form-control" id="email" name="email"
value="{{ partner.email }}" required maxlength="255">
</div>
<div class="mb-3">
<label for="phone" class="form-label">Телефон</label>
<input type="tel" class="form-control" id="phone" name="phone"
value="{{ partner.phone or '' }}" maxlength="50">
</div>
<div class="mb-3">
<label for="inn" class="form-label">ИНН</label>
<input type="text" class="form-control" id="inn" name="inn"
value="{{ partner.inn or '' }}" maxlength="20" pattern="\d{10,12}">
<div class="form-text">10 или 12 цифр</div>
</div>
<div class="mb-3">
<label for="legal_address" class="form-label">Юридический адрес</label>
<textarea class="form-control" id="legal_address" name="legal_address"
rows="3" maxlength="500">{{ partner.legal_address or '' }}</textarea>
</div>
</div>
</div>
<div class="row mt-3">
<div class="col-12">
<div class="d-flex justify-content-between">
<a href="{{ url_for('index') }}" class="btn btn-secondary">
<i class="fas fa-arrow-left"></i> Назад к списку
</a>
<div>
<a href="{{ url_for('sales_history', partner_id=partner.id) }}"
class="btn btn-info me-2">
<i class="fas fa-history"></i> История продаж
</a>
<button type="submit" class="btn btn-success">
<i class="fas fa-save"></i> Сохранить изменения
</button>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
{% block scripts %}
<script>
// Валидация формы
document.getElementById('partnerForm').addEventListener('submit', function(e) {
const inn = document.getElementById('inn').value;
if (inn && !/^\d{10,12}$/.test(inn)) {
e.preventDefault();
alert('ИНН должен содержать 10 или 12 цифр');
return false;
}
const rating = parseFloat(document.getElementById('rating').value);
if (rating < 0 || rating > 5) {
e.preventDefault();
alert('Рейтинг должен быть от 0.0 до 5.0');
return false;
}
});
</script>
{% endblock %}