feat: add schema, import support for Log.quick
This commit is contained in:
parent
32d23a7073
commit
547cc6e4ae
4 changed files with 53 additions and 0 deletions
|
|
@ -0,0 +1,37 @@
|
|||
"""add Log.quick
|
||||
|
||||
Revision ID: 85d4851e8292
|
||||
Revises: d459db991404
|
||||
Create Date: 2026-03-02 18:42:56.070281
|
||||
|
||||
"""
|
||||
|
||||
from typing import Sequence, Union
|
||||
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
import wuttjamaican.db.util
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision: str = "85d4851e8292"
|
||||
down_revision: Union[str, None] = "d459db991404"
|
||||
branch_labels: Union[str, Sequence[str], None] = None
|
||||
depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
|
||||
# log
|
||||
op.add_column("log", sa.Column("quick", sa.String(length=20), nullable=True))
|
||||
op.add_column(
|
||||
"log_version",
|
||||
sa.Column("quick", sa.String(length=20), autoincrement=False, nullable=True),
|
||||
)
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
|
||||
# log
|
||||
op.drop_column("log_version", "quick")
|
||||
op.drop_column("log", "quick")
|
||||
|
|
@ -144,6 +144,15 @@ class Log(model.Base):
|
|||
""",
|
||||
)
|
||||
|
||||
quick = sa.Column(
|
||||
sa.String(length=20),
|
||||
nullable=True,
|
||||
doc="""
|
||||
Identifier of quick form used to create the log, if
|
||||
applicable.
|
||||
""",
|
||||
)
|
||||
|
||||
farmos_uuid = sa.Column(
|
||||
model.UUID(),
|
||||
nullable=True,
|
||||
|
|
@ -257,6 +266,7 @@ def add_log_proxies(subclass):
|
|||
Log.make_proxy(subclass, "log", "is_group_assignment")
|
||||
Log.make_proxy(subclass, "log", "status")
|
||||
Log.make_proxy(subclass, "log", "notes")
|
||||
Log.make_proxy(subclass, "log", "quick")
|
||||
Log.make_proxy(subclass, "log", "assets")
|
||||
Log.make_proxy(subclass, "log", "groups")
|
||||
Log.make_proxy(subclass, "log", "locations")
|
||||
|
|
|
|||
|
|
@ -462,6 +462,7 @@ class ToFarmOSLog(ToFarmOS):
|
|||
"is_group_assignment",
|
||||
"status",
|
||||
"notes",
|
||||
"quick",
|
||||
]
|
||||
|
||||
def get_target_objects(self, **kwargs):
|
||||
|
|
@ -520,6 +521,7 @@ class ToFarmOSLog(ToFarmOS):
|
|||
"is_group_assignment": log["attributes"]["is_group_assignment"],
|
||||
"status": log["attributes"]["status"],
|
||||
"notes": notes,
|
||||
"quick": log["attributes"]["quick"],
|
||||
}
|
||||
|
||||
def get_log_payload(self, source_data):
|
||||
|
|
@ -535,6 +537,8 @@ class ToFarmOSLog(ToFarmOS):
|
|||
attrs["status"] = source_data["status"]
|
||||
if "notes" in self.fields:
|
||||
attrs["notes"] = {"value": source_data["notes"]}
|
||||
if "quick" in self.fields:
|
||||
attrs["quick"] = {"value": source_data["quick"]}
|
||||
|
||||
payload = {"attributes": attrs}
|
||||
|
||||
|
|
|
|||
|
|
@ -970,6 +970,7 @@ class LogImporterBase(FromFarmOS, ToWutta):
|
|||
"is_group_assignment",
|
||||
"notes",
|
||||
"status",
|
||||
"quick",
|
||||
]
|
||||
)
|
||||
return fields
|
||||
|
|
@ -1000,6 +1001,7 @@ class LogImporterBase(FromFarmOS, ToWutta):
|
|||
data["farmos_uuid"] = UUID(data.pop("uuid"))
|
||||
data["message"] = data.pop("name")
|
||||
data["timestamp"] = self.app.make_utc(data["timestamp"])
|
||||
data["quick"] = ", ".join(data["quick"]) if data["quick"] else None
|
||||
|
||||
# TODO
|
||||
data["log_type"] = self.get_farmos_log_type()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue