Překopání galerií (a implementace videí) #99

Open
ledoian wants to merge 59 commits from galerie_videjka into master
Owner

Velká část kódu je napsaná, migrace zatím vůbec, takže se dá testovat jen podivně ze shellu bez sáhnutí na databázi.

TODO (z message u b25d475148 přepsáno sem, ať jde odškrtávat):

  • vymyslet všemu použitelnější jména
  • Napsat migraci
  • ve views a modelech se pořád ještě vyskytuje obrazek_stredni a obrazek_velky
  • nevím, co dělá Admin a nahrávání obrázků
  • chybí funkce na tipování typů nahraných obrázků (a její použití v kódu)
  • podpora pro videjka zatím není vůbec (jen připravený kód)
  • DummyBazmek nemá použitelné placeholdery (představuji si SVG s nějakým vykřičníkem a odkazem do Admina
  • opravit syntaxi v dokumentaci
  • zakomentovaný kód buď smazat, nebo přetvořit v něco užitečného
  • vyřešit konflikt s masterem
  • Napsat migrace
  • Možná mít explicitní primární klíče?

TODO z !95 (nevyřešené k 2025-12-19):

  • napsat test, že se správně vynucují práva kolem sousu
  • dořešit FIXME (zbývá jen velikost uploadu a to je níž)
  • přejmenovat templates
  • „Přepsat model a použít přímo dolů“ (podle komentáře v !95)
  • zvednout limit na velikost souborů u galerií

TODO další (převážně ze spodu):

  • dořešit (své vlastní) námitky z review
  • tipovat typ při přidávání z Adminu?
  • zdokumentovat:
    • jak se co jmenuje a proč
    • že SVG neumíme
    • jak se galerie zveřejňuje
  • dopsat testy

Další tipy, co umět:

  • V Adminu umět filtrovat podle hlavního soustřeďka nebo něčeho, ať se dá Galerie najít i tam (je tam bambilion galerií pojmenovaných Sobota…)
  • Při prohazování galerií actually prohazovat a ne mít obskurní counter
  • Otestovat videa na různých platformách (jablečné telefony) a popsat, které kodeky se smějí používat (tj. nejspíš jen H.264 + Opus/Vorbis/OGG; asi napsat i správný ffmpegový příkaz na wiki nebo si na to udělat klikátko??)
Velká část kódu je napsaná, ~~migrace zatím vůbec, takže se dá testovat jen podivně ze shellu bez sáhnutí na databázi.~~ TODO (z message u b25d475148a3ad1708963b26ddd7c132a76298fa přepsáno sem, ať jde odškrtávat): - [x] vymyslet *všemu* použitelnější jména - [x] Napsat migraci - [x] ve views a modelech se pořád ještě vyskytuje `obrazek_stredni` a `obrazek_velky` - [x] nevím, co dělá Admin a nahrávání obrázků - [x] chybí funkce na tipování typů nahraných obrázků (a její použití v kódu) - [x] podpora pro videjka zatím není vůbec (jen připravený kód) - [x] DummyBazmek nemá použitelné placeholdery (představuji si SVG s nějakým vykřičníkem a odkazem do Admina - [x] opravit syntaxi v dokumentaci - [x] zakomentovaný kód buď smazat, nebo přetvořit v něco užitečného - [x] vyřešit konflikt s masterem - [x] Napsat migrace - [x] Možná mít explicitní primární klíče? TODO z !95 (nevyřešené k 2025-12-19): - [x] napsat test, že se správně vynucují práva kolem sousu - [x] dořešit FIXME (zbývá jen velikost uploadu a to je níž) - [x] přejmenovat templates - [x] „Přepsat model a použít přímo dolů“ (podle komentáře v !95) - [ ] zvednout limit na velikost souborů u galerií TODO další (převážně ze spodu): - [x] dořešit (své vlastní) námitky z review - [ ] tipovat typ při přidávání z Adminu? - [x] zdokumentovat: - jak se co jmenuje a proč - že SVG neumíme - jak se galerie zveřejňuje - [x] dopsat testy Další tipy, co umět: - [x] V Adminu umět filtrovat podle hlavního soustřeďka nebo něčeho, ať se dá Galerie najít i tam (je tam bambilion galerií pojmenovaných Sobota…) - [x] Při prohazování galerií actually prohazovat a ne mít obskurní counter - [ ] Otestovat videa na různých platformách (jablečné telefony) a popsat, které kodeky se smějí používat (tj. nejspíš jen H.264 + Opus/Vorbis/OGG; asi napsat i správný ffmpegový příkaz na wiki nebo si na to udělat klikátko??)
už od Dj 2.0 nefunkční, kdyžtak se přidá zpět později…
Plán: udělat z `obrazek_velky` `soubor`, přidat `typ` (`OBRAZEK`,
`VIDEO`, `NEVIM`) a ImageKit použít jen na vyrábění zmenšených obrázků
(pro `VIDEO` použít `<video>` přímo; pro `NEVIM` nějaký generický
placeholder a pokyn orgovi, ať to opraví v Adminu.

Ref: https://django-imagekit.readthedocs.io/en/latest/#defining-specs-outside-of-models
Co funguje: ~~nic, protože není vygenerovaná migrace~~ Nejspíš lecos,
ale nejde to otestovat. Speciálně, pokud zavolám funkce z `galerie.typy`
ručně ze shellu, tak se to popřeškáluje a výsledná URL jde skutečně
vyrenderovat na webu (resp. šlo v nějaké průběžné verzi před zavedením
templatetagu).

TODO:
- ve views a modelech se pořád ještě vyskytuje `obrazek_stredni` a `obrazek_velky`
- nevím, co dělá Admin a nahrávání obrázků
- chybí funkce na tipování typů nahraných obrázků (a její použití v kódu)
- podpora pro videjka zatím není vůbec (jen připravený kód)
- DummyBazmek nemá použitelné placeholdery (představuji si SVG s nějakým
  vykřičníkem a odkazem do Admina
Author
Owner

Jo, a v komentářích jsou random zakomentované kusy kódu, které se buď mají objevit jinde (a jinak), nebo smazat úplně… připsáno do TODO

~~Jo, a v komentářích jsou random zakomentované kusy kódu, které se buď mají objevit jinde (a jinak), nebo smazat úplně…~~ připsáno do TODO
ledoian changed title from WIP: Videjka a další bazmeky do galerií to RFC: Videjka a další bazmeky do galerií 2025-05-05 15:39:11 +02:00
Author
Owner
  • opravit syntaxi v dokumentaci

@zelvuska Máš tip, odkud mám syntaxi dokumentace opsat? Vím, že jsme něco měli, jen se mi to nechce dohledávat, tak jestli zvládneš vytáhnout z paměti…

> - [x] opravit syntaxi v dokumentaci @zelvuska Máš tip, odkud mám syntaxi dokumentace opsat? Vím, že jsme něco měli, jen se mi to nechce dohledávat, tak jestli zvládneš vytáhnout z paměti…
Author
Owner

Prohlašuji galerii s videjky za MVP, jdu nasadit na testweb (v nějaké ad-hoc kombinaci s !98), pusťte se do hejtění kódu a testování

Prohlašuji galerii s videjky za MVP, jdu nasadit na testweb (v nějaké ad-hoc kombinaci s !98), pusťte se do hejtění kódu a testování
ledoian left a comment
Author
Owner

Moje poznámky k tomu, co se má vylepšit…

Moje poznámky k tomu, co se má vylepšit…
@ -47,2 +49,3 @@
# Technicky misnomer: takový `Obrazek` může být i videjko a výhledově i něco dalšího…
class Obrazek(models.Model):
obrazek_velky = models.ImageField(upload_to=obrazek_filename,
# „originál“ (modulo max. velikost uploadu na web FIXME!)
Author
Owner

doku

doku
ledoian marked this conversation as resolved
@ -56,0 +56,4 @@
VIDEO = 'video', 'Video'
NEVIM = 'nevim', 'Neznámý typ'
typ = models.CharField('Typ', max_length=16, blank=False, null=False, choices=Typ.choices, default=Typ.NEVIM)
# Filename by default; slouží k řazení
Author
Owner

doku nebo help_text

doku nebo help_text
ledoian marked this conversation as resolved
@ -73,3 +74,1 @@
return u'<img src="{}">'.format(self.obrazek_maly.url)
obrazek_maly_tag.short_description = "Náhled"
obrazek_maly_tag.allow_tags = True
ordering = ['nazev'] #FIXME: zohlednit pořadí a asi i příslušnost ke galerii
Author
Owner

FIXME

FIXME
ledoian marked this conversation as resolved
@ -76,2 +77,4 @@
.galerie_nahledy img {
margin: 10px;
max-height: 100px;
max-width: 200px;
Author
Owner

Hodnoty random nastřelené… (asi nevadí)

Hodnoty random nastřelené… (asi nevadí)
Author
Owner

… asi nevadí.

… asi nevadí.
ledoian marked this conversation as resolved
@ -111,3 +108,3 @@
{# nahledy predchozich obrazku #}
{% for obrazek in obrazky_predchozi %}
<a href="../{{obrazek.pk}}#nahoru"><img src="{{obrazek.obrazek_maly.url}}" height="100"></a>
<a href="../{{obrazek.pk}}#nahoru">{% zmenseny_nahled obrazek.jako_bazmek height=100 %}</a>
Author
Owner

zrušit height?

zrušit height?
ledoian marked this conversation as resolved
@ -125,3 +115,3 @@
{# nahledy nasledujicich obrazku #}
{% for obrazek in obrazky_dalsi %}
<a href="../{{obrazek.pk}}#nahoru"><img src="{{obrazek.obrazek_maly.url}}" height="100"></a>
<a href="../{{obrazek.pk}}#nahoru">{% zmenseny_nahled obrazek.jako_bazmek height=100 %}</a>
Author
Owner

i tady zrušit height?

i tady zrušit height?
ledoian marked this conversation as resolved
@ -59,3 +60,1 @@
<img src="{{ obrazek.url }}"
/>
{% endwith %}
{% zmenseny_nahled pgalerie.titulni_obrazek.jako_bazmek class="" %}
Author
Owner

Má mít class nebo tam ten atribut nemá být vůbec

Má mít class nebo tam ten atribut nemá být vůbec
ledoian marked this conversation as resolved
@ -106,0 +98,4 @@
href="./{{obrazek.pk}}#nahoru" class="galerie_nahled">
<span class="vystredeno"></span>
{% zmenseny_nahled obrazek.jako_bazmek %}
{# title=obrazek.popis (a byl tu if, že se použil jen když existoval…) width=obrazek.obrazek_maly.width height=obrazek.obrazek_maly.height #}
Author
Owner

smazat? title by se měl použít z vnějšího tagu, či?

smazat? title by se měl použít z vnějšího tagu, či?
Author
Owner

Nepoužije se, ale stejně ve dvou třetinách obrázku neviditelně překáží „Předcházející“ a „Následující“, tak to smažu i tady.

Nepoužije se, ale stejně ve dvou třetinách obrázku neviditelně překáží „Předcházející“ a „Následující“, tak to smažu i tady.
Author
Owner

Kecáááám, koukám na ten druhý template. Ale tady se to taky projevuje přímo. Takže smažu všechno :-D

Kecáááám, koukám na ten druhý template. Ale tady se to taky projevuje přímo. Takže smažu všechno :-D
ledoian marked this conversation as resolved
galerie/typy.py Outdated
@ -0,0 +14,4 @@
from django.contrib.staticfiles.finders import find
# FIXME: static fily na lokálním webu??
find = lambda x: '/static/'+x
Author
Owner

FIXME

FIXME
ledoian marked this conversation as resolved
galerie/typy.py Outdated
@ -0,0 +23,4 @@
from imagekit.cachefiles import ImageCacheFile
from imagekit.processors import ResizeToFit, Transpose
HTML = str | SafeString
Author
Owner

Komentář, že v Py3.12 má být type HTML = ...

Komentář, že v Py3.12 má být `type HTML = ...`
ledoian marked this conversation as resolved
galerie/typy.py Outdated
@ -0,0 +122,4 @@
attrs = _fmt_attrs(kwargs)
# Stavíme HTML ad-hoc, co se může rozbít :'-)
obrazek = format_html(r'<img src="{}"/>', self.placeholder, attrs)
popisek = format_html(r'<p style="text-align: center; font-size: 1.1em;">Prosím oprav typ aktuálního obrázku v <a href="{}">adminu</a>!</p>', reverse('admin:galerie_obrazek_change', args=(self.db_objekt.id,)))
Author
Owner

hnus

hnus
Author
Owner

Pořád mi sice přijde, že mít takhle stavěné HTML v kódu je hnus, ale nevím, jestli dává smysl to měnit. Můžu vybastlit někde dedikovanou šablonu (asi ne doslova django template), ale mám trochu pocit, že to akorát rozhází kód na různá místa a tolik to nepomůže…

Názory? Teď mám pocit, že to prostě nebudu řešit a zavřu to…

Pořád mi sice přijde, že mít takhle stavěné HTML v kódu je hnus, ale nevím, jestli dává smysl to měnit. Můžu vybastlit někde dedikovanou šablonu (asi ne doslova django template), ale mám trochu pocit, že to akorát rozhází kód na různá místa a tolik to nepomůže… Názory? Teď mám pocit, že to prostě nebudu řešit a zavřu to…
ledoian marked this conversation as resolved
@ -0,0 +29,4 @@
name='typ',
field=models.CharField(choices=[('obrazek', 'Obrázek'), ('video', 'Video'), ('nevim', 'Neznámý typ')], default='nevim', max_length=16, verbose_name='Typ'),
),
migrations.RunPython(zatim_byly_jen_obrazky, migrations.RunPython.noop)
Author
Owner

Možná by směrem zpátky spíš mělo selhat, pokud v galerii existuje ne-obrázek…

Možná by směrem zpátky spíš mělo selhat, pokud v galerii existuje ne-obrázek…
ledoian marked this conversation as resolved
Author
Owner

Při ručním přidávání obrázků z Adminu se netipuje typ automaticky :-/

Při ručním přidávání obrázků z Adminu se netipuje typ automaticky :-/
Author
Owner

SVG zjevně není obrázek (Pillow ho neumí zpracovat)…

SVG zjevně není obrázek (Pillow ho neumí zpracovat)…
@ -7,3 +7,3 @@
/* zmenšování spolu s oknem prohlížeče */
.galerie .obrazek, .titulni_obrazek {
max-width: 100%;
max-width: max(100%, 900px);
Owner

900 je nějak moc, ne? (Třeba když jsi na mobilu, tak to znamená, že uvidíš minimum z toho obrázku, ne?)

900 je nějak moc, ne? (Třeba když jsi na mobilu, tak to znamená, že uvidíš minimum z toho obrázku, ne?)
Author
Owner

To je vzaté z původních views.py, za to nemůžu já :-D Ale je to hodně, co třeba 600px? (Haluzím velmi náhodně a na monitoru, zas to nemůže být moc málo, jinak se to zmenší moc…)

To je vzaté z původních `views.py`, za to nemůžu já :-D Ale je to hodně, co třeba `600px`? (Haluzím velmi náhodně a na monitoru, zas to nemůže být moc málo, jinak se to zmenší moc…)
Owner

Aha, tak to asi nechme…

Aha, tak to asi nechme…
zelvuska marked this conversation as resolved
Author
Owner

Není zdokumentované, jak galerii zveřejňovat – je potřeba nejdřív přenastavit neveřejné galerie na správná práva a pak případně automaticky zveřejnit všechno…

Není zdokumentované, jak galerii zveřejňovat – je potřeba nejdřív přenastavit neveřejné galerie na správná práva a pak případně automaticky zveřejnit všechno…
Potřeba proklikat!
Myslím, že to nefunguje, ještě nejsou změněné templaty.
A není napsaná migrace
A není to zdokumentované
Neříkám, že to funguje, ale říkám, že mi běží netriviální testy :-)
Chybí:
- migrace
- přejmenovat templates
ledoian changed title from RFC: Videjka a další bazmeky do galerií to Překopání galerií (a implementace videí) 2025-12-19 08:43:42 +01:00
ledoian changed title from Překopání galerií (a implementace videí) to WIP: Překopání galerií (a implementace videí) 2025-12-19 08:56:27 +01:00
@ -21,3 +22,3 @@
// doleva
if (e.which == 37) {
window.location.assign("../{{ predchozi_obrazek.pk }}#nahoru");
window.location.assign("{% url 'galerie_soubor' soustredeni=soustredeni.id galerie=galerie.pk soubor=predchozi_obrazek.pk %}#nahoru");
Author
Owner

Django dokumentace doporučuje používat get_absolute_url. Tím by se navíc zmenšila duplikace kódu.

Django dokumentace [doporučuje](https://docs.djangoproject.com/en/6.0/ref/models/instances/#get-absolute-url) používat `get_absolute_url`. Tím by se navíc zmenšila duplikace kódu.
ledoian marked this conversation as resolved
Author
Owner
  • dopsat testy

Asi se nesnažím napsat kompletní sadu testů, která popíše všechno. Mám test/y na to, že galerie v běžném případě funguje, až se najdou další problémy, tak se napíšou další testy (což není neobvyklý přístup k testování i v jiných projektech).

A jestli je ten test napsaný dobře a dává smysl, to mi určitě řekne review :-P

> - [x] dopsat testy Asi se nesnažím napsat kompletní sadu testů, která popíše všechno. Mám test/y na to, že galerie v běžném případě funguje, až se najdou další problémy, tak se napíšou další testy (což není neobvyklý přístup k testování i v jiných projektech). A jestli je ten test napsaný dobře a dává smysl, to mi určitě řekne review :-P
Ěblý templaty mi z nějakého důvodu ani neukázaly warning, že `obrazky`
neexistují. Resp. asi mě vypekl ten `{% if obrazky %}`, protože ten je
oficiálně dělaný na to, aby to neexistovalo. (Still bad design imho, ale
co už…)
Manuální, snad se nerozbilo :-P
Jo, hackuju existující migraci, tak jsem asi rozbilo někomu workflow.
Not sorry, odmigrujte a namigrujte znova lol
Author
Owner

@ledoian wrote in #99 (comment):

  • Otestovat videa na různých platformách (jablečné telefony) a popsat, které kodeky se smějí používat (tj. nejspíš jen H.264 + Opus/Vorbis/OGG; asi napsat i správný ffmpegový příkaz na wiki nebo si na to udělat klikátko??)

Než to zapomenu: ffmpeg -i tmp/Kosticka1.ogv -vcodec libx264 -acodec libopus tmp/Kosticka1.mp4 fungovalo (asi by chtělo potunit, aby se nekódovalo na CPU pokud nemusí, ale tohle je asi rozumný začátek)

@ledoian wrote in https://gitea.ks.matfyz.cz/mam/mamweb/pulls/99#issue-662: > * Otestovat videa na různých platformách (jablečné telefony) a popsat, které kodeky se smějí používat (tj. nejspíš jen H.264 + Opus/Vorbis/OGG; asi napsat i správný ffmpegový příkaz na wiki nebo si na to udělat klikátko??) Než to zapomenu: `ffmpeg -i tmp/Kosticka1.ogv -vcodec libx264 -acodec libopus tmp/Kosticka1.mp4` fungovalo (asi by chtělo potunit, aby se nekódovalo na CPU pokud nemusí, ale tohle je asi rozumný začátek)
Author
Owner

Co se kodeků videa týče: teoreticky jde nabídnout prohližeči víc různých ekvivalentních souborů pomocí <source>. Fakt hodně se mi to nechce dělat, protože to znamená mít pro Soubor víc souborů a nějak to pohandlovat, a zní mi jako pain jak vyrobit příčetný frontend/UX, tak to reprezentovat v modelu, tak na to brát ohled v čemkoliv, co zpracovává galerie.

Takže to dělat nebudu, bude dovolený jeden kodek a org zařídí, že se video zkonvertuje… (A audio kodek možná nakonec nebude Opus, ale AAC, protože podpora Opusu v MP4 přibyla pozdě…)

Co se kodeků videa týče: teoreticky jde nabídnout prohližeči víc různých ekvivalentních souborů pomocí [`<source>`](https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/source). Fakt hodně se mi to nechce dělat, protože to znamená mít pro Soubor víc souborů a nějak to pohandlovat, a zní mi jako pain jak vyrobit příčetný frontend/UX, tak to reprezentovat v modelu, tak na to brát ohled v čemkoliv, co zpracovává galerie. Takže to dělat nebudu, bude dovolený jeden kodek a org zařídí, že se video zkonvertuje… (A audio kodek možná nakonec nebude Opus, ale AAC, protože podpora Opusu v MP4 přibyla pozdě…)
Author
Owner

(Commit af8d3ed3e977ff8d6fe11d3e789ebd92f33846ca jen zajišťuje, že se dá buildit dokumentace a nesouvisí s galerií…)

(Commit `af8d3ed3e977ff8d6fe11d3e789ebd92f33846ca` jen zajišťuje, že se dá buildit dokumentace a nesouvisí s galerií…)
LEdo dělá svoji běžnou chybu: myslí si, že všechno nepochopení vyřeší
tím, že po lidech hodí spoustu textu :-D
Author
Owner

Tak, už mě to neba :-)

  • zvednout limit na velikost souborů u galerií

Nebude, do teď to nikomu nevadilo, až to někomu bude vadit, tak to upravíme operativně. Problém je ortogonální na Pythoní kód, tak to stejně nedává smysl řešit tady.

  • tipovat typ při přidávání z Adminu?

Featura, kterou nikdo stejně nepoužívá, protože přidávat fotky z Adminu je extrémně nepohodlné. Nebude, nyní ještě o tři stupně nepohodlnější™ :-D

  • Otestovat videa na různých platformách (jablečné telefony) a popsat, které kodeky se smějí používat (tj. nejspíš jen H.264 + Opus/Vorbis/OGG; asi napsat i správný ffmpegový příkaz na wiki nebo si na to udělat klikátko??)
  • zdokumentovat: že SVG neumíme

Asi se netýká kódu ani vývojářské dokumentace. Je potřeba to napsat někam na wiki, asi nevím úplně jak, ale v PR to nevyřeším :-)

Prohlašuji za hotové aspoň v první verzi.

Tak, už mě to neba :-) > - [ ] zvednout limit na velikost souborů u galerií Nebude, do teď to nikomu nevadilo, až to někomu bude vadit, tak to upravíme operativně. Problém je ortogonální na Pythoní kód, tak to stejně nedává smysl řešit tady. > - [ ] tipovat typ při přidávání z Adminu? Featura, kterou nikdo stejně nepoužívá, protože přidávat fotky z Adminu je extrémně nepohodlné. Nebude, nyní ještě o tři stupně nepohodlnější™ :-D > - [ ] Otestovat videa na různých platformách (jablečné telefony) a popsat, které kodeky se smějí používat (tj. nejspíš jen H.264 + Opus/Vorbis/OGG; asi napsat i správný ffmpegový příkaz na wiki nebo si na to udělat klikátko??) > - [ ] zdokumentovat: že SVG neumíme Asi se netýká kódu ani vývojářské dokumentace. Je potřeba to napsat někam na wiki, asi nevím úplně jak, ale v PR to nevyřeším :-) Prohlašuji za hotové aspoň v první verzi.
ledoian changed title from WIP: Překopání galerií (a implementace videí) to Překopání galerií (a implementace videí) 2026-03-18 00:30:08 +01:00
Author
Owner

oh shit fuck, ten merge není hezký. Zkusím ho nějak pomlátit, bude z toho separátní větev…

oh shit fuck, ten merge není hezký. Zkusím ho nějak pomlátit, bude z toho separátní větev…
@ -1,8 +1,8 @@
from django import forms
class KomentarForm(forms.Form):
Author
Owner

I'm good at this, já si ten kód zhejtím i samo: KomentarForm se má jmenovat PopisekForm, ať popisku neříkáme komentář

I'm good at this, já si ten kód zhejtím i samo: `KomentarForm` se má jmenovat `PopisekForm`, ať popisku neříkáme komentář
ledoian marked this conversation as resolved
ledoian left a comment
Author
Owner

Já si skoro stačím samo. Těch pár bugů fixnu :-)

Já si skoro stačím samo. Těch pár bugů fixnu :-)
@ -37,7 +37,6 @@ extensions = [
'sphinx.ext.intersphinx',
'sphinx.ext.autosectionlabel',
'myst_parser',
'sphinxcontrib_django',
Author
Owner

Špatně, fixnout jinak!

Špatně, fixnout jinak!
ledoian marked this conversation as resolved
@ -92,1 +111,3 @@
galerie_up = models.ForeignKey('Galerie', blank = True, null = True,
poznamka = models.TextField('neveřejná poznámka', blank = True, null = True)
titulni_obrazek = models.ForeignKey(Soubor, verbose_name = 'Titulní obrázek', blank = True, null = True, related_name = "+", on_delete = models.SET_NULL)
zobrazit = models.IntegerField('Zobrazit?', default = Viditelnost.ORG, choices = Viditelnost.choices) # TODO: Dj5 už stačí `choices = Viditelnost`
Author
Owner

TODO Dj5 aplikovatelné, totéž u Souboru výš

TODO Dj5 aplikovatelné, totéž u Souboru výš
ledoian marked this conversation as resolved
@ -42,3 +6,1 @@
</script>
{% endwith %}
{% endwith %}
Galerie popisekgalerie.nazev}}
Author
Owner

bug

bug
ledoian marked this conversation as resolved
Author
Owner

@ledoian wrote in #99 (comment):

oh shit fuck, ten merge není hezký. Zkusím ho nějak pomlátit, bude z toho separátní větev…

Už mi to nemyslí, tak jsem udělalo větve pro všechny případy :-P

  • tahle větev je galerie_videjka a je v ní PR tak, jak si ho LEdo představovalo (což neznamená, že to dává smysl). Cílí na Django 4.2. Aktuální commit je 95c5f1fc4a8567ea, dost možná dává smysl fast-forwardnout tu větev na některou z následujících (jen si nejsem jisté na kterou, myslím, že na merge-galerie-videjka 😅).
  • větev merge-galerie-videjka je pokračování galerie_videjka a jde čistě mergenout do aktuálního masteru (vršek je commit fc29d82e95c1d3). Cílí na Django 5.2 a obsahuje příslušné změny. Má už odaplikovaný hack na buildění dokumentace, takže se dokumentace aktuálně nebuildí (viz !115)
  • větev backports-galerie-videjka je taky pokračování větve galerie_videjka a obsahuje změny z merge-galerie-videjka kompatibilní s Djangem 4.2. Nemám vyzkoušené, jestli jde mergenout.

Na všech třech seběhnou testy na Pythonu 3.13, na merge-galerie-videjka i na Py3.14.

Mám podezření, že správný postup je buď fast-forwardnout galerie_videjka rovnou na merge-galerie-videjka, nebo ji fast-forwardnout na backports-galerie-videjka a merge-galerie-videjka naroubovat za konec backports-galerie-videjka. Ale fakt nejsem ve stavu, kdy bych to umělo rozhodnout. Za to jsem ve stavu, kdy cokoliv z toho umím provést, ale nevím, jestli tři další větve něčemu pomůžou :-D

@ledoian wrote in https://gitea.ks.matfyz.cz/mam/mamweb/pulls/99#issuecomment-6483: > oh shit fuck, ten merge není hezký. Zkusím ho nějak pomlátit, bude z toho separátní větev… Už mi to nemyslí, tak jsem udělalo větve pro všechny případy :-P - tahle větev je `galerie_videjka` a je v ní PR tak, jak si ho LEdo představovalo (což neznamená, že to dává smysl). Cílí na Django 4.2. Aktuální commit je `95c5f1fc4a8567ea`, dost možná dává smysl fast-forwardnout tu větev na některou z následujících (jen si nejsem jisté na kterou, myslím, že na `merge-galerie-videjka` 😅). - větev `merge-galerie-videjka` je pokračování `galerie_videjka` a jde čistě mergenout do aktuálního masteru (vršek je commit `fc29d82e95c1d3`). Cílí na Django 5.2 a obsahuje příslušné změny. Má už odaplikovaný hack na buildění dokumentace, takže se dokumentace aktuálně nebuildí (viz !115) - větev `backports-galerie-videjka` je taky pokračování větve `galerie_videjka` a obsahuje změny z `merge-galerie-videjka` kompatibilní s Djangem 4.2. Nemám vyzkoušené, jestli jde mergenout. Na všech třech seběhnou testy na Pythonu 3.13, na `merge-galerie-videjka` i na Py3.14. Mám podezření, že správný postup je buď fast-forwardnout `galerie_videjka` rovnou na `merge-galerie-videjka`, nebo ji fast-forwardnout na `backports-galerie-videjka` a `merge-galerie-videjka` naroubovat za konec `backports-galerie-videjka`. Ale fakt nejsem ve stavu, kdy bych to umělo rozhodnout. Za to jsem ve stavu, kdy cokoliv z toho umím provést, ale nevím, jestli tři další větve něčemu pomůžou :-D
This pull request has changes conflicting with the target branch.
  • galerie/admin.py
  • galerie/models.py
  • galerie/views.py
  • requirements.txt
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin galerie_videjka:galerie_videjka
git switch galerie_videjka

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch master
git merge --no-ff galerie_videjka
git switch galerie_videjka
git rebase master
git switch master
git merge --ff-only galerie_videjka
git switch galerie_videjka
git rebase master
git switch master
git merge --no-ff galerie_videjka
git switch master
git merge --squash galerie_videjka
git switch master
git merge --ff-only galerie_videjka
git switch master
git merge galerie_videjka
git push origin master
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!99
No description provided.