diff --git a/admin/config.py b/admin/config.py index c738fa6c..91fc2737 100644 --- a/admin/config.py +++ b/admin/config.py @@ -26,6 +26,7 @@ AquiferSystemAdmin, AquiferTypeAdmin, AssetAdmin, + AssociatedDataAdmin, ChemistrySampleInfoAdmin, ContactAdmin, DataProvenanceAdmin, @@ -64,6 +65,7 @@ from db.lexicon import LexiconCategory, LexiconTerm from db.location import Location from db.nma_legacy import ( + AssociatedData, ChemistrySampleInfo, NMAMinorTraceChemistry, NMARadionuclides, @@ -128,6 +130,9 @@ def create_admin(app): # Assets admin.add_view(AssetAdmin(Asset)) + # Associated data + admin.add_view(AssociatedDataAdmin(AssociatedData)) + # Aquifer admin.add_view(AquiferSystemAdmin(AquiferSystem)) admin.add_view(AquiferTypeAdmin(AquiferType)) diff --git a/admin/views/__init__.py b/admin/views/__init__.py index 5061ba72..9caa2a71 100644 --- a/admin/views/__init__.py +++ b/admin/views/__init__.py @@ -20,6 +20,7 @@ """ from admin.views.asset import AssetAdmin +from admin.views.associated_data import AssociatedDataAdmin from admin.views.aquifer_system import AquiferSystemAdmin from admin.views.aquifer_type import AquiferTypeAdmin from admin.views.chemistry_sampleinfo import ChemistrySampleInfoAdmin @@ -51,6 +52,7 @@ __all__ = [ "AssetAdmin", + "AssociatedDataAdmin", "AquiferSystemAdmin", "AquiferTypeAdmin", "ChemistrySampleInfoAdmin", diff --git a/admin/views/associated_data.py b/admin/views/associated_data.py new file mode 100644 index 00000000..cfabc845 --- /dev/null +++ b/admin/views/associated_data.py @@ -0,0 +1,65 @@ +from admin.views.base import OcotilloModelView + + +class AssociatedDataAdmin(OcotilloModelView): + """ + Admin view for legacy AssociatedData model (NMA_AssociatedData). + Read-only, MS Access-like listing/details. + """ + + # ========== Basic Configuration ========== + name = "NMA Associated Data" + label = "NMA Associated Data" + icon = "fa fa-link" + + # Pagination + page_size = 50 + page_size_options = [25, 50, 100, 200] + + # ========== List View ========== + list_fields = [ + "location_id", + "point_id", + "assoc_id", + "notes", + "formation", + "object_id", + "thing_id", + ] + + sortable_fields = [ + "assoc_id", + "object_id", + "point_id", + ] + + fields_default_sort = [("point_id", False), ("object_id", False)] + + searchable_fields = [ + "point_id", + "assoc_id", + "notes", + "formation", + ] + + # ========== Detail View ========== + fields = [ + "location_id", + "point_id", + "assoc_id", + "notes", + "formation", + "object_id", + "thing_id", + ] + + # ========== Legacy Field Labels ========== + field_labels = { + "location_id": "LocationId", + "point_id": "PointID", + "assoc_id": "AssocID", + "notes": "Notes", + "formation": "Formation", + "object_id": "OBJECTID", + "thing_id": "ThingID", + }