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")