Fixed BUG-11: we have changed to file_refimg_link table (from file_person_link), this means we now have some optimisations, and can definitely re-run AI jobs without crashing. Several optims could still be done - see TODO
This commit is contained in:
17
files.py
17
files.py
@@ -19,9 +19,10 @@ import time
|
||||
################################################################################
|
||||
# Local Class imports
|
||||
################################################################################
|
||||
from settings import Settings
|
||||
from job import Job, Joblog, NewJob
|
||||
from person import Person, File_Person_Link
|
||||
from person import Person, PersonRefimgLink
|
||||
from refimg import Refimg
|
||||
from settings import Settings
|
||||
|
||||
################################################################################
|
||||
# Class describing File in the database, and via sqlalchemy, connected to the DB as well
|
||||
@@ -56,13 +57,21 @@ class Entry(db.Model):
|
||||
def __repr__(self):
|
||||
return "<id: {}, name: {}, type={}, dir_details={}, file_details={}, in_dir={}>".format(self.id, self.name, self.type, self.dir_details, self.file_details, self.in_dir)
|
||||
|
||||
class FileRefimgLink(db.Model):
|
||||
__tablename__ = "file_refimg_link"
|
||||
file_id = db.Column(db.Integer, db.ForeignKey('file.eid'), unique=True, nullable=False, primary_key=True)
|
||||
refimg_id = db.Column(db.Integer, db.ForeignKey('refimg.id'), unique=True, nullable=False, primary_key=True)
|
||||
when_processed = db.Column(db.Float)
|
||||
matched = db.Column(db.Boolean)
|
||||
def __repr__(self):
|
||||
return f"<file_id: {self.file_id}, refimg_id: {self.refimg_id} when_processed={self.when_processed}, matched={self.matched}"
|
||||
|
||||
class File(db.Model):
|
||||
__tablename__ = "file"
|
||||
eid = db.Column(db.Integer, db.ForeignKey("entry.id"), primary_key=True )
|
||||
size_mb = db.Column(db.Integer, unique=False, nullable=False)
|
||||
hash = db.Column(db.Integer, unique=True, nullable=True)
|
||||
thumbnail = db.Column(db.String, unique=False, nullable=True)
|
||||
people = db.relationship("Person", secondary="file_person_link" )
|
||||
|
||||
def __repr__(self):
|
||||
return "<eid: {}, size_mb={}, hash={}>".format(self.eid, self.size_mb, self.hash )
|
||||
@@ -97,7 +106,7 @@ def files():
|
||||
def search():
|
||||
|
||||
file_data=Entry.query.filter(Entry.name.ilike(f"%{request.form['term']}%")).all()
|
||||
ai_data=Entry.query.join(File).join(File_Person_Link).filter(File_Person_Link.file_id==File.eid).join(Person).filter(Person.tag.ilike(f"%{request.form['term']}%")).all()
|
||||
ai_data=Entry.query.join(File).join(FileRefimgLink).join(Refimg).join(PersonRefimgLink).join(Person).filter(FileRefimgLink.matched==True).filter(Person.tag.ilike(f"%{request.form['term']}%")).all()
|
||||
|
||||
all_entries = file_data + ai_data
|
||||
return render_template("files.html", page_title='View Files', entry_data=all_entries)
|
||||
|
||||
Reference in New Issue
Block a user