Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
rubenwardy | 2c5a3809e8 |
|
@ -51,7 +51,7 @@ def screenshots(package):
|
|||
return redirect(package.getDetailsURL())
|
||||
|
||||
if package.screenshots.count() == 0:
|
||||
return redirect(package.getNewScreenshotURL())
|
||||
return redirect(package.get_new_media_url())
|
||||
|
||||
form = EditPackageScreenshotsForm(obj=package)
|
||||
form.cover_image.query = package.screenshots
|
||||
|
@ -108,7 +108,7 @@ def create_screenshot(package):
|
|||
.format(ss.title)
|
||||
addNotification(package.maintainers, current_user, NotificationType.PACKAGE_EDIT, msg, package.getDetailsURL(), package)
|
||||
db.session.commit()
|
||||
return redirect(package.getEditScreenshotsURL())
|
||||
return redirect(package.get_media_editor_url())
|
||||
|
||||
return render_template("packages/screenshot_new.html", package=package, form=form)
|
||||
|
||||
|
@ -124,7 +124,7 @@ def edit_screenshot(package, id):
|
|||
canEdit = package.checkPerm(current_user, Permission.ADD_SCREENSHOTS)
|
||||
canApprove = package.checkPerm(current_user, Permission.APPROVE_SCREENSHOT)
|
||||
if not (canEdit or canApprove):
|
||||
return redirect(package.getEditScreenshotsURL())
|
||||
return redirect(package.get_media_editor_url())
|
||||
|
||||
# Initial form class from post data and default data
|
||||
form = EditScreenshotForm(obj=screenshot)
|
||||
|
@ -140,7 +140,7 @@ def edit_screenshot(package, id):
|
|||
screenshot.approved = wasApproved
|
||||
|
||||
db.session.commit()
|
||||
return redirect(package.getEditScreenshotsURL())
|
||||
return redirect(package.get_media_editor_url())
|
||||
|
||||
return render_template("packages/screenshot_edit.html", package=package, screenshot=screenshot, form=form)
|
||||
|
||||
|
@ -164,4 +164,4 @@ def delete_screenshot(package, id):
|
|||
db.session.delete(screenshot)
|
||||
db.session.commit()
|
||||
|
||||
return redirect(package.getEditScreenshotsURL())
|
||||
return redirect(package.get_media_editor_url())
|
||||
|
|
|
@ -308,11 +308,11 @@ class Package(db.Model):
|
|||
releases = db.relationship("PackageRelease", back_populates="package",
|
||||
lazy="dynamic", order_by=db.desc("package_release_releaseDate"), cascade="all, delete, delete-orphan")
|
||||
|
||||
screenshots = db.relationship("PackageScreenshot", back_populates="package", foreign_keys="PackageScreenshot.package_id",
|
||||
lazy="dynamic", order_by=db.asc("package_screenshot_order"), cascade="all, delete, delete-orphan")
|
||||
media = db.relationship("PackageMedia", back_populates="package", foreign_keys="PackageMedia.package_id",
|
||||
lazy="dynamic", order_by=db.asc("package_media_order"), cascade="all, delete, delete-orphan")
|
||||
|
||||
cover_image_id = db.Column(db.Integer, db.ForeignKey("package_screenshot.id"), nullable=True, default=None)
|
||||
cover_image = db.relationship("PackageScreenshot", uselist=False, foreign_keys=[cover_image_id])
|
||||
cover_image_id = db.Column(db.Integer, db.ForeignKey("package_media.id"), nullable=True, default=None)
|
||||
cover_image = db.relationship("PackageMedia", uselist=False, foreign_keys=[cover_image_id])
|
||||
|
||||
maintainers = db.relationship("User", secondary=maintainers)
|
||||
|
||||
|
@ -398,7 +398,7 @@ class Package(db.Model):
|
|||
}
|
||||
|
||||
def getAsDictionaryShort(self, base_url, version=None, release=None):
|
||||
tnurl = self.getThumbnailURL(1)
|
||||
tnurl = self.get_thumbnail_url(1)
|
||||
release = release if release else self.getDownloadRelease(version=version)
|
||||
return {
|
||||
"name": self.name,
|
||||
|
@ -411,7 +411,7 @@ class Package(db.Model):
|
|||
}
|
||||
|
||||
def getAsDictionary(self, base_url, version=None):
|
||||
tnurl = self.getThumbnailURL(1)
|
||||
tnurl = self.get_thumbnail_url(1)
|
||||
release = self.getDownloadRelease(version=version)
|
||||
return {
|
||||
"author": self.author.username,
|
||||
|
@ -432,7 +432,7 @@ class Package(db.Model):
|
|||
|
||||
"provides": [x.name for x in self.provides],
|
||||
"thumbnail": (base_url + tnurl) if tnurl is not None else None,
|
||||
"screenshots": [base_url + ss.url for ss in self.screenshots],
|
||||
"media": [base_url + ss.url for ss in self.media],
|
||||
|
||||
"url": base_url + self.getDownloadURL(),
|
||||
"release": release and release.id,
|
||||
|
@ -441,20 +441,20 @@ class Package(db.Model):
|
|||
"downloads": self.downloads
|
||||
}
|
||||
|
||||
def getThumbnailURL(self, level=2):
|
||||
screenshot = self.screenshots.filter_by(approved=True).order_by(db.asc(PackageScreenshot.id)).first()
|
||||
return screenshot.getThumbnailURL(level) if screenshot is not None else None
|
||||
def get_thumbnail_url(self, level=2):
|
||||
media = self.media.filter_by(approved=True).order_by(db.asc(PackageMedia.id)).first()
|
||||
return media.get_thumbnail_url(level) if media is not None else None
|
||||
|
||||
def getMainScreenshotURL(self, absolute=False):
|
||||
screenshot = self.screenshots.filter_by(approved=True).order_by(db.asc(PackageScreenshot.id)).first()
|
||||
if screenshot is None:
|
||||
def get_cover_image_url(self, absolute=False):
|
||||
media = self.cover_image or self.media.filter_by(approved=True).order_by(db.asc(PackageMedia.id)).first()
|
||||
if media is None:
|
||||
return None
|
||||
|
||||
if absolute:
|
||||
from app.utils import abs_url
|
||||
return abs_url(screenshot.url)
|
||||
return abs_url(media.url)
|
||||
else:
|
||||
return screenshot.url
|
||||
return media.url
|
||||
|
||||
def getDetailsURL(self, absolute=False):
|
||||
if absolute:
|
||||
|
@ -491,11 +491,11 @@ class Package(db.Model):
|
|||
return url_for("packages.remove",
|
||||
author=self.author.username, name=self.name)
|
||||
|
||||
def getNewScreenshotURL(self):
|
||||
def get_new_media_url(self):
|
||||
return url_for("packages.create_screenshot",
|
||||
author=self.author.username, name=self.name)
|
||||
|
||||
def getEditScreenshotsURL(self):
|
||||
def get_media_editor_url(self):
|
||||
return url_for("packages.screenshots",
|
||||
author=self.author.username, name=self.name)
|
||||
|
||||
|
@ -874,11 +874,11 @@ class PackageRelease(db.Model):
|
|||
raise Exception("Permission {} is not related to releases".format(perm.name))
|
||||
|
||||
|
||||
class PackageScreenshot(db.Model):
|
||||
class PackageMedia(db.Model):
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
|
||||
package_id = db.Column(db.Integer, db.ForeignKey("package.id"), nullable=False)
|
||||
package = db.relationship("Package", back_populates="screenshots", foreign_keys=[package_id])
|
||||
package = db.relationship("Package", back_populates="media", foreign_keys=[package_id])
|
||||
|
||||
order = db.Column(db.Integer, nullable=False, default=0)
|
||||
title = db.Column(db.String(100), nullable=False)
|
||||
|
@ -886,16 +886,16 @@ class PackageScreenshot(db.Model):
|
|||
approved = db.Column(db.Boolean, nullable=False, default=False)
|
||||
|
||||
def getEditURL(self):
|
||||
return url_for("packages.edit_screenshot",
|
||||
return url_for("packages.edit_media",
|
||||
author=self.package.author.username,
|
||||
name=self.package.name,
|
||||
id=self.id)
|
||||
|
||||
def getDeleteURL(self):
|
||||
return url_for("packages.delete_screenshot",
|
||||
return url_for("packages.delete_media",
|
||||
author=self.package.author.username,
|
||||
name=self.package.name,
|
||||
id=self.id)
|
||||
|
||||
def getThumbnailURL(self, level=2):
|
||||
def get_thumbnail_url(self, level=2):
|
||||
return self.url.replace("/uploads/", "/thumbnails/{:d}/".format(level))
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
<img
|
||||
class="img-fluid"
|
||||
style="max-height: 22px; max-width: 22px;"
|
||||
src="{{ entry.package.getThumbnailURL(1) }}" />
|
||||
src="{{ entry.package.get_thumbnail_url(1) }}" />
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{% macro render_pkgtile(package, show_author) -%}
|
||||
<li class="packagetile flex-fill"><a href="{{ package.getDetailsURL() }}"
|
||||
style="background-image: url({{ package.getThumbnailURL() or '/static/placeholder.png' }});">
|
||||
style="background-image: url({{ package.get_thumbnail_url() or '/static/placeholder.png' }});">
|
||||
<div class="packagegridscrub"></div>
|
||||
<div class="packagegridinfo">
|
||||
<h3>
|
||||
|
|
|
@ -37,7 +37,7 @@ Notifications
|
|||
<img
|
||||
class="img-fluid"
|
||||
style="max-height: 22px; max-width: 22px;"
|
||||
src="{{ n.package.getThumbnailURL(1) }}" />
|
||||
src="{{ n.package.get_thumbnail_url(1) }}" />
|
||||
|
||||
<span class="pl-2">
|
||||
{{ n.package.title }}
|
||||
|
@ -75,7 +75,7 @@ Notifications
|
|||
<img
|
||||
class="img-fluid"
|
||||
style="max-height: 22px; max-width: 22px;"
|
||||
src="{{ n.package.getThumbnailURL(1) }}" />
|
||||
src="{{ n.package.get_thumbnail_url(1) }}" />
|
||||
|
||||
<span class="pl-2">
|
||||
{{ n.package.title }}
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
</form>
|
||||
|
||||
<a href="{{ screenshot.url }}" class="col-md-4 text-right">
|
||||
<img src="{{ screenshot.getThumbnailURL() }}" alt="{{ screenshot.title }}" />
|
||||
<img src="{{ screenshot.get_thumbnail_url() }}" alt="{{ screenshot.title }}" />
|
||||
</a>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<h1 class="mb-5"><a href="{{ package.getDetailsURL() }}">{{ package.title }}</a></h1>
|
||||
|
||||
{% if package.checkPerm(current_user, "ADD_SCREENSHOTS") %}
|
||||
<a href="{{ package.getNewScreenshotURL() }}" class="btn btn-primary float-right">
|
||||
<a href="{{ package.get_new_media_url() }}" class="btn btn-primary float-right">
|
||||
{{ _("Add Image") }}
|
||||
</a>
|
||||
{% endif %}
|
||||
|
@ -28,7 +28,7 @@
|
|||
</div>
|
||||
<div class="col-auto">
|
||||
<img class="img-fluid" style="max-height: 64px;"
|
||||
src="{{ ss.getThumbnailURL() }}" alt="{{ ss.title }}" />
|
||||
src="{{ ss.get_thumbnail_url() }}" alt="{{ ss.title }}" />
|
||||
</div>
|
||||
<span class="col">
|
||||
{{ ss.title }}
|
||||
|
|
|
@ -11,8 +11,8 @@
|
|||
<meta name="og:description" content="{{ package.short_desc }}"/>
|
||||
<meta name="description" content="{{ package.short_desc }}"/>
|
||||
<meta name="og:url" content="{{ package.getDetailsURL(absolute=True) }}"/>
|
||||
{% if package.getMainScreenshotURL() %}
|
||||
<meta name="og:image" content="{{ package.getMainScreenshotURL(absolute=True) }}"/>
|
||||
{% if package.get_cover_image_url() %}
|
||||
<meta name="og:image" content="{{ package.get_cover_image_url(absolute=True) }}"/>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
||||
|
@ -27,7 +27,7 @@
|
|||
{% set release = package.getDownloadRelease() %}
|
||||
|
||||
<main>
|
||||
{% set cover_image = package.cover_image.url or package.getMainScreenshotURL() %}
|
||||
{% set cover_image = package.cover_image.url or package.get_cover_image_url() %}
|
||||
<header class="jumbotron pb-3"
|
||||
style="background: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.7)), url('{{ cover_image }}');
|
||||
background-size: cover;
|
||||
|
@ -379,7 +379,7 @@
|
|||
</aside>
|
||||
|
||||
{% if package.checkPerm(current_user, "ADD_SCREENSHOTS") %}
|
||||
<a href="{{ package.getEditScreenshotsURL() }}" class="btn btn-primary float-right">
|
||||
<a href="{{ package.get_media_editor_url() }}" class="btn btn-primary float-right">
|
||||
<i class="fas fa-images mr-1"></i>
|
||||
Edit
|
||||
</a>
|
||||
|
@ -390,14 +390,14 @@
|
|||
{% if ss.approved or package.checkPerm(current_user, "ADD_SCREENSHOTS") %}
|
||||
<li>
|
||||
<a href="{{ ss.url }}">
|
||||
<img src="{{ ss.getThumbnailURL() }}" alt="{{ ss.title }}" />
|
||||
<img src="{{ ss.get_thumbnail_url() }}" alt="{{ ss.title }}" />
|
||||
</a>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{% if package.checkPerm(current_user, "EDIT_PACKAGE") %}
|
||||
<li>
|
||||
<a href="{{ package.getNewScreenshotURL() }}">
|
||||
<a href="{{ package.get_new_media_url() }}">
|
||||
<i class="fas fa-plus screenshot-add"></i>
|
||||
</a>
|
||||
</li>
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
<ul class="card-body d-flex p-0 flex-row flex-wrap justify-content-start align-content-start p-4">
|
||||
{% for s in screenshots %}
|
||||
<li class="packagetile flex-fill"><a href="{{ s.getEditURL() }}"
|
||||
style="background-image: url({{ s.getThumbnailURL(3) or '/static/placeholder.png' }});">
|
||||
style="background-image: url({{ s.get_thumbnail_url(3) or '/static/placeholder.png' }});">
|
||||
<div class="packagegridscrub"></div>
|
||||
<div class="packagegridinfo">
|
||||
<h3>
|
||||
|
|
Loading…
Reference in New Issue