diff --git a/files/assets/js/submit_art.js b/files/assets/js/submit_art.js index e52551682..b7ab7b89b 100644 --- a/files/assets/js/submit_art.js +++ b/files/assets/js/submit_art.js @@ -3,6 +3,7 @@ function approve_art(t, id) { { "comment": document.getElementById(`${id}-comment`).value, "author": document.getElementById(`${id}-author`).value, + "hole": document.getElementById(`${id}-hole`).value, }, () => { document.getElementById(`${id}-art`).remove() diff --git a/files/classes/art_submissions.py b/files/classes/art_submissions.py index a4754862f..30cbde617 100644 --- a/files/classes/art_submissions.py +++ b/files/classes/art_submissions.py @@ -4,6 +4,7 @@ from sqlalchemy import Column, ForeignKey from sqlalchemy.sql.sqltypes import * from files.classes import Base from files.helpers.lazy import lazy +from files.helpers.config.const import * sidebar_hashes = {} banner_hashes = {} @@ -17,6 +18,11 @@ class ArtSubmission(Base): created_utc = Column(Integer) approved = Column(Boolean, default=False) + if SITE_NAME == 'WPD': + hole = Column(String, ForeignKey("holes.name")) + else: + hole = None + def __init__(self, *args, **kwargs): if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time()) super().__init__(*args, **kwargs) diff --git a/files/routes/art_submissions.py b/files/routes/art_submissions.py index f277a11b5..524b3e509 100644 --- a/files/routes/art_submissions.py +++ b/files/routes/art_submissions.py @@ -51,11 +51,14 @@ def submit_art_post(v): username = request.values.get('author', '').lower().strip() author = get_user(username, v=v) + hole = request.values.get('hole', '').lower().strip() + if not hole: hole = None entry = ArtSubmission( kind=kind, author_id=author.id, submitter_id=v.id, + hole=hole, ) g.db.add(entry) g.db.flush() @@ -106,7 +109,20 @@ def approve_art(v, id): old = f'/asset_submissions/art/{entry.id}.webp' copyfile(old, f"/asset_submissions/art/original/{entry.id}.webp") - filename = f"files/assets/images/{SITE_NAME}/{entry.location_kind}/{entry.id}.webp" + hole = request.values.get('hole', '').lower().strip() + if hole: + hole = g.db.get(Hole, hole) + if not hole: + abort(404, "Hole not found!") + + filename = f'/images/{time.time()}'.replace('.','') + '.webp' + if entry.kind == "sidebar": + hole.sidebarurls.append(f"{SITE_FULL_IMAGES}{filename}") + else: + hole.bannerurls.append(f"{SITE_FULL_IMAGES}{filename}") + else: + filename = f"files/assets/images/{SITE_NAME}/{entry.location_kind}/{entry.id}.webp" + move(old, filename) process_image(filename, v, resize=entry.resize, trim=True) diff --git a/files/templates/submit_art.html b/files/templates/submit_art.html index 129b1cf0e..04785a503 100644 --- a/files/templates/submit_art.html +++ b/files/templates/submit_art.html @@ -29,6 +29,18 @@ + {% if SITE_NAME == 'WPD' %} + +
+ + + {% for h in HOLES() %} + + {% endfor %} + +
+ {% endif %} + {% if v.admin_level >= PERMS['MODERATE_PENDING_SUBMITTED_ASSETS'] or v.id == entry.submitter_id %}