From db2991bd588376f58a1db8422625e19aa5777dd3 Mon Sep 17 00:00:00 2001 From: Szabo Zoltan Date: Thu, 28 Nov 2024 12:45:12 +0100 Subject: [PATCH] Add 5 columns to districts --- ...trict_fips_code_district_nuts1_and_more.py | 56 +++++++++++++++++++ api/models.py | 23 ++++++++ api/serializers.py | 27 ++++++++- 3 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 api/migrations/0216_district_emma_id_district_fips_code_district_nuts1_and_more.py diff --git a/api/migrations/0216_district_emma_id_district_fips_code_district_nuts1_and_more.py b/api/migrations/0216_district_emma_id_district_fips_code_district_nuts1_and_more.py new file mode 100644 index 000000000..ddc50bd22 --- /dev/null +++ b/api/migrations/0216_district_emma_id_district_fips_code_district_nuts1_and_more.py @@ -0,0 +1,56 @@ +# Generated by Django 4.2.16 on 2024-11-28 09:46 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("api", "0215_alter_generaldocument_document_and_more"), + ] + + operations = [ + migrations.AddField( + model_name="district", + name="emma_id", + field=models.CharField(blank=True, help_text="Meteoalarm EMMA_ID", max_length=10, null=True, verbose_name="emma_id"), + ), + migrations.AddField( + model_name="district", + name="fips_code", + field=models.PositiveIntegerField(blank=True, help_text="USA FIPS Code", null=True, verbose_name="fips_code"), + ), + migrations.AddField( + model_name="district", + name="nuts1", + field=models.CharField( + blank=True, + help_text="Nomenclature of Territorial Units for Statistics 1", + max_length=3, + null=True, + verbose_name="nuts1", + ), + ), + migrations.AddField( + model_name="district", + name="nuts2", + field=models.CharField( + blank=True, + help_text="Nomenclature of Territorial Units for Statistics 2", + max_length=4, + null=True, + verbose_name="nuts2", + ), + ), + migrations.AddField( + model_name="district", + name="nuts3", + field=models.CharField( + blank=True, + help_text="Nomenclature of Territorial Units for Statistics 3", + max_length=5, + null=True, + verbose_name="nuts3", + ), + ), + ] diff --git a/api/models.py b/api/models.py index da0d09567..3a93290eb 100644 --- a/api/models.py +++ b/api/models.py @@ -298,6 +298,29 @@ class District(models.Model): wb_year = models.CharField( verbose_name=_("WB year"), max_length=4, null=True, blank=True, help_text=_("population data year from WB API") ) + nuts1 = models.CharField( + verbose_name=_("nuts1"), + max_length=3, + blank=True, + null=True, + help_text=_("Nomenclature of Territorial Units for Statistics 1"), + ) + nuts2 = models.CharField( + verbose_name=_("nuts2"), + max_length=4, + blank=True, + null=True, + help_text=_("Nomenclature of Territorial Units for Statistics 2"), + ) + nuts3 = models.CharField( + verbose_name=_("nuts3"), + max_length=5, + blank=True, + null=True, + help_text=_("Nomenclature of Territorial Units for Statistics 3"), + ) + emma_id = models.CharField(verbose_name=_("emma_id"), max_length=10, blank=True, null=True, help_text=_("Meteoalarm EMMA_ID")) + fips_code = models.PositiveIntegerField(verbose_name=_("fips_code"), blank=True, null=True, help_text=_("USA FIPS Code")) class Meta: ordering = ("code",) diff --git a/api/serializers.py b/api/serializers.py index f616a5a4b..f31a9d01b 100644 --- a/api/serializers.py +++ b/api/serializers.py @@ -332,7 +332,22 @@ class DistrictSerializer(ModelSerializer): class Meta: model = District - fields = ("name", "code", "country", "id", "is_deprecated", "bbox", "centroid", "wb_population", "wb_year") + fields = ( + "name", + "code", + "country", + "id", + "is_deprecated", + "bbox", + "centroid", + "wb_population", + "wb_year", + "nuts1", + "nuts2", + "nuts3", + "emma_id", + "fips_code", + ) @staticmethod def get_bbox(district) -> dict: @@ -387,6 +402,11 @@ class MiniDistrictGeoSerializer(GeoSerializerMixin, ModelSerializer): country_name = serializers.CharField(source="country.name", read_only=True) country_iso = serializers.CharField(source="country.iso", read_only=True) country_iso3 = serializers.CharField(source="country.iso3", read_only=True) + nuts1 = serializers.CharField(read_only=True) + nuts2 = serializers.CharField(read_only=True) + nuts3 = serializers.CharField(read_only=True) + emma_id = serializers.CharField(read_only=True) + fips_code = serializers.IntegerField(read_only=True) @staticmethod def get_bbox(district) -> Union[dict, None]: @@ -417,6 +437,11 @@ class Meta: "is_deprecated", "wb_population", "wb_year", + "nuts1", + "nuts2", + "nuts3", + "emma_id", + "fips_code", )