diff --git a/vbos/datasets/admin.py b/vbos/datasets/admin.py index a816b8f..e58d7da 100644 --- a/vbos/datasets/admin.py +++ b/vbos/datasets/admin.py @@ -91,14 +91,14 @@ def import_file(self, request): VectorItem.objects.create( dataset=form.cleaned_data["dataset"], metadata=metadata.properties, - name=metadata.name, + name=metadata.name.strip(), ref=metadata.ref, - attribute=metadata.attribute, + attribute=metadata.attribute.strip(), province=Province.objects.filter( - name__iexact=metadata.province + name__iexact=metadata.province.strip() ).first(), area_council=AreaCouncil.objects.filter( - name__iexact=metadata.area_council + name__iexact=metadata.area_council.strip() ).first(), geometry=GEOSGeometry(json.dumps(item["geometry"])), ) @@ -184,7 +184,7 @@ def import_file(self, request): TabularItem.objects.create( dataset=form.cleaned_data["dataset"], metadata=csv_row.metadata, - attribute=csv_row.attribute, + attribute=csv_row.attribute.strip(), value=csv_row.value, date=csv_row.date, province=Province.objects.filter( diff --git a/vbos/datasets/fixtures/test.csv b/vbos/datasets/fixtures/test.csv index 7abc801..9b00d3e 100644 --- a/vbos/datasets/fixtures/test.csv +++ b/vbos/datasets/fixtures/test.csv @@ -1,4 +1,4 @@ Year,Month,Attribute,Province,Area Council,Value,Other -2024,January,ecce,TAFEA,Futuna,1154,yes +2024,January,ecce ,TAFEA,Futuna,1154,yes 2022,may,secondary,TAFEA,Futuna,1154,no 2025,,primary,,,1154 diff --git a/vbos/datasets/serializers.py b/vbos/datasets/serializers.py index d296856..762fb11 100644 --- a/vbos/datasets/serializers.py +++ b/vbos/datasets/serializers.py @@ -20,7 +20,6 @@ class Meta: class ProvinceSerializer(GeoFeatureModelSerializer): - class Meta: model = Province geo_field = "geometry" @@ -28,7 +27,6 @@ class Meta: class AreaCouncilSerializer(GeoFeatureModelSerializer): - class Meta: model = AreaCouncil geo_field = "geometry" @@ -146,8 +144,8 @@ def __init__(self, *args, **kwargs): queryset = self.context["view"].get_queryset() all_keys = set() for item in queryset: - if item.data and isinstance(item.data, dict): - all_keys.update(item.data.keys()) + if item.metadata and isinstance(item.metadata, dict): + all_keys.update(item.metadata.keys()) # Create a field for each key for key in all_keys: diff --git a/vbos/datasets/test/test_tabular_views.py b/vbos/datasets/test/test_tabular_views.py index 3da2aaf..365b33f 100644 --- a/vbos/datasets/test/test_tabular_views.py +++ b/vbos/datasets/test/test_tabular_views.py @@ -163,6 +163,10 @@ def test_tabular_datasets_data(self): assert req.data.get("results")[0]["attribute"] == "Employed Population" assert req.data.get("results")[0]["additional_value"] == "test" + # test xlsx format + req = self.client.get(url, {"format": "xlsx"}) + assert req.status_code == status.HTTP_200_OK + def test_filter_data(self): url = reverse("datasets:tabular-data", args=[self.dataset_2.id]) req = self.client.get(url, {"date_after": "2025-01-01"})