Web M&M
https://mam.matfyz.cz
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.5 KiB
57 lines
1.5 KiB
"""
|
|
Context processory lze přidat do djanga v :mod:`~mamweb.settings` a dělají to,
|
|
že do contextu (tj. to, z čeho se např. berou proměnné v templatech) libovolné
|
|
stránky přidají další věci.
|
|
"""
|
|
from datetime import datetime
|
|
import random
|
|
|
|
from django.conf import settings
|
|
|
|
from header_fotky.models import FotkaUrlVazba
|
|
|
|
|
|
def vzhled(request):
|
|
"""
|
|
Podle času přidá do contextu, zdali je nebo není noc. Dále podle dení
|
|
doby a url přidá do contextu správnou fotku.
|
|
|
|
url adresu nejprve vyzkouší celou, pak postupně odřezává věci za
|
|
lomítkem, dokud nenajde url, pro kterou existuje alespoň jedna fotka.
|
|
Z fotek pro toto url zkusí vybrat tu ve správné denní době a až poté
|
|
libovolnou. (Z více možných fotek pro 1 url a 1 dobu vybírá náhodně.)
|
|
"""
|
|
hodin = datetime.now().hour
|
|
if (hodin <= 6) or (hodin >= 20):
|
|
noc = True
|
|
nedoba = 'den'
|
|
doba = 'noc'
|
|
else:
|
|
noc = False
|
|
nedoba = 'noc'
|
|
doba = 'den'
|
|
url = request.path
|
|
|
|
fotky = FotkaUrlVazba.objects.exclude(denni_doba=nedoba)
|
|
fotka = None
|
|
|
|
# TODO rychlejší patternmatch?
|
|
while (fotka is None) and (url != ''):
|
|
presne = fotky.filter(url__exact=url)
|
|
if presne.count() > 0:
|
|
presne_doba = presne.filter(denni_doba=doba)
|
|
if presne_doba.count() > 0:
|
|
fotka = random.choice(presne_doba).url_fotky()
|
|
else:
|
|
fotka = random.choice(presne).url_fotky()
|
|
|
|
url = url[:-1]
|
|
index = url.rfind('/')
|
|
if index != -1:
|
|
url = url[:index+1]
|
|
|
|
if fotka is None:
|
|
fotka = settings.STATIC_URL + "images/header/vikendovka.jpg"
|
|
|
|
return {'noc': noc, 'fotka': fotka}
|
|
|
|
|