roundabout,
created on Sunday, 8 September 2024, 08:07:50 (1725782870),
received on Sunday, 8 September 2024, 10:58:33 (1725793113)
Author identity: vlad <vlad.muntoiu@gmail.com>
1f4f23b3519a6b80fc7cdc7ef9a24fd6f4da16ab
app.py
@@ -19,6 +19,7 @@ import mimetypes
import ruamel.yaml as yaml
from PIL import Image
from sqlalchemy.orm.persistence import post_update
import config
import markdown
@@ -206,14 +207,22 @@ with app.app_context():
nullable=True)
replaces = db.relationship("PictureResource", remote_side="PictureResource.id",
foreign_keys=[replaces_id], back_populates="replaced_by")
foreign_keys=[replaces_id], back_populates="replaced_by",
post_update=True)
replaced_by = db.relationship("PictureResource", remote_side="PictureResource.id",
foreign_keys=[replaced_by_id])
foreign_keys=[replaced_by_id], post_update=True)
copied_from_id = db.Column(db.Integer, db.ForeignKey("picture_resource.id"), nullable=True)
copied_from = db.relationship("PictureResource", remote_side="PictureResource.id",
foreign_keys=[copied_from_id], back_populates="copies",
post_update=True)
copies = db.relationship("PictureResource", remote_side="PictureResource.id",
foreign_keys=[copied_from_id], post_update=True)
licences = db.relationship("PictureLicence", back_populates="resource")
def __init__(self, title, author, description, origin_url, licence_ids, mime, nature=None,
replaces=None):
def __init__(self, title, author, description, origin_url, licence_ids, mime, nature=None):
self.title = title
self.author = author
self.description = description
@@ -226,9 +235,6 @@ with app.app_context():
for licence_id in licence_ids:
joiner = PictureLicence(self, db.session.get(Licence, licence_id))
db.session.add(joiner)
if replaces is not None:
self.replaces = replaces
replaces.replaced_by = self
def put_annotations(self, json):
# Delete all previous annotations
@@ -652,6 +658,12 @@ def copy_picture(id):
new_path = path.join(config.DATA_PATH, "pictures", str(new_resource.id))
os.link(old_path, new_path)
new_resource.width = resource.width
new_resource.height = resource.height
new_resource.copied_from = resource
db.session.commit()
return flask.redirect("/picture/" + str(new_resource.id))