Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from collections import Iterable
- from django import forms
- from django.conf import settings
- from django.template.loader import render_to_string
- from django.utils import simplejson
- from django.utils.encoding import smart_str
- from django.utils.safestring import mark_safe
- from olwidget import utils
- from olwidget.widgets import InfoLayer
- class MultiInfoLayer(InfoLayer):
- def _prepare_single_layer(self, layer):
- wkt_array = []
- for geom, attr in layer:
- wkt = utils.get_ewkt(geom)
- if isinstance(attr, dict):
- wkt_array.append( [wkt, utils.translate_options(attr)] )
- else:
- wkt_array.append( [wkt, attr] )
- return wkt_array
- def prepare(self, name, value, attrs=None):
- wkt_array = []
- if isinstance( self.info[0], Iterable ):
- for layer in self.info:
- wkt_array += self._prepare_single_layer( layer )
- else:
- wkt_array += self._prepare_single_layer( self.info )
- info_json = simplejson.dumps(wkt_array)
- if name and not self.options.has_key('name'):
- self.options['name'] = forms.forms.pretty_name(name)
- context = {
- 'info_array': info_json,
- 'options': simplejson.dumps(utils.translate_options(self.options)),
- 'STATIC_URL': settings.STATIC_URL,
- }
- context.update(self.get_extra_context())
- js = mark_safe(render_to_string(self.template, context))
- html = ""
- return (js, html)
Advertisement
Add Comment
Please, Sign In to add comment