Exemplo n.º 1
0
class Course(db.Model):
    __tablename__ = "courses"
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255), nullable=False)
    admin_id = db.Column(db.Integer, db.ForeignKey('admins.id'))
    content = db.Column(db.Text)
    videos = db.Column(db.Text)
    type = db.Column(db.Integer)
    module_id = db.Column(db.Integer, db.ForeignKey('modules.id'))
    cover = db.Column(db.String(255))
    collect_num = db.Column(db.Integer, default=0)
    view_num = db.Column(db.Integer, default=0)
    score = db.Column(db.Integer, default=0)
    created_at = db.Column(db.DateTime, default=datetime.now())
    module = db.relationship('Module')
    admin = db.relationship("Admin")
    users = db.relationship("User", secondary=user_course_table)

    def to_json(self):
        return {
            "id": self.id,
            "name": self.name,
            "admin": self.admin.to_json(),
            "content": self.content,
            "videos": self.videos,
            "type": self.type,
            "module": self.module.name,
            "score": self.score,
            "view_num": self.view_num,
            "collect_num": self.collect_num,
            "created_at": self.created_at,
            "cover": self.cover
        }
Exemplo n.º 2
0
class MsgSession(db.Model):
    __tablename__ = 'msg_session'
    id = db.Column(db.Integer, primary_key=True)
    from_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    from_user = db.relationship(User,
                                primaryjoin='User.id==MsgSession.from_id',
                                backref=db.backref(
                                    'from_session',
                                    cascade='all,delete-orphan'))
    to_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    to_user = db.relationship(User,
                              primaryjoin='User.id==MsgSession.to_id',
                              backref=db.backref('to_session',
                                                 cascade='all,delete-orphan'))
    from_read = db.Column(db.Boolean, default=False)
    to_read = db.Column(db.Boolean, default=False)
    count = db.Column(db.Integer, default=1)
    timestamp = db.Column(db.DateTime, index=True)
    msg_contents = db.relationship('MsgContent',
                                   backref='session',
                                   lazy='dynamic')

    def latest_msg(self):
        body = self.msg_contents.filter(
            MsgContent.timestamp == self.timestamp).first()  #不能使用filter_by
        return body.body

    def __repr__(self):
        return '<Session %r>' % (self.to_user)
Exemplo n.º 3
0
class Ticket(db.Model):
    __tablename__ = 'ticket'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(128), nullable=False)
    pub_time = db.Column(db.DateTime, nullable=False)
    description = db.Column(db.TEXT, nullable=False)
    affect = db.Column(db.TEXT, nullable=False)
    pub_user_id = db.Column(db.Integer, db.ForeignKey('user.id'),
                            nullable=False)
    handler_id = db.Column(db.Integer, db.ForeignKey('user.id'),
                            nullable=False)
    status = db.Column(db.SmallInteger, nullable=False, default=0,
                       comment="0-未处理、1-处理中、2-已解决、3-挂起")
    level = db.Column(db.SmallInteger, nullable=False,
                      comment="1-一般、2-严重、3-重大")
    classify_id = db.Column(db.Integer, db.ForeignKey(
        'classify.id'), nullable=False)
    occur_time = db.Column(db.DateTime, nullable=False)
    restore_time = db.Column(db.DateTime)

    classify = relationship("Classify")
    pub_user = relationship("User", foreign_keys=[pub_user_id])
    handler = relationship("User", foreign_keys=[handler_id])
    progresses = relationship("Progress")

    def __repr__(self):
        return '<Ticket {}>'.format(self.title)

    __mapper_args__ = {
        "order_by": pub_time.desc()
    }
Exemplo n.º 4
0
class Projects(db.Model):
    __tablename_ = "Projects"
    proj_id = db.Column(db.Integer(),
                        primary_key=True,
                        autoincrement=True,
                        nullable=False)
    proj_manager = db.Column(db.NVARCHAR(20),
                             db.ForeignKey("project_managers.manager_code"),
                             nullable=False)
    proj_budget = db.Column(db.Numeric, nullable=False)
    proj_name = db.Column(db.NVARCHAR(40), nullable=False)
    proj_approval = db.Column(db.Boolean)
    proj_deadline = db.Column(db.DateTime)
    proj_hours = db.Column(db.Numeric)
    proj_client = db.Column(db.NVARCHAR(20),
                            db.ForeignKey("clients.client_id"))
    proj_description = db.Column(db.NVARCHAR(1000))
    proj_type = db.Column(db.Integer, db.ForeignKey("project_types.type_id"))
    proj_currency = db.Column(db.Integer, db.ForeignKey("currency.curr_id"))
    proj_create_date = db.Column(db.Date,
                                 default=datetime.date.today,
                                 nullable=False)

    proj_disbs = db.relationship("ProjectDisbursements",
                                 lazy="dynamic",
                                 backref="project")
    proj_tasks = db.relationship("ProjectTasks",
                                 lazy="dynamic",
                                 backref="project")
    proj_material = db.relationship("WarehouseReqs",
                                    lazy="dynamic",
                                    backref="project")
