Browse Source

Merge branch 'matej-galerie'

remotes/origin/imagekit
Matěj Kocián 9 years ago
parent
commit
a2c24c5a63
  1. 2
      galerie/models.py
  2. 67
      galerie/templates/galerie/Galerie.html
  3. 95
      galerie/templates/galerie/GalerieNahled.html
  4. 37
      galerie/views.py
  5. 88
      mamweb/static/css/mamweb.css
  6. 3
      mamweb/templates/base.html

2
galerie/models.py

@ -104,7 +104,7 @@ class Obrazek(models.Model):
datum_int[3], datum_int[4], datum_int[5]) datum_int[3], datum_int[4], datum_int[5])
jmeno = os.path.basename(self.obrazek_velky.file.name) jmeno = os.path.basename(self.obrazek_velky.file.name)
if not self.obrazek_stredni: if not self.obrazek_stredni:
Obrazek._vyrobMiniaturu(original, jmeno, 600, self.obrazek_stredni) Obrazek._vyrobMiniaturu(original, jmeno, 1024, self.obrazek_stredni)
if not self.obrazek_maly: if not self.obrazek_maly:
Obrazek._vyrobMiniaturu(original, jmeno, 200, self.obrazek_maly) Obrazek._vyrobMiniaturu(original, jmeno, 200, self.obrazek_maly)
super(Obrazek, self).save() super(Obrazek, self).save()

67
galerie/templates/galerie/Galerie.html

