Vylepšení galerie: účastnická privátní galerie #95

Closed
ledoian wants to merge 0 commits from galerie_vylepseni into master
Owner

Klidně rovnou komentujte změny, zatím postupně vzniká (a chci mít možnost to pushovat), ale změny jsou snad vesměs finální.

No, možná se někdy rozhodnu, že to celé refaktoruju, ale to bude separátní commit…

Klidně rovnou komentujte změny, zatím postupně vzniká (a chci mít možnost to pushovat), ale změny jsou snad vesměs finální. No, možná se někdy rozhodnu, že to celé refaktoruju, ale to bude separátní commit…
Author
Owner

Co se týče účastnických galerií, views by měly být hotové, zbývá dořešit logiku v templatech (kdy komu umožnit přeuspořádat galerie, rámečky kolem neveřejných věcí).

Klidně se mi v tom už šťourejte, a kdyby někdo chtěl napsat testy (že tomu kterému uživateli jenž byl/nebyl na sousu je správně hozeno 404), tak se klidně čiňte :-D

Co se týče účastnických galerií, views by měly být hotové, zbývá dořešit logiku v templatech (kdy komu umožnit přeuspořádat galerie, rámečky kolem neveřejných věcí). Klidně se mi v tom už šťourejte, a kdyby někdo chtěl napsat testy (že tomu kterému uživateli jenž byl/nebyl na sousu je správně hozeno 404), tak se klidně čiňte :-D
Author
Owner

Aktuálně by mělo být funkční a možno nasadit. Zbývá:

  • v přehledu galerií barevně odlišit, kdo vidí které galerie (viz vlákno na Matrixu, 2025-04-23 24:25)
  • otestovat na testwebu na reálných datech

Nebylo by k zahození:

  • napsat test, že správní uživatelé dostávají správně 404
  • refaktorovat zbytek kódu, konkrétně:
    • dořešit pár nových FIXME
    • předělat výčet v modelech na Enum a importovat použitelně
    • použít v templatech {% url … %} místo relativních adres
    • dodělat odkaz z Admina na příslušnou galerii (a ideálně i opačně z galerie přes fialový pruh zpět do admina)
    • přejmenovat views (aktuálně se jmenují nahled a detail)
    • asi přejmenovat templates a všechno, aby se nejmenovalo „náhled“ a „galerie“
    • pochopit a pak definitivně smazat ten zakomentovaný kód v galerie/models.py, který nikdy ani nebyl odkomentovaný…

Videjko nebude teď, založím si separátní PR (nejspíš bude dost ortogonální…)

Aktuálně by mělo být funkční a možno nasadit. Zbývá: - [x] v přehledu galerií barevně odlišit, kdo vidí které galerie (viz vlákno na Matrixu, 2025-04-23 24:25) - [x] otestovat na testwebu na reálných datech Nebylo by k zahození: - [ ] napsat test, že správní uživatelé dostávají správně 404 - [ ] refaktorovat zbytek kódu, konkrétně: - [ ] dořešit pár nových FIXME - [x] předělat výčet v modelech na `Enum` a importovat použitelně - [x] použít v templatech `{% url … %}` místo relativních adres - [x] dodělat odkaz z Admina na příslušnou galerii (a ideálně i opačně z galerie přes fialový pruh zpět do admina) - [x] přejmenovat views (aktuálně se jmenují `nahled` a `detail`) - [x] asi přejmenovat templates a všechno, aby se nejmenovalo „náhled“ a „galerie“ - [x] pochopit a pak definitivně smazat ten zakomentovaný kód v `galerie/models.py`, který nikdy ani nebyl odkomentovaný… Videjko nebude teď, založím si separátní PR (nejspíš bude dost ortogonální…)
ledoian changed title from WIP: Vylepšení galerie: účastnická privátní galerie, videjka to Vylepšení galerie: účastnická privátní galerie 2025-04-24 00:52:55 +02:00
galerie/views.py Outdated
@ -33,2 +51,4 @@
galerie = get_object_or_404(Galerie, pk=pk)
soustredeni = top_galerie(galerie).soustredeni
# FIXME: přepsat model a použít přímo dolů…
Author
Owner

Než zapomenu, co se tím míní: u Obrázků je pattern galerie.obrazek_set.order_by(…), u galerií by se mi líbil taky (tj. nadgalerie.podgalerie_set.…, nebo to aspoň udělat konzistentně). Field galerie_up ale nemá related_name, takže se příslušný pseudo-field jmenuje galerie_set – bylo by dobré ho mít pojmenovaný explicitně, třeba jako podgalerie – a pak celý view přepsat konzistentně (někde níž se dokonce používá skvělá konstrukce galerie.galerie_up.galerie_set.all() :-D)

Než zapomenu, co se tím míní: u Obrázků je pattern `galerie.obrazek_set.order_by(…)`, u galerií by se mi líbil taky (tj. `nadgalerie.podgalerie_set.…`, nebo to aspoň udělat konzistentně). Field `galerie_up` ale nemá `related_name`, takže se příslušný pseudo-field jmenuje `galerie_set` – bylo by dobré ho mít pojmenovaný explicitně, třeba jako `podgalerie` – a pak celý view přepsat konzistentně (někde níž se dokonce používá skvělá konstrukce `galerie.galerie_up.galerie_set.all()` :-D)
Owner

