Browse Source

wip describe file now shows the files to be described

pull/12/head
crunk 4 months ago
parent
commit
8cf5ca198b
  1. 1
      .gitignore
  2. 32
      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 *.pyc
*.egg-info/ *.egg-info/
.eggs/ .eggs/
.ruff_cache
build/ build/
dist/ dist/
pip-wheel-metadata/ pip-wheel-metadata/

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

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

@ -28,10 +28,19 @@
</div> </div>
<div class="distribusi_files"> <div class="distribusi_files">
{% for id, describe_form in distribusi_file_forms.items() %} {% 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) }}"> <form id={{id}} method="POST" enctype="multipart/form-data" action="{{ url_for('describer.describe_file', file_id=id) }}">
{{ describe_form.csrf_token }} {{ describe_form.csrf_token }}
<p>{{describe_form.id}}</p> <p>File path: {{describe_form.file_path}}</p>
<p>{{describe_form.file_path}}</p>
<fieldset class=""> <fieldset class="">
{{ describe_form.description.label }} {{ describe_form.description.label }}
{{ describe_form.description }} {{ describe_form.description }}
@ -57,6 +66,7 @@
{{ describe_form.save }} {{ describe_form.save }}
</fieldset> </fieldset>
</form> </form>
</div>
{% endfor%} {% endfor%}
</div> </div>

17
verse/static/css/style.css

@ -174,6 +174,23 @@ a:active {
content: "$ "; 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) { @media (prefers-reduced-motion: no-preference) {
@keyframes flash { @keyframes flash {
50% { opacity: 0; } 50% { opacity: 0; }

Loading…
Cancel
Save