Metadata-Version: 2.4
Name: django-admindigo
Version: 0.1.2
Summary: Tema índigo simples para o Django Admin: paleta navy/azul + linha de alerta de Admin.
Project-URL: Homepage, https://github.com/LisandroGuerra/django-admindigo
Project-URL: Repository, https://github.com/LisandroGuerra/django-admindigo
Project-URL: Issues, https://github.com/LisandroGuerra/django-admindigo/issues
Project-URL: Changelog, https://github.com/LisandroGuerra/django-admindigo/blob/main/CHANGELOG.md
Author-email: Lisandro Guerra <lisandro.digital@gmail.com>
License: MIT
License-File: LICENSE
Keywords: admin,blue,django,indigo,theme
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Framework :: Django :: 4.2
Classifier: Framework :: Django :: 5.0
Classifier: Framework :: Django :: 5.1
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Requires-Python: >=3.10
Requires-Dist: django>=4.2
Provides-Extra: test
Requires-Dist: pytest-django>=4.8; extra == 'test'
Requires-Dist: pytest>=8; extra == 'test'
Description-Content-Type: text/markdown

# django-admindigo

[![CI](https://github.com/LisandroGuerra/django-admindigo/actions/workflows/ci.yml/badge.svg)](https://github.com/LisandroGuerra/django-admindigo/actions/workflows/ci.yml)
[![PyPI](https://img.shields.io/pypi/v/django-admindigo?logo=pypi&logoColor=white)](https://pypi.org/project/django-admindigo/)
[![Python](https://img.shields.io/pypi/pyversions/django-admindigo?logo=python&logoColor=white)](https://pypi.org/project/django-admindigo/)
[![Django](https://img.shields.io/badge/django-4.2%20%7C%205.0%20%7C%205.1-092E20.svg)](https://www.djangoproject.com/)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)

Tema **índigo simples** para o Django Admin, empacotado como app reutilizável.
Aplica uma identidade visual azul/navy (`#002133` / `#00314D`, acento `#1B5589`)
ao admin e adiciona uma **linha fina vermelha fixa no topo**, alertando que você
está no ambiente administrativo.

- 🎨 Cabeçalho, breadcrumbs, botões, títulos e links na paleta índigo.
- 🛡️ Linha de alerta vermelha persistente no topo (você está no Admin!).
- 🏷️ Logo padrão neutro na marca do admin (substituível).
- 🌓 Funciona nos temas claro e escuro do admin do Django.
- 🔆 Botão de tema (claro/escuro/automático) também na tela de login, que o admin
  normalmente esconde para usuários anônimos.
- ⚙️ Zero código: configurável apenas por `settings`.

![Django Admin com o tema django-admindigo](docs/screenshot.png)

> Dashboard do admin com o tema aplicado e o branding padrão (`Administração`).
> O texto é configurável via `ADMINDIGO_SITE_HEADER`.

## Requisitos

- Python ≥ 3.10
- Django ≥ 4.2

## Instalação

### 1. Instale o pacote

**Via PyPI:**

```sh
pip install django-admindigo
```

**Direto do GitHub** (última versão da branch `main`):

```sh
pip install "git+https://github.com/LisandroGuerra/django-admindigo.git"
```

**De uma tag/versão específica:**

```sh
pip install "git+https://github.com/LisandroGuerra/django-admindigo.git@v0.1.0"
```

**Local, para desenvolvimento** (modo editável):

```sh
git clone https://github.com/LisandroGuerra/django-admindigo.git
pip install -e ./django-admindigo
```

Em `pyproject.toml` (uv / PEP 621):

```toml
dependencies = ["django-admindigo"]

# durante o desenvolvimento, apontando para um diretório local:
[tool.uv.sources]
django-admindigo = { path = "../django-admindigo" }
```

### 2. Registre o app **antes** de `django.contrib.admin`

```python
# settings.py
INSTALLED_APPS = [
    "admindigo",                # <-- OBRIGATÓRIO: antes do admin
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.sessions",
    "django.contrib.messages",
    "django.contrib.staticfiles",
    # seus apps...
]
```

> Por que antes? O tema sobrescreve `admin/base_site.html`. Com o loader
> `APP_DIRS=True`, o Django procura templates na ordem do `INSTALLED_APPS`, então
> o `admindigo` precisa aparecer antes do admin para ter prioridade.

### 3. Garanta o serviço de arquivos estáticos

`django.contrib.staticfiles` deve estar no `INSTALLED_APPS` e `STATIC_URL`
definido. **Em produção**, rode `collectstatic` e sirva os estáticos por um
servidor real (ex.: [WhiteNoise](https://whitenoise.readthedocs.io/) ou nginx):

```sh
python manage.py collectstatic --noinput
```

Pronto. Acesse `/admin/`.

## Configuração

Tudo via `settings.py` — sem escrever templates:

```python
ADMINDIGO_SITE_HEADER = "Meu Sistema · Administração"  # marca no topo + <title>
ADMINDIGO_SITE_TITLE  = "Meu Sistema Admin"            # <title> da aba
ADMINDIGO_INDEX_TITLE = "Painel"                        # título do dashboard
ADMINDIGO_LOGO        = "minhaapp/img/logo.svg"         # caminho em static/ ou URL
```

| Setting | Padrão | Descrição |
|---|---|---|
| `ADMINDIGO_SITE_HEADER` | `"Administração"` | Texto da marca + título |
| `ADMINDIGO_SITE_TITLE` | `"Admin"` | `<title>` das páginas |
| `ADMINDIGO_INDEX_TITLE` | `"Painel administrativo"` | Título do dashboard |
| `ADMINDIGO_LOGO` | logo neutro embutido | Caminho em `static/` **ou** URL absoluta / iniciada por `/` |

> Um `admin.py` do projeto que defina `admin.site.site_header` tem prioridade
> sobre `ADMINDIGO_SITE_HEADER` (o tema só preenche o padrão).

### Personalizar as cores

As cores vêm de CSS custom properties. Para ajustar, carregue um CSS próprio
depois do tema (ex.: criando seu `admin/base_site.html` que estende o do tema e
adiciona um `<link>` no bloco `extrastyle`), sobrescrevendo:

```css
:root {
  --admindigo-primary:   #002133;  /* cabeçalho / títulos */
  --admindigo-secondary: #00314D;  /* breadcrumbs / botões */
  --admindigo-accent:    #1B5589;  /* hover / links */
  --admindigo-alert:     #c62828;  /* linha de alerta no topo */
}
```

## Como funciona

- Sobrescreve `admin/base_site.html` (marca + injeção do CSS via bloco
  `extrastyle`).
- Mapeia as variáveis nativas do admin (`--header-bg`, `--primary`, …) e reforça
  com seletores diretos, cobrindo tema claro e escuro.
- A linha de alerta é um `body::before` fixo de 3px.
- Os títulos do admin são preenchidos por um `AppConfig.ready()` a partir das
  settings `ADMINDIGO_*`.

## Desenvolvimento

```sh
git clone https://github.com/LisandroGuerra/django-admindigo.git
cd django-admindigo
pip install -e ".[test]"
pytest
```

Veja [CONTRIBUTING.md](CONTRIBUTING.md) para detalhes (build, testes e release).

## Licença

[MIT](LICENSE) © Lisandro Guerra
