diff --git a/.claude/settings.json b/.claude/settings.json index cb5d10b..e001fcd 100644 --- a/.claude/settings.json +++ b/.claude/settings.json @@ -40,7 +40,37 @@ "Bash(\"/c/Program Files/Google/Chrome/Application/chrome.exe\" --headless --disable-gpu --screenshot=\"/c/Users/Depaula/AppData/Local/Temp/claude/c--Users-Depaula-Documents-Portal/3716cfa9-a698-43f6-a74f-de0707c027aa/scratchpad/dc-header5.png\" --window-size=1680,300 \"file:///C:/Users/Depaula/AppData/Local/Temp/claude/c--Users-Depaula-Documents-Portal/3716cfa9-a698-43f6-a74f-de0707c027aa/scratchpad/test-dc-header5.html\")", "Bash(\"/c/Program Files/Google/Chrome/Application/chrome.exe\" --headless --disable-gpu --screenshot=\"/c/Users/Depaula/AppData/Local/Temp/claude/c--Users-Depaula-Documents-Portal/3716cfa9-a698-43f6-a74f-de0707c027aa/scratchpad/dc-header6.png\" --window-size=1680,300 \"file:///C:/Users/Depaula/AppData/Local/Temp/claude/c--Users-Depaula-Documents-Portal/3716cfa9-a698-43f6-a74f-de0707c027aa/scratchpad/test-dc-header6.html\")", "Bash(sed 's/justify-content: space-between;/justify-content: space-between;\\\\n flex-wrap: wrap;/' test-dc-header2.html)", - "Bash(\"/c/Program Files/Google/Chrome/Application/chrome.exe\" --headless --disable-gpu --screenshot=\"/c/Users/Depaula/AppData/Local/Temp/claude/c--Users-Depaula-Documents-Portal/3716cfa9-a698-43f6-a74f-de0707c027aa/scratchpad/dc-header7.png\" --window-size=1200,300 \"file:///C:/Users/Depaula/AppData/Local/Temp/claude/c--Users-Depaula-Documents-Portal/3716cfa9-a698-43f6-a74f-de0707c027aa/scratchpad/test-dc-header7.html\")" + "Bash(\"/c/Program Files/Google/Chrome/Application/chrome.exe\" --headless --disable-gpu --screenshot=\"/c/Users/Depaula/AppData/Local/Temp/claude/c--Users-Depaula-Documents-Portal/3716cfa9-a698-43f6-a74f-de0707c027aa/scratchpad/dc-header7.png\" --window-size=1200,300 \"file:///C:/Users/Depaula/AppData/Local/Temp/claude/c--Users-Depaula-Documents-Portal/3716cfa9-a698-43f6-a74f-de0707c027aa/scratchpad/test-dc-header7.html\")", + "Bash(python3 -c ' *)", + "Bash(\"/c/Users/Depaula/Documents/Portal/.venv/Scripts/python.exe\" --version)", + "Bash(/c/Users/Depaula/Documents/Portal/.venv/Scripts/python.exe -c ' *)", + "Bash(cp \"C:\\\\Users\\\\Depaula\\\\Documents\\\\Logos\\\\P.I.D. Logo Design Halloween\\\\pid-marca-halloween\\\\pid-halloween-favicon.svg\" \"static/img/pid-halloween-favicon.svg\")", + "Bash(cp \"C:\\\\Users\\\\Depaula\\\\Documents\\\\Logos\\\\P.I.D. Logo Design Halloween\\\\pid-marca-halloween\\\\pid-halloween-icone-escuro.svg\" \"static/img/pid-halloween-icone-escuro.svg\")", + "Bash(cp \"C:\\\\Users\\\\Depaula\\\\Documents\\\\Logos\\\\P.I.D. Logo Design Halloween\\\\pid-marca-halloween\\\\pid-halloween-logo-horizontal-escuro.svg\" \"static/img/pid-halloween-logo-horizontal-escuro.svg\")", + "Bash(\"/c/Users/Depaula/Documents/Portal/.venv/Scripts/python.exe\" _scratch_insert_seasonal.py)", + "Bash(rm _scratch_insert_seasonal.py)", + "Bash(\"/c/Users/Depaula/Documents/Portal/.venv/Scripts/python.exe\" manage.py check)", + "Bash(grep -n '`' static/js/seasonal-theme.js)", + "Bash(netstat -ano)", + "Bash(tasklist)", + "Bash(curl -s -o /dev/null -w \"index.html: %{http_code}\\\\n\" http://127.0.0.1:8000/)", + "Bash(curl -s -o /dev/null -w \"seasonal-theme.js: %{http_code}\\\\n\" http://127.0.0.1:8000/static/js/seasonal-theme.js)", + "Bash(curl -s -o /dev/null -w \"login-intro-halloween.js: %{http_code}\\\\n\" http://127.0.0.1:8000/static/js/login-intro-halloween.js)", + "Bash(curl -s -o /dev/null -w \"login-intro-halloween.css: %{http_code}\\\\n\" http://127.0.0.1:8000/static/css/login-intro-halloween.css)", + "Bash(curl -s -o /dev/null -w \"pid-halloween-favicon.svg: %{http_code}\\\\n\" http://127.0.0.1:8000/static/img/pid-halloween-favicon.svg)", + "Bash(curl -s http://127.0.0.1:8000/)", + "Bash(curl -s http://127.0.0.1:8000/portal.html)", + "Bash(curl -sI http://127.0.0.1:8000/)", + "Bash(curl -sI http://127.0.0.1:8000/static/js/seasonal-theme.js)", + "Bash(curl -sI http://127.0.0.1:8000/static/img/pid-icone-escuro.svg)", + "Bash(curl -s http://127.0.0.1:8000/static/js/seasonal-theme.js)", + "Bash(\"/c/Users/Depaula/Documents/Portal/.venv/Scripts/python.exe\" -)", + "Bash(curl -s -o /dev/null -w \"halloween-cobweb.css: %{http_code}\\\\n\" http://127.0.0.1:8000/static/css/halloween-cobweb.css)", + "Bash(curl -s http://127.0.0.1:8000/static/css/login.css)", + "Bash(curl -s http://127.0.0.1:8000/static/css/layout.css)", + "Bash(curl -s http://127.0.0.1:8000/static/css/halloween-cobweb.css)", + "Bash(\"/c/Users/Depaula/Documents/Portal/.venv/Scripts/python.exe\" _scratch_insert_seasonal_toggle.py)", + "Bash(rm _scratch_insert_seasonal_toggle.py)" ] } } diff --git a/CLAUDE.md b/CLAUDE.md index b61d710..dc6ef24 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -36,6 +36,7 @@ Aplicações sem pacote Python dedicado (código ainda em `portal_api/models.py` | Favoritos (grade de `portal.html`) | `docs/favoritos/` — `favoritos.md` (técnico), `README.md`, `CHANGELOG.md` | | Perfis de Acesso / Usuários (telas administrativas, Liderança, inativação) | `docs/perfis-usuarios/` — `perfis-usuarios.md` (técnico), `README.md`, `CHANGELOG.md` | | Solicitações | `docs/solicitacoes/` — `solicitacoes.md` (técnico), `README.md`, `CHANGELOG.md` | +| Temas Sazonais (marca P.I.D. sazonal — hoje só Halloween) | `docs/temas-sazonais/` — `temas-sazonais.md` (técnico), `README.md`, `CHANGELOG.md` | ## Como rodar / testar localmente @@ -232,7 +233,7 @@ Padrão de guarda por página: `profiles.js`, `users-admin.js` e `widgets.js` ve | Onde | O quê | |---|---| -| `localStorage` (`pid_theme`, `pid_color_theme`) | Só preferência de tema — ver `theme.js`. | +| `localStorage` (`pid_theme`, `pid_color_theme`, `pid_seasonal_theme_opt_out`, `pid_seasonal_dead_spiders`) | Preferência de tema (`theme.js`) + preferências de Temas Sazonais (`seasonal-theme.js`, ver `docs/temas-sazonais/`). | | Postgres, via API | Tudo o mais: sessão (cookie do Django), usuários, perfis de acesso, favoritos, widgets, compromissos do Calendário Individual, notificações dispensadas. | `notifications.js` usa uma lista mockada em memória (`PID_NEW_TOOLS_NOTIFICATIONS`) para os anúncios de "nova ferramenta" — os itens de compromisso vêm de `/api/compromissos/` de verdade. O conteúdo das notificações continua mockado/derivado a cada carregamento, mas **quais delas o usuário já dispensou** (X individual ou "Limpar tudo") persiste por usuário via `NotificacaoDispensada`/`/api/notificacoes-dispensadas/` — por isso um item dispensado não reaparece depois de um reload. @@ -437,3 +438,9 @@ Ao apertar "Entrar" com sucesso, `index.html` toca uma animação de marca em te **"A barra lateral surgindo da esquerda para a direita, e em seguida o resto da tela"** (pedido explícito do usuário sobre como a tela Principal deveria surgir depois da animação, refinado duas vezes: a primeira versão só escondia `.main-content` e deixava a sidebar sempre visível desde o início, sem nenhuma entrada própria; a segunda versão deu à sidebar um fade + deslize sutil de 16px, considerado "ainda não satisfatório" — pequeno demais pra ler como "surgindo da esquerda pra direita"): `static/js/portal-reveal.js` (só `portal.html`, incluído `defer` logo depois de `theme.js` — mesmo padrão de "script que roda como IIFE de topo antes da primeira pintura pra evitar flash", ver "Ordem de ` + diff --git a/templates/calendario-individual.html b/templates/calendario-individual.html index 821690a..b906d44 100644 --- a/templates/calendario-individual.html +++ b/templates/calendario-individual.html @@ -314,6 +314,13 @@
Tema de cores
+Temas sazonais
+ +Tema de cores
+Temas sazonais
+ +Tema de cores
+Temas sazonais
+ +Tema de cores
+Temas sazonais
+ +Tema de cores
+Temas sazonais
+ +