Lepší než 404 by bylo vracet 403…

Lepší než 404 by bylo vracet 403…
Owner

Zvednout limit u galerií a odkomentovat odkaz na originál.

Zvednout limit u galerií a odkomentovat odkaz na originál.
zelvuska approved these changes 2025-04-30 21:25:31 +02:00
Owner

Zlikvidovat „NIKDO“.

Zlikvidovat „NIKDO“.
Author
Owner

Mám bug: v galerie/templates/galerie/GalerieNahled.html na konci je

  {% if galerie.zobrazit > 0 %}
  {% if galerie.zobrazit == 1 or galerie.zobrazit == 2 %}
    </div> {# mam-org-only #}
  {% elif galerie.zobrazit == 2 %}
    </div> {# mam-resitel-only #}
  {% endif %}

v elifu má být == 3 (a nebo nesedí komentáře)…

Mám bug: v `galerie/templates/galerie/GalerieNahled.html` na konci je ``` {% if galerie.zobrazit > 0 %} {% if galerie.zobrazit == 1 or galerie.zobrazit == 2 %} </div> {# mam-org-only #} {% elif galerie.zobrazit == 2 %} </div> {# mam-resitel-only #} {% endif %} ``` v `elif`u má být `== 3` (a nebo nesedí komentáře)…
Author
Owner

Přemýšlím, jestli nebude lepší založit na refactoring nový PR, dát tam místní TODO jako úvodní post a tenhle zavřít, čistě proto, že tady se ty poznámky blbě dohledají a nedává smysl sem připisovat další…

Přemýšlím, jestli nebude lepší založit na refactoring nový PR, dát tam místní TODO jako úvodní post a tenhle zavřít, čistě proto, že tady se ty poznámky blbě dohledají a nedává smysl sem připisovat další…
Author
Owner

v elifu má být == 3 (a nebo nesedí komentáře)…

Už tam je (zatím u mně, až to pushnu, tak bude i na gitei)

> v `elif`u má být `== 3` (a nebo nesedí komentáře)… Už tam je (zatím u mně, až to pushnu, tak bude i na gitei)
Author
Owner

Lepší než 404 by bylo vracet 403…

Záleží, jestli chceme spíš popřít existenci dalších galerií, nebo ji přiznat.

A kromě toho nevím, jestli 403 umí dávat další vysvětlení toho, co se stalo – django.http.Http404 jde zavolat s parametrem, který pak jde vidět v debug módu… (Mám velmi matné tušení, že PermissionDenied to neumělo, ale je to spíš matné tušení než že bych mělo důkaz…)

  • Ale nechám si to tu jako úkol a třeba to jednou dohledám :-D
> Lepší než 404 by bylo vracet 403… Záleží, jestli chceme spíš popřít existenci dalších galerií, nebo ji přiznat. A kromě toho nevím, jestli 403 umí dávat další vysvětlení toho, co se stalo – `django.http.Http404` jde zavolat s parametrem, který pak jde vidět v debug módu… (Mám velmi matné tušení, že `PermissionDenied` to neumělo, ale je to spíš matné tušení než že bych mělo důkaz…) - [x] Ale nechám si to tu jako úkol a třeba to jednou dohledám :-D
Author
Owner

A kromě toho nevím, jestli 403 umí dávat další vysvětlení toho, co se stalo – django.http.Http404 jde zavolat s parametrem, který pak jde vidět v debug módu… (Mám velmi matné tušení, že PermissionDenied to neumělo, ale je to spíš matné tušení než že bych mělo důkaz…)

Neumí. PermissionDenied je úplně hloupá excepšna a dokumentace neříká nic o existenci něčeho jiného, než Http404.

Komentáře, námitky? (Já se slabě kloním k tomu tam nechat tu 404 kvůli lepšímu debugování, i když souhlasím, že 403 je sémanticky lepší…)

> A kromě toho nevím, jestli 403 umí dávat další vysvětlení toho, co se stalo – `django.http.Http404` jde zavolat s parametrem, který pak jde vidět v debug módu… (Mám velmi matné tušení, že `PermissionDenied` to neumělo, ale je to spíš matné tušení než že bych mělo důkaz…) Neumí. `PermissionDenied` je [úplně hloupá excepšna](https://github.com/django/django/blob/stable/5.2.x/django/core/exceptions.py#L105) a [dokumentace neříká nic o existenci něčeho jiného, než `Http404`](https://docs.djangoproject.com/en/5.2/topics/http/views/#returning-errors). Komentáře, námitky? (Já se slabě kloním k tomu tam nechat tu 404 kvůli lepšímu debugování, i když souhlasím, že 403 je sémanticky lepší…)
Author
Owner

Už mi z toho moc hrabalo, tak zbylá TODO odsud jsou přepsána do !99 a tady zavírám.

Už mi z toho moc hrabalo, tak zbylá TODO odsud jsou přepsána do !99 a tady zavírám.
ledoian closed this pull request 2025-12-19 08:44:10 +01:00

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
mam/mamweb!95
No description provided.