# Path: apps/cyklomapa/models.py
# class Mesto(models.Model):
#     "Mesto - vyber na zaklade subdomeny"
#     aktivni = models.BooleanField(default=True, verbose_name=u"Aktivní", help_text=u"Město je přístupné pro veřejnost")
#     vyhledavani = models.BooleanField(verbose_name=u"Vyhledávač", default=True, help_text=u"Vyhledávání je aktivované")
#     zoom = models.PositiveIntegerField(default=13, help_text=u"Zoomlevel, ve kterém se zobrazí mapa po načtení")
#     maxzoom = models.PositiveIntegerField(default=18, help_text=u"Maximální zoomlevel mapy")
#     uvodni_zprava = models.TextField(null=True, blank=True, verbose_name=u"Úvodní zpráva", help_text=u"Zpráva, která se zobrazí v levém panelu")
# 
#     geom = models.PointField(verbose_name=u"Poloha středu", srid=4326)
#     sektor = models.OneToOneField(Sector, null=True, on_delete=models.CASCADE)
# 
#     class Meta:
#         permissions = [
#             ("can_edit_all_fields", "Can edit all field"),
#         ]
#         verbose_name_plural = "města"
# 
#     def __str__(self):
#         return self.sektor.name
# 
# class Poi(Poi):
#     class Meta:
#         proxy = True
# 
#     def get_absolute_url(self):
#         return "#misto=%s_%i/" % (self.marker.layer.slug, self.id)


import json
import pathlib
from django.conf import settings
from django.contrib.gis.shortcuts import render_to_kml
from django.contrib.sites.shortcuts import get_current_site
from django.core.cache import cache
from django.http import JsonResponse
from django.shortcuts import get_object_or_404, render
from django.views.decorators.cache import cache_page, never_cache
from django.views.decorators.csrf import csrf_protect
from django.views.decorators.gzip import gzip_page
from django.views.generic import TemplateView
from django.core.cache import cache
from django.utils import timezone
from django_comments.models import Comment
from django_q.models import Success
from django_q.tasks import async_task, result
from webmap.models import Legend, MapPreset, Marker, OverlayLayer
from .models import Mesto, Poi
from. utils import check_download_cykliste_sobe_layer_job
# views.py






@gzip_page
@cache_page(24 * 60 * 60)  # cachujeme view v memcached s platnosti 24h
@csrf_protect
def mapa_view(request, poi_id=None):
    vrstvy = OverlayLayer.objects.filter(status__show=True)
    # volitelne poi_id zadane mape jako bod, na ktery se ma zazoomovat
    center_poi = None
    if poi_id:
        try:
            center_poi = Poi.visible.get(id=poi_id)
        except Poi.DoesNotExist:
            pass

    context = {
        'vrstvy': vrstvy,
        'center_poi': center_poi,
        'mesto': request.mesto,
        'presets': MapPreset.objects.filter(status__show=True),

# Path: apps/cyklomapa/models.py
# class Mesto(models.Model):
#     "Mesto - vyber na zaklade subdomeny"
#     aktivni = models.BooleanField(default=True, verbose_name=u"Aktivní", help_text=u"Město je přístupné pro veřejnost")
#     vyhledavani = models.BooleanField(verbose_name=u"Vyhledávač", default=True, help_text=u"Vyhledávání je aktivované")
#     zoom = models.PositiveIntegerField(default=13, help_text=u"Zoomlevel, ve kterém se zobrazí mapa po načtení")
#     maxzoom = models.PositiveIntegerField(default=18, help_text=u"Maximální zoomlevel mapy")
#     uvodni_zprava = models.TextField(null=True, blank=True, verbose_name=u"Úvodní zpráva", help_text=u"Zpráva, která se zobrazí v levém panelu")
# 
#     geom = models.PointField(verbose_name=u"Poloha středu", srid=4326)
#     sektor = models.OneToOneField(Sector, null=True, on_delete=models.CASCADE)
# 
#     class Meta:
#         permissions = [
#             ("can_edit_all_fields", "Can edit all field"),
#         ]
#         verbose_name_plural = "města"
# 
#     def __str__(self):
#         return self.sektor.name
# 
# class Poi(Poi):
#     class Meta:
#         proxy = True
# 
#     def get_absolute_url(self):
#         return "#misto=%s_%i/" % (self.marker.layer.slug, self.id)


# Path: apps/cyklomapa/views.py
import json
import pathlib
from django.conf import settings
from django.contrib.gis.shortcuts import render_to_kml
from django.contrib.sites.shortcuts import get_current_site
from django.core.cache import cache
from django.http import JsonResponse
from django.shortcuts import get_object_or_404, render
from django.views.decorators.cache import cache_page, never_cache
from django.views.decorators.csrf import csrf_protect
from django.views.decorators.gzip import gzip_page
from django.views.generic import TemplateView
from django.core.cache import cache
from django.utils import timezone
from django_comments.models import Comment
from django_q.models import Success
from django_q.tasks import async_task, result
from webmap.models import Legend, MapPreset, Marker, OverlayLayer
from .models import Mesto, Poi
from. utils import check_download_cykliste_sobe_layer_job

# views.py






@gzip_page
@cache_page(24 * 60 * 60)  # cachujeme view v memcached s platnosti 24h
@csrf_protect
def mapa_view(request, poi_id=None):
    vrstvy = OverlayLayer.objects.filter(status__show=True)
    # volitelne poi_id zadane mape jako bod, na ktery se ma zazoomovat
    center_poi = None
    if poi_id:
        try:
            center_poi = Poi.visible.get(id=poi_id)
        except Poi.DoesNotExist:
            pass

    context = {
        'vrstvy': vrstvy,
        'center_poi': center_poi,
        'mesto': request.mesto,
        'presets': MapPreset.objects.filter(status__show=True),

        'mesta': Mesto.objects.filter(aktivni=True).order_by('sektor__name').all(),