Exemplo n.º 1
0
class DancingClassCouple(db.Model, TrackModifications):
    __tablename__ = TABLE_DANCING_CLASS_COUPLE
    __table_args__ = (
        db.UniqueConstraint("dancing_class_id", "person_id", "partner_id", name="_dancing_class_couple_uc"),
    )
    id = db.Column(db.Integer(), primary_key=True)
    dancing_class_id = db.Column(db.Integer(), db.ForeignKey(f"{TABLE_DANCING_CLASS}.id", ondelete="CASCADE"),
                                 nullable=False)
    dancing_class = db.relationship("DancingClass", lazy=False)
    person_id = db.Column(db.Integer(), db.ForeignKey(f"{TABLE_DANCING_CLASS_PERSON}.id", ondelete="CASCADE"),
                          nullable=False)
    person = db.relationship("DancingClassPerson", foreign_keys=person_id, lazy=False)
    partner_id = db.Column(db.Integer(), db.ForeignKey(f"{TABLE_DANCING_CLASS_PERSON}.id", ondelete="CASCADE"),
                           nullable=False)
    partner = db.relationship("DancingClassPerson", foreign_keys=partner_id, lazy=False)

    def __repr__(self):
        return f"{self.person} - {self.partner}"

    def json(self):
        data = {
            "id": self.id,
            "lead": self.person.json(),
            "follow": self.partner.json(),
        }
        return data
Exemplo n.º 2
0
class Couple(db.Model, TrackModifications):
    __tablename__ = TABLE_COUPLE
    __table_args__ = (db.UniqueConstraint("lead_id",
                                          "follow_id",
                                          name="_lead_follow_uc"), )
    id = db.Column(db.Integer(), primary_key=True)
    lead_id = db.Column(
        db.Integer(), db.ForeignKey(f"{TABLE_PERSON}.id", ondelete="CASCADE"))
    lead = db.relationship("Person", foreign_keys=lead_id)
    follow_id = db.Column(
        db.Integer(), db.ForeignKey(f"{TABLE_PERSON}.id", ondelete="CASCADE"))
    follow = db.relationship("Person", foreign_keys=follow_id)

    def __repr__(self):
        return f"{self.lead}-{self.follow}"

    def json(self):
        data = {
            "id": self.id,
            "lead": {
                "id": self.lead.id,
                "full_name": self.lead.full_name,
            },
            "follow": {
                "id": self.follow.id,
                "full_name": self.follow.full_name,
            },
            "couple": f"{self.lead.full_name} & {self.follow.full_name}"
        }
        return data
Exemplo n.º 3
0
class UserRole(db.Model, TrackModifications):
    __tablename__ = TABLE_USER_ROLE
    id = db.Column(db.Integer(), primary_key=True)
    user_id = db.Column(db.Integer(), db.ForeignKey(f"{TABLE_USERS}.id", ondelete="CASCADE"))
    role_id = db.Column(db.Integer(), db.ForeignKey(f"{TABLE_ROLES}.id", ondelete="CASCADE"))

    def __repr__(self):
        return f"{self.user_id}-{self.role_id}"
Exemplo n.º 4
0
class Role(db.Model):
    __tablename__ = 'roles'
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(60), unique=True)
    description = db.Column(db.String(255))

    def __repr__(self):
        return '<Role %s>' % self.name
Exemplo n.º 5
0
class DancingClassPerson(db.Model, TrackModifications):
    __tablename__ = TABLE_DANCING_CLASS_PERSON
    __table_args__ = (db.UniqueConstraint("dancing_class_id", "person_id", name="_dancing_class_person_uc"),)
    id = db.Column(db.Integer(), primary_key=True)
    dancing_class_id = db.Column(db.Integer(), db.ForeignKey(f"{TABLE_DANCING_CLASS}.id", ondelete="CASCADE"),
                                 nullable=False)
    dancing_class = db.relationship("DancingClass", lazy=False)
    person_id = db.Column(db.Integer(), db.ForeignKey(f"{TABLE_PERSON}.id", ondelete="CASCADE"), nullable=False)
    person = db.relationship("Person", lazy=False)
    passed_triage = db.Column(db.Boolean, nullable=False, default=True)
    notes = db.Column(db.String(256), nullable=True)
    dancing_class_couples_leads = db.relationship("DancingClassCouple", foreign_keys="DancingClassCouple.person_id",
                                                  cascade="all, delete, delete-orphan", lazy=False)
    dancing_class_couples_follows = db.relationship("DancingClassCouple", foreign_keys="DancingClassCouple.partner_id",
                                                    cascade="all, delete, delete-orphan", lazy=False)

    def __repr__(self):
        return f"{self.person} - {self.dancing_class}"

    @property
    def partners(self):
        return [dcc.partner.person for dcc in self.dancing_class_couples_leads] + \
               [dcc.person.person for dcc in self.dancing_class_couples_follows]

    def json(self):
        data = {
            "id": self.id,
            "person": {
                "id": self.person.id,
            },
            "email": self.person.email,
            "full_name": self.person.full_name,
            "student_number": self.person.student_number,
            "passed_triage": self.passed_triage,
            "notes": self.notes,
        }
        return data
Exemplo n.º 6
0
class Role(db.Model, TrackModifications):
    __tablename__ = TABLE_ROLES
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(50), unique=True, nullable=False)

    def __repr__(self):
        return f"{self.name}"

    def __init__(self, name):
        self.name = name

    def json(self):
        data = {
            "id": self.id,
            "name": self.name,
        }
        return data
Exemplo n.º 7
0
import os

import requests
from flask_security import UserMixin, RoleMixin, SQLAlchemyUserDatastore
from sqlalchemy import func as alchemyFn

from config import UPLOAD_FOLDER
from corelib.utils import generate_id
from ext import db
from models.contact import Contact
from models.mixin import BaseMixin

roles_users = db.Table(
    'roles_users',
    db.Column('user_id', db.Integer(), db.ForeignKey('users.id')),
    db.Column('role_id', db.Integer(), db.ForeignKey('role.id')),
)


class Role(db.Model, RoleMixin):
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(191))


class User(db.Model, UserMixin, BaseMixin):
    __tablename__ = 'users'
    bio = db.Column(db.String(128), default='')
    name = db.Column(db.String(128), default='')
    nickname = db.Column(db.String(128), default='')
    email = db.Column(db.String(191), default='')
    password = db.Column(db.String(191))
Exemplo n.º 8
0
import requests
from flask_security import UserMixin, RoleMixin, SQLAlchemyUserDatastore
from sqlalchemy import func as alchemyFn
from sqlalchemy.ext.mutable import MutableDict
from sqlalchemy_utils import JSONType

from ext import db
from config import UPLOAD_FOLDER
from models.mixin import BaseMixin
from models.contact import Contact, userFollowStats
from corelib.utils import generate_id

roles_users = db.Table(
    "roles_users",
    db.Column("user_id", db.Integer(), db.ForeignKey("users.id")),
    db.Column("role_id", db.Integer(), db.ForeignKey("role.id")),
)


class User(db.Model, UserMixin, BaseMixin):
    __tablename__ = "users"
    bio = db.Column(db.String(128), default="")
    name = db.Column(db.String(128), default="")
    nickname = db.Column(db.String(128), default="")
    email = db.Column(db.String(191), default="")
    password = db.Column(db.String(191))
    website = db.Column(db.String(191), default="")
    github_id = db.Column(db.String(191), default="")
    last_login_at = db.Column(db.DateTime())
    current_login_at = db.Column(db.DateTime())
    last_login_ip = db.Column(db.String(100))