diff --git a/calendar_utils/models.py b/calendar_utils/models.py index 154098170e7e229b35b3dc1c1c59123214c7349b..6b219237e3f6d99497f69c2f9c7441e2ecc18822 100644 --- a/calendar_utils/models.py +++ b/calendar_utils/models.py @@ -1,3 +1,5 @@ +import re + import arrow import requests from django.core.serializers.json import DjangoJSONEncoder @@ -24,6 +26,27 @@ class EventsJSONField(models.JSONField): for event in value: event["begin"] = arrow.get(event["begin"]).datetime event["end"] = arrow.get(event["end"]).datetime + + event["pir"] = { + "name": None, + "tags": [], + "region": None, + } + + pir_name = [] + + for word in event["name"].split(): + if word.startswith("#"): + event["pir"]["tags"].append(word[1:]) + else: + pir_name.append(word) + + if len(pir_name) > 0: + if pir_name[0].endswith(":") and len(pir_name[0]) == 4: + event["pir"]["region"] = pir_name.pop(0)[:-1] + + event["pir"]["name"] = " ".join(pir_name) + return value diff --git a/elections2021/templates/elections2021/elections2021_calendar_page.html b/elections2021/templates/elections2021/elections2021_calendar_page.html index 920169fd4b68ae6d930fb95d8f6b307cee9a76f3..23302d608b102097188e0362cd8d8bf138517fc6 100644 --- a/elections2021/templates/elections2021/elections2021_calendar_page.html +++ b/elections2021/templates/elections2021/elections2021_calendar_page.html @@ -16,42 +16,181 @@ {% endblock %} {% block content %} -<div class="container container--default pt-8 pb-16 lg:py-24"> +<div class="container container--default pt-16 pb-8 px-0 md:px-1"> + <div class="m-auto text-center text-xl leading-loose max-w-2xl"> + {% if not request.GET.tag %} + <span class="font-bold p-1 bg-black text-white">Všechny akce</span> nebo jenom + {% else %} + <a href="?region={{request.GET.region|urlencode}}&tag=" class="font-bold p-1 bg-lemon">Všechny akce</a> nebo jenom + {% endif %} + {% if request.GET.tag == 'lídři' %} + <span class="font-bold p-1 bg-black text-white">setkání s lídry</span>, + {% else %} + <a href="?region={{request.GET.region|urlencode}}&tag=lídři" class="font-bold p-1 bg-lemon">setkání s lídry</a>, + {% endif %} + + {% if request.GET.tag == 'bartoš' %} + <span class="font-bold p-1 bg-black text-white">Ivanem Bartošem</span>, + {% else %} + <a href="?region={{request.GET.region|urlencode}}&tag=bartoš" class="font-bold p-1 bg-lemon">Ivanem Bartošem</a>, + {% endif %} + + {% if request.GET.tag == 'rakušan' %} + <span class="font-bold p-1 bg-black text-white">Vítem Rakušanem</span>, + {% else %} + <a href="?region={{request.GET.region|urlencode}}&tag=rakušan" class="font-bold p-1 bg-lemon">Vítem Rakušanem</a>, + {% endif %} + + {% if request.GET.tag == 'nanukára' %} + <span class="font-bold p-1 bg-black text-white">zastávka Nanukáry</span> či + {% else %} + <a href="?region={{request.GET.region|urlencode}}&tag=nanukára" class="font-bold p-1 bg-lemon">zastávka Nanukáry</a> či + {% endif %} + + {% if request.GET.tag == 'vraťmezemibudoucnost' %} + <span class="font-bold p-1 bg-black text-white">vraťme zemi budoucnost</span>? + {% else %} + <a href="?region={{request.GET.region|urlencode}}&tag=vraťmezemibudoucnost" class="font-bold p-1 bg-lemon">vraťme zemi budoucnost</a>? + {% endif %} + </div> + + <div class="m-auto text-center py-8 text-xl leading-loose max-w-2xl"> + {% if not request.GET.region %} + <span class="font-bold p-1 bg-black text-white">Všechny kraje</span> nebo jenom + {% else %} + <a href="?region=&tag={{request.GET.tag}}" class="font-bold p-1 bg-lemon">Všechny kraje</a> nebo jenom + {% endif %} + + {% if request.GET.region == 'PHA' %} + <span class="font-bold p-1 bg-black text-white">Praha</span>, + {% else %} + <a href="?region=PHA&tag={{request.GET.tag}}" class="font-bold p-1 bg-lemon">Praha</a>, + {% endif %} + + {% if request.GET.region == 'STC' %} + <span class="font-bold p-1 bg-black text-white">Středočeský</span>, + {% else %} + <a href="?region=STC&tag={{request.GET.tag}}" class="font-bold p-1 bg-lemon">Středočeský</a>, + {% endif %} + + {% if request.GET.region == 'JHC' %} + <span class="font-bold p-1 bg-black text-white">Jihočeský</span>, + {% else %} + <a href="?region=JHC&tag={{request.GET.tag}}" class="font-bold p-1 bg-lemon">Jihočeský</a>, + {% endif %} + + {% if request.GET.region == 'PLK' %} + <span class="font-bold p-1 bg-black text-white">Plzeňský</span>, + {% else %} + <a href="?region=PLK&tag={{request.GET.tag}}" class="font-bold p-1 bg-lemon">Plzeňský</a>, + {% endif %} + + {% if request.GET.region == 'KVK' %} + <span class="font-bold p-1 bg-black text-white">Karlovarský</span>, + {% else %} + <a href="?region=KVK&tag={{request.GET.tag}}" class="font-bold p-1 bg-lemon">Karlovarský</a>, + {% endif %} + + {% if request.GET.region == 'ULK' %} + <span class="font-bold p-1 bg-black text-white">Ústecký</span>, + {% else %} + <a href="?region=ULK&tag={{request.GET.tag}}" class="font-bold p-1 bg-lemon">Ústecký</a>, + {% endif %} + + {% if request.GET.region == 'LBK' %} + <span class="font-bold p-1 bg-black text-white">Liberecký</span>, + {% else %} + <a href="?region=LBK&tag={{request.GET.tag}}" class="font-bold p-1 bg-lemon">Liberecký</a>, + {% endif %} + + {% if request.GET.region == 'HKK' %} + <span class="font-bold p-1 bg-black text-white">Královéhradecký</span>, + {% else %} + <a href="?region=HKK&tag={{request.GET.tag}}" class="font-bold p-1 bg-lemon">Královéhradecký</a>, + {% endif %} + + {% if request.GET.region == 'MSK' %} + <span class="font-bold p-1 bg-black text-white">Moravskoslezský</span>, + {% else %} + <a href="?region=MSK&tag={{request.GET.tag}}" class="font-bold p-1 bg-lemon">Moravskoslezský</a>, + {% endif %} + + {% if request.GET.region == 'PAK' %} + <span class="font-bold p-1 bg-black text-white">Pardubický</span>, + {% else %} + <a href="?region=PAK&tag={{request.GET.tag}}" class="font-bold p-1 bg-lemon">Pardubický</a>, + {% endif %} + + {% if request.GET.region == 'VYS' %} + <span class="font-bold p-1 bg-black text-white">Vysočina</span>, + {% else %} + <a href="?region=VYS&tag={{request.GET.tag}}" class="font-bold p-1 bg-lemon">Vysočina</a>, + {% endif %} + + {% if request.GET.region == 'JHM' %} + <span class="font-bold p-1 bg-black text-white">Jihomoravský</span>, + {% else %} + <a href="?region=JHM&tag={{request.GET.tag}}" class="font-bold p-1 bg-lemon">Jihomoravský</a>, + {% endif %} + + {% if request.GET.region == 'OLK' %} + <span class="font-bold p-1 bg-black text-white">Olomoucký</span> či + {% else %} + <a href="?region=OLK&tag={{request.GET.tag}}" class="font-bold p-1 bg-lemon">Olomoucký</a> či + {% endif %} + + {% if request.GET.region == 'ZLK' %} + <span class="font-bold p-1 bg-black text-white">Zlínský</span>? + {% else %} + <a href="?region=ZLK&tag={{request.GET.tag}}" class="font-bold p-1 bg-lemon">Zlínský</a>? + {% endif %} + </div> + +<div class="container container--default pt-8 pb-16 px-0 md:px-1"> {% for event in page.calendar.future_events %} - <div class="grid grid-cols-12 items-center calendar-table-row my-1"> - <div class="col-span-2 head-alt-md calendar-table-row__col" style="color: #92ac00"> - <span>{{ event.begin|date:"j." }}</span> - </div> - <div class="col-span-8 grid grid-cols-3 calendar-table-row__col"> - <div class="col-span-3 md:col-span-1"> - <strong class="block">{{ event.begin|date:"l j. E"|capfirst }}</strong> - <p class="font-light text-sm mt-1">{{ event.duration }}</p> - </div> - <div class="col-span-3 md:col-span-2 mt-4 md:mt-0"> - <strong class="block">{{ event.name }}</strong> - {% if event.location %} - <p class="font-light text-sm mt-1">{{ event.location }}</p> - {% endif %} - - {% if event.description %} - <p class="font-light text-sm mt-1">{{ event.description }}</p> - {% endif %} - </div> - </div> - <div class="col-span-2 text-center font-light calendar-table-row__col"> - {% if event.location %} - <a href="https://maps.google.com/maps?q={{ event.location }}" class="icon-link"> - <i class="ico--location" style="color: #92ac00" aria-hidden="true"></i> - <span>Mapa</span> - </a> + {% if not request.GET.tag or request.GET.tag in event.pir.tags %} + {% if not request.GET.region or request.GET.region == event.pir.region %} + <div class="grid grid-cols-12 items-center calendar-table-row my-1"> + <div class="col-span-2 head-alt-md calendar-table-row__col" style="color: #92ac00"> + <span>{{ event.begin|date:"j." }}</span> + </div> + <div class="col-span-8 grid grid-cols-3 calendar-table-row__col"> + <div class="col-span-3 md:col-span-1"> + <strong class="block">{{ event.begin|date:"l j. E"|capfirst }}</strong> + <p class="font-light text-sm mt-1">{{ event.duration }}</p> + </div> + <div class="col-span-3 md:col-span-2 mt-4 md:mt-0"> + <p> + <strong>{{ event.pir.name }}</strong> + {% for tag in event.pir.tags %} + <span class="text-sm font-light">#{{tag}}</span> + {% endfor %} + </p> + {% if event.location %} + <p class="font-light text-sm mt-1">{{ event.location }}</p> + {% endif %} + + {% if event.description %} + <p class="font-light text-sm mt-1">{{ event.description }}</p> + {% endif %} + </div> + </div> + <div class="col-span-2 text-center font-light calendar-table-row__col"> + {% if event.location %} + <a href="https://maps.google.com/maps?q={{ event.location }}" class="icon-link"> + <i class="ico--location" style="color: #92ac00" aria-hidden="true"></i> + <span>Mapa</span> + </a> + {% endif %} + </div> + </div> {% endif %} - </div> - </div> + {% endif %} {% empty %} - <div class="calendar__row__content"> - <p>Žádné události.</p> - </div> + <div class="calendar__row__content"> + <p>Žádné události.</p> + </div> {% endfor %} </div> diff --git a/elections2021/templates/elections2021/elections2021_home_page.html b/elections2021/templates/elections2021/elections2021_home_page.html index 9e5a6812abb5f7935c1289c2608edb696831c043..47f7eb704a05b28589d0415e308a4de9fed34dba 100644 --- a/elections2021/templates/elections2021/elections2021_home_page.html +++ b/elections2021/templates/elections2021/elections2021_home_page.html @@ -89,7 +89,12 @@ <p class="font-light text-sm mt-1">{{ event.duration }}</p> </div> <div class="col-span-3 md:col-span-2 mt-4 md:mt-0"> - <strong class="block">{{ event.name }}</strong> + <p> + <strong>{{ event.pir.name }}</strong> + {% for tag in event.pir.tags %} + <span class="text-sm font-light">#{{tag}}</span> + {% endfor %} + </p> {% if event.location %} <p class="font-light text-sm mt-1">{{ event.location }}</p> {% endif %}