Exemplo n.º 5
0
class Booking(db.Model):
    __tablename__ = 'booking'
    id = db.Column(db.Integer, primary_key=True)
    is_cancel = db.Column(db.Boolean, default=False)
    cancelation_reason = db.Column(db.String(200))
    booked_datetime = db.Column(db.DateTime, default=datetime.now())
    start_time = db.Column(db.DateTime)
    end_time = db.Column(db.DateTime)
    total_price = db.Column(db.Integer)
    client_id = db.Column(db.Integer, db.ForeignKey('client.id'))
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    activated = db.Column(db.Boolean, default=False)

    booked_services = db.relationship('Service', secondary=service_booked)
    provided_services = db.relationship('Service', secondary=service_provided)

    def fill_booked_services(self, id_list):
        """fills booked_services by given service ids """
        for id in id_list:
            s = Service.query.get(id)
            self.booked_services.append(s)

    def fill_provided_services(self, id_list):
        """fills provided_services by given service ids """
        for id in id_list:
            s = Service.query.get(id)
            self.provided_services.append(s)
Exemplo n.º 6
0
class Employee(UserMixin, db.Model):
    ''' Create an Employee table'''
    __tablename__ = 'employees'

    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(60), index=True, unique=True)
    username = db.Column(db.String(60), index=True, unique=True)
    first_name = db.Column(db.String(60), index=True)
    last_name = db.Column(db.String(60), index=True)
    password_hash = db.Column(db.String(128))
    department_id = db.Column(db.Integer, db.ForeignKey('departments.id'))
    role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
    is_admin = db.Column(db.Boolean, default=False)

    @property
    def password(self):
        '''Prevent password from being accessed'''
        raise AttributeError('Password is not a readable attribute!')

    @password.setter
    def password(self, password):
        '''Set password to a hashed password'''
        self.password_hash = generate_password_hash(password)

    def verify_password(self, password):
        '''Check if hashed password matches actual password'''
        return check_password_hash(self.password_hash, password)

    def __repr__(self):
        return '<Employee: {}>'.format(self.username)
Exemplo n.º 7
0
class Scores(db.Model):
    __tablename__ = "scores"
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    score = db.Column(db.Integer)
    course_id = db.Column(db.Integer, db.ForeignKey("courses.id"))
    user = db.relationship("User")
    course = db.relationship("Course")
Exemplo n.º 8
0
class Attend(db.Model):
    """create a view for the attendees workshop"""
    __tablename__ = 'attendees'
    email = db.Column(db.String(60),
                      db.ForeignKey('participants.email', ondelete='CASCADE'),
                      primary_key=True)
    Workshhop_id = db.Column(db.Integer,
                             db.ForeignKey('workshops.id', ondelete='CASCADE'),
                             primary_key=True)
Exemplo n.º 9
0
class Message(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    sender_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    recipient_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    body = db.Column(db.String(140))
    timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)

    def __repr__(self):
        return '<Message {}>'.format(self.body)
Exemplo n.º 10
0
class MsgContent(db.Model):
    __tablename__ = 'msg_content'
    id = db.Column(db.Integer, primary_key=True)
    session_id = db.Column(db.Integer, db.ForeignKey('msg_session.id'))
    body = db.Column(db.String(500))
    timestamp = db.Column(db.DateTime, index=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    def __repr__(self):
        return '<Content %r>' % (self.body)
Exemplo n.º 11
0
class BackupInstance(db.Model):
    __tablename__ = 'backup_instance'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255))
    server_id = db.Column(db.String(255), nullable=False)

    backup_type_id = db.Column(db.Integer, db.ForeignKey('backup_type.id'), nullable=False)
    backup_type = db.relationship('BackupType', backref=db.backref('backupinstances', lazy='dynamic'))
    business_id = db.Column(db.Integer, db.ForeignKey('business.id'), nullable=False)
    business = db.relationship('Business', backref=db.backref('backupinstances', lazy='dynamic'))
    instance = db.Column(db.Integer, nullable=False)
Exemplo n.º 12
0
class Ticket_2_Server(db.Model):
    __tablename__ = 'ticket_2_server'
    __table_args__ = (UniqueConstraint("ticket_id", "server_id"),)

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    ticket_id = db.Column(db.Integer, db.ForeignKey('ticket.id'),
                          nullable=False)
    server_id = db.Column(db.Integer, db.ForeignKey('server.id'),
                          nullable=False)

    ticket = relationship("Ticket")
    server = relationship("Server")
