Misc:
Basic registry, with survey stores Move to standard src/ dir versions: sqlmodel official, pydantic v2 etc...
This commit is contained in:
parent
5494f6085f
commit
049b8c9927
31 changed files with 670 additions and 526 deletions
src/gisaf/models
84
src/gisaf/models/survey.py
Normal file
84
src/gisaf/models/survey.py
Normal file
|
@ -0,0 +1,84 @@
|
|||
from enum import Enum
|
||||
|
||||
from sqlmodel import Field, SQLModel
|
||||
|
||||
from .models_base import Model
|
||||
from .metadata import gisaf_survey
|
||||
|
||||
|
||||
class Accuracy(Model):
|
||||
metadata = gisaf_survey
|
||||
|
||||
class Admin:
|
||||
menu = 'Other'
|
||||
flask_admin_model_view = 'MyModelViewWithPrimaryKey'
|
||||
|
||||
id: int = Field(default=None, primary_key=True)
|
||||
name: str
|
||||
accuracy: float
|
||||
|
||||
def __str__(self):
|
||||
return f'{self.name} {self.accuracy}'
|
||||
|
||||
def __repr__(self):
|
||||
return f'<models.Accuracy {self.name}>'
|
||||
|
||||
|
||||
class Surveyor(Model):
|
||||
metadata = gisaf_survey
|
||||
|
||||
class Admin:
|
||||
menu = 'Other'
|
||||
flask_admin_model_view = 'MyModelViewWithPrimaryKey'
|
||||
|
||||
id: int = Field(default=None, primary_key=True)
|
||||
name: str
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
def __repr__(self):
|
||||
return f'<models.Surveyor {self.name}>'
|
||||
|
||||
|
||||
class Equipment(Model):
|
||||
metadata = gisaf_survey
|
||||
|
||||
class Admin:
|
||||
menu = 'Other'
|
||||
flask_admin_model_view = 'MyModelViewWithPrimaryKey'
|
||||
|
||||
id: int = Field(default=None, primary_key=True)
|
||||
name: str
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
def __repr__(self):
|
||||
return f'<models.Equipment {self.name}>'
|
||||
|
||||
class GeometryType(str, Enum):
|
||||
point = 'Point'
|
||||
line_work = 'Line_work'
|
||||
|
||||
class AccuracyEquimentSurveyorMapping(Model):
|
||||
metadata = gisaf_survey
|
||||
__tablename__ = 'accuracy_equiment_surveyor_mapping'
|
||||
|
||||
class Admin:
|
||||
menu = 'Other'
|
||||
|
||||
id: int = Field(default=None, primary_key=True)
|
||||
surveyor_id: int = Field(foreign_key='surveyor.id', index=True)
|
||||
equipment_id: int = Field(foreign_key='equipment.id', index=True)
|
||||
geometry_type: GeometryType = Field(default='Point', index=True)
|
||||
accuracy_id: int = Field(foreign_key='accuracy.id')
|
||||
|
||||
@classmethod
|
||||
def dyn_join_with(cls):
|
||||
return {
|
||||
'surveyor': Surveyor,
|
||||
'equipment': Equipment,
|
||||
'accuracy': Accuracy,
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue