changed Photo class and DB table to be Files, also reflected through templates/files* - files.html is not used yet
This commit is contained in:
@@ -63,12 +63,10 @@ def getExif(file):
|
|||||||
return fthumbnail
|
return fthumbnail
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Class describing Photos in the database, and via sqlalchemy, connected to the DB as well
|
# Class describing Files in the database, and via sqlalchemy, connected to the DB as well
|
||||||
################################################################################
|
################################################################################
|
||||||
|
class Files(db.Model):
|
||||||
# photos might not be the best name... more than just photos live in this class currently
|
id = db.Column(db.Integer, db.Sequence('files_id_seq'), primary_key=True )
|
||||||
class Photos(db.Model):
|
|
||||||
id = db.Column(db.Integer, db.Sequence('photos_id_seq'), primary_key=True )
|
|
||||||
name = db.Column(db.String, unique=True, nullable=False )
|
name = db.Column(db.String, unique=True, nullable=False )
|
||||||
type = db.Column(db.String, unique=False, nullable=False)
|
type = db.Column(db.String, unique=False, nullable=False)
|
||||||
size_mb = db.Column(db.Integer, unique=False, nullable=False)
|
size_mb = db.Column(db.Integer, unique=False, nullable=False)
|
||||||
@@ -80,10 +78,10 @@ class Photos(db.Model):
|
|||||||
return "<id: {}, name: {}>".format(self.id, self.name )
|
return "<id: {}, name: {}>".format(self.id, self.name )
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# /photos -> show photos from import_path(s)
|
# /file_list -> show files from import_path(s)
|
||||||
################################################################################
|
################################################################################
|
||||||
@app.route("/photos", methods=["GET"])
|
@app.route("/file_list", methods=["GET"])
|
||||||
def photos():
|
def file_list():
|
||||||
sets = Settings.query.filter(Settings.name=="import_path").all()
|
sets = Settings.query.filter(Settings.name=="import_path").all()
|
||||||
paths= sets[0].value.split("#")
|
paths= sets[0].value.split("#")
|
||||||
file_list=[]
|
file_list=[]
|
||||||
@@ -123,13 +121,14 @@ def photos():
|
|||||||
|
|
||||||
fsize = round(os.stat(file).st_size/(1024*1024))
|
fsize = round(os.stat(file).st_size/(1024*1024))
|
||||||
fname=file.replace(p, "")
|
fname=file.replace(p, "")
|
||||||
# tmp_photo=Photos( name=fname, type=ftype, size_mb=fsize, hash=fhash )
|
# tmp_files=Files( name=fname, type=ftype, size_mb=fsize, hash=fhash )
|
||||||
# db.session.add(tmp_photo)
|
# db.session.add(tmp_files)
|
||||||
view_list.append( Photos( name=fname, type=ftype, size_mb=fsize, hash=fhash, thumbnail=fthumbnail ))
|
view_list.append( Files( name=fname, type=ftype, size_mb=fsize, hash=fhash, thumbnail=fthumbnail ))
|
||||||
|
|
||||||
# db.session.commit()
|
# db.session.commit()
|
||||||
|
|
||||||
return render_template("photos.html", page_title='View Photos', view_path=view_path, file_list=view_list, symlink=symlink, alert=st.GetAlert(), message=st.GetMessage() )
|
return render_template("file_list.html", page_title='View Files (details)', view_path=view_path, file_list=view_list, symlink=symlink, alert=st.GetAlert(), message=st.GetMessage() )
|
||||||
|
|
||||||
|
|
||||||
@app.route("/static/<filename>")
|
@app.route("/static/<filename>")
|
||||||
def custom_static(filename):
|
def custom_static(filename):
|
||||||
2
main.py
2
main.py
@@ -28,7 +28,7 @@ Bootstrap(app)
|
|||||||
|
|
||||||
################################# Now, import non-book classes ###################################
|
################################# Now, import non-book classes ###################################
|
||||||
from settings import Settings
|
from settings import Settings
|
||||||
from photos import Photos
|
from files import Files
|
||||||
|
|
||||||
####################################### GLOBALS #######################################
|
####################################### GLOBALS #######################################
|
||||||
# allow jinja2 to call these python functions directly
|
# allow jinja2 to call these python functions directly
|
||||||
|
|||||||
@@ -43,9 +43,9 @@
|
|||||||
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
|
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
|
||||||
<div class="navbar-nav mr-auto">
|
<div class="navbar-nav mr-auto">
|
||||||
<div class="nav-item dropdown">
|
<div class="nav-item dropdown">
|
||||||
<a class="nav-item dropdown nav-link dropdown-toggle" href="#" id="PhotoMenu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Photos</a>
|
<a class="nav-item dropdown nav-link dropdown-toggle" href="#" id="FileMenu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Files</a>
|
||||||
<div class="dropdown-menu" aria-labelledby="PhotoMenu">
|
<div class="dropdown-menu" aria-labelledby="FileMenu">
|
||||||
<a class="dropdown-item" href="{{url_for('photos')}}">View...</a>
|
<a class="dropdown-item" href="{{url_for('file_list')}}">View Details</a>
|
||||||
</div>
|
</div>
|
||||||
</div class="nav-item dropdown">
|
</div class="nav-item dropdown">
|
||||||
<div class="nav-item dropdown">
|
<div class="nav-item dropdown">
|
||||||
|
|||||||
27
templates/files.html
Normal file
27
templates/files.html
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{% extends "base.html" %} {% block main_content %}
|
||||||
|
<div class="container">
|
||||||
|
<h3 class="offset-lg-2">{{page_title}} -- {{view_path}}</h3>
|
||||||
|
<div class="row">
|
||||||
|
<table class="table table table-sm col-xl-12">
|
||||||
|
<thead><tr class="thead-light"><th>Name</th><th>Size (MB)</th><th>Hash</th></tr></thead><tbody>
|
||||||
|
{% for obj in file_list %}
|
||||||
|
<tr><td>
|
||||||
|
{% if obj.type=="Directory" %}
|
||||||
|
<i class="fas fa-folder"></i>
|
||||||
|
{% elif obj.type=="Image" %}
|
||||||
|
<i class="fas fa-file-image"></i>
|
||||||
|
{% elif obj.type=="Video" %}
|
||||||
|
<i class="fas fa-file-video"></i>
|
||||||
|
{% else %}
|
||||||
|
<i class="fas fa-question-circle"></i>
|
||||||
|
{% endif %}
|
||||||
|
{% if obj.type=="Image" %}
|
||||||
|
<a href="{{symlink}}/{{obj.name}}"><img width="128" height="128" src="data:image/jpeg;base64,{{obj.thumbnail}}"></img></a>
|
||||||
|
{% endif %}
|
||||||
|
{{obj.name}}
|
||||||
|
</td></td><td>{{obj.size_mb}}</td><td>{{obj.hash}}</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody></table>
|
||||||
|
</div class="row">
|
||||||
|
</div class="container">
|
||||||
|
{% endblock main_content %}
|
||||||
Reference in New Issue
Block a user