Exemplo n.º 13
0
class Device(db.Model):
    __tablename__='device'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    name = db.Column(db.String(64), nullable=False)
    description = db.Column(db.String(50), nullable=True)
    category_type = db.Column(db.String(30),db.ForeignKey('category.type'), nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    power = db.Column(db.Float, nullable=True,default=0)
    total_energy_consumption = db.Column(db.Float,nullable=True,default=0)
    begin_use_time = db.Column(db.DateTime, nullable=True)
    used_time = db.Column(db.DateTime, nullable =True)
    status = db.Column(db.Integer, nullable=True)
    device_energy_info_list = db.relationship('Device_energy_info', backref='device', lazy='dynamic')
Exemplo n.º 14
0
class IssueResponse(db.Model):
    __tablename_ = "issue_response"
    issue_id = db.Column(db.Integer,
                         db.ForeignKey(ProjectIssues.issue_id),
                         nullable=False)
    response_id = db.Column(db.Integer, nullable=False, primary_key=True)
    issue_responder = db.Column(db.NVARCHAR(15),
                                db.ForeignKey(Users.user_empcode),
                                nullable=False)
    issue_response = db.Column(db.VARCHAR(10000), nullable=True)
    response_date = db.Column(db.Date,
                              default=datetime.date.today,
                              nullable=False)
Exemplo n.º 15
0
class TopArtistsArtistsAssociation(db.Model):
    """"""

    __tablename__ = "top_artists_artists_association"
    top_artists_id = db.Column(db.Integer,
                               db.ForeignKey("top_artists.id"),
                               primary_key=True)
    artists_id = db.Column(db.Integer,
                           db.ForeignKey("artists.id"),
                           primary_key=True)
    top_artists = db.relationship("TopArtists")
    artists = db.relationship("Artists")
    rank = db.Column(db.Integer, default=-1)
Exemplo n.º 16
0
class Scheduling(db.Model):
    __tablename__ = 'scheduling'
    __table_args__ = (UniqueConstraint("date", "user_id"),)

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    date = db.Column(db.Date, nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    shift_id = db.Column(db.Integer, db.ForeignKey('shift.id'), nullable=False)

    user = relationship('User')
    shift = relationship('Shift')

    def __repr__(self):
        return '<Scheduling {}>'.format(self.id)
Exemplo n.º 17
0
class Task(db.Model):
    __tablename__ = 'task'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(30), nullable=False)
    description = db.Column(db.String(280), nullable=False)
    released_date = db.Column(db.DateTime, default=datetime.now())

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    employee_id = db.Column(db.Integer, db.ForeignKey('employee.id'))

    def __repr__(self):
        return "<Task %r>" % self.name

    def get_reported_name(self):
        return User.query.get(self.user_id).username
Exemplo n.º 18
0
class Comment(db.Model):
    __tablename__ = "comments"
    id = db.Column(db.Integer, primary_key=True)
    from_user_id = db.Column(db.Integer)
    from_user_type = db.Column(db.Integer)
    to_user_id = db.Column(db.Integer)
    to_user_type = db.Column(db.Integer)
    course_id = db.Column(db.Integer, db.ForeignKey("courses.id"))
    content = db.Column(db.Text)
    created_at = db.Column(db.DateTime, default=datetime.now())
    course = db.relationship("Course")

    def to_json(self):
        if self.from_user_type == 1:
            from_user = User.query.get(self.from_user_id).to_json()
        else:
            from_user = Admin.query.get(self.from_user_id).to_json()
        if self.to_user_type == 1:
            to_user = User.query.get(self.to_user_id).to_json()
        else:
            to_user = Admin.query.get(self.to_user_id).to_json()

        return {
            'id': self.id,
            "from_user": from_user,
            "to_user": to_user,
            "content": self.content,
            "course": self.course.to_json(),
            "created_at": self.created_at
        }
Exemplo n.º 19
0
class PaticipatorInfo(db.Model):
    __tablename__ = 'paticipator_info'
    id = db.Column(db.Integer, primary_key=True)
    activity_id = db.Column(db.Integer)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    # 报名时间
    timestamp = db.Column(db.DateTime, default=datetime.datetime.now)
Exemplo n.º 20
0
class Comment(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    article_id = db.Column(db.Integer, db.ForeignKey('post.id'))  # 评论文章id
    content = db.Column(db.String(100), nullable=False)
    time = db.Column(db.DateTime,
                     default=datetime.strptime(
                         datetime.now().strftime('%Y-%m-%d %H:%M:%S'),
                         '%Y-%m-%d %H:%M:%S'))
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))  # 用户id
    to_user = db.Column(db.Integer)  # 回复的用户,无则None
    to_id = db.Column(db.Integer)  # 回复目标id,无回复则None  #

    c_post = db.relationship('Post',
                             backref=db.backref('comments',
                                                order_by=id.desc()))
    c_user = db.relationship('User', backref=db.backref('comments'))
