From 3b08f2e08c1b3e616d3a80485f22e2c0a0c9f24e Mon Sep 17 00:00:00 2001 From: augustin64 Date: Thu, 26 Oct 2023 14:24:30 +0200 Subject: [PATCH] Delete attachments when deleting a partition --- partitioncloud/modules/classes/attachment.py | 15 +++++++++++++++ partitioncloud/modules/classes/partition.py | 7 ++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/partitioncloud/modules/classes/attachment.py b/partitioncloud/modules/classes/attachment.py index f585abc..9eff7d2 100644 --- a/partitioncloud/modules/classes/attachment.py +++ b/partitioncloud/modules/classes/attachment.py @@ -1,3 +1,5 @@ +import os + from flask import current_app from ..db import get_db @@ -29,5 +31,18 @@ class Attachment(): self.filetype = data["filetype"] self.partition_uuid = data["partition_uuid"] + def delete(self): + db = get_db() + db.execute( + """ + DELETE FROM attachments + WHERE uuid = ? + """, + (self.uuid,) + ) + db.commit() + + os.remove(f"partitioncloud/attachments/{self.uuid}.{self.filetype}") + def __repr__(self): return f"{self.name}.{self.filetype}" \ No newline at end of file diff --git a/partitioncloud/modules/classes/partition.py b/partitioncloud/modules/classes/partition.py index bef723e..4334758 100644 --- a/partitioncloud/modules/classes/partition.py +++ b/partitioncloud/modules/classes/partition.py @@ -31,6 +31,8 @@ class Partition(): raise LookupError def delete(self): + self.load_attachments() + db = get_db() db.execute( """ @@ -45,7 +47,7 @@ class Partition(): if os.path.exists(f"partitioncloud/static/thumbnails/{self.uuid}.jpg"): os.remove(f"partitioncloud/static/thumbnails/{self.uuid}.jpg") - partitions = db.execute( + db.execute( """ DELETE FROM partition WHERE uuid = ? @@ -54,6 +56,9 @@ class Partition(): ) db.commit() + for attachment in self.attachments: + attachment.delete() + def update(self, name=None, author="", body=""): if name is None: return Exception("name cannot be None")