feat(profil-autora): Faza 1 — konfigurowalne sekcje podstrony autora + pola profilu#385
Open
mpasternak wants to merge 6 commits into
Open
feat(profil-autora): Faza 1 — konfigurowalne sekcje podstrony autora + pola profilu#385mpasternak wants to merge 6 commits into
mpasternak wants to merge 6 commits into
Conversation
… autora Projekt z sesji brainstormingu: konfigurowalne sekcje podstrony autora (kolejnosc/widocznosc/limit), nowe pola Autor (zdjecie WebP 400x400, biogram + biogram_format md/html), model WybranaPublikacjaAutora, rejestr sekcji w kodzie + uklad_profilu JSON, render z auto-ukrywaniem pustych, linki do raportu wg widoczny_dla, wspolautorzy z AuthorConnection + CTA do browsera 2D/3D. Dostawa fazowa: Faza 1 (model+render+admin), Faza 2 (self-service edytor + RIS). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…rejestr sekcji Czyste jednostki (TDD, 27 testów): - bpp.util.biogram.renderuj_biogram: Markdown/HTML → bezpieczny HTML przez nowy safe_biogram_html (bogatszy zestaw tagów blokowych niż wąski globalny safe_html; usuwa treść script/style; linki dostają rel=nofollow noopener). - bpp.util.obrazy.przetworz_zdjecie_autora: EXIF→crop kwadrat→WebP 400x400. - bpp.profil_autora: katalog typów sekcji + walidacja i rozwiązywanie układu (kolejność/widoczność/limit, wymuszona wyszukiwarka, forward-compat). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…utora Autor: zdjecie (ImageField), biogram + biogram_format (md/html), uklad_profilu (JSONField) oraz cached_property biogram_html. Nowy model WybranaPublikacjaAutora (GenericFK do polimorficznej publikacji). Migracja 0444. Baseline odświeżyć przy scalaniu (make baseline-update). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
… + style - profil_autora_dane: buildery danych każdej sekcji (listy prac, statystyki, wykres lat, dyscypliny, źródła, współautorzy z AuthorConnection) + auto- ukrywanie pustych sekcji. - AutorView: render sekcji wg uklad_profilu (lub domyślnego) + linki do raportu autora (bieżący rok / 4 lata / formularz) gated DefinicjaRaportu .widoczny_dla. - browse/autor.html: stały nagłówek (z awatarem) + pętla sekcji; formularz wyszukiwania wydzielony do sekcji autor_sekcje/wyszukiwarka.html; partiale wszystkich sekcji; embed-kod bez zmian. - AutorAdmin: fieldset profilu (zdjęcie/biogram/format/układ), przetwarzanie zdjęcia w AutorForm.clean_zdjecie (≤5MB → WebP 400x400), inline wybranych publikacji. - SCSS: style sekcji (awatar, listy, tabele statystyk, wykres słupkowy, współautorzy, linki raportu). Testy: 4 integracyjne (render biogramu/wyszukiwarki, ukrywanie sekcji, linki raportu public/inactive). Cała suita test_profil + istniejące test_autor_autorzy zielone (43) na świeżym kontenerze — bez regresji. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Django-generated migracja miała linie >88 znaków; CI "Lint changed files" uruchamia ruff-format na zmienionym zakresie z --exit-non-zero-on-fix. To nowy plik migracji (nie istniejący), więc formatowanie jest dozwolone. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Import bpp.util.biogram należy do grupy first-party (po bpp.util), nie do grupy third-party po tinymce. Poprawka nie trafiła do poprzedniego commita. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Cel
Faza 1 funkcji „edytowalny profil autora + przebudowa podstrony autora”.
Pełna specyfikacja (z sesji brainstormingu) w repo:
docs/superpowers/specs/2026-06-18-profil-autora-i-podstrona-design.md.Podstrona autora (
/autor/<pk|slug>/) przestaje być „metadane + jedenformularz wyszukiwania”, a staje się zestawem konfigurowalnych sekcji
(kolejność / widoczność / limit) renderowanych nad stałym nagłówkiem
tożsamości. Dane sekcji pochodzą z cache
Rekord/Autorzy/AuthorConnection.Co wchodzi w tej Fazie 1
Model
Autor:zdjecie(ImageField),biogram+biogram_format(md/html),uklad_profilu(JSONField),cached_property biogram_html.WybranaPublikacjaAutora(GenericFK do polimorficznej publikacji).0444.Logika (czysta, TDD)
bpp.util.biogram.renderuj_biogram: Markdown/HTML → bezpieczny HTML przeznowy
safe_biogram_html(bogatszy zestaw tagów niż wąski globalnysafe_html; usuwa treśćscript/style; linkirel="nofollow noopener").bpp.util.obrazy.przetworz_zdjecie_autora: EXIF → center-crop → WebP 400×400.bpp.profil_autora: rejestr 15 typów sekcji + walidacja i rozwiązywanieukładu (wymuszona wyszukiwarka, forward-compat dla nowych sekcji).
bpp.profil_autora_dane: buildery danych każdej sekcji + auto-ukrywaniepustych.
Render
AutorView: render sekcji wguklad_profilu(lub domyślnego, wariant„biogram-najpierw”; domyślnie ON także wykres publikacji w latach i
współautorzy) + linki do raportu autora (bieżący rok / ostatnie 4 lata /
szczegółowy formularz) pokazywane tylko gdy
DefinicjaRaportu(slug="raport-autorow").widoczny_dla(request).browse/autor.htmlprzebudowany: stały nagłówek (z awatarem) + pętla sekcji;formularz wyszukiwania wydzielony do
autor_sekcje/wyszukiwarka.html;partiale wszystkich sekcji; sekcja „kod do osadzenia” bez zmian.
AuthorConnection+ CTA do istniejącegowizualnego browsera sieci 2D/3D (bez nowej wizualizacji).
_autor-bem.scss.Admin
przetwarzanie i walidacja zdjęcia (≤5 MB → WebP) w
AutorForm.clean_zdjecie,inline wybranych publikacji.
Testy
39 nowych testów w
src/bpp/tests/test_profil/(TDD: czyste jednostki —biogram, zdjęcie, układ; modele; integracja widoku — render biogramu/
wyszukiwarki, ukrywanie sekcji, linki raportu public/inactive). Cała suita
test_profil+ istniejącetest_autor_autorzyzielone (43) na świeżymkontenerze — bez regresji.
manage.py checkczysty, pre-commit (ruff/djLint/TruffleHog) czysty.
make baseline-update(migracja0444zmienia schemat) — commitbaseline-sql/baseline.sql+baseline.meta.json. Świadomie nie robione wbranchu, żeby nie produkować konfliktów na wielkim pliku.
Świadomie poza zakresem (Faza 2, osobny PR)
Self-service edytor w „Mój profil” (drag-drop kolejności, przełączniki,
limity, upload zdjęcia z podglądem, live-preview biogramu, picker wyróżnionych
prac), eksport zbiorczy BibTeX/RIS. W Fazie 1 sekcja „eksport” oraz wypełnianie
zdjęcia/biogramu/układu działają przez Django admin.
🤖 Generated with Claude Code