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:
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)
return redirect(request.referrer)
@ -291,8 +297,14 @@ def add_partition(album_uuid):
except db.IntegrityError:
pass
flash(f"Partition {request.form['name']} ajoutée")
return redirect(f"/albums/{album.uuid}")
if "response" in request.args and request.args["response"] == "json":
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"])

View File

@ -2,7 +2,7 @@ import os
from ..db import get_db
from .attachment import Attachment
class Album():
def __init__(self, uuid=None, id=None):
@ -116,6 +116,18 @@ class Album():
"""
)
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")
if os.path.exists(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
LEFT JOIN groupe_contient_album
LEFT JOIN contient_user
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
"""
).fetchall()

View File

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

View File

@ -89,7 +89,13 @@ def create_groupe():
except db.IntegrityError:
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)
return redirect(request.referrer)
@ -201,7 +207,13 @@ def create_album(groupe_uuid):
except db.IntegrityError:
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)
return redirect(request.referrer)

View File

@ -99,8 +99,14 @@ def add_attachment(uuid):
except db.IntegrityError:
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>")