Compare commits

..

3 Commits

Author SHA1 Message Date
2de234870e Fix groupe deletion (removed orphans) 2023-10-26 23:38:09 +02:00
34cae34236 Forgot this one as well 2023-10-26 14:35:09 +02:00
83b033a779 Testing a simple API 2023-10-26 14:33:06 +02:00
6 changed files with 56 additions and 13 deletions

View File

@ -131,7 +131,13 @@ def create_album():
except db.IntegrityError: except db.IntegrityError:
pass pass
return redirect(f"/albums/{uuid}") if "response" in request.args and request.args["response"] == "json":
return {
"status": "ok",
"uuid": uuid
}
else:
return redirect(f"/albums/{uuid}")
flash(error) flash(error)
return redirect(request.referrer) return redirect(request.referrer)
@ -291,8 +297,14 @@ def add_partition(album_uuid):
except db.IntegrityError: except db.IntegrityError:
pass pass
flash(f"Partition {request.form['name']} ajoutée") if "response" in request.args and request.args["response"] == "json":
return redirect(f"/albums/{album.uuid}") return {
"status": "ok",
"uuid": partition_uuid
}
else:
flash(f"Partition {request.form['name']} ajoutée")
return redirect(f"/albums/{album.uuid}")
@bp.route("/add-partition", methods=["POST"]) @bp.route("/add-partition", methods=["POST"])

View File

@ -2,7 +2,7 @@ import os
from ..db import get_db from ..db import get_db
from .attachment import Attachment
class Album(): class Album():
def __init__(self, uuid=None, id=None): def __init__(self, uuid=None, id=None):
@ -116,6 +116,18 @@ class Album():
""" """
) )
for partition in partitions.fetchall(): for partition in partitions.fetchall():
data = db.execute(
"""
SELECT * FROM attachments
WHERE partition_uuid = ?
""",
(partition["uuid"],)
)
attachments = [Attachment(data=i) for i in data]
for attachment in attachments:
attachment.delete()
os.remove(f"partitioncloud/partitions/{partition['uuid']}.pdf") os.remove(f"partitioncloud/partitions/{partition['uuid']}.pdf")
if os.path.exists(f"partitioncloud/static/thumbnails/{partition['uuid']}.jpg"): if os.path.exists(f"partitioncloud/static/thumbnails/{partition['uuid']}.jpg"):
os.remove(f"partitioncloud/static/thumbnails/{partition['uuid']}.jpg") os.remove(f"partitioncloud/static/thumbnails/{partition['uuid']}.jpg")

View File

@ -54,9 +54,9 @@ class Groupe():
""" """
SELECT id FROM album SELECT id FROM album
LEFT JOIN groupe_contient_album LEFT JOIN groupe_contient_album
LEFT JOIN contient_user
ON groupe_contient_album.album_id=album.id ON groupe_contient_album.album_id=album.id
AND contient_user.album_id=album.id LEFT JOIN contient_user
ON contient_user.album_id=album.id
WHERE user_id IS NULL AND groupe_id IS NULL WHERE user_id IS NULL AND groupe_id IS NULL
""" """
).fetchall() ).fetchall()

View File

@ -194,15 +194,16 @@ class User():
def quit_album(self, album_uuid): def quit_album(self, album_uuid):
db = get_db() db = get_db()
album = Album(uuid=album_uuid)
db.execute( db.execute(
""" """
DELETE FROM contient_user DELETE FROM contient_user
JOIN album
ON album.id = album_id
WHERE user_id = ? WHERE user_id = ?
AND album_id = ? AND album.uuid = ?
""", """,
(self.id, album.id) (self.id, album_uuid)
) )
db.commit() db.commit()

View File

@ -89,7 +89,13 @@ def create_groupe():
except db.IntegrityError: except db.IntegrityError:
pass pass
return redirect(f"/groupe/{uuid}") if "response" in request.args and request.args["response"] == "json":
return {
"status": "ok",
"uuid": uuid
}
else:
return redirect(f"/groupe/{uuid}")
flash(error) flash(error)
return redirect(request.referrer) return redirect(request.referrer)
@ -201,7 +207,13 @@ def create_album(groupe_uuid):
except db.IntegrityError: except db.IntegrityError:
pass pass
return redirect(f"/groupe/{groupe.uuid}/{uuid}") if "response" in request.args and request.args["response"] == "json":
return {
"status": "ok",
"uuid": uuid
}
else:
return redirect(f"/groupe/{groupe.uuid}/{uuid}")
flash(error) flash(error)
return redirect(request.referrer) return redirect(request.referrer)

View File

@ -100,7 +100,13 @@ def add_attachment(uuid):
pass pass
return redirect(f"/partition/{partition.uuid}/attachments") if "response" in request.args and request.args["response"] == "json":
return {
"status": "ok",
"uuid": attachment_uuid
}
else:
return redirect(f"/partition/{partition.uuid}/attachments")
@bp.route("/attachment/<uuid>.<filetype>") @bp.route("/attachment/<uuid>.<filetype>")