diff --git a/boranga/components/conservation_status/admin.py b/boranga/components/conservation_status/admin.py index 1948eac5..19e7197a 100644 --- a/boranga/components/conservation_status/admin.py +++ b/boranga/components/conservation_status/admin.py @@ -49,6 +49,12 @@ class CommonwealthConservationListAdmin(ArchivableModelAdminMixin, AbstractListA pass +class OtherConservationAssessmentListAdmin( + ArchivableModelAdminMixin, AbstractListAdmin +): + pass + + class ConservationChangeCodeAdmin(ArchivableModelAdminMixin, DeleteProtectedModelAdmin): list_display = ["code", "label"] @@ -61,4 +67,7 @@ class ConservationChangeCodeAdmin(ArchivableModelAdminMixin, DeleteProtectedMode admin.site.register( models.CommonwealthConservationList, CommonwealthConservationListAdmin ) +admin.site.register( + models.OtherConservationAssessmentList, OtherConservationAssessmentListAdmin +) admin.site.register(models.ConservationChangeCode, ConservationChangeCodeAdmin) diff --git a/boranga/components/conservation_status/api.py b/boranga/components/conservation_status/api.py index f9ac59d3..8c87b6bd 100644 --- a/boranga/components/conservation_status/api.py +++ b/boranga/components/conservation_status/api.py @@ -36,6 +36,7 @@ ConservationStatusUserAction, CSExternalRefereeInvite, IUCNVersion, + OtherConservationAssessmentList, ProposalAmendmentReason, WALegislativeCategory, WALegislativeList, @@ -176,6 +177,9 @@ def get(self, request, format=None): "commonwealth_conservation_categories": CommonwealthConservationList.get_lists_dict( group_type, active_only=True ), + "other_conservation_assessments": OtherConservationAssessmentList.get_lists_dict( + group_type, active_only=True + ), "change_codes": ConservationChangeCode.get_filter_list(), "active_change_codes": ConservationChangeCode.get_active_filter_list(), "submitter_categories": SubmitterCategory.get_filter_list(), @@ -2012,6 +2016,9 @@ def filter_list(self, request, *args, **kwargs): "commonwealth_conservation_categories": CommonwealthConservationList.get_lists_dict( group_type ), + "other_conservation_assessments": OtherConservationAssessmentList.get_lists_dict( + group_type + ), "processing_status_list": processing_status_list, } res_json = json.dumps(res_json) diff --git a/boranga/components/conservation_status/models.py b/boranga/components/conservation_status/models.py index c67e27b0..02716e7e 100644 --- a/boranga/components/conservation_status/models.py +++ b/boranga/components/conservation_status/models.py @@ -326,6 +326,14 @@ class Meta: verbose_name = "Commonwealth Conservation Category" +class OtherConservationAssessmentList(AbstractConservationList): + + class Meta: + ordering = ["code"] + app_label = "boranga" + verbose_name = "Other Conservation Assessment" + + class ConservationChangeCode(ArchivableModel): """ When the conservation status of a species/community is changed, it can be for a number of reasons. @@ -577,8 +585,11 @@ class ConservationStatus(SubmitterInformationModelMixin, RevisionedMixin): # Leave the following as _list otherwise django has remove the field and create a new one related_name="curr_commonwealth_conservation_list", ) - other_conservation_assessment = models.CharField( - max_length=100, blank=True, null=True + other_conservation_assessment = models.ForeignKey( + OtherConservationAssessmentList, + on_delete=models.PROTECT, + blank=True, + null=True, ) conservation_criteria = models.CharField(max_length=100, blank=True, null=True) cam_mou = models.BooleanField(null=True, blank=True) @@ -600,7 +611,7 @@ class ConservationStatus(SubmitterInformationModelMixin, RevisionedMixin): null=True, ) - comment = models.CharField(max_length=512, blank=True, null=True) + comment = models.TextField(blank=True, null=True) review_due_date = models.DateField(null=True, blank=True) effective_from = models.DateField(null=True, blank=True) effective_to = models.DateField(null=True, blank=True) diff --git a/boranga/components/conservation_status/serializers.py b/boranga/components/conservation_status/serializers.py index ca1cf060..d5911221 100644 --- a/boranga/components/conservation_status/serializers.py +++ b/boranga/components/conservation_status/serializers.py @@ -539,6 +539,7 @@ class BaseConservationStatusSerializer(serializers.ModelSerializer): commonwealth_conservation_category = serializers.SerializerMethodField( read_only=True ) + other_conservation_assessment = serializers.SerializerMethodField(read_only=True) class Meta: model = ConservationStatus @@ -562,6 +563,7 @@ class Meta: "wa_priority_category", "commonwealth_conservation_category_id", "commonwealth_conservation_category", + "other_conservation_assessment_id", "other_conservation_assessment", "conservation_criteria", "comment", @@ -643,6 +645,18 @@ def get_commonwealth_conservation_category(self, obj): return obj.commonwealth_conservation_category.code + def get_other_conservation_assessment(self, obj): + if not obj.other_conservation_assessment: + return None + + if ( + obj.other_conservation_assessment.code + and obj.other_conservation_assessment.label + ): + return f"{obj.other_conservation_assessment.code} - {obj.other_conservation_assessment.label}" + + return obj.other_conservation_assessment.code + def get_readonly(self, obj): return False @@ -788,6 +802,7 @@ class Meta: "wa_priority_category_id", "commonwealth_conservation_category_id", "other_conservation_assessment", + "other_conservation_assessment_id", "conservation_criteria", ] @@ -853,6 +868,7 @@ class Meta: "wa_priority_category", "commonwealth_conservation_category_id", "commonwealth_conservation_category", + "other_conservation_assessment_id", "other_conservation_assessment", "conservation_criteria", "comment", @@ -1092,6 +1108,9 @@ class SaveSpeciesConservationStatusSerializer(BaseConservationStatusSerializer): commonwealth_conservation_category_id = serializers.IntegerField( required=False, allow_null=True, write_only=True ) + other_conservation_assessment_id = serializers.IntegerField( + required=False, allow_null=True, write_only=True + ) change_code_id = serializers.IntegerField( required=False, allow_null=True, write_only=True ) @@ -1113,7 +1132,7 @@ class Meta: "wa_priority_list_id", "wa_priority_category_id", "commonwealth_conservation_category_id", - "other_conservation_assessment", + "other_conservation_assessment_id", "conservation_criteria", "comment", "lodgement_date", @@ -1251,6 +1270,9 @@ class SaveCommunityConservationStatusSerializer(BaseConservationStatusSerializer commonwealth_conservation_category_id = serializers.IntegerField( required=False, allow_null=True, write_only=True ) + other_conservation_assessment_id = serializers.IntegerField( + required=False, allow_null=True, write_only=True + ) change_code_id = serializers.IntegerField( required=False, allow_null=True, write_only=True ) @@ -1267,7 +1289,7 @@ class Meta: "wa_priority_list_id", "wa_priority_category_id", "commonwealth_conservation_category_id", - "other_conservation_assessment", + "other_conservation_assessment_id", "conservation_criteria", "comment", "lodgement_date", diff --git a/boranga/components/species_and_communities/models.py b/boranga/components/species_and_communities/models.py index 4710e32c..97fc88ad 100644 --- a/boranga/components/species_and_communities/models.py +++ b/boranga/components/species_and_communities/models.py @@ -421,7 +421,7 @@ class Species(RevisionedMixin): districts = models.ManyToManyField( District, blank=True, related_name="species_districts" ) - last_data_curration_date = models.DateField(blank=True, null=True) + last_data_curation_date = models.DateField(blank=True, null=True) conservation_plan_exists = models.BooleanField(default=False) conservation_plan_reference = models.CharField( max_length=500, null=True, blank=True @@ -1230,7 +1230,7 @@ class Community(RevisionedMixin): districts = models.ManyToManyField( District, blank=True, related_name="community_districts" ) - last_data_curration_date = models.DateField(blank=True, null=True) + last_data_curation_date = models.DateField(blank=True, null=True) conservation_plan_exists = models.BooleanField(default=False) conservation_plan_reference = models.CharField( max_length=500, null=True, blank=True diff --git a/boranga/components/species_and_communities/serializers.py b/boranga/components/species_and_communities/serializers.py index 6e77d6d0..5e36d4c2 100755 --- a/boranga/components/species_and_communities/serializers.py +++ b/boranga/components/species_and_communities/serializers.py @@ -674,7 +674,7 @@ class Meta: "distribution", "regions", "districts", - "last_data_curration_date", + "last_data_curation_date", "image_doc", "processing_status", "applicant", @@ -838,7 +838,7 @@ class Meta: "publishing_status", "regions", "districts", - "last_data_curration_date", + "last_data_curation_date", "image_doc", "processing_status", "readonly", @@ -1114,7 +1114,7 @@ class Meta: "distribution", "publishing_status", "conservation_attributes", - "last_data_curration_date", + "last_data_curation_date", "image_doc", "processing_status", "lodgement_date", @@ -1294,7 +1294,7 @@ class Meta: "distribution", "publishing_status", "conservation_attributes", - "last_data_curration_date", + "last_data_curation_date", "image_doc", "processing_status", "lodgement_date", @@ -1377,7 +1377,7 @@ class Meta: "id", "group_type", "taxonomy_id", - "last_data_curration_date", + "last_data_curation_date", "submitter", "readonly", "can_user_edit", @@ -1424,7 +1424,7 @@ class Meta: fields = ( "id", "group_type", - "last_data_curration_date", + "last_data_curation_date", "submitter", "readonly", "can_user_edit", diff --git a/boranga/frontend/boranga/package.json b/boranga/frontend/boranga/package.json index f706c28a..44217583 100644 --- a/boranga/frontend/boranga/package.json +++ b/boranga/frontend/boranga/package.json @@ -8,8 +8,7 @@ "scripts": { "lint": "eslint -c eslint.config.mjs .", "dev": "vite", - "build": "vite build", - "serve": "vite preview" + "build": "vite build" }, "dependencies": { "@fortawesome/fontawesome-free": "^6.0", diff --git a/boranga/frontend/boranga/src/components/common/component_map.vue b/boranga/frontend/boranga/src/components/common/component_map.vue index d991c2a5..0ae00193 100644 --- a/boranga/frontend/boranga/src/components/common/component_map.vue +++ b/boranga/frontend/boranga/src/components/common/component_map.vue @@ -66,24 +66,21 @@