added code to split out storage_path and import_path, still a bit clunky, but functional. SymlinkName also now in shared
This commit is contained in:
61
files.py
61
files.py
@@ -23,6 +23,7 @@ from job import Job, JobExtra, Joblog, NewJob
|
||||
from person import Person, PersonRefimgLink
|
||||
from refimg import Refimg
|
||||
from settings import Settings
|
||||
from shared import SymlinkName
|
||||
|
||||
################################################################################
|
||||
# Class describing File in the database, and via sqlalchemy, connected to the DB as well
|
||||
@@ -90,7 +91,7 @@ class FileType(db.Model):
|
||||
|
||||
def ViewingOptions( request ):
|
||||
noo="Oldest"
|
||||
grouping="Day"
|
||||
grouping="None"
|
||||
how_many="50"
|
||||
offset=0
|
||||
size=128
|
||||
@@ -113,24 +114,52 @@ def ViewingOptions( request ):
|
||||
################################################################################
|
||||
# /file_list -> show detailed file list of files from import_path(s)
|
||||
################################################################################
|
||||
@app.route("/file_list", methods=["GET"])
|
||||
def file_list():
|
||||
return render_template("file_list.html", page_title='View Files (details)', entry_data=Entry.query.order_by(Entry.name).all())
|
||||
@app.route("/file_list_ip", methods=["GET"])
|
||||
def file_list_ip():
|
||||
return render_template("file_list.html", page_title='View File Details (Import Path)', entry_data=Entry.query.order_by(Entry.name).all())
|
||||
|
||||
################################################################################
|
||||
# /files -> show thumbnail view of files from import_path(s)
|
||||
################################################################################
|
||||
@app.route("/files", methods=["GET", "POST"])
|
||||
def files():
|
||||
@app.route("/files_ip", methods=["GET", "POST"])
|
||||
def files_ip():
|
||||
|
||||
noo, grouping, how_many, offset, size = ViewingOptions( request )
|
||||
entries=[]
|
||||
if noo == "Oldest":
|
||||
entries=Entry.query.join(File).order_by(File.year,File.month,File.day,Entry.name).offset(offset).limit(how_many).all()
|
||||
else:
|
||||
entries=Entry.query.join(File).order_by(File.year.desc(),File.month.desc(),File.day.desc(),Entry.name).offset(offset).limit(how_many).all()
|
||||
return render_template("files.html", page_title='View Files', entry_data=entries, noo=noo, grouping=grouping, how_many=how_many, offset=offset, size=size )
|
||||
|
||||
# per import path, add entries to view
|
||||
settings=Settings.query.first()
|
||||
paths = settings.import_path.split("#")
|
||||
for path in paths:
|
||||
prefix = SymlinkName(path,path+'/')
|
||||
|
||||
if noo == "Oldest":
|
||||
entries+=Entry.query.join(File).join(EntryDirLink).join(Dir).filter(Dir.path_prefix.like(prefix+'%')).order_by(File.year,File.month,File.day,Entry.name).offset(offset).limit(how_many).all()
|
||||
else:
|
||||
entries+=Entry.query.join(File).join(EntryDirLink).join(Dir).filter(Dir.path_prefix.like(prefix+'%')).order_by(File.year.desc(),File.month.desc(),File.day.desc(),Entry.name).offset(offset).limit(how_many).all()
|
||||
|
||||
return render_template("files.html", page_title='View Files (Import Path)', entry_data=entries, noo=noo, grouping=grouping, how_many=how_many, offset=offset, size=size )
|
||||
|
||||
################################################################################
|
||||
# /files -> show thumbnail view of files from storage_path
|
||||
################################################################################
|
||||
@app.route("/files_sp", methods=["GET", "POST"])
|
||||
def files_sp():
|
||||
noo, grouping, how_many, offset, size = ViewingOptions( request )
|
||||
entries=[]
|
||||
|
||||
# per storage path, add entries to view
|
||||
settings=Settings.query.first()
|
||||
paths = settings.storage_path.split("#")
|
||||
for path in paths:
|
||||
prefix = SymlinkName(path,path+'/')
|
||||
|
||||
if noo == "Oldest":
|
||||
entries+=Entry.query.join(File).join(EntryDirLink).join(Dir).filter(Dir.path_prefix.like(prefix+'%')).order_by(File.year,File.month,File.day,Entry.name).offset(offset).limit(how_many).all()
|
||||
else:
|
||||
entries+=Entry.query.join(File).join(EntryDirLink).join(Dir).filter(Dir.path_prefix.like(prefix+'%')).order_by(File.year.desc(),File.month.desc(),File.day.desc(),Entry.name).offset(offset).limit(how_many).all()
|
||||
|
||||
return render_template("files.html", page_title='View Files (Storage Path)', entry_data=entries, noo=noo, grouping=grouping, how_many=how_many, offset=offset, size=size )
|
||||
|
||||
################################################################################
|
||||
# /search -> show thumbnail view of files from import_path(s)
|
||||
@@ -167,6 +196,16 @@ def forcescan():
|
||||
st.SetMessage("force scan & rebuild data for files in: <a href=/job/{}>Job #{}</a> (Click the link to follow progress)".format( job.id, job.id) )
|
||||
return render_template("base.html")
|
||||
|
||||
################################################################################
|
||||
# /files/scan_sp -> allows us to force a check for new files
|
||||
################################################################################
|
||||
@app.route("/files/scan_sp", methods=["GET"])
|
||||
def scan_sp():
|
||||
job=NewJob("scan_sp" )
|
||||
st.SetAlert("success")
|
||||
st.SetMessage("scanning for new files in: <a href=/job/{}>Job #{}</a> (Click the link to follow progress)".format( job.id, job.id) )
|
||||
return render_template("base.html")
|
||||
|
||||
|
||||
def TrimmedPath( prefix, path ):
|
||||
return path.replace(prefix, '' )
|
||||
|
||||
Reference in New Issue
Block a user