示例#1
0
class Submission(db.Model):
    SubmissionID = db.Column(db.Integer, primary_key=True)
    ProjectID = db.Column(db.Integer, db.ForeignKey('project.ProjectID'))
    StudentID = db.Column(db.Integer, db.ForeignKey('student.StudentID'))
    feedback = db.Column(db.String(2000))
    description = db.Column(db.String(2000))
    date = db.Column(db.Date)
    item = db.Column(db.String(255))

    def __call__(arg1, arg2, arg3):
        print "call submission"
        #print str(arg1) + " | " + str(arg2) + " | " + str(arg3)

    def __init__(self, SubmissionID, ProjectID, StudentID, feedback,
                 description, date, item):
        self.SubmissionID = SubmissionID
        self.ProjectID = ProjectID
        self.StudentID = StudentID
        self.feedback = feedback
        self.description = description
        self.date = date
        self.item = item

    def __repr__(self):
        #return '<user %r>' % (self.login + '-' + str(self.UserID))
        return json.dumps({
            'SubmissionID': self.SubmissionID,
            'ProjectID': self.ProjectID,
            'StudentID': self.StudentID,
            'feedback': self.feedback,
            'description': self.description,
            'date': str(self.date),
            'item': str(self.item)
        })
示例#2
0
class AchievementRecord(db.Model):
    __tablename__ = 'achievement_record'
    StudentID = db.Column(db.Integer,
                          db.ForeignKey('student.StudentID'),
                          primary_key=True)
    AchievementID = db.Column(db.Integer,
                              db.ForeignKey('achievement.AchievementID'),
                              primary_key=True)
    status = db.Column(db.String(45))

    def __call__(arg1, arg2, arg3):
        print "call Achievement_Record"
        #print str(arg1) + " | " + str(arg2) + " | " + str(arg3)

    def __init__(self, StudentID, AchievementID, status):
        self.StudentID = StudentID
        self.AchievementID = AchievementID
        self.status = status

    def __repr__(self):
        #return '<user %r>' % (self.login + '-' + str(self.UserID))
        return json.dumps({
            'StudentID': self.StudentID,
            'AchievementID': self.AchievementID,
            'status': self.status,
        })
示例#3
0
class Enrolment(db.Model):
    StudentID = db.Column(db.Integer,
                          db.ForeignKey('student.StudentID'),
                          primary_key=True)
    CourseID = db.Column(db.Integer,
                         db.ForeignKey('course.CourseID'),
                         primary_key=True)
    status = db.Column(db.String(80))

    def __call__(arg1, arg2, arg3):
        print "call enrolment"
        #print str(arg1) + " | " + str(arg2) + " | " + str(arg3)

    def __init__(self, StudentID, CourseID, status):
        self.StudentID = StudentID
        self.CourseID = CourseID
        self.status = status

    def __repr__(self):
        #return '<user %r>' % (self.login + '-' + str(self.UserID))
        return json.dumps({
            'StudentID': self.StudentID,
            'CourseID': self.CourseID,
            'status': self.status
        })
示例#4
0
class Application(db.Model):
    StudentID = db.Column(db.Integer,
                          db.ForeignKey('student.StudentID'),
                          primary_key=True)
    ProjectID = db.Column(db.Integer,
                          db.ForeignKey('project.ProjectID'),
                          primary_key=True)
    application_status = db.Column(db.String(80))

    def __call__(arg1, arg2, arg3):
        print "call application"
        #print str(arg1) + " | " + str(arg2) + " | " + str(arg3)

    def __init__(self, StudentID, ProjectID, application_status):
        self.StudentID = StudentID
        self.ProjectID = ProjectID
        self.application_status = application_status

    def __repr__(self):
        #return '<user %r>' % (self.login + '-' + str(self.UserID))
        return json.dumps({
            'StudentID': self.StudentID,
            'ProjectID': self.ProjectID,
            'application_status': self.application_status
        })
