def get(self, request, *args, **kwargs): img_url = reverse( 'lizard_map_adapter_image', kwargs={'adapter_class': 'adapter_fewsnorm'}) values_csv_url = reverse( 'lizard_map_adapter_values', kwargs={'adapter_class': 'adapter_fewsnorm', 'output_type': 'csv'}) values_html_url = reverse( 'lizard_map_adapter_values', kwargs={'adapter_class': 'adapter_fewsnorm', 'output_type': 'html'}) result = [] for identifier in AdapterFewsNorm.identifiers(): serialized_identifier = adapter_serialize(identifier) url_params = { 'identifier': serialized_identifier, 'adapter_layer_json': adapter_serialize({ 'parameter_id': identifier['parameter_id'], 'module_id': None, 'fews_norm_source_slug': '', })} url_params_str = '&'.join([ '%s=%s' % (k, v) for k, v in url_params.items()]) img_url_id = '%s?%s' % (img_url, url_params_str) values_csv_url_id = '%s?%s' % (values_csv_url, url_params_str) values_html_url_id = '%s?%s' % (values_html_url, url_params_str) result.append({ 'identifier': serialized_identifier, 'img_url': img_url_id, 'values_csv_url': values_csv_url_id, 'values_html_url': values_html_url_id, }) return result
def get_success_url(self): identifier = {"location": self.location} identifier_str = adapter_serialize(identifier) return "%s?workspace_item_id=%s&identifier=%s" % ( reverse("lizard_fewsjdbc.thresholds"), self.workspace_item_id, identifier_str, )
def _url_arguments(self, identifiers): """for img_url, csv_url""" layer_json = self.adapter_layer_json.replace('"', '%22') url_arguments = [ 'adapter_layer_json=%s' % layer_json, ] url_arguments.extend([ 'identifier=%s' % adapter_serialize( identifier) for identifier in identifiers]) return url_arguments
def get_success_url(self): workspace_item_id = self.request.GET.get("workspace_item_id") location = self.request.GET.get("location") identifier = {"location": location} identifier_str = adapter_serialize(identifier) return "%s?workspace_item_id=%s&identifier=%s" % ( reverse("lizard_fewsjdbc.thresholds"), workspace_item_id, identifier_str, )
def html(self, identifiers=None, layout_options=None): """Adapted version of lizard-map's html_default. If there are several graphs to be shown, we show them as several graphs in one popup tab.""" is_collage = layout_options and layout_options.get('is_collage', False) # Build "adapter-image" url for current adapter and identifiers, # one for each identifier. urls = [ {'image_url': self.workspace_mixin_item.url( "lizard_map_adapter_image", [identifier]), 'flot_url': self.workspace_mixin_item.url( "lizard_map_adapter_flot_graph_data", [identifier]), 'title': self.location(**identifier)['name'] } for identifier in identifiers] # Makes it possible to create collage items from current # selected objects. collage_item_props = [] # No export and selection for collages. if not is_collage: for identifier in identifiers: location = self.location(**identifier) collage_item_props.append( {'name': location['name'], 'adapter_class': self.workspace_mixin_item.adapter_class, 'adapter_layer_json': self.workspace_mixin_item.adapter_layer_json, 'identifier': adapter_serialize(identifier), 'url': self.workspace_mixin_item.url( "lizard_map_adapter_values", [identifier, ], extra_kwargs={'output_type': 'csv'})}) render_kwargs = { 'unit': u'', # Don't show unit above the graphs 'urls': urls, 'symbol_url': self.symbol_url(), 'collage_item_props': collage_item_props, 'adapter': self, } if layout_options is not None: render_kwargs.update(layout_options) return render_to_string( 'lizard_fancylayers/popup.html', render_kwargs)
def html_default(self, snippet_group=None, identifiers=None, layout_options=None, template=None, extra_render_kwargs=None): """ Default implementation for html view ("popup"). It returns an html snippet with links in it. The 'snippet_group' kwarg is not used anymore, but exists for backward compatibility. If settings.DEBUG is True, using this causes a warning. Use this function if html function behaviour is default: def html(self, identifiers): return super(WorkspaceItemAdapterKrw, self).html_default( identifiers) """ if snippet_group is not None and settings.DEBUG: logger.warn('kwarg "snippet_group" supplied to html_default ' + 'even though it is not used anymore.') if template is None: template = 'lizard_map/html_default.html' is_collage = False if layout_options is not None: if 'is_collage' in layout_options: is_collage = layout_options['is_collage'] # Fetch name if identifiers: identifier_str = {} for k, v in identifiers[0].items(): identifier_str[str(k)] = v location = self.location(**identifier_str) title = location['name'] else: title = self.workspace_mixin_item.name # Build "adapter-image" url for current adapter and identifiers. image_graph_url = self.workspace_mixin_item.url( "lizard_map_adapter_image", identifiers) flot_graph_data_url = self.workspace_mixin_item.url( "lizard_map_adapter_flot_graph_data", identifiers) # Makes it possible to create collage items from current # selected objects. collage_item_props = [] # No export and selection for collages. if not is_collage: for identifier in identifiers: identifier_str = {} for k, v in identifier.items(): identifier_str[str(k)] = v location = self.location(**identifier_str) collage_item_props.append( {'name': location['name'], 'adapter_class': self.workspace_mixin_item.adapter_class, 'adapter_layer_json': self.workspace_mixin_item.adapter_layer_json, 'identifier': adapter_serialize(identifier), 'url': self.workspace_mixin_item.url( "lizard_map_adapter_values", [identifier, ], extra_kwargs={'output_type': 'csv'})}) render_kwargs = { 'title': title, 'image_graph_url': image_graph_url, 'flot_graph_data_url': flot_graph_data_url, 'symbol_url': self.symbol_url(), 'collage_item_props': collage_item_props, 'adapter': self, } if layout_options is not None: render_kwargs.update(layout_options) if extra_render_kwargs is not None: render_kwargs.update(extra_render_kwargs) return render_to_string( template, render_kwargs)