2023-11-19 12:13:39 +05:30
|
|
|
import logging
|
|
|
|
from typing import Any
|
2023-12-13 01:25:00 +05:30
|
|
|
from pydantic import ConfigDict
|
2023-11-19 12:13:39 +05:30
|
|
|
|
|
|
|
from sqlmodel import Field, JSON, Column
|
|
|
|
|
2023-12-25 15:50:45 +05:30
|
|
|
from gisaf.models.models_base import Model
|
2024-01-05 01:50:32 +05:30
|
|
|
from gisaf.models.metadata import gisaf_map
|
2023-11-19 12:13:39 +05:30
|
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
|
|
|
|
class NotADataframeError(Exception):
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
class Qml(Model):
|
|
|
|
"""
|
|
|
|
Model for storing qml (QGis style)
|
|
|
|
"""
|
2023-12-13 01:25:00 +05:30
|
|
|
model_config = ConfigDict(protected_namespaces=())
|
2024-01-05 01:50:32 +05:30
|
|
|
__table_args__ = gisaf_map.table_args
|
2023-11-19 12:13:39 +05:30
|
|
|
|
|
|
|
class Admin:
|
|
|
|
menu = 'Other'
|
|
|
|
flask_admin_model_view = 'QmlModelView'
|
|
|
|
|
2023-12-25 15:50:45 +05:30
|
|
|
model_name: str | None = Field(default=None, primary_key=True)
|
2023-11-19 12:13:39 +05:30
|
|
|
qml: str
|
|
|
|
attr: str
|
|
|
|
style: str
|
2023-12-13 01:25:00 +05:30
|
|
|
mapbox_paint: dict[str, Any] | None = Field(sa_type=JSON(none_as_null=True))
|
|
|
|
mapbox_layout: dict[str, Any] | None = Field(sa_type=JSON(none_as_null=True))
|
2023-11-19 12:13:39 +05:30
|
|
|
|
|
|
|
def __repr__(self):
|
|
|
|
return '<models.Qml {self.model_name:s}>'.format(self=self)
|
|
|
|
|