add hole field to art submission form
parent
6d6ff1a5cc
commit
e5e5402037
|
@ -3,6 +3,7 @@ function approve_art(t, id) {
|
||||||
{
|
{
|
||||||
"comment": document.getElementById(`${id}-comment`).value,
|
"comment": document.getElementById(`${id}-comment`).value,
|
||||||
"author": document.getElementById(`${id}-author`).value,
|
"author": document.getElementById(`${id}-author`).value,
|
||||||
|
"hole": document.getElementById(`${id}-hole`).value,
|
||||||
},
|
},
|
||||||
() => {
|
() => {
|
||||||
document.getElementById(`${id}-art`).remove()
|
document.getElementById(`${id}-art`).remove()
|
||||||
|
|
|
@ -4,6 +4,7 @@ from sqlalchemy import Column, ForeignKey
|
||||||
from sqlalchemy.sql.sqltypes import *
|
from sqlalchemy.sql.sqltypes import *
|
||||||
from files.classes import Base
|
from files.classes import Base
|
||||||
from files.helpers.lazy import lazy
|
from files.helpers.lazy import lazy
|
||||||
|
from files.helpers.config.const import *
|
||||||
|
|
||||||
sidebar_hashes = {}
|
sidebar_hashes = {}
|
||||||
banner_hashes = {}
|
banner_hashes = {}
|
||||||
|
@ -17,6 +18,11 @@ class ArtSubmission(Base):
|
||||||
created_utc = Column(Integer)
|
created_utc = Column(Integer)
|
||||||
approved = Column(Boolean, default=False)
|
approved = Column(Boolean, default=False)
|
||||||
|
|
||||||
|
if SITE_NAME == 'WPD':
|
||||||
|
hole = Column(String, ForeignKey("holes.name"))
|
||||||
|
else:
|
||||||
|
hole = None
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time())
|
if "created_utc" not in kwargs: kwargs["created_utc"] = int(time.time())
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
|
@ -51,11 +51,14 @@ def submit_art_post(v):
|
||||||
username = request.values.get('author', '').lower().strip()
|
username = request.values.get('author', '').lower().strip()
|
||||||
author = get_user(username, v=v)
|
author = get_user(username, v=v)
|
||||||
|
|
||||||
|
hole = request.values.get('hole', '').lower().strip()
|
||||||
|
if not hole: hole = None
|
||||||
|
|
||||||
entry = ArtSubmission(
|
entry = ArtSubmission(
|
||||||
kind=kind,
|
kind=kind,
|
||||||
author_id=author.id,
|
author_id=author.id,
|
||||||
submitter_id=v.id,
|
submitter_id=v.id,
|
||||||
|
hole=hole,
|
||||||
)
|
)
|
||||||
g.db.add(entry)
|
g.db.add(entry)
|
||||||
g.db.flush()
|
g.db.flush()
|
||||||
|
@ -106,7 +109,20 @@ def approve_art(v, id):
|
||||||
old = f'/asset_submissions/art/{entry.id}.webp'
|
old = f'/asset_submissions/art/{entry.id}.webp'
|
||||||
copyfile(old, f"/asset_submissions/art/original/{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)
|
move(old, filename)
|
||||||
process_image(filename, v, resize=entry.resize, trim=True)
|
process_image(filename, v, resize=entry.resize, trim=True)
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,18 @@
|
||||||
<label class="mt-3" for="author">Author</label>
|
<label class="mt-3" for="author">Author</label>
|
||||||
<input autocomplete="off" type="text" id="author" class="form-control" name="author" maxlength="30" pattern='[a-zA-Z0-9_\- ]{1,30}|\?{3}' placeholder="Required" value="{{username}}" required>
|
<input autocomplete="off" type="text" id="author" class="form-control" name="author" maxlength="30" pattern='[a-zA-Z0-9_\- ]{1,30}|\?{3}' placeholder="Required" value="{{username}}" required>
|
||||||
|
|
||||||
|
{% if SITE_NAME == 'WPD' %}
|
||||||
|
<label class='mt-3' for="hole">Hole</label>
|
||||||
|
<div class="input-group">
|
||||||
|
<input list="holes" autocomplete="off" id="hole" class="form-control" name="hole" placeholder="Optional">
|
||||||
|
<datalist id="holes">
|
||||||
|
{% for h in HOLES() %}
|
||||||
|
<option value="{{h}}"></option>
|
||||||
|
{% endfor %}
|
||||||
|
</datalist>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<div class="footer mt-5">
|
<div class="footer mt-5">
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
<input id="submit-btn" disabled type="submit" class="btn btn-primary ml-auto" value="Submit {{kind}}">
|
<input id="submit-btn" disabled type="submit" class="btn btn-primary ml-auto" value="Submit {{kind}}">
|
||||||
|
@ -57,6 +69,20 @@
|
||||||
|
|
||||||
<label class="mt-3" for="{{entry.id}}-author">Author</label>
|
<label class="mt-3" for="{{entry.id}}-author">Author</label>
|
||||||
<input autocomplete="off" type="text" id="{{entry.id}}-author" class="form-control" maxlength="30" value="{{entry.author}}" pattern='[a-zA-Z0-9_\- ]{1,30}|\?{3}' placeholder="Required" required {% if v.admin_level < PERMS['MODERATE_PENDING_SUBMITTED_ASSETS'] %}readonly{% endif %}>
|
<input autocomplete="off" type="text" id="{{entry.id}}-author" class="form-control" maxlength="30" value="{{entry.author}}" pattern='[a-zA-Z0-9_\- ]{1,30}|\?{3}' placeholder="Required" required {% if v.admin_level < PERMS['MODERATE_PENDING_SUBMITTED_ASSETS'] %}readonly{% endif %}>
|
||||||
|
|
||||||
|
{% if SITE_NAME == 'WPD' %}
|
||||||
|
<label class='mt-3' for="hole">Hole</label>
|
||||||
|
<div class="input-group">
|
||||||
|
<input list="holes" autocomplete="off" id="{{entry.id}}-hole" class="form-control" placeholder="Optional" {% if entry.hole %}value="{{entry.hole}}"{% endif %} {% if v.admin_level < PERMS['MODERATE_PENDING_SUBMITTED_ASSETS'] %}readonly{% endif %}>
|
||||||
|
<datalist id="holes">
|
||||||
|
{% for h in HOLES() %}
|
||||||
|
<option value="{{h}}"></option>
|
||||||
|
{% endfor %}
|
||||||
|
</datalist>
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<input hidden id="{{entry.id}}-hole">
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% if v.admin_level >= PERMS['MODERATE_PENDING_SUBMITTED_ASSETS'] or v.id == entry.submitter_id %}
|
{% if v.admin_level >= PERMS['MODERATE_PENDING_SUBMITTED_ASSETS'] or v.id == entry.submitter_id %}
|
||||||
|
|
Loading…
Reference in New Issue