diff --git a/galerie/models.py b/galerie/models.py index f42edb43..b4cd69e8 100644 --- a/galerie/models.py +++ b/galerie/models.py @@ -20,8 +20,8 @@ def obrazek_filename(): def obrazek_filename_velky(): pass -def galerie_filename(self, filename): - gal = self.galerie +def galerie_filename(soubor, filename): + gal = soubor.galerie cislo_gal = gal.pk # najdi kořenovou galerii @@ -31,7 +31,7 @@ def galerie_filename(self, filename): cesta = ( ['Galerie'] + ([f"soustredeni_{gal.soustredeni.pk}"] if gal.soustredeni else []) + - [f"galerie_{cislo_gal}", self.nazev] + [f"galerie_{cislo_gal}", soubor.nazev] ) return os.path.join(*cesta) @@ -82,7 +82,7 @@ class Soubor(models.Model): case _: raise ValueError("Neznámý typ obrázku, bug v kódu!") def get_absolute_url(self): - return reverse('galerie_soubor', kwargs={'galerie': self.galerie.pk, 'soubor': self.pk}) + return reverse('galerie_soubor', kwargs={'soustredeni': top_galerie(self.galerie).soustredeni.id, 'galerie': self.galerie.pk, 'soubor': self.pk}) class Galerie(models.Model): class Viditelnost(models.IntegerChoices): @@ -115,4 +115,4 @@ class Galerie(models.Model): ordering = ['nadgalerie__datum_vytvoreni', 'poradi', 'nazev'] def get_absolute_url(self): - return reverse('galerie_galerie', kwargs={'galerie': self.pk}) + return reverse('galerie_galerie', kwargs={'soustredeni': top_galerie(self).soustredeni.id, 'galerie': self.pk}) diff --git a/galerie/templates/galerie/Galerie.html b/galerie/templates/galerie/Galerie.html index 97838b52..d64fbeb4 100644 --- a/galerie/templates/galerie/Galerie.html +++ b/galerie/templates/galerie/Galerie.html @@ -21,17 +21,17 @@ {% if predchozi_obrazek %} // doleva if (e.which == 37) { - window.location.assign("{% url 'galerie_soubor' galerie=galerie.pk soubor=predchozi_obrazek.pk %}#nahoru"); + window.location.assign("{% url 'galerie_soubor' soustredeni=soustredeni.id galerie=galerie.pk soubor=predchozi_obrazek.pk %}#nahoru"); } {% endif %} {% if dalsi_obrazek %} // doprava if (e.which == 39) { - window.location.assign("{% url 'galerie_soubor' galerie=galerie.pk soubor=dalsi_obrazek.pk %}#nahoru"); + window.location.assign("{% url 'galerie_soubor' soustredeni=soustredeni.id galerie=galerie.pk soubor=dalsi_obrazek.pk %}#nahoru"); } {% endif %} if (e.which == 27) { - window.location.assign("{% url 'galerie_galerie' galerie=galerie.pk %}#obsah"); + window.location.assign("{% url 'galerie_galerie' soustredeni=soustredeni.id galerie=galerie.pk %}#obsah"); } }); @@ -51,7 +51,7 @@