diff --git a/boranga/components/occurrence/models.py b/boranga/components/occurrence/models.py index 3fb25c7ef..b01758dfb 100644 --- a/boranga/components/occurrence/models.py +++ b/boranga/components/occurrence/models.py @@ -963,6 +963,7 @@ def decline(self, request, details): self.processing_status = OccurrenceReport.PROCESSING_STATUS_DECLINED self.customer_status = OccurrenceReport.CUSTOMER_STATUS_DECLINED self.occurrence = None + self.approved_by = request.user.id self.save(version_user=request.user) # Log proposal action diff --git a/boranga/components/spatial/utils.py b/boranga/components/spatial/utils.py index 93995976e..2f3da0483 100644 --- a/boranga/components/spatial/utils.py +++ b/boranga/components/spatial/utils.py @@ -561,6 +561,10 @@ def save_geometry( ) serializer = InstanceGeometrySaveSerializer(geometry, data=geometry_data) is_new_geometry = False + # Capture existing state to detect whether geometry data actually changes + pre_save_geometry_wkb = geometry.geometry.ewkb if geometry.geometry else None + pre_save_original_ewkb = geometry.original_geometry_ewkb + pre_save_buffer_radius = geometry.buffer_radius else: logger.info(f"Creating new geometry for {instance_model_name}: {instance}") @@ -598,14 +602,21 @@ def save_geometry( request.user.id, ) else: - OccurrenceUserAction.log_action( - instance, - OccurrenceUserAction.ACTION_UPDATE_GEOMETRY.format( - geometry_instance.id, - instance.occurrence_number, - ), - request.user.id, + geometry_changed = ( + (geometry_instance.geometry.ewkb if geometry_instance.geometry else None) + != pre_save_geometry_wkb + or geometry_instance.original_geometry_ewkb != pre_save_original_ewkb + or geometry_instance.buffer_radius != pre_save_buffer_radius ) + if geometry_changed: + OccurrenceUserAction.log_action( + instance, + OccurrenceUserAction.ACTION_UPDATE_GEOMETRY.format( + geometry_instance.id, + instance.occurrence_number, + ), + request.user.id, + ) geometry_id_intersect_data[geometry_instance.id] = intersect_data diff --git a/boranga/frontend/boranga/package-lock.json b/boranga/frontend/boranga/package-lock.json index 9602db823..93906fa5d 100644 --- a/boranga/frontend/boranga/package-lock.json +++ b/boranga/frontend/boranga/package-lock.json @@ -2788,9 +2788,9 @@ } }, "node_modules/flatted": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.1.tgz", - "integrity": "sha512-IxfVbRFVlV8V/yRaGzk0UVIcsKKHMSfYw66T/u4nTwlWteQePsxe//LjudR1AMX4tZW3WFCh3Zqa/sjlqpbURQ==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "license": "ISC" }, "node_modules/fsevents": { diff --git a/boranga/frontend/boranga/src/components/common/communities_dashboard.vue b/boranga/frontend/boranga/src/components/common/communities_dashboard.vue index 8f64f5b47..0c85ecfa4 100644 --- a/boranga/frontend/boranga/src/components/common/communities_dashboard.vue +++ b/boranga/frontend/boranga/src/components/common/communities_dashboard.vue @@ -519,10 +519,10 @@ export default { 'Number', 'Community Id', 'Community Name', - 'WA Priority Category', 'WA Legislative Category', - 'Regions', - 'Districts', + 'WA Priority Category', + 'Region(s)', + 'District(s)', 'WA Legislative List', 'Conservation Criteria', 'Commonwealth Conservation Category', @@ -535,10 +535,10 @@ export default { 'Number', 'Community Id', 'Community Name', - 'WA Priority Category', 'WA Legislative Category', - 'Regions', - 'Districts', + 'WA Priority Category', + 'Region(s)', + 'District(s)', 'WA Legislative List', 'Conservation Criteria', 'Commonwealth Conservation Category', @@ -772,8 +772,8 @@ export default { vm.column_number, vm.column_community_id, vm.column_community_name, - vm.column_wa_priority_category, vm.column_wa_legislative_category, + vm.column_wa_priority_category, vm.column_region, vm.column_district, vm.column_wa_legislative_list, @@ -790,8 +790,8 @@ export default { vm.column_number, vm.column_community_id, vm.column_community_name, - vm.column_wa_priority_category, vm.column_wa_legislative_category, + vm.column_wa_priority_category, vm.column_region, vm.column_district, vm.column_wa_legislative_list, diff --git a/boranga/frontend/boranga/src/components/common/occurrence_community_dashboard.vue b/boranga/frontend/boranga/src/components/common/occurrence_community_dashboard.vue index 574786b0f..ba587a584 100644 --- a/boranga/frontend/boranga/src/components/common/occurrence_community_dashboard.vue +++ b/boranga/frontend/boranga/src/components/common/occurrence_community_dashboard.vue @@ -557,8 +557,8 @@ export default { 'Review Due', 'Last Modified By', 'Last Modified Date', - 'Activated Date', 'Created Date', + 'Activated Date', 'Status', 'Action', ]; @@ -703,22 +703,22 @@ export default { name: 'datetime_updated', }; }, - column_activated_date: function () { + column_created_date: function () { return { - data: 'lodgement_date', + data: 'datetime_created', orderable: true, searchable: false, visible: true, - name: 'lodgement_date', + name: 'datetime_created', }; }, - column_created_date: function () { + column_activated_date: function () { return { - data: 'datetime_created', + data: 'lodgement_date', orderable: true, searchable: false, visible: true, - name: 'datetime_created', + name: 'lodgement_date', }; }, column_status: function () { @@ -814,8 +814,8 @@ export default { vm.column_review_due_date, vm.column_last_modified_by, vm.column_last_modified_date, - vm.column_activated_date, vm.column_created_date, + vm.column_activated_date, vm.column_status, vm.column_action, ]; diff --git a/boranga/frontend/boranga/src/components/common/species_fauna_dashboard.vue b/boranga/frontend/boranga/src/components/common/species_fauna_dashboard.vue index 9ff843640..0448d0ee0 100644 --- a/boranga/frontend/boranga/src/components/common/species_fauna_dashboard.vue +++ b/boranga/frontend/boranga/src/components/common/species_fauna_dashboard.vue @@ -674,10 +674,10 @@ export default { 'Number', 'Scientific Name', 'Common Name', - 'WA Priority Category', 'WA Legislative Category', - 'Region', - 'District', + 'WA Priority Category', + 'Region(s)', + 'District(s)', 'Fauna Group', 'Fauna Sub Group', 'Family', @@ -695,10 +695,10 @@ export default { 'Number', 'Scientific Name', 'Common Name', - 'WA Priority Category', 'WA Legislative Category', - 'Region', - 'District', + 'WA Priority Category', + 'Region(s)', + 'District(s)', 'Fauna Group', 'Fauna Sub Group', 'Family', @@ -980,8 +980,8 @@ export default { vm.column_number, vm.column_scientific_name, vm.column_common_name, - vm.column_wa_priority_category, vm.column_wa_legislative_category, + vm.column_wa_priority_category, vm.column_region, vm.column_district, vm.column_fauna_group, @@ -1003,8 +1003,8 @@ export default { vm.column_number, vm.column_scientific_name, vm.column_common_name, - vm.column_wa_priority_category, vm.column_wa_legislative_category, + vm.column_wa_priority_category, vm.column_region, vm.column_district, vm.column_fauna_group, diff --git a/boranga/frontend/boranga/src/components/common/species_flora_dashboard.vue b/boranga/frontend/boranga/src/components/common/species_flora_dashboard.vue index ed5ba265a..987c6b9ec 100755 --- a/boranga/frontend/boranga/src/components/common/species_flora_dashboard.vue +++ b/boranga/frontend/boranga/src/components/common/species_flora_dashboard.vue @@ -623,8 +623,8 @@ export default { 'Number', 'Scientific Name', 'Common Name', - 'WA Priority Category', 'WA Legislative Category', + 'WA Priority Category', 'Region(s)', 'District(s)', 'Family', @@ -642,8 +642,8 @@ export default { 'Number', 'Scientific Name', 'Common Name', - 'WA Priority Category', 'WA Legislative Category', + 'WA Priority Category', 'Region(s)', 'District(s)', 'Family', @@ -913,8 +913,8 @@ export default { vm.column_number, vm.column_scientific_name, vm.column_common_name, - vm.column_wa_priority_category, vm.column_wa_legislative_category, + vm.column_wa_priority_category, vm.column_region, vm.column_district, vm.column_family, @@ -934,8 +934,8 @@ export default { vm.column_number, vm.column_scientific_name, vm.column_common_name, - vm.column_wa_priority_category, vm.column_wa_legislative_category, + vm.column_wa_priority_category, vm.column_region, vm.column_district, vm.column_family, diff --git a/diagrams/erd/boranga-erd-20260318102904.pdf b/diagrams/erd/boranga-erd-20260318102904.pdf new file mode 100644 index 000000000..7ad4c1535 Binary files /dev/null and b/diagrams/erd/boranga-erd-20260318102904.pdf differ