Skip to content
Snippets Groups Projects
project.py 1.05 KiB
Newer Older
from ..database import db
from .category import Category
Ivan Procaccini's avatar
Ivan Procaccini committed
from .dialect_compatibility import utcnow


class Project(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    proposer = db.Column(db.String, nullable=False)
    on_behalf = db.Column(db.String)
    title = db.Column(db.String, nullable=False)
    description = db.Column(db.String, nullable=False)
    background_skills = db.Column(db.String)
    category = db.Column(db.String, db.ForeignKey(Category.code), nullable=False)
    is_remote = db.Column(db.Boolean)
    proposed_start_date = db.Column(db.Date)
    duration_in_weeks = db.Column(db.Integer)
    is_part_time = db.Column(db.Boolean)
    is_lab_based = db.Column(db.Boolean)
    timestamp = db.Column(db.DateTime, nullable=False, server_default=utcnow())
    deleted = db.Column(db.DateTime)
    shortlistings = db.relationship(
        "Shortlisting", backref="project", lazy=True, cascade="all,delete-orphan"
    )

    def is_student_proposal(self) -> bool:
        return self.on_behalf is not None and self.on_behalf != ""