From 999b17ce7140897e942ae85c5e99e043707e8c72 Mon Sep 17 00:00:00 2001 From: Tyler Adam Martinez Date: Fri, 23 Jan 2026 18:24:19 -0600 Subject: [PATCH 1/2] [views/weather_data] Create WeatherDataAdmin pg --- admin/config.py | 5 ++++ admin/views/__init__.py | 2 ++ admin/views/weather_data.py | 52 +++++++++++++++++++++++++++++++++++++ 3 files changed, 59 insertions(+) create mode 100644 admin/views/weather_data.py diff --git a/admin/config.py b/admin/config.py index 0d4f462a1..2816b2877 100644 --- a/admin/config.py +++ b/admin/config.py @@ -50,6 +50,7 @@ SurfaceWaterDataAdmin, ThingAdmin, TransducerObservationAdmin, + WeatherDataAdmin, ) from db.aquifer_system import AquiferSystem from db.aquifer_type import AquiferType @@ -71,6 +72,7 @@ NMA_Soil_Rock_Results, NMA_Stratigraphy, NMA_SurfaceWaterData, + NMA_WeatherData, ) from db.notes import Notes from db.observation import Observation @@ -174,6 +176,9 @@ def create_admin(app): # SoilRockResults admin.add_view(SoilRockResultsAdmin(NMA_Soil_Rock_Results)) + # Weather + admin.add_view(WeatherDataAdmin(NMA_WeatherData)) + # Future: Add more views here as they are implemented # admin.add_view(SampleAdmin) # admin.add_view(GroupAdmin) diff --git a/admin/views/__init__.py b/admin/views/__init__.py index 5061ba726..91502c92e 100644 --- a/admin/views/__init__.py +++ b/admin/views/__init__.py @@ -48,6 +48,7 @@ from admin.views.surface_water import SurfaceWaterDataAdmin from admin.views.thing import ThingAdmin from admin.views.transducer_observation import TransducerObservationAdmin +from admin.views.weather_data import WeatherDataAdmin __all__ = [ "AssetAdmin", @@ -78,4 +79,5 @@ "SurfaceWaterDataAdmin", "ThingAdmin", "TransducerObservationAdmin", + "WeatherDataAdmin", ] diff --git a/admin/views/weather_data.py b/admin/views/weather_data.py new file mode 100644 index 000000000..0195ce381 --- /dev/null +++ b/admin/views/weather_data.py @@ -0,0 +1,52 @@ +from admin.views.base import OcotilloModelView + + +class WeatherDataAdmin(OcotilloModelView): + """ + Admin view for legacy WeatherData model (NMA_WeatherData). + """ + + # ========== Basic Configuration ========== + name = "NMA Weather Data" + label = "NMA Weather Data" + icon = "fa fa-cloud-sun" + + # Pagination + page_size = 50 + page_size_options = [25, 50, 100, 200] + + # ========== List View ========== + list_fields = [ + "location_id", + "point_id", + "weather_id", + "object_id", + ] + + sortable_fields = [ + "object_id", + "point_id", + ] + + fields_default_sort = [("point_id", False), ("object_id", False)] + + searchable_fields = [ + "point_id", + "weather_id", + ] + + # ========== Detail View ========== + fields = [ + "location_id", + "point_id", + "weather_id", + "object_id", + ] + + # ========== Legacy Field Labels ========== + field_labels = { + "location_id": "LocationId", + "point_id": "PointID", + "weather_id": "WeatherID", + "object_id": "OBJECTID", + } From 8cb95830fbc82f3c3c8e5027f5d3d30b419ecb7b Mon Sep 17 00:00:00 2001 From: Tyler Adam Martinez Date: Mon, 26 Jan 2026 15:24:45 -0600 Subject: [PATCH 2/2] [weather_data] Update admin panel to be read-only --- admin/views/weather_data.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/admin/views/weather_data.py b/admin/views/weather_data.py index 0195ce381..662721c3a 100644 --- a/admin/views/weather_data.py +++ b/admin/views/weather_data.py @@ -50,3 +50,17 @@ class WeatherDataAdmin(OcotilloModelView): "weather_id": "WeatherID", "object_id": "OBJECTID", } + + # ========== READ ONLY ========== + enable_publish_actions = ( + False # hides publish/unpublish actions inherited from base + ) + + def can_create(self, request) -> bool: + return False + + def can_edit(self, request) -> bool: + return False + + def can_delete(self, request) -> bool: + return False