Add RRO, portal section perms, dislocation presets, and hiring intern flow.

Ship cash-register registry, section-based portal access, configurable dislocation columns, and trial-hire intern accounts with credentials PDF.
This commit is contained in:
2026-08-09 14:58:17 +03:00
parent 237275abd0
commit ae5c1f1848
63 changed files with 5987 additions and 2217 deletions
+27 -2
View File
@@ -278,6 +278,7 @@
<span class="nav-label-text">{% trans "Документы" %}</span>
</a>
{% if request.user|can_section:'email' %}
<a href="/email/" class="nav-item"
hx-get="/email/" hx-target="#main-content" hx-push-url="/email/"
hx-indicator="#loader" onclick="setActive(this)">
@@ -287,6 +288,7 @@
</svg>
<span class="nav-label-text">{% trans "Электронная почта" %}</span>
</a>
{% endif %}
<a href="/chat/" class="nav-item"
hx-get="/chat/" hx-target="#main-content" hx-push-url="/chat/"
@@ -306,6 +308,7 @@
<span class="nav-label-text">{% trans "Календарь" %}</span>
</a>
{% if request.user|can_section:'databases' %}
<a href="/databases/" class="nav-item"
hx-get="/databases/" hx-target="#main-content" hx-push-url="/databases/"
hx-indicator="#loader" onclick="setActive(this)">
@@ -314,7 +317,9 @@
</svg>
<span class="nav-label-text">{% trans "Базы данных" %}</span>
</a>
{% endif %}
{% if request.user|can_section:'reports' %}
<a href="/reports/" class="nav-item"
hx-get="/reports/" hx-target="#main-content" hx-push-url="/reports/"
hx-indicator="#loader" onclick="setActive(this)">
@@ -323,7 +328,9 @@
</svg>
<span class="nav-label-text">{% trans "Отчёты" %}</span>
</a>
{% endif %}
{% if request.user|can_section:'purchases' %}
<a href="/purchases/" class="nav-item"
hx-get="/purchases/" hx-target="#main-content" hx-push-url="/purchases/"
hx-indicator="#loader" onclick="setActive(this)">
@@ -333,7 +340,9 @@
</svg>
<span class="nav-label-text">{% trans "Закупки" %}</span>
</a>
{% endif %}
{% if request.user|can_section:'hr_portal' %}
<a href="/hr-portal/" class="nav-item"
hx-get="/hr-portal/" hx-target="#main-content" hx-push-url="/hr-portal/"
hx-indicator="#loader" onclick="setActive(this)">
@@ -342,6 +351,7 @@
</svg>
<span class="nav-label-text">{% trans "HR портал" %}</span>
</a>
{% endif %}
<a href="/settings/" class="nav-item"
hx-get="/settings/" hx-target="#main-content" hx-push-url="/settings/"
@@ -363,6 +373,7 @@
{% if request.user|can_section:'structure' %}
<a href="/structure/" class="nav-item"
hx-get="/structure/" hx-target="#main-content" hx-push-url="/structure/"
hx-indicator="#loader" onclick="setActive(this)">
@@ -371,6 +382,7 @@
</svg>
<span class="nav-label-text">{% trans "Структура" %}</span>
</a>
{% endif %}
<a href="/pharmacies/" class="nav-item"
hx-get="/pharmacies/" hx-target="#main-content" hx-push-url="/pharmacies/"
@@ -382,6 +394,15 @@
<span class="nav-label-text">{% trans "Аптеки" %}</span>
</a>
<a href="/rro/" class="nav-item"
hx-get="/rro/" hx-target="#main-content" hx-push-url="/rro/"
hx-indicator="#loader" onclick="setActive(this)">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<rect x="2" y="4" width="20" height="16" rx="2"/><path d="M6 8h.01M10 8h8M6 12h.01M10 12h8M6 16h.01M10 16h4"/>
</svg>
<span class="nav-label-text">{% trans "РРО / ПРРО" %}</span>
</a>
<a href="/utilities/" class="nav-item"
hx-get="/utilities/" hx-target="#main-content" hx-push-url="/utilities/"
hx-indicator="#loader" onclick="setActive(this)">
@@ -391,6 +412,7 @@
<span class="nav-label-text">{% trans "Коммунальные услуги" %}</span>
</a>
{% if request.user|can_section:'recruiting' %}
<a href="/recruiting/" class="nav-item"
hx-get="/recruiting/" hx-target="#main-content" hx-push-url="/recruiting/"
hx-indicator="#loader" onclick="setActive(this)">
@@ -401,7 +423,9 @@
</svg>
<span class="nav-label-text">{% trans "Рекрутинг" %}</span>
</a>
{% endif %}
{% if request.user|can_section:'timetrack' %}
<a href="/timetrack/" class="nav-item"
hx-get="/timetrack/" hx-target="#main-content" hx-push-url="/timetrack/"
hx-indicator="#loader" onclick="setActive(this)">
@@ -410,6 +434,7 @@
</svg>
<span class="nav-label-text">{% trans "Учёт рабочего времени" %}</span>
</a>
{% endif %}
</div>
</div>
@@ -439,7 +464,7 @@
<span class="nav-label-text">{% trans "Поддержка IT" %}</span>
</a>
{% if request.user|is_it_staff %}
{% if request.user|can_section:'it_manager' %}
<a href="/it-manager/" class="nav-item"
hx-get="/it-manager/" hx-target="#main-content" hx-push-url="/it-manager/"
hx-indicator="#loader" onclick="setActive(this)">
@@ -450,7 +475,7 @@
</a>
{% endif %}
{% if request.user.is_staff %}
{% if request.user|can_section:'ad_mapping' %}
<a href="/ad-mapping/" class="nav-item"
hx-get="/ad-mapping/" hx-target="#main-content" hx-push-url="/ad-mapping/"
hx-indicator="#loader" onclick="setActive(this)">