示例#5
0
class Post(db.Model):
    __tablename__ = 'post'

    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(240))
    slug = db.Column(db.String(240), unique=True)
    body = db.Column(db.String())
    photo = db.Column(db.String(), default='../img/covers/default.jpg')
    date = db.Column(db.DateTime, default=datetime.utcnow)
    public = db.Column(db.Boolean, nullable=False, default=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    favorited = db.Column(db.Integer, default=0)
    favorited_by = db.relationship('User', secondary=favorites, backref=db.backref('favorited', lazy='dynamic'))
    comments = db.relationship('Comment', cascade="all, delete-orphan", backref='post', lazy='dynamic')

    def slugify(self, text, delim=u'-'):
        """
        Generates an ASCII-only slug with unique index in case of slug name clashes and saves it to db.
        :param text: text to be made into slug
        :param delim: delimiter for slug
        """
        result = []
        for word in _punct_re.split(text.lower()):
            word = word.encode('translit/long')
            if word:
                result.append(word)

        slug = orig = unicode(delim.join(result))

        for x in itertools.count(0):
            if not Post.query.filter_by(slug=slug).first():
                break
            slug = '%s-%d' % (orig, x)

        self.slug = slug

    @property
    def serialize(self):
        return {
            'id': self.id,
            'title': self.title,
            'slug': self.slug,
            'body': self.body,
            'cover_photo': self.photo,
            'date': self.date,
            'author': self.author.username,
            'avatar': self.author.photo,
            'favorited': self.favorited,
            'favorited_by': [user.serialize for user in self.favorited_by],
            'comments': [comment.serialize for comment in self.comments],
            'author_id': self.user_id,
            'public': self.public
        }

    def get_slug(self):
        return self.slug

    def __repr__(self):
        return self.id
示例#6
0
class Project(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))
    hour_number = db.Column(db.Integer())
    estimate_hours = db.Column(db.Integer())
    progress = db.Column(db.String(80))
    client_id = db.Column(db.Integer, db.ForeignKey('client.id'))
示例#7
0
class Project(db.Model):
    ProjectID = db.Column(db.Integer, primary_key=True)
    SponsorID = db.Column(db.Integer, db.ForeignKey('sponsor.SponsorID'))
    StudentID = db.Column(db.Integer, db.ForeignKey('student.StudentID'))
    title = db.Column(db.String(80))
    description = db.Column(db.String(2000))
    category = db.Column(db.String(80))
    status = db.Column(db.String(80))
    deliverables = db.Column(db.String(2000))
    requirements = db.Column(db.String(2000))
    payment = db.Column(db.Float)
    thumbnail = db.Column(db.String(255))

    def __call__(arg1, arg2, arg3):
        print "call project"

    def __init__(self, ProjectID, SponsorID, StudentID, title, description,
                 category, status, deliverables, requirements, payment,
                 thumbnail):
        self.ProjectID = ProjectID
        self.SponsorID = SponsorID
        self.StudentID = StudentID
        self.title = title
        self.description = description
        self.category = category
        self.status = status
        self.deliverables = deliverables
        self.requirements = requirements
        self.payment = payment
        self.thumbnail = thumbnail

    def __repr__(self):
        return json.dumps({
            'ProjectID': self.ProjectID,
            'SponsorID': self.SponsorID,
            'StudentID': self.StudentID,
            'title': self.title,
            'description': self.description,
            'category': self.category,
            'status': self.status,
            'deliverables': self.deliverables,
            'requirements': self.requirements,
            'payment': self.payment,
            'thumbnail': self.thumbnail
        })
示例#8
0
class Comment(db.Model):
    __tablename__ = 'comment'

    id = db.Column(db.Integer, primary_key=True)
    body = db.Column(db.String())
    date = db.Column(db.DateTime, default=datetime.utcnow)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    post_id = db.Column(db.Integer, db.ForeignKey('post.id'))

    @property
    def serialize(self):
        return {
            'id': self.id,
            'body': self.body,
            'date': self.date,
            'author': self.author.username,
            'author_ava': self.author.photo
        }
