コード例 #1
0
ファイル: models.py プロジェクト: galbwe/volunteermatching
class Partner(db.Model):
    id = db.Column(db.Integer(), primary_key=True, index=True)
    name = db.Column(db.String(200), index=True, unique=True)
    opportunities = db.relationship('Opportunity',
                                    backref='partner',
                                    lazy='dynamic')

    def __repr__(self):
        return '<Partner {}>'.format(self.name)
コード例 #2
0
class Opportunity(db.Model):
    id = db.Column(db.Integer(), primary_key=True, index=True)
    active = db.Column(db.Boolean())
    name = db.Column(db.String(100), index=True, unique=True)
    job_number = db.Column(db.String(50), unique=True)
    description = db.Column(db.Text(500))
    shift_hours = db.Column(db.Float())
    commitment_length = db.Column(db.Float(2))
    start_date = db.Column(db.Date())
    end_date = db.Column(db.Date())
    training_time_required = db.Column(db.Integer())
    volunteers_needed = db.Column(db.Integer())
    location_street = db.Column(db.String(100))
    location_city = db.Column(db.String(50))
    location_zip = db.Column(db.String(10))

    # One to many relationships
    partner_id = db.Column(db.Integer, db.ForeignKey('partner.id'))

    # Many to many relations
    passions = db.relationship('Passion',
                               secondary='passions',
                               lazy='subquery',
                               backref=db.backref('opportunities', lazy=True))
    age_group_interests = db.relationship('AgeGroupInterest',
                                          secondary='age_group_interests',
                                          lazy='subquery',
                                          backref=db.backref('opportunities',
                                                             lazy=True))
    skills = db.relationship('Skill',
                             secondary='skills',
                             lazy='subquery',
                             backref=db.backref('opportunities', lazy=True))
    frequencies = db.relationship('Frequency',
                                  secondary='frequencies',
                                  lazy='subquery',
                                  backref=db.backref('opportunities',
                                                     lazy=True))

    def __repr__(self):
        return '<Opportunity {}>'.format(self.name)
コード例 #3
0
ファイル: models.py プロジェクト: stoneyb/volunteermatching
class Role(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))
コード例 #4
0
ファイル: models.py プロジェクト: stoneyb/volunteermatching
from volunteermatching import db
from volunteermatching.auth import login_manager
from passlib.apps import custom_app_context as pwd_context
from flask_login import UserMixin

# Define models
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')))


class Role(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))


class User(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(db.String(255), index=True, unique=True)
    password_hash = db.Column(db.String(255))
    active = db.Column(db.Boolean())
    confirmed_at = db.Column(db.DateTime())
    roles = db.relationship('Role',
                            secondary=roles_users,
                            backref=db.backref('users', lazy='dynamic'))

    def hash_password(self, password):
        self.password_hash = pwd_context.hash(password)
コード例 #5
0
ファイル: models.py プロジェクト: galbwe/volunteermatching
class Frequency(db.Model):
    id = db.Column(db.Integer(), primary_key=True, index=True)
    name = db.Column(db.String(50), index=True, unique=True)

    def __repr__(self):
        return '<Frequency {}>'.format(self.name)
コード例 #6
0
ファイル: models.py プロジェクト: galbwe/volunteermatching
class AgeGroupInterest(db.Model):
    id = db.Column(db.Integer(), primary_key=True, index=True)
    name = db.Column(db.String(50), index=True, unique=True)

    def __repr__(self):
        return '<AgeGroupInterest {}>'.format(self.name)