@ -1,13 +1,48 @@
{% extends "galerie/Base.html" %} {% extends "galerie/Base.html" %}
{% block title %}{% block nadpis1a %}
{{galerie.nazev}} | Galerie {% block nadpis1a %}
{% endblock %}{% endblock %} {{galerie.nazev}}: {{ obrazek.popis | default:"Fotka" }}
{% endblock %}
{% block script %}
{% with obrazky_predchozi|last as predchozi_obrazek %}
{% with obrazky_dalsi|first as dalsi_obrazek %}
<script type="text/javascript">
$(document).keydown(function(e) {
{% if predchozi_obrazek %}
// doleva
if (e.which == 37) {
window.location.assign("../{{ predchozi_obrazek.pk }}#nahoru");
}
{% endif %}
{% if dalsi_obrazek %}
// doprava
if (e.which == 39) {
window.location.assign("../{{ dalsi_obrazek.pk }}#nahoru");
}
{% endif %}
if (e.which == 27) {
window.location.assign("../#obsah")
}
})
</script>
{% endwith %}
{% endwith %}
{% endblock %}
{% block content %} {% block content %}
<div id="popis">
<h2><a title="Zpět na náhled fotek" href="../#obsah">{{galerie.nazev}}</a></h2>
</div> <h2>
{% for g in cesta %}
<a href="../../{{ g.pk }}">{{ g.nazev }}</a> >
{% endfor %}
{{ obrazek.nazev }}
</h2>
<!--<div id="nahoru">-->
<!--<a title="Zpět do galerie" href="../#obsah">Zpět na: {{galerie.nazev}}</a>-->
<!--</div>-->
{# TODO šipky na přecházeni dodelat ve stylech #} {# TODO šipky na přecházeni dodelat ve stylech #}
@ -15,28 +50,32 @@
{% if obrazky_predchozi %} {% if obrazky_predchozi %}
{% with obrazky_predchozi|last as predchozi_obrazek %} {% with obrazky_predchozi|last as predchozi_obrazek %}
<div> <div>
<a title="Předchozí" class="predchozi_obrazek" href="../{{predchozi_obrazek.pk}}#popis"></a> <a title="Předchozí" class="predchozi_obrazek" href="../{{predchozi_obrazek.pk}}#nahoru"></a>
</div> </div>
{% endwith %} {% endwith %}
{% endif%} {% endif%}
<img src={{obrazek.obrazek_stredni.url}} <img src="{{obrazek.obrazek_stredni.url}}"
height="{{vyska}}" height="{{vyska}}"
width="{{sirka}}" width="{{sirka}}"
alt="{{obrazek.popis}}" alt="{{obrazek.popis}}"
class="obrazek"> class="obrazek" id="nahoru">
{% if obrazky_dalsi %} {% if obrazky_dalsi %}
{% with obrazky_dalsi|first as dalsi_obrazek %} {% with obrazky_dalsi|first as dalsi_obrazek %}
<div> <div>
<a title="Další" class="dalsi_obrazek" href="../{{dalsi_obrazek.pk}}#popis"></a> <a title="Další" class="dalsi_obrazek" href="../{{dalsi_obrazek.pk}}#nahoru"></a>
</div> </div>
{% endwith %} {% endwith %}
{% endif%} {% endif%}
</div> </div>
<!--<div>-->
<!--<a href="{{ obrazek.obrazek_velky.url }}">Obrázek v plné velikosti</a>-->
<!--</div>-->
{# Popisek fotky #} {# Popisek fotky #}
<div class="popis"> <div class="popis">
{% if preview %} {% if not preview %}
<form action=".#popis" method="post"> <form action=".#nahoru" method="post">
{% csrf_token %} {% csrf_token %}
<table> <table>
<tr><td><label>Aktuální komentář:</label></td><td>{{obrazek.popis}}</td> <tr><td><label>Aktuální komentář:</label></td><td>{{obrazek.popis}}</td>
@ -60,7 +99,7 @@
{% endif %} {% endif %}
{# nahledy predchozich obrazku #} {# nahledy predchozich obrazku #}
{% for obrazek in obrazky_predchozi %} {% for obrazek in obrazky_predchozi %}
<a href="../{{obrazek.pk}}#popis"><img src="{{obrazek.obrazek_maly.url}}" height="100"></a> <a href="../{{obrazek.pk}}#nahoru"><img src="{{obrazek.obrazek_maly.url}}" height="100"></a>
{% endfor %} {% endfor %}
{# nahled aktualniho obrazku -- TODO po kliknuti vypsat: Prohrál jsi #} {# nahled aktualniho obrazku -- TODO po kliknuti vypsat: Prohrál jsi #}
<img src={{obrazek.obrazek_maly.url}} <img src={{obrazek.obrazek_maly.url}}
@ -70,7 +109,7 @@
class="obrazek"> class="obrazek">
{# nahledy nasledujicich obrazku #} {# nahledy nasledujicich obrazku #}
{% for obrazek in obrazky_dalsi %} {% for obrazek in obrazky_dalsi %}
<a href="../{{obrazek.pk}}#popis"><img src="{{obrazek.obrazek_maly.url}}" height="100"></a> <a href="../{{obrazek.pk}}#nahoru"><img src="{{obrazek.obrazek_maly.url}}" height="100"></a>
{% endfor %} {% endfor %}
{# odkaz na nasledujici galerii #} {# odkaz na nasledujici galerii #}
{% if nasledujici_galerie %} {% if nasledujici_galerie %}

95
galerie/templates/galerie/GalerieNahled.html

@ -1,35 +1,76 @@
{% extends "galerie/Base.html" %} {% extends "galerie/Base.html" %}
{% block title %}{% block nadpis1a %} {% block nadpis1a %}
{{galerie.nazev}} | Galerie TODO title Galerie {{galerie.nazev}}
{% endblock %}{% endblock %} {% endblock %}
{% block content %} {% block content %}
<h2>{{galerie.nazev}}</h2>
<h2>
{% for g in cesta %}
{% if not forloop.last %}
<a href="../{{ g.pk }}">{{ g.nazev }}</a> >
{% else %}
{{ g.nazev }}
{% endif %}
{% endfor %}
</h2>
{% if not obrazky %}
<div class="galerie_hlavicka">
{% if galerie.titulni_obrazek %}
<img src="{{ galerie.titulni_obrazek.obrazek_stredni.url }}" style="border: 1px solid black;">
{% endif %}
{% if galerie.popis %}
<div class="popis">
{{ galerie.popis }}
</div>
{% endif %}
</div>
{% endif %}
{# podgalerie #} {# podgalerie #}
{% if podgalerie or galerie.galerie_up %} {% if podgalerie or galerie.galerie_up %}
<h3> PODGALERIE </h3>
<ul> {% if sourozenci|length > 1 %}
{% if galerie.galerie_up %} {% for g in sourozenci %}
<li><a href="../{{galerie.galerie_up.pk}}">..</a> {% if g.pk != galerie.pk %}
<a href="../{{ g.pk }}">{{ g.nazev }}</a>
{% else %}
{{ g.nazev }}
{% endif %} {% endif %}
<span style="width: 1em; display: inline-block;"></span>
{% endfor %}
{% endif %}
{% if podgalerie %}
<div class="galerie_nahledy">
{% for galerie in podgalerie %} {% for galerie in podgalerie %}
<div class="podgalerie_nahled">
{% if galerie.zobrazit < 1 or user.is_staff %} {% if galerie.zobrazit < 1 or user.is_staff %}
<li><a href="../{{galerie.pk}}">{{galerie}}</a> {% with galerie.titulni_obrazek.obrazek_maly as obrazek %}
{% if user.is_staff and galerie.zobrazit > 0 %} <a href="../{{galerie.pk}}"><img src="{{ obrazek.url }}"
({{galerie.poradi}}) width={% widthratio obrazek.width 200 167 %}
<span class="plus"><a href="plus/{{galerie.pk}}/">+</a></span> height={% widthratio obrazek.height 200 167 %} /></a>
<span class="minus"><a href="minus/{{galerie.pk}}/">-</a></span> {% endwith %}
{% endif %} <div>
<a href="../{{ galerie.pk }}">{{ galerie }}</a>
</div>
{# {% if user.is_staff and galerie.zobrazit > 0 %} #}
{# ({{galerie.poradi}}) #}
{# <span class="plus"><a href="plus/{{galerie.pk}}/">+</a></span> #}
{# <span class="minus"><a href="minus/{{galerie.pk}}/">-</a></span> #}
{# {% endif %} #}
{% endif %} {% endif %}
</div>
{% endfor %} {% endfor %}
</ul> </div>
{% endif %}
{% endif %} {% endif %}
{% if user.is_staff and galerie.zobrazit > 0 %} {% if user.is_staff and galerie.zobrazit > 0 %}
<ul> <div class="mam-org-only">
<li><a href="./new">VYTVOŘIT NOVOU PODGALERII </a> <a href="./new">Vytvořit novou podgalerii </a>
</ul> </div>
{% endif %} {% endif %}
{# obrazky v galerii #} {# obrazky v galerii #}
@ -38,7 +79,7 @@
{% for obrazek in obrazky %} {% for obrazek in obrazky %}
<div class="galerie_nahled"> <div class="galerie_nahled">
<span class="vystredeno"></span> <span class="vystredeno"></span>
<a title="Zobrazit tuto fotografii" href="./{{obrazek.pk}}#popis"> <a title="Zobrazit tuto fotografii" href="./{{obrazek.pk}}#nahoru">
<img <img
src="{{obrazek.obrazek_maly.url}}" src="{{obrazek.obrazek_maly.url}}"
width={% widthratio obrazek.obrazek_maly.width 200 167 %} width={% widthratio obrazek.obrazek_maly.width 200 167 %}
@ -48,9 +89,25 @@
{% endfor %} {% endfor %}
<br> <br>
</div> </div>
<div class="galerie_predchozi_nasledujici">
{% if predchozi %}
<div class="predchozi">
<a href="../{{ predchozi.pk }}">Předchozí: {{ predchozi.nazev }}</a>
</div>
{% endif %}
{% if nasledujici %}
<div class="nasledujici">
<a href="../{{ nasledujici.pk }}">Následující: {{ nasledujici.nazev }}</a>
</div>
{% endif %}
</div>
{% else %} {% else %}
{% if not podgalerie %}
<div class="zadne-vysledky"> <div class="zadne-vysledky">
V galerii nejsou žádné fotky. V galerii nejsou žádné fotky.
</div> </div>
{% endif %} {% endif %}
{% endif %}
{% endblock content %} {% endblock content %}

37
galerie/views.py

@ -20,23 +20,55 @@ def zobrazit(galerie, request):
raise Http404 raise Http404
return preview return preview
def cesta_od_korene(g):
"""Vrátí seznam galerií od kořene ke g"""
cesta = []
while g != None:
cesta.append(g)
g = g.galerie_up
return reversed(cesta)
def nahled(request, pk, soustredeni): def nahled(request, pk, soustredeni):
"""Zobrazeni nahledu vsech fotek ve skupine.""" """Zobrazeni nahledu vsech fotek ve skupine."""
galerie = get_object_or_404(Galerie, pk=pk) galerie = get_object_or_404(Galerie, pk=pk)
podgalerie = Galerie.objects.filter(galerie_up = galerie).order_by('poradi') podgalerie = Galerie.objects.filter(galerie_up = galerie).order_by('poradi')
obrazky = Obrazek.objects.filter(galerie = galerie).order_by('datum') obrazky = Obrazek.objects.filter(galerie = galerie).order_by('datum')
preview = zobrazit(galerie, request) preview = zobrazit(galerie, request)
sourozenci = []
if galerie.galerie_up:
sourozenci = galerie.galerie_up.galerie_set.all().order_by('poradi')
predchozi = None
nasledujici = None
minuly = None
for g in sourozenci:
if g.pk == galerie.pk:
predchozi = minuly
if minuly != None and minuly.pk == galerie.pk:
nasledujici = g
break
minuly = g
cesta = cesta_od_korene(galerie)
return render(request, 'galerie/GalerieNahled.html', return render(request, 'galerie/GalerieNahled.html',
{'galerie' : galerie, {'galerie' : galerie,
'podgalerie' : podgalerie, 'podgalerie' : podgalerie,
'obrazky' : obrazky, 'obrazky' : obrazky,
'preview' : preview, 'preview' : preview,
'cesta': cesta,
'sourozenci': sourozenci,
'predchozi': predchozi,
'nasledujici': nasledujici,
}) })
def detail(request, pk, fotka, soustredeni): def detail(request, pk, fotka, soustredeni):
"""Zobrazeni nahledu fotky s id 'fotka'.""" """Zobrazeni nahledu fotky s id 'fotka'."""
MAX_VYSKA = 600 MAX_VYSKA = 900
MAX_SIRKA = 600 MAX_SIRKA = 900
MAX_VYSKA_MALA = 100 MAX_VYSKA_MALA = 100
MAX_SIRKA_MALA = 200 MAX_SIRKA_MALA = 200
NAHLEDU = 1 NAHLEDU = 1
@ -115,6 +147,7 @@ def detail(request, pk, fotka, soustredeni):
'obrazky_dalsi' : obrazky_dalsi, 'obrazky_dalsi' : obrazky_dalsi,
'preview' : preview, 'preview' : preview,
'form' : form, 'form' : form,
'cesta': cesta_od_korene(galerie),
}) })

88
mamweb/static/css/mamweb.css

@ -15,6 +15,7 @@ body {
background: #fff0d7; background: #fff0d7;
padding: 10px; padding: 10px;
margin: 10px -10px; margin: 10px -10px;
border: orange 2px dashed;
} }
table .border-r { table .border-r {
@ -150,6 +151,10 @@ div.menu li.selected a {
z-index: 15px; z-index: 15px;
} }
h2 a:hover {
text-decoration: none;
}
#submenu { #submenu {
position: relative; position: relative;
top: -15px; top: -15px;
@ -470,23 +475,32 @@ div.zadani_azad_termin {
.galerie { .galerie {
position: relative; position: relative;
text-align: center; text-align: center;
width: 630px; /*width: 100%;*/
margin: 0 auto 0 auto; margin: 20px auto 0 auto;
} }
.galerie h2 { .galerie h2 {
text-align: center; text-align: center;
} }
.galerie_hlavicka {
margin: 30px auto 30px auto;
}
.popis { .popis {
margin: 10px 10px 30px 0px;
clear: all;
}
#nahoru {
text-align: center; text-align: center;
margin: 10px 10px 30px 10px;
} }
.galerie_nahledy{ .galerie_nahledy{
/*margin: 1em 0;*/ /*margin: 1em 0;*/
margin: 0 auto 0 auto; margin: 0 auto 30px auto;
text-align: center; text-align: center;
overflow: auto;
} }
.galerie_nahledy img{ .galerie_nahledy img{
@ -499,17 +513,21 @@ div.zadani_azad_termin {
} }
.galerie_nahled{ /* frame */ .galerie_nahled{ /* frame */
display: inline-block;
position: relative;
float: left; float: left;
width: 190px; width: 200px;
height: 190px; height: 200px;
text-align: center; text-align: center;
border: solid; border: solid;
border-width: 2px; border-width: 2px;
border-radius: 5px; border-radius: 5px;
border-color: #ffa500; /*border-color: #ffa500;*/
background-color: #ffb52d; border-color: #ffd546;
/*background-color: #ffb52d;*/
background-color: white;
white-space: nowrap; white-space: nowrap;
margin: 10px; margin: 10px 20px 10px 0px;
} }
.vystredeno{ /* helper */ .vystredeno{ /* helper */
@ -519,10 +537,60 @@ div.zadani_azad_termin {
} }
.galerie_nahled img { .galerie_nahled img {
border-radius: 2px;
vertical-align: middle; vertical-align: middle;
max-height: 180px; max-height: 180px;
max-width: 180px; max-width: 180px;
/*border: 1px solid white;*/
}
.galerie_nahled img:hover {
/*border: 1px solid #ffa500;*/
}
.galerie_nahled div {
position: absolute;
bottom: 0px;
width: 100%;
text-align: center;
}
.podgalerie_nahled {
position: relative;
float: left;
width: 200px;
height: 200px;
text-align: center;
border: solid;
border-width: 2px;
border-radius: 5px;
border-color: #ffa500;
/*border-color: #ffd546;*/
background-color: #ffd546;
/*background-color: white;*/
white-space: nowrap;
margin: 10px 20px 10px 0px;
}
.podgalerie_nahled img {
margin-top: 20px;
margin-bottom: 15px;
}
/* Odkazy na předchozí a následující podgalerii */
.galerie_predchozi_nasledujici {
overflow: auto;
margin: 10px auto 10px auto;
}
.galerie_predchozi_nasledujici .predchozi {
float: left;
}
.galerie_predchozi_nasledujici .nasledujici {
float: right;
} }

3
mamweb/templates/base.html

@ -29,6 +29,9 @@
src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script> </script>
{# script specifický pro stránku #}
{% block script %}{% endblock %}
</head> </head>
<body class='{% if user.is_staff %}org-logged-in{% endif %}'> <body class='{% if user.is_staff %}org-logged-in{% endif %}'>
{% if user.is_staff %} {% if user.is_staff %}

Loading…
Cancel
Save