diff --git a/app/models.py b/app/models.py
index f456e810..f3903ff5 100644
--- a/app/models.py
+++ b/app/models.py
@@ -171,6 +171,8 @@ class Package(db.Model):
releases = db.relationship("PackageRelease", backref="package",
lazy="dynamic", order_by=db.desc("package_release_releaseDate"))
+ screenshots = db.relationship("PackageScreenshot", backref="package",
+ lazy="dynamic")
requests = db.relationship("EditRequest", backref="package",
lazy="dynamic")
@@ -184,7 +186,7 @@ class Package(db.Model):
"type": self.type.toName(),
"repo": self.repo,
"url": base_url + self.getDownloadURL(),
- "screenshots": [ base_url + self.getMainScreenshotURL() ]
+ "screenshots": [base_url + ss.url for ss in self.screenshots]
}
def getDetailsURL(self):
@@ -202,6 +204,13 @@ class Package(db.Model):
type=self.type.toName(),
author=self.author.username, name=self.name)
+
+
+ def getNewScreenshotURL(self):
+ return url_for("create_screenshot_page",
+ type=self.type.toName(),
+ author=self.author.username, name=self.name)
+
def getCreateReleaseURL(self):
return url_for("create_release_page",
type=self.type.toName(),
@@ -218,7 +227,7 @@ class Package(db.Model):
author=self.author.username, name=self.name)
def getMainScreenshotURL(self):
- return "/static/screenshot.png"
+ return self.screenshots[0].url if len(self.screenshots) > 0 else None
def getDownloadRelease(self):
for rel in self.releases:
@@ -277,6 +286,15 @@ class PackageRelease(db.Model):
def __init__(self):
self.releaseDate = datetime.now()
+class PackageScreenshot(db.Model):
+ id = db.Column(db.Integer, primary_key=True)
+ package_id = db.Column(db.Integer, db.ForeignKey("package.id"))
+ title = db.Column(db.String(100), nullable=False)
+ url = db.Column(db.String(100), nullable=False)
+
+ def getThumbnailURL(self):
+ return self.url # TODO
+
class EditRequest(db.Model):
id = db.Column(db.Integer, primary_key=True)
diff --git a/app/static/style.css b/app/static/style.css
index 57d51993..712b0451 100644
--- a/app/static/style.css
+++ b/app/static/style.css
@@ -10,6 +10,28 @@ h1 {
text-align: center;
}
+.screenshot_list, .screenshot_list li, .screenshot_list li a {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+}
+
+.screenshot_list li {
+ display: inline-block;
+ margin: 5px;
+ padding: 0;
+}
+
+.screenshot_list li a {
+ display: block;
+}
+
+.screenshot_list img {
+ width: 164px;
+ height: 164px;
+ object-fit: cover;
+}
+
h2, h3 {
margin: 5px 0;
diff --git a/app/templates/packages/screenshot_new.html b/app/templates/packages/screenshot_new.html
new file mode 100644
index 00000000..0044e0dc
--- /dev/null
+++ b/app/templates/packages/screenshot_new.html
@@ -0,0 +1,17 @@
+{% extends "base.html" %}
+
+{% block title %}
+ Add a screenshot | {{ package.title }}
+{% endblock %}
+
+{% block content %}
+ {% from "macros/forms.html" import render_field, render_submit_field %}
+
+{% endblock %}
diff --git a/app/templates/packages/view.html b/app/templates/packages/view.html
index 76a96ac0..58631c99 100644
--- a/app/templates/packages/view.html
+++ b/app/templates/packages/view.html
@@ -18,6 +18,16 @@
{{ package.title }} by {{ package.author.display_name }}
+
+ {% for ss in package.screenshots %}
+ -
+
+
+
+
+ {% endfor %}
+
+