示例#9
0
class Sponsor(db.Model):
    SponsorID = db.Column(db.Integer, primary_key=True)
    UserID = db.Column(db.Integer, db.ForeignKey('user.UserID'))

    def __call__(arg1, arg2, arg3):
        print "call sponsor"

    def __init__(self, SponsorID, UserID):
        self.SponsorID = SponsorID
        self.UserID = UserID

    def __repr__(self):
        return json.dumps({'SponsorID': self.SponsorID, 'UserID': self.UserID})
示例#10
0
class Student(db.Model):
    StudentID = db.Column(db.Integer, primary_key=True)
    UserID = db.Column(db.Integer, db.ForeignKey('user.UserID'))
    SupervisorID = db.Column(db.Integer,
                             db.ForeignKey('supervisor.SupervisorID'))

    def __call__(arg1, arg2, arg3):
        print "call student"
        #print str(arg1) + " | " + str(arg2) + " | " + str(arg3)

    def __init__(self, StudentID, UserID, SupervisorID):
        self.StudentID = StudentID
        self.UserID = UserID
        self.SupervisorID = SupervisorID

    def __repr__(self):
        #return '<user %r>' % (self.login + '-' + str(self.UserID))
        return json.dumps({
            'StudentID': self.StudentID,
            'UserID': self.UserID,
            'SupervisorID': self.SupervisorID
        })
示例#11
0
class Admin(db.Model):
    AdminID = db.Column(db.Integer, primary_key=True)
    UserID = db.Column(db.Integer, db.ForeignKey('user.UserID'))

    def __call__(arg1, arg2, arg3):
        print "call admin"

    def __init__(self, AdminID, UserID):
        self.AdminID = AdminID
        self.UserID = UserID

    def __repr__(self):
        return json.dumps({
            'AdminID': self.AdminID,
            'UserID': self.UserID,
        })
示例#12
0
class Activity(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    poster_id = db.Column(db.Integer, db.ForeignKey('user.id'))
示例#13
0
from datetime import datetime

from angular_flask.core import db, admin
from angular_flask import app
from flask.ext.security import Security, SQLAlchemyUserDatastore, \
    UserMixin, RoleMixin, login_required, current_user


# TODO switch the database from SQLite Postgresql
#

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 Activity(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    poster_id = db.Column(db.Integer, db.ForeignKey('user.id'))


# Should really be a product
#
class Project(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))
    hour_number = db.Column(db.Integer())
    estimate_hours = db.Column(db.Integer())
    progress = db.Column(db.String(80))
    client_id = db.Column(db.Integer, db.ForeignKey('client.id'))
示例#14
0
import translitcodec, re, itertools
from datetime import datetime
from angular_flask.core import db
from angular_flask import app
from passlib.apps import custom_app_context as pwd_context
from itsdangerous import (TimedJSONWebSignatureSerializer as Serializer, BadSignature, SignatureExpired)
from flask.ext.login import UserMixin

_punct_re = re.compile(r'[\t !"#$%&\'()*\-/<=>?@\[\\\]^_`{|},.]+')

favorites = db.Table('favorites',
                     db.Column('post_id', db.Integer, db.ForeignKey('post.id')),
                     db.Column('user_id', db.Integer, db.ForeignKey('user.id'))
                     )


class Post(db.Model):
    __tablename__ = 'post'

    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(240))
    slug = db.Column(db.String(240), unique=True)
    body = db.Column(db.String())
    photo = db.Column(db.String(), default='../img/covers/default.jpg')
    date = db.Column(db.DateTime, default=datetime.utcnow)
    public = db.Column(db.Boolean, nullable=False, default=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    favorited = db.Column(db.Integer, default=0)
    favorited_by = db.relationship('User', secondary=favorites, backref=db.backref('favorited', lazy='dynamic'))
    comments = db.relationship('Comment', cascade="all, delete-orphan", backref='post', lazy='dynamic')