Browse Source

wip describe file now shows the files to be described

pull/12/head
crunk 6 months ago
parent
commit
8cf5ca198b
  1. 1
      .gitignore
  2. 30
      verse/describer/describe_files.py
  3. 3
      verse/describer/forms/describe_files_form.py
  4. 14
      verse/describer/templates/describe_files/describe.html
  5. 17
      verse/static/css/style.css

1
.gitignore

@ -3,6 +3,7 @@
*.pyc
*.egg-info/
.eggs/
.ruff_cache
build/
dist/
pip-wheel-metadata/

30
verse/describer/describe_files.py

@ -1,4 +1,10 @@
from flask import Blueprint, render_template, redirect, url_for
from flask import (
Blueprint,
render_template,
redirect,
url_for,
send_from_directory,
)
from flask_login import current_user, login_required
from models.distribusi_model import Distribusis
from models.distribusi_file_model import DistribusiFiles
@ -31,7 +37,9 @@ def show_distribusi_files(distribusiname):
@login_required
def describe_file(file_id):
distribusi_file = DistribusiFiles.query.filter_by(id=file_id).first()
describe_form = DescribeFilesForm(distribusi_file.id, distribusi_file.path)
describe_form = DescribeFilesForm(
distribusi_file.id, distribusi_file.path, distribusi_file.type
)
print(
f"file: {describe_form.file_path} description: {describe_form.description.data}"
)
@ -41,14 +49,20 @@ def describe_file(file_id):
print(
f"file: {describe_form.file_path} alttext: {describe_form.alttext.data}"
)
distribusi_file_forms = get_distribusi_file_forms(
distribusi_file.distribusi
distribusi = Distribusis.query.filter_by(
id=distribusi_file.distribusi
).first()
return redirect(
url_for(
"describer.show_distribusi_files",
distribusiname=distribusi.distribusiname,
)
return render_template(
"describe.html",
distribusi_file_forms=distribusi_file_forms,
)
@describer.route("/stash/<path:path>")
def send_stash_file(path):
return send_from_directory("stash", path)
def get_distribusi_file_forms(distribusi_id):
distribusi_file_forms = {}
@ -57,7 +71,7 @@ def get_distribusi_file_forms(distribusi_id):
).all()
for distribusi_file in distribusi_files:
describe_form = DescribeFilesForm(
distribusi_file.id, distribusi_file.path
distribusi_file.id, distribusi_file.path, distribusi_file.type
)
describe_form.description.data = distribusi_file.description
describe_form.alttext.data = distribusi_file.alttext

3
verse/describer/forms/describe_files_form.py

@ -30,10 +30,11 @@ class DescribeFilesForm(FlaskForm):
)
save = SubmitField("Save")
def __init__(self, id, file_path=None):
def __init__(self, id, file_path=None, type=None):
super(DescribeFilesForm, self).__init__()
self.id = id
self.file_path = file_path
self.type = type
self.alttext.id = f"alttext-{id}"
self.searchtags.id = f"searchtags-{id}"
self.description.id = f"description-{id}"

14
verse/describer/templates/describe_files/describe.html

@ -28,10 +28,19 @@
</div>
<div class="distribusi_files">
{% for id, describe_form in distribusi_file_forms.items() %}
<div class="distribusi_file">
{% if describe_form.type == "image" %}
<img src="{{describe_form.file_path}}" alt="" />
{% elif describe_form.type == "video" %}
<video src="{{describe_form.file_path}}" preload="auto" alt="" controls></video>
{% elif describe_form.type == "audio" %}
<audio src="{{describe_form.file_path}}" preload="auto" alt="" controls></audio>
{% else %}
<a href="{{describe_form.file_path}}">file: {{describe_form.file_path}}</a>
{% endif %}
<form id={{id}} method="POST" enctype="multipart/form-data" action="{{ url_for('describer.describe_file', file_id=id) }}">
{{ describe_form.csrf_token }}
<p>{{describe_form.id}}</p>
<p>{{describe_form.file_path}}</p>
<p>File path: {{describe_form.file_path}}</p>
<fieldset class="">
{{ describe_form.description.label }}
{{ describe_form.description }}
@ -57,6 +66,7 @@
{{ describe_form.save }}
</fieldset>
</form>
</div>
{% endfor%}
</div>

17
verse/static/css/style.css

@ -174,6 +174,23 @@ a:active {
content: "$ ";
}
.distribusi_file {
margin-top: 1em;
padding: 0.5em;
padding-left: auto;
padding-right: auto;
width: 45em;
background-color:#fdfdfd;
text-decoration: none;
scroll-behavior: smooth;
border-style: outset;
}
.distribusi_file > img, video {
max-width: 100%;
max-height: 100%;
}
@media (prefers-reduced-motion: no-preference) {
@keyframes flash {
50% { opacity: 0; }

Loading…
Cancel
Save