From 28f6f8e916a7291ab89ca87fe3653fd21b5bc3b4 Mon Sep 17 00:00:00 2001 From: Thorsten Lanfer Date: Mon, 24 Feb 2025 18:36:48 +0100 Subject: [PATCH 1/3] Allow posting partial updates of extra attributes --- spoolman/database/spool.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spoolman/database/spool.py b/spoolman/database/spool.py index 2f60fdc..4012249 100644 --- a/spoolman/database/spool.py +++ b/spoolman/database/spool.py @@ -231,7 +231,8 @@ async def update( elif isinstance(v, datetime): setattr(spool, k, utc_timezone_naive(v)) elif k == "extra": - spool.extra = [models.SpoolField(key=k, value=v) for k, v in v.items()] + spool.extra = [ f for f in spool.extra if f.key not in v.keys()] + spool.extra.extend([models.SpoolField(key=k, value=v) for k, v in v.items()]) else: setattr(spool, k, v) await db.commit() From 4b8fd3aed3f6b20929eccc4e6d299fe88f5bdbd2 Mon Sep 17 00:00:00 2001 From: Thorsten Lanfer Date: Mon, 24 Feb 2025 21:54:41 +0100 Subject: [PATCH 2/3] Update spool.py --- spoolman/database/spool.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spoolman/database/spool.py b/spoolman/database/spool.py index 4012249..f789111 100644 --- a/spoolman/database/spool.py +++ b/spoolman/database/spool.py @@ -231,7 +231,7 @@ async def update( elif isinstance(v, datetime): setattr(spool, k, utc_timezone_naive(v)) elif k == "extra": - spool.extra = [ f for f in spool.extra if f.key not in v.keys()] + spool.extra = [ f for f in spool.extra if f.key not in v] spool.extra.extend([models.SpoolField(key=k, value=v) for k, v in v.items()]) else: setattr(spool, k, v) From 55acc4993dd91b9b10e7bbc6f15ce73475cec593 Mon Sep 17 00:00:00 2001 From: Thorsten Lanfer Date: Wed, 5 Mar 2025 19:46:54 +0100 Subject: [PATCH 3/3] reformat --- spoolman/database/spool.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spoolman/database/spool.py b/spoolman/database/spool.py index f789111..b09177b 100644 --- a/spoolman/database/spool.py +++ b/spoolman/database/spool.py @@ -231,7 +231,7 @@ async def update( elif isinstance(v, datetime): setattr(spool, k, utc_timezone_naive(v)) elif k == "extra": - spool.extra = [ f for f in spool.extra if f.key not in v] + spool.extra = [f for f in spool.extra if f.key not in v] spool.extra.extend([models.SpoolField(key=k, value=v) for k, v in v.items()]) else: setattr(spool, k, v)