def _list_measures_json(request): """Return a list with all known measures for the second graph.""" measures = models.Measure.objects.all().values( 'name', 'short_name', 'measure_type', 'km_from') for measure in measures: if not measure['measure_type']: measure['measure_type'] = 'Onbekend' all_types = list( set(measure['measure_type'] for measure in measures)) all_types[all_types.index('Onbekend')] = 'XOnbekend' all_types.sort(reverse=True) all_types[all_types.index('XOnbekend')] = 'Onbekend' single_characters = [] for measure_type in all_types: if measure_type is 'Onbekend': single_characters.append('x') else: single_characters.append(measure_type[0].lower()) selected_measures = _selected_measures(request) unselectable_measures = _unselectable_measures(request) selected_river = _selected_river(request) measures_selected_river = namedreach2measures(selected_river) for measure in measures: measure['selected'] = measure['short_name'] in selected_measures measure['selectable'] = ( measure['short_name'] not in unselectable_measures) measure['type_index'] = all_types.index(measure['measure_type']) measure['type_indicator'] = single_characters[measure['type_index']] measure['show'] = measure['short_name'] in measures_selected_river return list(measures)
def measures(self): measures_ids = namedreach2measures(_selected_river(self.request)) measures = models.Measure.objects.filter(short_name__in=measures_ids) selected_measures = _selected_measures(self.request) available_factsheets = _available_factsheets() # selected_river = _selected_river(self.request) result = [] for measure_obj in measures: measure = {} measure['fields'] = measure_obj.pretty() measure['selected'] = measure_obj.short_name in selected_measures measure['name'] = unicode(measure_obj) measure['short_name'] = measure_obj.short_name if measure_obj.short_name in available_factsheets: try: # This reverse() can fail due to unexpected # characters in short_name, in that case we don't # show a PDF link measure['pdf_link'] = reverse( 'measure_factsheet', kwargs={'measure': measure_obj.short_name}) except NoReverseMatch: measure['pdf_link'] = None result.append(measure) return result
def measures(self): measures_ids = namedreach2measures(_selected_river(self.request)) measures = models.Measure.objects.filter(short_name__in=measures_ids) selected_measures = _selected_measures(self.request) available_factsheets = _available_factsheets() # selected_river = _selected_river(self.request) result = [] for measure_obj in measures: measure = {} measure['fields'] = measure_obj.pretty() measure['selected'] = measure_obj.short_name in selected_measures measure['name'] = unicode(measure_obj) measure['short_name'] = measure_obj.short_name if measure_obj.short_name in available_factsheets: measure['pdf_link'] = reverse( 'measure_factsheet', kwargs={'measure': measure_obj.short_name}) result.append(measure) return result