""" 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, date 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}