Example #1
0
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)
Example #2
0
    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
Example #3
0
 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