use pagesize not page_size, and pass it in based on job extras, also use path based on job extras, so we fix issue of fix_dups not knowing which path from settings was used (import or storage)

This commit is contained in:
2021-03-06 11:45:21 +11:00
parent f1ec7f9eb6
commit b9dea327d0
3 changed files with 39 additions and 40 deletions

View File

@@ -1,7 +1,7 @@
from wtforms import SubmitField, StringField, HiddenField, validators, Form
from flask_wtf import FlaskForm
from flask import request, render_template, redirect, send_from_directory
from main import db, app, ma
from main import db, app, ma
from sqlalchemy import Sequence
from sqlalchemy.exc import SQLAlchemyError
from status import st, Status
@@ -89,6 +89,30 @@ class FileType(db.Model):
def __repr__(self):
return "<id: {}, name={}>".format(self.id, self.name )
class PA_JobManager_Message(db.Model):
__tablename__ = "pa_job_manager_fe_message"
id = db.Column(db.Integer, db.Sequence('pa_job_manager_fe_message_id_seq'), primary_key=True )
job_id = db.Column(db.Integer, db.ForeignKey('job.id') )
alert = db.Column(db.String)
message = db.Column(db.String)
def __repr__(self):
return "<id: {}, job_id: {}, alert: {}, message: {}".format(self.id, self.job_id, self.alert, self.message)
################################################################################
# Local utility functions
################################################################################
def GetJM_Message():
msg=PA_JobManager_Message.query.first()
return msg
def ClearJM_Message(id):
msg=PA_JobManager_Message.query.get(id)
PA_JobManager_Message.query.filter(PA_JobManager_Message.id==id).delete()
db.session.commit()
return
def ViewingOptions( request ):
noo="Oldest"
grouping="None"
@@ -244,17 +268,13 @@ def fix_dups():
st.SetMessage(f"Err, no dups - should now clear the FE 'danger' message?")
return render_template("base.html")
# use import_path setting to remove the dup path prefix of static/basename(<import_path>)
# -- static isn't really seen, and the import path basename is always going to be the same
s=Settings.query.first()
if s.storage_path[-1] == '/':
prefix = os.path.basename(s.storage_path[0:-1])
else:
prefix = os.path.basename(s.storage_path)
prefix=f"static/{prefix}/"
jexes = JobExtra.query.join(Job).join(PA_JobManager_Message).filter(PA_JobManager_Message.id==request.form['fe_msg_id']).all()
path=[jex.value for jex in jexes if jex.name == "path"][0]
prefix = SymlinkName(path,path+'/')
pagesize=int([jex.value for jex in jexes if jex.name == "pagesize"][0])
dups={}
for row in rows:
AddDup( prefix, row, dups )
AddDup( prefix+'/', row, dups )
d1=""
d2=""
@@ -306,7 +326,7 @@ def fix_dups():
overall_dup_sets += dup_cnt
per_path_dups.append({'count': dup_cnt, 'd1': d1, 'd2': d2, 'did1': did1, 'did2': did2, 'hashes' : hashes })
return render_template("dups.html", per_file_dups=per_file_dups, per_path_dups=per_path_dups, fe_msg_id=request.form['fe_msg_id'], overall_dup_cnt=overall_dup_cnt, overall_dup_sets=overall_dup_sets, page_size=20 )
return render_template("dups.html", per_file_dups=per_file_dups, per_path_dups=per_path_dups, fe_msg_id=request.form['fe_msg_id'], overall_dup_cnt=overall_dup_cnt, overall_dup_sets=overall_dup_sets, pagesize=pagesize )
@app.route("/rm_dups", methods=["POST"])
def rm_dups():
@@ -327,6 +347,7 @@ def rm_dups():
fe_msg_id=request.form['fe_msg_id']
# allow backend to delete FE message once delete is being processed
jex.append( JobExtra( name="fe_msg_id", value=fe_msg_id ) )
jex.append( JobExtra( name="pagesize", value=10 ) )
job=NewJob( "rmdups", 0, None, jex )
st.SetAlert("success")