- Migrated all 28 CSS components to SCSS architecture
- Deleted 29 source CSS files (kept only compiled app.css & bootstrap-custom.css)
- Created 30 SCSS component modules in scss/components/
- Cleaned 24 templates from duplicate CSS links
- Updated main.scss with new imports (layout-spacing, spacing-utils, rightbar-calendar)
- Filled empty _navbar.scss with content
- Refactored css/ folder: removed obsolete files, updated README.md
- Created comprehensive documentation (migration complete, quick reference, reports)
Migration Statistics:
- Components migrated: 28 (~4,768 lines SCSS)
- CSS files deleted: 29
- Templates cleaned: 24
- app.css size: 95 KB (compiled from SCSS)
- bootstrap-custom.css: 301 KB
- Total: 396 KB
Phase 6 Complete: 100% SCSS architecture achieved ✅
50 lines
1.7 KiB
HTML
50 lines
1.7 KiB
HTML
{% extends 'base.html' %}
|
|
{% load static django_bootstrap5 %}
|
|
|
|
{% block title %}Мои заявления{% endblock %}
|
|
|
|
{% block extra_css %}{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="container">
|
|
<div class="row gx-0">
|
|
<div class="col-12">
|
|
|
|
{# — Шапка страницы — #}
|
|
{% include "includes/components/page_header.html" with icon="bi-file-earmark-text" title="Мои заявления" search_id="requestFilter" search_placeholder="Поиск по типу или комментарию" create_url="requests_app:request_create" create_text="Подать новое заявление" %}
|
|
|
|
<div class="card mb-3">
|
|
<div id="requestList" class="list-view card-list">
|
|
{# Список загружается через JavaScript из requestListHandler.js #}
|
|
<div class="text-center py-4">
|
|
<div class="spinner-border text-primary" role="status">
|
|
<span class="visually-hidden">Загрузка...</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|
|
|
|
{% block extra_js %}
|
|
<script type="module">
|
|
import { initRequestListHandler } from "{% static 'js/components/requestListHandler.js' %}";
|
|
|
|
// Получаем токен доступа
|
|
const accessMeta = document.querySelector('meta[name="api-access"]');
|
|
const ACCESS = accessMeta ? accessMeta.content : '';
|
|
const headers = ACCESS ? { 'Authorization': 'Bearer ' + ACCESS } : {};
|
|
|
|
// Инициализация списка заявлений
|
|
initRequestListHandler({
|
|
apiListUrl: '/api/v1/requests/',
|
|
scope: 'my',
|
|
userId: {{ user.id }},
|
|
headers
|
|
});
|
|
</script>
|
|
{% endblock %}
|