Exemplo n.º 21
0
class BucketListItem(BaseModel):
    """
    Class used as a representation of the bucketlist item model
    """
    name = db.Column(db.Text, nullable=False)
    finished_by = db.Column(
        db.Date, default=datetime.now(tz=pytz.timezone('Africa/Kampala')))
    bucketlist_id = db.Column(db.Integer,
                              db.ForeignKey('bucket_list.id'),
                              nullable=False)

    def add_bucketlist_item(self):
        """
        Method is used to add a bucketlist item to the database
        """
        self.add_data_set()
        return True

    def delete_bucketlist_item(self):
        """
        Method is used to add a bucketlist item to the database
        """
        self.delete_data_set()
        db.session.commit()
        return True
Exemplo n.º 22
0
class Topsellsproduct(db.Model):
    product_id = db.Column(db.Integer,
                           db.ForeignKey(Product.id),
                           primary_key=True)

    def __repr__(self):
        return f"Topsellsproduct('{self.product_id}')"
Exemplo n.º 23
0
class Location(db.Model):
    __tablename__ = 'location'
    id = db.Column(db.Integer, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.uid'))
    name = db.Column(db.String(100))
    address = db.Column(db.String(200))
    city = db.Column(db.String(50))
    state = db.Column(db.String(50))
    #country=db.column(db.String(50))
    zip = db.Column(db.String(20))
    lat = db.Column(db.Float)
    lng = db.Column(db.Float)
    is_end_point = db.Column(db.Integer, unique=False, default=0)

    def __init__(self, user_id, name, address, city, state, zip, lat, lng,
                 is_end_point):
        self.user_id = user_id
        self.name = name
        self.address = address
        self.city = city
        self.state = state
        #self.country=country
        self.zip = zip
        self.lat = lat
        self.lng = lng
        self.is_end_point = is_end_point
Exemplo n.º 24
0
class Profile_Student(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    student_id = db.Column(db.String(7),
                           db.ForeignKey('user.user_id',
                                         onupdate='CASCADE',
                                         ondelete='CASCADE'),
                           nullable=True)
    email = db.Column(db.String(255), unique=True, nullable=False)
    telp = db.Column(db.String(15), unique=True, nullable=False)
    student_class = db.Column(db.String(7),
                              db.ForeignKey('class.class_id',
                                            onupdate='CASCADE',
                                            ondelete='CASCADE'),
                              nullable=True)

    def __repr__(self) -> str:
        return '<Student %s>' % self.student_id
Exemplo n.º 25
0
class Book(db.Model):
    __tablename__ = 'book'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(40), nullable=False)
    author = db.Column(db.String(60), nullable=False)
    publish_date = db.Column(db.DateTime)

    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
Exemplo n.º 26
0
class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    body = db.Column(db.String(140))
    timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    def __repr__(self):
        return f"<Post {self.body}>"
Exemplo n.º 27
0
class Post(db.Model):
	id = db.Column(db.Integer, primary_key=True)
	body = db.Column(db.String(140))
	timestamp = db.Column(db.DateTime)
	user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

	def __repr__(self):
		return '<Post %r>' % self.body
Exemplo n.º 28
0
class Grade(db.Model):
    __tablename__ = 'grades'
    id = db.Column(db.Integer, unique=True)
    stu_id = db.Column(db.Integer, db.ForeignKey('students.id'),
                       primary_key=True)
    course_id = db.Column(db.Integer, db.ForeignKey('courses.id'),
                          primary_key=True)
    grade = db.Column(db.Integer)

    def __init__(self, stu_id, course_id, grade):
        self.stu_id = stu_id
        self.course_id = course_id
        self.grade = grade

    def __repr__(self):
        return '<Grade %r, %r, %r>' % \
            (self.stu_id, self.course_id, self.grade)
Exemplo n.º 29
0
class Notification(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(128), index=True)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    timestamp = db.Column(db.Float, index=True, default=time)
    payload_json = db.Column(db.Text)

    def get_data(self):
        return json.loads(str(self.payload_json))
Exemplo n.º 30
0
class Stokesproduct(db.Model):
    stok_id = db.Column(db.Integer, primary_key=True)
    product_id = db.Column(db.Integer,
                           db.ForeignKey(Product.id),
                           nullable=False)
    conut = db.Column(db.Integer, nullable=False)

    def __repr__(self):
        return f"Stokesproduct('{self.product_id}','{self.conut}')"