Complete working state of the session. Will be split into two deploy phases (safety scaffolding then feature release) before merging to ai-dev. Includes: - Security fixes (email creds / SECRET_KEY / DEBUG / CSRF) - Backup + restore management commands and browser endpoints - WeasyPrint migration (replaces xhtml2pdf) - New Worker fields + WorkerCertificate + WorkerWarning models - Worker / Team / Project friendly management UIs - Dashboard cert-expiry card + Manage All buttons - Bootstrap tooltips (global init + theme-aware CSS) - Django admin template override (taller M2M pickers) - Money filter for ZAR currency formatting - Resources dropdown nav - Massive CLAUDE.md expansion + deploy plan docs Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
46 lines
1.7 KiB
HTML
46 lines
1.7 KiB
HTML
{% extends "admin/base.html" %}
|
|
{# ===========================================================
|
|
Minimal override of the default admin/base_site.html.
|
|
The sole purpose right now is to inject a small <style> block
|
|
into every Django admin page. Add more admin CSS tweaks here
|
|
as needed — keeps them in one place and isolated from the
|
|
main app's custom.css.
|
|
=========================================================== #}
|
|
|
|
{% block title %}{{ title }} | {{ site_title|default:_('Django site admin') }}{% endblock %}
|
|
|
|
{% block branding %}
|
|
<h1 id="site-header"><a href="{% url 'admin:index' %}">{{ site_header|default:_('Django administration') }}</a></h1>
|
|
{% endblock %}
|
|
|
|
{% block extrastyle %}{{ block.super }}
|
|
<style>
|
|
/* === FILTERED SELECT WIDGET (M2M pickers like Group permissions) ===
|
|
The default Django admin filtered-select has a fairly short
|
|
`height: 16em` on each side, so long permission lists need lots
|
|
of scrolling. Make both "Available" and "Chosen" boxes taller
|
|
by default — they expand with the viewport up to a cap.
|
|
Applies to any filter_horizontal / filter_vertical M2M field. */
|
|
.selector .selector-available select,
|
|
.selector .selector-chosen select {
|
|
min-height: 30em; /* was ~16em by default */
|
|
height: 30em;
|
|
}
|
|
/* On large screens, push a bit taller */
|
|
@media (min-height: 900px) {
|
|
.selector .selector-available select,
|
|
.selector .selector-chosen select {
|
|
min-height: 40em;
|
|
height: 40em;
|
|
}
|
|
}
|
|
/* Match the titles' layout so the boxes stay aligned */
|
|
.selector .selector-available,
|
|
.selector .selector-chosen {
|
|
height: auto;
|
|
}
|
|
</style>
|
|
{% endblock %}
|
|
|
|
{% block nav-global %}{% endblock %}
|