Exemple #1
0
class UserMatch(db.Model):
    """holds matches made through the history of the app"""

    __tablename__ = "user_matches"

    match_id = db.Column(db.Integer, autoincrement=True, primary_key=True)
    user_id_1 = db.Column(db.Integer,
                          db.ForeignKey('users.id'),
                          nullable=False)
    user_id_2 = db.Column(db.Integer,
                          db.ForeignKey('users.id'),
                          nullable=False)
    match_date = db.Column(db.DateTime, nullable=False)
    user_2_status = db.Column(db.Boolean, nullable=False)
    query_pincode = db.Column(db.String(20), nullable=False)

    def __repr__(self):
        """return interest choices of the user"""

        d1 = '< match_id={a}, user_id_1={b},'.format(a=self.match_id,
                                                     b=self.user_id_1)
        d2 = ' user_id_2={c}, match_date={d}>'.format(c=self.user_id_2,
                                                      d=self.match_date)

        return d1 + d2
Exemple #2
0
class Message(db.Model):

    __tablename__ = 'messages'
    id = db.Column(db.Integer, primary_key=True)
    sender_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    recipient_id = db.Column(db.Integer, db.ForeignKey('users.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)
Exemple #3
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.Text) #db.String(140)
	timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)

	@staticmethod
	def on_changed_body(target, value, oldvalue, initiator):
		allowed_tags = ['a', 'abbr', 'acronym', 'b', 'blockquote', 'code',
		'em', 'i', 'li', 'ol', 'pre', 'strong', 'ul',
		'h1', 'h2', 'h3', 'p', 'iframe']
		target.body = bleach.linkify(bleach.clean(markdown(value, output_format='html'),
			tags=allowed_tags, strip=True))

	def __repr__(self):
		return '<Message {}>'.format(self.body)
Exemple #4
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('users.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))
class Interest(db.Model):
    """ User interests and hobbies for matchmaking, Each Column will
    hold integers that correspond to the information on other tables.
    """

    __tablename__ = 'interests'

    interest_id = db.Column(db.Integer, autoincrement=True,
                            primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'))
    book_genre_id = db.Column(db.Integer,
                            db.ForeignKey('book_genres.book_genre_id'),
                            nullable=False)
    movie_genre_id = db.Column(db.Integer,
                                db.ForeignKey('movie_genres.movie_genre_id'),
                                nullable=False)
    music_genre_id = db.Column(db.Integer,
                                db.ForeignKey('music_genres.music_genre_id'),
                                nullable=False)
    fav_cuisine_id = db.Column(db.Integer,
                                db.ForeignKey('fav_cuisines.fav_cuisine_id'),
                                nullable=False)
    hobby_id = db.Column(db.Integer,
                        db.ForeignKey('hobbies.hobby_id'), nullable=False)
    religion_id = db.Column(db.Integer,
                        db.ForeignKey('religions.religion_id'),
                        nullable=False)
    outdoor_id = db.Column(db.Integer,
                        db.ForeignKey('outdoors.outdoor_id'),
                        nullable=False)

    def __repr__ (self):
        """return interest choices of the user"""

        d1 ='< interest_id={a}, book_genre_id={b},'.format(a=self.interest_id,
                                                        b=self.book_genre_id)
        d2 =' movie_genre_id={c}, music_genre_id={d},'.format(c=self.movie_genre_id,
                                                        d=self.music_genre_id)
        d3 =' food_habit_id={e}, fav_cuisine_id={f},'.format(e=self.food_habit_id,
                                                        f=self.fav_cuisine_id)
        d4 =' hobby_id={g}, politicial_view_id={h},'.format(g=self.hobby_id,
                                                        h=self.political_view_id)
        d5 =' religion_id={i}, outdoor_id={j}>'.format(i=self.religion_id,
                                                        j=self.outdoor_id)

        return d1 + d2 + d3 + d4 + d5
Exemple #6
0
class PendingMatch(db.Model):
    """holds a list of all pending matches for user queries"""

    __tablename__ = "pending_matches"

    user_query_id = db.Column(db.Integer, autoincrement=True, primary_key=True)
    user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False)
    query_pin_code = db.Column(db.Integer, nullable=False)
    query_time = db.Column(db.DateTime, nullable=False)
    pending = db.Column(db.Boolean, nullable=False)

    def __repr__(self):
        """return information about a user query"""

        d1 = "<user_query_id={a}, user_id={b},".format(a=self.user_query_id,
                                                       b=self.user_id)
        d2 = " query_pin_code={c}, query_time={d},".format(
            c=self.query_pin_code, d=self.query_time)
        d3 = " pending={e}>".format(e=self.pending)

        return d1 + d2 + d3
Exemple #7
0
from datetime import datetime
from itsdangerous import TimedJSONWebSignatureSerializer as Serializer
from dating import db, login_manager, app
from flask_login import UserMixin
from markdown import markdown
import bleach



@login_manager.user_loader
def load_user(user_id):
	return User.query.get(int(user_id))

followers = db.Table(
	'followers',
	db.Column('follower_id', db.Integer, db.ForeignKey('user.id')),
	db.Column('followed_id', db.Integer, db.ForeignKey('user.id'))
)

class User(db.Model, UserMixin):
	id = db.Column(db.Integer, primary_key=True)
	username = db.Column(db.String(20), unique=True, nullable=False)
	email = db.Column(db.String(120), unique=True, nullable=True)
	dp = db.Column(db.String(20), nullable=False, default='default.jpg')
	dp2 = db.Column(db.String(20), nullable=False, default='flip.png')
	dp3 = db.Column(db.String(20), nullable=False, default='plane.png')
	password = db.Column(db.String(60), nullable=False)
	last_seen = db.Column(db.DateTime, default=datetime.utcnow)
	date_joined = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
	department = db.Column(db.String(20), nullable=False)
	student_number = db.Column(db.Integer(), unique=True, nullable=True)