moved over to new ENTRY based data structures for loading from DB and viewing content
This commit is contained in:
48
files.py
48
files.py
@@ -26,18 +26,52 @@ from job import Job, Joblog, NewJob
|
||||
# Class describing File in the database, and via sqlalchemy, connected to the DB as well
|
||||
# This has to match one-for-one the DB table
|
||||
################################################################################
|
||||
class File(db.Model):
|
||||
class EntryDirLink(db.Model):
|
||||
__tablename__ = "entry_dir_link"
|
||||
entry_id = db.Column(db.Integer, db.ForeignKey("entry.id"), primary_key=True )
|
||||
dir_eid = db.Column(db.Integer, db.ForeignKey("dir.eid"), primary_key=True )
|
||||
|
||||
def __repr__(self):
|
||||
return "<entry_id: {}, dir_eid: {}>".format(self.entry_id, self.dir_eid)
|
||||
|
||||
class Dir(db.Model):
|
||||
__tablename__ = "dir"
|
||||
eid = db.Column(db.Integer, db.ForeignKey("entry.id"), primary_key=True )
|
||||
path_prefix = db.Column(db.String, unique=False, nullable=False )
|
||||
|
||||
def __repr__(self):
|
||||
return "<eid: {}, path_prefix: {}>".format(self.eid, self.path_prefix)
|
||||
|
||||
class Entry(db.Model):
|
||||
__tablename__ = "entry"
|
||||
id = db.Column(db.Integer, db.Sequence('file_id_seq'), primary_key=True )
|
||||
name = db.Column(db.String, unique=True, nullable=False )
|
||||
type = db.Column(db.String, unique=False, nullable=False)
|
||||
path_prefix = db.Column(db.String, unique=False, nullable=False)
|
||||
type_id = db.Column(db.Integer, db.ForeignKey("file_type.id"))
|
||||
type = db.relationship("FileType")
|
||||
dir_details = db.relationship( "Dir")
|
||||
file_details = db.relationship( "New_File" )
|
||||
in_dir = db.relationship ("Dir", secondary="entry_dir_link" )
|
||||
|
||||
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 New_File(db.Model):
|
||||
__tablename__ = "new_file"
|
||||
eid = db.Column(db.Integer, db.ForeignKey("entry.id"), primary_key=True )
|
||||
size_mb = db.Column(db.Integer, unique=False, nullable=False)
|
||||
# hash might not be unique, this could be the source of dupe problems
|
||||
hash = db.Column(db.Integer, unique=True, nullable=True)
|
||||
thumbnail = db.Column(db.String, unique=False, nullable=True)
|
||||
|
||||
def __repr__(self):
|
||||
return "<id: {}, name: {}>".format(self.id, self.name )
|
||||
return "<eid: {}, size_mb={}, hash={}>".format(self.eid, self.size_mb, self.hash )
|
||||
|
||||
class FileType(db.Model):
|
||||
__tablename__ = "file_type"
|
||||
id = db.Column(db.Integer, db.Sequence('file_type_id_seq'), primary_key=True )
|
||||
name = db.Column(db.String, unique=True, nullable=False )
|
||||
|
||||
def __repr__(self):
|
||||
return "<id: {}, name={}>".format(self.id, self.name )
|
||||
|
||||
|
||||
################################################################################
|
||||
@@ -45,14 +79,14 @@ class File(db.Model):
|
||||
################################################################################
|
||||
@app.route("/file_list", methods=["GET"])
|
||||
def file_list():
|
||||
return render_template("file_list.html", page_title='View Files (details)', file_data=File.query.all())
|
||||
return render_template("file_list.html", page_title='View Files (details)', entry_data=Entry.query.all())
|
||||
|
||||
################################################################################
|
||||
# /files -> show thumbnail view of files from import_path(s)
|
||||
################################################################################
|
||||
@app.route("/files", methods=["GET"])
|
||||
def files():
|
||||
return render_template("files.html", page_title='View Files', file_data=File.query.all())
|
||||
return render_template("files.html", page_title='View Files', entry_data=Entry.query.all())
|
||||
|
||||
################################################################################
|
||||
# /files/scannow -> allows us to force a check for new files
|
||||
|
||||
Reference in New Issue
Block a user