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:
41
files.py
41
files.py
@@ -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")
|
||||
|
||||
24
main.py
24
main.py
@@ -26,34 +26,12 @@ Bootstrap(app)
|
||||
|
||||
################################# Now, import non-book classes ###################################
|
||||
from settings import Settings
|
||||
from files import Entry
|
||||
from files import Entry, GetJM_Message, ClearJM_Message
|
||||
from person import Person
|
||||
from refimg import Refimg
|
||||
from job import Job, GetNumActiveJobs
|
||||
from ai import *
|
||||
|
||||
####################################### CLASSES / DB model #######################################
|
||||
|
||||
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)
|
||||
|
||||
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
|
||||
|
||||
|
||||
####################################### GLOBALS #######################################
|
||||
# allow jinja2 to call these python functions directly
|
||||
app.jinja_env.add_extension('jinja2.ext.loopcontrols')
|
||||
|
||||
@@ -10,12 +10,12 @@
|
||||
<form class="d-flex justify-content-center form-inline">
|
||||
<h5>
|
||||
<div class="form-group">
|
||||
<label for="page_size">{{overall_dup_sets}} sets/dirs of files
|
||||
<label for="pagesize">{{overall_dup_sets}} sets/dirs of files
|
||||
containing {{overall_dup_cnt}} files -- Showing </label>
|
||||
<select class="form form-control" name="page_size">
|
||||
<select class="form form-control" name="pagesize">
|
||||
{% for o in "5", "10", "20", "50" %}
|
||||
<option
|
||||
{% if o|int == page_size %}
|
||||
{% if o|int == pagesize %}
|
||||
selected
|
||||
{% endif %}
|
||||
>{{o}}</option>
|
||||
@@ -53,12 +53,12 @@
|
||||
{% endfor %}
|
||||
</div class="col-lg-12">
|
||||
{% set page.cnt = page.cnt + 1 %}
|
||||
{% if page.cnt == page_size %}
|
||||
{% if page.cnt == pagesize %}
|
||||
{% break %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% if page.cnt < page_size %}
|
||||
{% if page.cnt < pagesize %}
|
||||
<h5 class="mt-3">Choose path to KEEP (same file names in 2 different directories):</h5>
|
||||
{% for dup in per_path_dups %}
|
||||
<div class="col-lg-12 py-2">
|
||||
@@ -73,7 +73,7 @@
|
||||
</script>
|
||||
</div>
|
||||
{% set page.cnt = page.cnt + 1 %}
|
||||
{% if page.cnt == page_size %}
|
||||
{% if page.cnt == pagesize %}
|
||||
{% break %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
Reference in New Issue
Block a user