Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,15 @@ repos:
'--statistics'
]
exclude: ^db/__init__.py$ # all models need to be imported for Alembic, but are not used directly
- repo: local
hooks:
- id: pytest
name: pytest
entry: pytest # Or your specific test command, e.g., poetry run pytest
language: system
types: [python] # Specify relevant file types for your tests
pass_filenames: false
always_run: true
# - repo: local
# hooks:
# - id: pytest
# name: pytest
# entry: pytest # Or your specific test command, e.g., poetry run pytest
# language: system
# types: [python] # Specify relevant file types for your tests
# pass_filenames: false
# always_run: true

# - repo: https://github.com/pre-commit/mirrors-mypy
# rev: v1.10.0 # Use the latest stable version or pin to your preference
Expand Down
47 changes: 23 additions & 24 deletions core/lexicon.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,11 +18,12 @@
{"name": "email_type", "description": null},
{"name": "participant_role", "description": null},
{"name": "geochronology", "description": null},
{"name": "horizontal_datum", "description": null},
{"name": "groundwater_level_reason", "description": null},
{"name": "group_type", "description": null},
{"name": "horizontal_datum", "description": null},
{"name": "limit_type", "description": null},
{"name": "measurement_method", "description": null},
{"name": "monitoring_status", "description": null},
{"name": "monitoring_frequency", "description": null},
{"name": "parameter_name", "description": null},
{"name": "organization", "description": null},
{"name": "parameter_type", "description": null},
Expand All @@ -47,7 +48,8 @@
{"name": "unit", "description": null},
{"name": "vertical_datum", "description": null},
{"name": "well_purpose", "description": null},
{"name": "well_status", "description": null}
{"name": "status_type", "description": null},
{"name": "status_value", "description": null}
],
"terms": [
{"categories": ["review_status"], "term": "approved", "definition": "approved"},
Expand Down Expand Up @@ -321,10 +323,13 @@
{"categories": ["groundwater_level_reason"], "term": "Water level affected by stage in nearby surface-water site", "definition": "Water level affected by stage in nearby surface-water site"},
{"categories": ["groundwater_level_reason"], "term": "Other conditions exist that would affect the level (remarks)", "definition": "Other conditions exist that would affect the level (remarks)"},
{"categories": ["groundwater_level_reason"], "term": "Water level not affected", "definition": "Water level not affected"},
{"categories": ["well_status"], "term": "Abandoned", "definition": "Abandoned"},
{"categories": ["well_status"], "term": "Active, pumping well", "definition": "Active, pumping well"},
{"categories": ["well_status"], "term": "Destroyed, exists but not usable", "definition": "Destroyed, exists but not usable"},
{"categories": ["well_status"], "term": "Inactive, exists but not used", "definition": "Inactive, exists but not used"},
{"categories": ["status_type"], "term": "Well Status", "definition": "Defines the well's operational condition as reported by the owner"},
{"categories": ["status_type"], "term": "Monitoring Status", "definition": "Defines the well's current monitoring status by NMBGMR."},
{"categories": ["status_type"], "term": "Access Status", "definition": "Defines the well's access status for field personnel."},
{"categories": ["status_value"], "term": "Abandoned", "definition": "The well has been properly decommissioned."},
{"categories": ["status_value"], "term": "Active, pumping well", "definition": "This well is in use."},
{"categories": ["status_value"], "term": "Destroyed, exists but not usable", "definition": "The well structure is physically present but is damaged, collapsed, or otherwise compromised to the point that it is non-functional."},
{"categories": ["status_value"], "term": "Inactive, exists but not used", "definition": "The well is not currently in use but is believed to be in a usable condition; it has not been permanently decommissioned/abandoned."},
{"categories": ["sample_method"], "term": "Airline measurement", "definition": "Airline measurement"},
{"categories": ["sample_method"], "term": "Analog or graphic recorder", "definition": "Analog or graphic recorder"},
{"categories": ["sample_method"], "term": "Calibrated airline measurement", "definition": "Calibrated airline measurement"},
Expand Down Expand Up @@ -623,22 +628,6 @@
{"categories": ["publication_type"], "term": "Book", "definition": "Book"},
{"categories": ["publication_type"], "term": "Conference", "definition": "Conference"},
{"categories": ["publication_type"], "term": "Webpage", "definition": "Webpage"},
{"categories": ["monitoring_status"], "term": "Monitor every six months", "definition": "Monitor every six months"},
{"categories": ["monitoring_status"], "term": "Annual water level", "definition": "Annual water level"},
{"categories": ["monitoring_status"], "term": "Monitoring bi-monthly", "definition": "Monitoring bi-monthly"},
{"categories": ["monitoring_status"], "term": "Monitoring complete", "definition": "Monitoring complete"},
{"categories": ["monitoring_status"], "term": "Datalogger installed", "definition": "Datalogger installed"},
{"categories": ["monitoring_status"], "term": "Monitor every 10 years (long-term monitor)", "definition": "Monitor every 10 years (long-term monitor)"},
{"categories": ["monitoring_status"], "term": "Monitor monthly", "definition": "Monitor monthly"},
{"categories": ["monitoring_status"], "term": "Sampling complete", "definition": "Sampling complete"},
{"categories": ["monitoring_status"], "term": "Reported to NMBGMR bimonthly", "definition": "Reported to NMBGMR bimonthly"},
{"categories": ["monitoring_status"], "term": "Sample well", "definition": "Sample well"},
{"categories": ["monitoring_status"], "term": "Water level cannot be measured", "definition": "Water level cannot be measured"},
{"categories": ["monitoring_status"], "term": "Repeat sampling", "definition": "Repeat sampling"},
{"categories": ["monitoring_status"], "term": "Wellntel device", "definition": "Wellntel device"},
{"categories": ["monitoring_status"], "term": "Bi-annual (every other year)", "definition": "Bi-annual (every other year)"},
{"categories": ["monitoring_status"], "term": "Inactive", "definition": "Inactive"},
{"categories": ["monitoring_status"], "term": "Data share", "definition": "Data share"},
{"categories": ["sample_type"], "term": "Background", "definition": "Background"},
{"categories": ["sample_type"], "term": "Equipment blank", "definition": "Equipment blank"},
{"categories": ["sample_type"], "term": "Field blank", "definition": "Field blank"},
Expand Down Expand Up @@ -673,6 +662,16 @@
{"categories": ["sensor_status"], "term": "In Service", "definition": "In Service"},
{"categories": ["sensor_status"], "term": "In Repair", "definition": "In Repair"},
{"categories": ["sensor_status"], "term": "Retired", "definition": "Retired"},
{"categories": ["sensor_status"], "term": "Lost", "definition": "Lost"}
{"categories": ["sensor_status"], "term": "Lost", "definition": "Lost"},
{"categories": ["group_type"], "term": "Monitoring Plan", "definition": "A group of `Things` that are monitored together for a specific programmatic or scientific purpose."},
{"categories": ["group_type"], "term": "Geographic Area", "definition": "A group of `Things` that fall within a specific, user-defined or official spatial boundary. E.g, `Wells in the Estancia Basin`."},
{"categories": ["group_type"], "term": "Historical", "definition": "A group of `Things` that share a common historical attribute. E.g., 'Wells drilled before 1950', 'Legacy Wells (Pre-1990)'."},
{"categories": ["monitoring_frequency"], "term": "Monthly", "definition": "Location is monitored on a monthly basis."},
{"categories": ["monitoring_frequency"], "term": "Bimonthly", "definition": "Location is monitored every two months."},
{"categories": ["monitoring_frequency"], "term": "Quarterly", "definition": "Location is monitored on a quarterly basis."},
{"categories": ["monitoring_frequency"], "term": "Biannual", "definition": "Location is monitored twice a year."},
{"categories": ["monitoring_frequency"], "term": "Annual", "definition": "Location is monitored once a year."},
{"categories": ["monitoring_frequency"], "term": "Decadal", "definition": "Location is monitored once every ten years."},
{"categories": ["monitoring_frequency"], "term": "Event-based", "definition": "Location is monitored based on specific events or triggers rather than a fixed schedule."}
]
}
7 changes: 6 additions & 1 deletion db/group.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

from constants import SRID_WGS84
from db.base import Base, AutoBaseMixin, ReleaseMixin
from tests.conftest import lexicon_term

if TYPE_CHECKING:
from db.group import GroupThingAssociation
Expand All @@ -31,11 +32,15 @@

class Group(Base, AutoBaseMixin, ReleaseMixin):
# --- Column Definitions ---
description: Mapped[str] = mapped_column(String(255), nullable=True)
name: Mapped[str] = mapped_column(String(100), nullable=False, unique=True)
description: Mapped[str] = mapped_column(String(255), nullable=True)
project_area: Mapped[Optional[WKBElement]] = mapped_column(
Geometry(geometry_type="MULTIPOLYGON", srid=SRID_WGS84, spatial_index=True)
)
group_type: Mapped[Optional[str]] = lexicon_term(String(50), nullable=True)
monitoring_frequency: Mapped[Optional[str]] = lexicon_term(
String(50), nullable=True
)

# Foreign Keys
parent_group_id: Mapped[Optional[int]] = mapped_column(
Expand Down
Loading