feat(admin): add excel upload flows for FNS reports and register lists
Some checks failed
CI/CD Pipeline / Code Quality Checks (push) Failing after 6m24s
CI/CD Pipeline / Run Tests (push) Successful in 20m30s
CI/CD Pipeline / Telegram Notify Success (push) Has been skipped

This commit is contained in:
2026-03-20 12:31:22 +01:00
parent c4b5b7f2c2
commit e470189f44
8 changed files with 485 additions and 5 deletions

View File

@@ -0,0 +1,8 @@
{% extends "admin/change_list.html" %}
{% block object-tools-items %}
<li>
<a href="{{ upload_excel_url }}" class="addlink">Загрузить Excel ФНС</a>
</li>
{{ block.super }}
{% endblock %}

View File

@@ -0,0 +1,36 @@
{% extends "admin/base_site.html" %}
{% block breadcrumbs %}
<div class="breadcrumbs">
<a href="{% url 'admin:index' %}">Главная</a>
&rsaquo; <a href="{{ changelist_url }}">Финансовые отчеты ФНС</a>
&rsaquo; Загрузка Excel
</div>
{% endblock %}
{% block content %}
<div id="content-main">
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<fieldset class="module aligned">
<div class="form-row">
<label for="id_files" class="required">Excel файлы:</label>
<input
type="file"
name="files"
id="id_files"
accept=".xlsx"
multiple
required
/>
<p class="help">Ожидаемый формат имени: fin_{id}_{ogrn}.xlsx</p>
</div>
</fieldset>
<div class="submit-row">
<input type="submit" value="Загрузить" class="default" />
<a href="{{ changelist_url }}" class="closelink">Отмена</a>
</div>
</form>
</div>
{% endblock %}

View File

@@ -0,0 +1,8 @@
{% extends "admin/change_list.html" %}
{% block object-tools-items %}
<li>
<a href="{{ upload_excel_url }}" class="addlink">Загрузить Excel организаций</a>
</li>
{{ block.super }}
{% endblock %}

View File

@@ -0,0 +1,47 @@
{% extends "admin/base_site.html" %}
{% block breadcrumbs %}
<div class="breadcrumbs">
<a href="{% url 'admin:index' %}">Главная</a>
&rsaquo; <a href="{{ changelist_url }}">Загрузки реестров</a>
&rsaquo; Загрузка Excel
</div>
{% endblock %}
{% block content %}
<div id="content-main">
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<fieldset class="module aligned">
<div class="form-row">
<label for="id_registry" class="required">Реестр:</label>
<select name="registry" id="id_registry" required>
<option value="">---------</option>
{% for registry in registries %}
<option value="{{ registry.id }}">{{ registry.name }}</option>
{% endfor %}
</select>
</div>
<div class="form-row">
<label for="id_actual_date">Дата актуальности:</label>
<input type="date" name="actual_date" id="id_actual_date" />
<p class="help">Если не указана, будет использована текущая дата.</p>
</div>
<div class="form-row">
<label for="id_file" class="required">Excel файл:</label>
<input type="file" name="file" id="id_file" accept=".xlsx" required />
<p class="help">
Ожидаемые колонки: pn_name, mn_ogrn, mn_inn, mn_okpo. Опционально: in_kpp.
</p>
</div>
</fieldset>
<div class="submit-row">
<input type="submit" value="Загрузить" class="default" />
<a href="{{ changelist_url }}" class="closelink">Отмена</a>
</div>
</form>
</div>
{% endblock %}