added admin routes/code to allow a scan now and a forced scan

This commit is contained in:
2021-01-12 18:45:13 +11:00
parent e83a40ee52
commit 684d057e59
3 changed files with 26 additions and 3 deletions

View File

@@ -186,7 +186,29 @@ def file_list():
def files(): def files():
return render_template("files.html", page_title='View Files', file_data=filedata, alert=st.GetAlert(), message=st.GetMessage() ) return render_template("files.html", page_title='View Files', file_data=filedata, alert=st.GetAlert(), message=st.GetMessage() )
################################################################################
# /files/scannow -> allows us to force a check for new files
################################################################################
@app.route("/files/scannow", methods=["GET"])
def scannow():
filedata.GenerateFileData()
return render_template("base.html", page_title='Forced look for new items', file_data=filedata, alert="success", message="Scanned for new files" )
################################################################################
# /files/forcescan -> deletes old data in DB, and does a brand new scan
################################################################################
@app.route("/files/forcescan", methods=["GET"])
def forcescan():
Files.query.delete()
Settings.query.all()[0].last_import_date=0
db.session.commit()
filedata.GenerateFileData()
return render_template("base.html", page_title='Forced look for new items', file_data=filedata, alert="success", message="Forced remove and recreation of all file data" )
################################################################################
# /static -> returns the contents of any file referenced inside /static.
# we create/use symlinks in static/ to reference the images to show
################################################################################
@app.route("/static/<filename>") @app.route("/static/<filename>")
def custom_static(filename): def custom_static(filename):
return send_from_directory("static/", filename) return send_from_directory("static/", filename)

View File

@@ -43,6 +43,7 @@ class SettingsForm(FlaskForm):
@app.route("/settings", methods=["GET", "POST"]) @app.route("/settings", methods=["GET", "POST"])
def settings(): def settings():
form = SettingsForm(request.form) form = SettingsForm(request.form)
page_title='Settings'
if request.method == 'POST' and form.validate(): if request.method == 'POST' and form.validate():
try: try:
# HACK, I don't really need an id here, but sqlalchemy get weird # HACK, I don't really need an id here, but sqlalchemy get weird
@@ -59,11 +60,9 @@ def settings():
except SQLAlchemyError as e: except SQLAlchemyError as e:
st.SetAlert( "danger" ) st.SetAlert( "danger" )
st.SetMessage( "<b>Failed to modify Setting:</b>&nbsp;{}".format(e.orig) ) st.SetMessage( "<b>Failed to modify Setting:</b>&nbsp;{}".format(e.orig) )
page_title='Show Settings'
return render_template("settings.html", form=form, page_title=page_title, alert=st.GetAlert(), message=st.GetMessage() ) return render_template("settings.html", form=form, page_title=page_title, alert=st.GetAlert(), message=st.GetMessage() )
else: else:
tmp_sets = Settings.query.all() tmp_sets = Settings.query.all()
sets = settings_schema.dump( tmp_sets ) sets = settings_schema.dump( tmp_sets )
form = SettingsForm(obj=tmp_sets[0]) form = SettingsForm(obj=tmp_sets[0])
page_title='Show Settings'
return render_template("settings.html", form=form, page_title = page_title, alert=st.GetAlert(), message=st.GetMessage() ) return render_template("settings.html", form=form, page_title = page_title, alert=st.GetAlert(), message=st.GetMessage() )

View File

@@ -52,7 +52,9 @@
<div class="nav-item dropdown"> <div class="nav-item dropdown">
<a class="nav-item dropdown nav-link dropdown-toggle" href="#" id="AdminMenu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Admin</a> <a class="nav-item dropdown nav-link dropdown-toggle" href="#" id="AdminMenu" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Admin</a>
<div class="dropdown-menu" aria-labelledby="AdminMenu"> <div class="dropdown-menu" aria-labelledby="AdminMenu">
<a class="dropdown-item" href="{{url_for('settings')}}">Settings</a> <a class="dropdown-item" href="{{url_for('settings')}}">Edit Settings</a>
<a class="dropdown-item" href="{{url_for('scannow')}}">Scan now (for new files)</a>
<a class="dropdown-item" href="{{url_for('forcescan')}}">Force Scan (delete data & rebuild)</a>
</div class="dropdow-menu"> </div class="dropdow-menu">
</div class="nav-item dropdown"> </div class="nav-item dropdown">
</div clas="navbar-nav"> </div clas="navbar-nav">