From 684d057e5910d290db0dcc7bf9223716f5dcf7a7 Mon Sep 17 00:00:00 2001 From: Damien De Paoli Date: Tue, 12 Jan 2021 18:45:13 +1100 Subject: [PATCH] added admin routes/code to allow a scan now and a forced scan --- files.py | 22 ++++++++++++++++++++++ settings.py | 3 +-- templates/base.html | 4 +++- 3 files changed, 26 insertions(+), 3 deletions(-) diff --git a/files.py b/files.py index 6247be7..1ba02a0 100644 --- a/files.py +++ b/files.py @@ -186,7 +186,29 @@ def file_list(): def files(): 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/") def custom_static(filename): return send_from_directory("static/", filename) diff --git a/settings.py b/settings.py index f2a1acc..ea89d31 100644 --- a/settings.py +++ b/settings.py @@ -43,6 +43,7 @@ class SettingsForm(FlaskForm): @app.route("/settings", methods=["GET", "POST"]) def settings(): form = SettingsForm(request.form) + page_title='Settings' if request.method == 'POST' and form.validate(): try: # HACK, I don't really need an id here, but sqlalchemy get weird @@ -59,11 +60,9 @@ def settings(): except SQLAlchemyError as e: st.SetAlert( "danger" ) st.SetMessage( "Failed to modify Setting: {}".format(e.orig) ) - page_title='Show Settings' return render_template("settings.html", form=form, page_title=page_title, alert=st.GetAlert(), message=st.GetMessage() ) else: tmp_sets = Settings.query.all() sets = settings_schema.dump( tmp_sets ) 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() ) diff --git a/templates/base.html b/templates/base.html index e62e29f..fb62788 100644 --- a/templates/base.html +++ b/templates/base.html @@ -52,7 +52,9 @@