Exemple #1
0
def list_imports(request, instance):
    finished = GenericImportEvent.FINISHED_CREATING

    trees = TreeImportEvent.objects.filter(instance=instance).order_by('id')
    active_trees = trees.exclude(status=finished)
    finished_trees = trees.filter(status=finished)

    species = SpeciesImportEvent.objects\
        .filter(instance=instance)\
        .order_by('id')
    active_species = species.exclude(status=finished)
    finished_species = species.filter(status=finished)

    active_events = list(active_trees) + list(active_species)
    imports_finished = all(ie.is_finished() for ie in active_events)

    instance_units = {
        k + '_' + v: get_value_display_attr(instance, k, v, 'units')[1]
        for k, v in [('plot', 'width'), ('plot', 'length'), (
            'tree', 'height'), ('tree', 'diameter'), ('tree', 'canopy_height')]
    }

    return {
        'importer_instance_units': instance_units,
        'active_trees': active_trees,
        'finished_trees': finished_trees,
        'active_species': active_species,
        'finished_species': finished_species,
        'imports_finished': imports_finished
    }
Exemple #2
0
def list_imports(request, instance):
    finished = GenericImportEvent.FINISHED_CREATING

    trees = TreeImportEvent.objects.filter(instance=instance).order_by('id')
    active_trees = trees.exclude(status=finished)
    finished_trees = trees.filter(status=finished)

    species = SpeciesImportEvent.objects\
        .filter(instance=instance)\
        .order_by('id')
    active_species = species.exclude(status=finished)
    finished_species = species.filter(status=finished)

    active_events = list(active_trees) + list(active_species)
    imports_finished = all(ie.is_finished() for ie in active_events)

    instance_units = {k + '_' + v:
                      get_value_display_attr(instance, k, v, 'units')[1]
                      for k, v in [('plot', 'width'),
                                   ('plot', 'length'),
                                   ('tree', 'height'),
                                   ('tree', 'diameter'),
                                   ('tree', 'canopy_height')]}

    return {'importer_instance_units': instance_units,
            'active_trees': active_trees,
            'finished_trees': finished_trees,
            'active_species': active_species,
            'finished_species': finished_species,
            'imports_finished': imports_finished
            }
Exemple #3
0
    def test_annual_rainfall_unit_conversion(self):
        rainfall_unit_key, rainfall_unit = get_value_display_attr(
            self.instance, 'greenInfrastructure', 'rainfall', 'units')
        self.assertEqual(rainfall_unit, 'in')
        __, __, unit_key = dotted_split(rainfall_unit_key, 3, maxsplit=2)

        self.assertEqual(rainfall_unit, 'in')

        config_key = 'annual_rainfall_inches'
        request_key = 'instance.config.annual_rainfall_inches'
        updates = {request_key: 10}
        json_updates = json.dumps(updates)
        request = make_request(method='PUT',
                               body=json_updates,
                               user=self.commander)

        green_infrastructure(request, self.instance)

        self.assertEqual(self.instance.config[config_key], 10.0)

        self.instance.config[unit_key] = 'cm'

        config_key = 'annual_rainfall_inches'
        request_key = 'instance.config.{}'.format(config_key)
        updates = {request_key: 25.4}
        json_updates = json.dumps(updates)
        request = make_request(method='PUT',
                               body=json_updates,
                               user=self.commander)

        green_infrastructure(request, self.instance)

        self.assertEqual(self.instance.config[config_key], 10.0)
Exemple #4
0
def list_imports(request, instance):
    table_names = [TABLE_ACTIVE_TREES, TABLE_FINISHED_TREES,
                   TABLE_ACTIVE_SPECIES, TABLE_FINISHED_SPECIES]

    tables = [_get_table_context(instance, table_name, 1)
              for table_name in table_names]

    instance_units = {k + '_' + v:
                      get_value_display_attr(instance, k, v, 'units')[1]
                      for k, v in [('plot', 'width'),
                                   ('plot', 'length'),
                                   ('tree', 'height'),
                                   ('tree', 'diameter'),
                                   ('tree', 'canopy_height')]}
    return {
        'tables': tables,
        'importer_instance_units': instance_units,
        }
Exemple #5
0
def list_imports(request, instance):
    table_names = [TABLE_ACTIVE_TREES, TABLE_FINISHED_TREES,
                   TABLE_ACTIVE_SPECIES, TABLE_FINISHED_SPECIES]

    _cleanup_tables(instance)
    tables = [_get_table_context(instance, table_name, 1)
              for table_name in table_names]

    instance_units = {k + '_' + v:
                          get_value_display_attr(instance, k, v, 'units')[1]
                      for k, v in [('plot', 'width'),
                                   ('plot', 'length'),
                                   ('tree', 'height'),
                                   ('tree', 'diameter'),
                                   ('tree', 'canopy_height')]}
    return {
        'tables': tables,
        'importer_instance_units': instance_units,
    }
Exemple #6
0
def _csv_field_serializer_map(instance, field_names):
    """
    Create serializer functions that convert values to the proper units.
    """
    map = {}
    convertable_fields = {'tree__diameter': ('tree', 'diameter'),
                          'tree__height': ('tree', 'height'),
                          'tree__canopy_height': ('tree', 'canopy_height'),
                          'width': ('plot', 'width'),
                          'length': ('plot', 'length')}

    def make_serializer(factor, digits):
        return lambda x: str(round(factor * x, digits))

    for name, details in convertable_fields.iteritems():
        model_name, field = details
        factor = storage_to_instance_units_factor(instance,
                                                  model_name,
                                                  field)
        _, digits = get_value_display_attr(instance, model_name, field,
                                           'digits')
        digits = int(digits)
        map[name] = make_serializer(factor, digits)
    return map
Exemple #7
0
def _csv_field_serializer_map(instance, field_names):
    """
    Create serializer functions that convert values to the proper units.
    """
    map = {}
    convertable_fields = {
        'tree__diameter': ('tree', 'diameter'),
        'tree__height': ('tree', 'height'),
        'tree__canopy_height': ('tree', 'canopy_height'),
        'width': ('plot', 'width'),
        'length': ('plot', 'length')
    }

    def make_serializer(factor, digits):
        return lambda x: str(round(factor * x, digits))

    for name, details in convertable_fields.iteritems():
        model_name, field = details
        factor = storage_to_instance_units_factor(instance, model_name, field)
        _, digits = get_value_display_attr(instance, model_name, field,
                                           'digits')
        digits = int(digits)
        map[name] = make_serializer(factor, digits)
    return map
Exemple #8
0
 def identifier_and_value(key):
     return get_value_display_attr(
         instance, category_name, value_name, key)
Exemple #9
0
 def identifier_and_value(key):
     return get_value_display_attr(instance, category_name,
                                   value_name, key)