roundabout,
created on Sunday, 8 September 2024, 10:26:31 (1725791191),
received on Sunday, 8 September 2024, 10:58:33 (1725793113)
Author identity: vlad <vlad.muntoiu@gmail.com>
b0422298b816027d1a5b72848f9376c67f19a97b
app.py
@@ -214,11 +214,7 @@ with app.app_context():
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)backref="copies", foreign_keys=[copied_from_id])licences = db.relationship("PictureLicence", back_populates="resource")
@@ -444,7 +440,7 @@ def picture(id):
return flask.render_template("picture.html", resource=resource, file_extension=mimetypes.guess_extension(resource.file_format), size=image.size)size=image.size, copies=resource.copies)
templates/picture.html
@@ -117,6 +117,45 @@
{% endfor %} </x-vbox> </x-hbox> <h2>Copies</h2> <ul class="thumbnail-list"> {% for copy in resource.copies %} <li> <a href="/picture/{{ copy.id }}"> <div class="annotation-zone"> <img src="/raw/picture/{{ copy.id }}" alt="{{ copy.title }}"> {% for region in copy.regions %} {% if region.json.type == "bbox" %} <svg class="shape-container" viewBox="0 0 {{ copy.width }} {{ copy.height }}"> <rect x="{{ region.json.shape.x * copy.width }}" y="{{ region.json.shape.y * copy.height }}" width="{{ region.json.shape.w * copy.width }}" height="{{ region.json.shape.h * copy.height }}" fill="none" class="shape-bbox shape" ></rect> </svg> {% elif region.json.type == "polygon" %} <svg class="shape-container" viewBox="0 0 {{ copy.width }} {{ copy.height }}"> <polygon points="{% for point in region.json.shape %}{{ point.x * copy.width }},{{ point.y * copy.height }} {% endfor %}" fill="none" class="shape-polygon shape"></polygon> </svg> {% elif region.json.type == "polyline" %} <svg class="shape-container" viewBox="0 0 {{ copy.width }} {{ copy.height }}"> <polyline points="{% for point in region.json.shape %}{{ point.x * copy.width }},{{ point.y * copy.height }} {% endfor %}" fill="none" class="shape-polyline shape"></polyline> </svg> {% elif region.json.type == "point" %} <svg class="shape-container" viewBox="0 0 {{ copy.width }} {{ copy.height }}"> <circle cx="{{ region.json.shape.x * copy.width }}" cy="{{ region.json.shape.y * copy.height }}" r="0" fill="none" class="shape-point shape"></circle> </svg> {% endif %} {% endfor %} </div> <div class="list-detail"> {{ copy.title }} </div> </a> </li> {% endfor %}</x-vbox> </x-frame> {% endblock %}