2018-05-19 04:12:19 -05:00
|
|
|
import json
|
2013-02-12 10:34:33 -06:00
|
|
|
from copy import copy
|
|
|
|
|
2012-12-13 11:10:45 -06:00
|
|
|
from django import template
|
2018-05-19 04:12:19 -05:00
|
|
|
from django.conf import settings
|
|
|
|
|
|
|
|
from ..models import DataLayer, TileLayer
|
|
|
|
from ..views import _urls_for_js
|
2012-12-13 11:10:45 -06:00
|
|
|
|
|
|
|
register = template.Library()
|
|
|
|
|
|
|
|
|
2018-05-19 04:12:19 -05:00
|
|
|
@register.inclusion_tag('umap/css.html')
|
|
|
|
def umap_css():
|
|
|
|
return {
|
|
|
|
"STATIC_URL": settings.STATIC_URL
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@register.inclusion_tag('umap/js.html')
|
|
|
|
def umap_js(locale=None):
|
|
|
|
return {
|
|
|
|
"STATIC_URL": settings.STATIC_URL,
|
|
|
|
"locale": locale
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@register.inclusion_tag('umap/map_fragment.html')
|
|
|
|
def map_fragment(map_instance, **kwargs):
|
|
|
|
layers = DataLayer.objects.filter(map=map_instance)
|
|
|
|
datalayer_data = [c.metadata for c in layers]
|
|
|
|
map_settings = map_instance.settings
|
|
|
|
if "properties" not in map_settings:
|
|
|
|
map_settings['properties'] = {}
|
|
|
|
map_settings['properties'].update({
|
2018-07-14 06:59:40 -05:00
|
|
|
'tilelayers': [TileLayer.get_default().json],
|
2018-05-19 04:12:19 -05:00
|
|
|
'datalayers': datalayer_data,
|
|
|
|
'urls': _urls_for_js(),
|
|
|
|
'STATIC_URL': settings.STATIC_URL,
|
|
|
|
"allowEdit": False,
|
|
|
|
'hash': False,
|
|
|
|
'attributionControl': False,
|
|
|
|
'scrollWheelZoom': False,
|
2018-06-02 08:43:22 -05:00
|
|
|
'umapAttributionControl': False,
|
2018-05-19 04:12:19 -05:00
|
|
|
'noControl': True,
|
2018-06-02 08:43:22 -05:00
|
|
|
'umap_id': map_instance.pk,
|
2018-05-19 04:12:19 -05:00
|
|
|
'onLoadPanel': "none",
|
|
|
|
'captionBar': False,
|
2018-06-02 08:43:22 -05:00
|
|
|
'default_iconUrl': "%sumap/img/marker.png" % settings.STATIC_URL,
|
2018-05-19 04:12:19 -05:00
|
|
|
'slideshow': {}
|
|
|
|
})
|
|
|
|
map_settings['properties'].update(kwargs)
|
2019-04-09 04:47:02 -05:00
|
|
|
prefix = kwargs.pop('prefix', None) or 'map'
|
|
|
|
page = kwargs.pop('page', None) or ''
|
|
|
|
unique_id = prefix + str(page) + "_" + str(map_instance.pk)
|
2018-05-19 04:12:19 -05:00
|
|
|
return {
|
|
|
|
"map_settings": json.dumps(map_settings),
|
|
|
|
"map": map_instance,
|
2019-04-09 04:47:02 -05:00
|
|
|
"unique_id": unique_id
|
2018-05-19 04:12:19 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@register.simple_tag
|
|
|
|
def tilelayer_preview(tilelayer):
|
|
|
|
"""
|
|
|
|
Return an <img> tag with a tile of the tilelayer.
|
|
|
|
"""
|
|
|
|
output = '<img src="{src}" alt="{alt}" title="{title}" />'
|
|
|
|
url = tilelayer.url_template.format(s="a", z=9, x=265, y=181)
|
|
|
|
output = output.format(src=url, alt=tilelayer.name, title=tilelayer.name)
|
|
|
|
return output
|
|
|
|
|
|
|
|
|
|
|
|
@register.filter
|
|
|
|
def notag(s):
|
|
|
|
return s.replace('<', '<')
|
|
|
|
|
|
|
|
|
2013-02-12 10:34:33 -06:00
|
|
|
@register.simple_tag(takes_context=True)
|
|
|
|
def paginate_querystring(context, page):
|
|
|
|
qs = copy(context["request"].GET)
|
2018-08-15 10:42:51 -05:00
|
|
|
qs["p"] = str(page)
|
2013-02-12 10:34:33 -06:00
|
|
|
return qs.urlencode()
|
2013-04-05 21:14:46 -05:00
|
|
|
|
|
|
|
|
|
|
|
@register.filter
|
|
|
|
def ipdb(what):
|
|
|
|
import ipdb
|
|
|
|
ipdb.set_trace()
|
|
|
|
return ''
|