Refactoring
This commit is contained in:
0
attract/application/modules/nodes/__init__.py
Normal file
0
attract/application/modules/nodes/__init__.py
Normal file
83
attract/application/modules/nodes/models.py
Normal file
83
attract/application/modules/nodes/models.py
Normal file
@@ -0,0 +1,83 @@
|
||||
from application import app
|
||||
from application import db
|
||||
|
||||
import os
|
||||
import os.path as op
|
||||
import datetime
|
||||
|
||||
import hashlib
|
||||
import time
|
||||
|
||||
from werkzeug import secure_filename
|
||||
|
||||
|
||||
def prefix_name(obj, file_data):
|
||||
# Collect name and extension
|
||||
parts = op.splitext(file_data.filename)
|
||||
# Get current time (for unique hash)
|
||||
timestamp = str(round(time.time()))
|
||||
# Has filename only (not extension)
|
||||
file_name = secure_filename(timestamp + '%s' % parts[0])
|
||||
# Put them together
|
||||
full_name = hashlib.md5(file_name).hexdigest() + parts[1]
|
||||
return full_name
|
||||
|
||||
|
||||
# Create directory for file fields to use
|
||||
file_path = op.join(op.dirname(__file__), 'static/files',)
|
||||
try:
|
||||
os.mkdir(file_path)
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
|
||||
class Status(db.Model):
|
||||
id = db.Column(db.Integer, primary_key = True)
|
||||
name = db.Column(db.String(120), nullable=False)
|
||||
url = db.Column(db.String(120), nullable=False)
|
||||
description = db.Column(db.Text)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
class NodeType(db.Model):
|
||||
id = db.Column(db.Integer, primary_key = True)
|
||||
name = db.Column(db.String(120), nullable=False)
|
||||
description = db.Column(db.Text)
|
||||
url = db.Column(db.String(120), nullable=False)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
||||
|
||||
# Create Many to Many table
|
||||
# nodes_assets_table = db.Table('nodes_assets', db.Model.metadata,
|
||||
# db.Column('node_id', db.Integer, db.ForeignKey('node.id')),
|
||||
# db.Column('asset_id', db.Integer, db.ForeignKey('asset.id'))
|
||||
# )
|
||||
|
||||
|
||||
class Node(db.Model):
|
||||
id = db.Column(db.Integer, primary_key = True)
|
||||
name = db.Column(db.String(120), nullable=False)
|
||||
url = db.Column(db.String(120))
|
||||
description = db.Column(db.Text)
|
||||
main_picture = db.Column(db.String(80))
|
||||
order = db.Column(db.Integer)
|
||||
creation_date = db.Column(db.DateTime(), default=datetime.datetime.now)
|
||||
edit_date = db.Column(db.DateTime())
|
||||
|
||||
parent_id = db.Column(db.Integer, db.ForeignKey('node.id'))
|
||||
parent = db.relationship('Node', remote_side=[id])
|
||||
|
||||
node_type_id = db.Column(db.Integer(), db.ForeignKey(NodeType.id))
|
||||
node_type = db.relationship(NodeType, backref='Node')
|
||||
|
||||
status_id = db.Column(db.Integer(), db.ForeignKey(Status.id))
|
||||
status = db.relationship(Status, backref='Node')
|
||||
|
||||
#assets = db.relationship('Asset', secondary=nodes_assets_table)
|
||||
|
||||
def __str__(self):
|
||||
return self.name
|
||||
|
Reference in New Issue
Block a user