diff --git a/src/wuttafarm/db/alembic/versions/85d4851e8292_add_log_quick.py b/src/wuttafarm/db/alembic/versions/85d4851e8292_add_log_quick.py new file mode 100644 index 0000000..97e87bc --- /dev/null +++ b/src/wuttafarm/db/alembic/versions/85d4851e8292_add_log_quick.py @@ -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") diff --git a/src/wuttafarm/db/model/log.py b/src/wuttafarm/db/model/log.py index b77898f..c3bfe14 100644 --- a/src/wuttafarm/db/model/log.py +++ b/src/wuttafarm/db/model/log.py @@ -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") diff --git a/src/wuttafarm/farmos/importing/model.py b/src/wuttafarm/farmos/importing/model.py index 108ebde..c785141 100644 --- a/src/wuttafarm/farmos/importing/model.py +++ b/src/wuttafarm/farmos/importing/model.py @@ -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} diff --git a/src/wuttafarm/importing/farmos.py b/src/wuttafarm/importing/farmos.py index ebc5b55..da69813 100644 --- a/src/wuttafarm/importing/farmos.py +++ b/src/wuttafarm/importing/farmos.py @@ -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()