Files
photoassistant/path.py
2021-08-11 17:29:53 +10:00

44 lines
1.9 KiB
Python

from flask_wtf import FlaskForm
from main import db, app, ma
from sqlalchemy import Sequence
from sqlalchemy.exc import SQLAlchemyError
# pylint: disable=no-member
################################################################################
# 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 PathType(db.Model):
__tablename__ = "path_type"
id = db.Column(db.Integer, db.Sequence('path_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 )
################################################################################
# Class describing Path & in the database via sqlalchemy
################################################################################
class Path(db.Model):
__tablename__ = "path"
id = db.Column(db.Integer, db.Sequence('path_id_seq'), primary_key=True )
type_id = db.Column(db.Integer, db.ForeignKey("path_type.id"))
type = db.relationship("PathType")
path_prefix = db.Column(db.String, unique=True, nullable=False )
num_files = db.Column(db.Integer)
def __repr__(self):
return f"<id: {self.id}, path_prefix: {self.path_prefix}, num_files={self.num_files}, type={self.type}>"
################################################################################
# helper function to find StoragePathNames - used in html for move DBox to show
# potential storage paths to move files into
################################################################################
def StoragePathNames():
ret=[]
sps=Path.query.join(PathType).filter(PathType.name=='Storage').all()
for p in sps:
ret.append(p.path_prefix.replace('static/Storage/','') )
return ret