class Project(Entity, db.Model): proposal_author = db.Column(db.Integer, db.ForeignKey('proposal_author.id'), nullable=False) title = db.Column(db.String(255)) description = db.Column(db.Text) file_name = db.Column(db.String(255), nullable=True) deadline = db.Column(db.DateTime, nullable=True) city = db.Column(db.String(255)) country = db.Column(db.String(255)) platform = db.Column(db.String(255), nullable=True) availability = db.Column(db.String(255), nullable=True) category = db.relationship('ProjectCategory', secondary=project_to_category, backref=db.backref('projects', lazy='dynamic')) status = db.Column(db.String(50), default="PROPOSED") students = db.relationship('Student', backref='projects', lazy=True) def __init__(self, last_updated_by='system', **kwargs): super().__init__(last_updated_by) self.title = kwargs['title'] self.description = kwargs['description'] self.proposal_author = kwargs['proposal_author'] self.city = kwargs['city'] self.country = kwargs['country'] self.deadline = kwargs.get('deadline', None) self.platform = kwargs.get('platform', None) self.availability = kwargs.get('availability', None)
class Comment(Entity, db.Model): complaint = db.Column(db.Integer, db.ForeignKey('complaint.id'), nullable=True) text = db.Column(db.Text) sent_email = db.Column(db.BOOLEAN, default=False) status = db.Column(db.Boolean, default=True) commented_by = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) def __init__(self, last_updated_by='system', **kwargs): super().__init__(last_updated_by) self.text = kwargs['text'] self.complaint = kwargs.get('complaint', None) self.sent_email = kwargs.get('sent_email', False) self.commented_by = kwargs['commented_by']
class EmailLog(Entity, db.Model): body = db.Column(db.Text) subject = db.Column(db.String(255)) email_to = db.Column(db.String(255)) status = db.Column(db.Boolean, default=True) project = db.Column(db.Integer, db.ForeignKey('project.id'), nullable=True) sent_by = db.Column(db.Integer, db.ForeignKey('staff.id'), nullable=False) student = db.Column(db.Integer, db.ForeignKey('student.id'), nullable=True) proposal_author = db.Column(db.Integer, db.ForeignKey('proposal_author.id'), nullable=True) def __init__(self, last_updated_by='system', **kwargs): super().__init__(last_updated_by) self.subject = kwargs.get('subject', None) self.body = kwargs.get('body', None) self.email_to = kwargs.get('email_to', None) self.sent_by = kwargs.get('sent_by', None) self.student = kwargs.get('student', None) self.proposal_author = kwargs.get('proposal_author', None) self.project = kwargs.get('project', None)
class Complaint(Entity, db.Model): title = db.Column(db.String(50)) text = db.Column(db.Text) address = db.Column(db.Text) city = db.Column(db.String(255)) state = db.Column(db.String(255)) country = db.Column(db.String(255)) pin_code = db.Column(db.Integer) vehicle_number = db.Column(db.String(15)) vehicle_details = db.Column(db.Text) file_name = db.Column(db.String(255), nullable=True) complaint_status = db.Column(db.String(50), default='PENDING') complaint_by = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False) responded_by = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=True, default=None) response_details = db.Column(db.Text, nullable=True, default=None) status = db.Column(db.Boolean, default=True) def __init__(self, last_updated_by='system', **kwargs): super().__init__(last_updated_by) self.title = kwargs['title'] self.text = kwargs['text'] self.address = kwargs['address'] self.vehicle_number = kwargs['vehicle_number'] self.vehicle_details = kwargs['vehicle_details'] self.city = kwargs['city'] self.state = kwargs['state'] self.country = kwargs['country'] self.pin_code = kwargs['pin_code'] self.file_name = kwargs.get('file_name', None) self.complaint_status = kwargs.get('complaint_status', None) self.complaint_by = kwargs['complaint_by'] self.responded_by = kwargs.get('responded_by', None)
class Student(Entity, db.Model): name = db.Column(db.String(80)) email = db.Column(db.String(255)) phone_number = db.Column(db.String(15), nullable=True) description = db.Column(db.Text) city = db.Column(db.String(255)) country = db.Column(db.String(255)) is_in_team = db.Column(db.Boolean, default=False) status = db.Column(db.String(15), default='INTERESTED') project = db.Column(db.Integer, db.ForeignKey('project.id'), nullable=False) comments = db.relationship('Comment', backref='students', lazy=True) email_logs = db.relationship('EmailLog', backref='students', lazy=True) def __init__(self, last_updated_by='system', **kwargs): super().__init__(last_updated_by) self.email = kwargs['email'] self.name = kwargs['name'] self.project = kwargs['project'] self.phone_number = kwargs.get('phone_number', None) self.description = kwargs.get('description', None) self.city = kwargs.get('city', None) self.country = kwargs.get('country', None)
from src.main.model import db project_to_category = db.Table( 'project_to_category', db.Column('project_id', db.Integer(), db.ForeignKey('project.id')), db.Column('category_id', db.Integer(), db.ForeignKey('project_category.id')) )
from src.main.model import db roles_users = db.Table( 'roles_users', db.Column('staff_id', db.Integer(), db.ForeignKey('staff.id')), db.Column('role_id', db.Integer(), db.ForeignKey('role.id')))
from src.main.model import db roles_users = db.Table( 'roles_users', db.Column('user_id', db.Integer(), db.ForeignKey('user.id')), db.Column('role_id', db.Integer(), db.ForeignKey('role.id')) )