From 5404d2dcf781f8384bc4ee5fd08355a7ce22059f Mon Sep 17 00:00:00 2001
From: robban64 <carl@schonfelder.se>
Date: Wed, 28 Apr 2021 09:40:04 +0200
Subject: [PATCH] fix: remove background_image by sending -1

---
 server/app/apis/competitions.py        |  2 +-
 server/app/apis/slides.py              |  2 +-
 server/app/database/controller/edit.py | 14 ++++++++++++++
 3 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/server/app/apis/competitions.py b/server/app/apis/competitions.py
index 2a7b2a95..d1fd9572 100644
--- a/server/app/apis/competitions.py
+++ b/server/app/apis/competitions.py
@@ -54,7 +54,7 @@ class Competitions(Resource):
     def put(self, competition_id):
         args = competition_edit_parser.parse_args(strict=True)
         item = dbc.get.one(Competition, competition_id)
-        item = dbc.edit.default(item, **args)
+        item = dbc.edit.competition(item, **args)
 
         return item_response(schema.dump(item))
 
diff --git a/server/app/apis/slides.py b/server/app/apis/slides.py
index 4357df9e..52553796 100644
--- a/server/app/apis/slides.py
+++ b/server/app/apis/slides.py
@@ -43,7 +43,7 @@ class Slides(Resource):
         args = slide_parser.parse_args(strict=True)
 
         item_slide = dbc.get.slide(competition_id, slide_id)
-        item_slide = dbc.edit.default(item_slide, **args)
+        item_slide = dbc.edit.slide(item_slide, **args)
 
         return item_response(schema.dump(item_slide))
 
diff --git a/server/app/database/controller/edit.py b/server/app/database/controller/edit.py
index b1f5bc91..94bc6008 100644
--- a/server/app/database/controller/edit.py
+++ b/server/app/database/controller/edit.py
@@ -51,3 +51,17 @@ def default(item, **kwargs):
     db.session.commit()
     db.session.refresh(item)
     return item
+
+
+def competition(item, **kwargs):
+    if kwargs["background_image_id"] == -1:
+        item.background_image_id = None
+        del kwargs["background_image_id"]
+    return default(item, **kwargs)
+
+
+def slide(item, **kwargs):
+    if kwargs["background_image_id"] == -1:
+        item.background_image_id = None
+        del kwargs["background_image_id"]
+    return default(item, **kwargs)
\ No newline at end of file
-- 
GitLab