class Conferences(db.Model): id = db.Column(db.Integer, primary_key=True) acronym = db.Column(db.String(50)) name = db.Column(db.String(50)) city = db.Column(db.String(50)) country = db.Column(db.String(50)) venue = db.Column(db.String(50)) start_date = db.Column(db.Date()) end_date = db.Column(db.Date()) def set_fields(self, fields): self.acronym = fields.get('acronym') self.name = fields.get('name') self.city = fields.get('city') self.country = fields.get('country') self.venue = fields.get('venue') self.start_date = datetime.datetime.strptime( fields.get('start_date'), "%d/%m/%Y").date() if fields.get('start_date') else None self.end_date = datetime.datetime.strptime( fields.get('end_date'), "%d/%m/%Y").date() if fields.get('end_date') else None def serialize(self): return dict(id=self.id, acronym=self.acronym, name=self.name, city=self.city, country=self.country, venue=self.venue, start_date=self.start_date.strftime('%d/%m/%Y') if self.start_date else None, end_date=self.end_date.strftime('%d/%m/%Y') if self.end_date else None)
class Users(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20)) email = db.Column(db.String(50), unique=True) password = db.Column(db.String(50)) name = db.Column(db.String(250)) birth_date = db.Column(db.Date()) gender = db.Column(db.String(1)) address = db.Column(db.String(250)) push_notification_token = db.Column(db.Text(), nullable=True) type = db.Column(db.Integer, db.ForeignKey('user_type.id')) program_id = db.Column(db.Integer, db.ForeignKey('program.id'), nullable=True) image_path = db.Column(db.Text(), nullable=True) course_sections = db.relationship('CourseSectionStudents', cascade="save-update, merge, delete") def set_fields(self, fields): self.username = fields.get('username') self.email = fields.get('email') self.password = self.password if self.password else fields.get( 'password') self.name = fields.get('name') self.gender = fields.get('gender') self.address = fields.get('address') self.birth_date = datetime.datetime.strptime( fields.get('birth_date'), "%m-%d-%Y").date() if fields.get('birth_date') else None self.program_id = fields.get('program_id') self.type = self.type if self.type else fields.get('type') def save_image(self, file): file_name, _format = str(file.filename).rsplit('.', 1) user_name, domain = str(self.email).split('@', maxsplit=1) if not _format in settings.ALLOWED_EXTENSIONS: _format = 'jpg' files = {'image_file': file} headers = {"enctype": "multipart/form-data"} r = requests.post( 'http://eliakimdjango.pythonanywhere.com/save_profile_image', files={ 'file': (user_name + str(random.randint(1000, 10000)) + '.' + _format, file, headers, { 'Expires': '0' }) }, data={'old_file_path': self.image_path}) # r = requests.post('http://127.0.0.1:2000/save_profile_image', # files={'file': (self.username + str(random.randint(1000, 10000)) + '.' + _format, file, # headers, {'Expires': '0'})}, # data={'old_file_path': self.image_path}) if r.status_code == 200: self.image_path = r.json()['result'] return True
class StudentAttendance(db.Model): id = db.Column(db.Integer, primary_key=True) section_time_id = db.Column(db.Integer, db.ForeignKey('section_times.id')) course_section_student_id = db.Column( db.Integer, db.ForeignKey('course_section_students.id')) status = db.Column(db.String(1)) section_time_date = db.Column(db.Date()) course_section_student = db.relationship("CourseSectionStudents")
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False) first_name = db.Column(db.String(20)) last_name = db.Column(db.String(20)) gender = db.Column(db.String(20), nullable=False) birth_date = db.Column(db.Date()) email = db.Column(db.String(120), unique=True, nullable=False) password = db.Column(db.String(60), nullable=False) image_file = db.Column(db.String(20), nullable=False, default='default.jpg') posts = db.relationship('Posts', backref='traveler', lazy='dynamic') followed = db.relationship('Follow', foreign_keys=[Follow.follower_id], backref=db.backref('follower', lazy='joined'), lazy='dynamic', cascade='all, delete-orphan') followers = db.relationship('Follow', foreign_keys=[Follow.followed_id], backref=db.backref('followed', lazy='joined'), lazy='dynamic', cascade='all, delete-orphan') subscribes = db.relationship('Subscribe', foreign_keys=[Subscribe.user_id], backref=db.backref('subscriber', lazy='joined'), lazy='dynamic', cascade='all, delete-orphan') notifications = db.relationship('Notification', foreign_keys=[Notification.user_id], backref=db.backref('user', lazy='joined'), lazy='dynamic', cascade='all, delete-orphan') def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')" def follow(self, user): if not self.is_following(user): f = Follow(follower=self, followed=user) db.session.add(f) def unfollow(self, user): f = self.followed.filter_by(followed_id=user.id).first() if f: db.session.delete(f) def is_following(self, user): if user.id is None: return False return self.followed.filter_by( followed_id=user.id).first() is not None def is_followed_by(self, user): if user.id is None: return False return self.followers.filter_by( follower_id=user.id).first() is not None
class CureCenterProfile(db.Model): id = db.Column(db.Integer, primary_key=True) member_id = db.Column(db.Integer, db.ForeignKey('member.id'), nullable=False) member_name = db.relationship('Member', uselist=False, lazy=True) nick_name = db.Column(db.String(30)) suffix = db.Column(db.String(30)) birthday = db.Column(db.Date()) group_id = db.Column(db.Integer, db.ForeignKey('group.id'), nullable=False) group = db.relationship('Group', backref='member_group', uselist=False, lazy=True) is_internal = db.Column(db.Boolean) is_qura_funded = db.Column(db.Boolean) image_url = db.Column(db.String(120)) onyen = db.Column(db.String(30)) staff_designation = db.Column(db.String(30)) positions = db.relationship('Position', backref='member', lazy=True) def __repr__(self): return f"<CureCenterProfile(member='{self.member_name}')>"
class User(db.Model, UserMixin): id = db.Column(db.Integer, unique=True, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False) first_name = db.Column(db.String(20)) last_name = db.Column(db.String(20)) gender = db.Column(db.String(20)) birth_date = db.Column(db.Date()) email = db.Column(db.String(120), unique=True, nullable=False) password = db.Column(db.String(60), nullable=False) image_file = db.Column(db.String(30)) bio = db.Column(db.String(240)) travels = db.relationship('Travel', backref='traveler', lazy='dynamic', cascade='all, delete-orphan', passive_deletes=True) followed = db.relationship('Follow', foreign_keys=[Follow.follower_id], backref=db.backref('follower', lazy='joined'), lazy='dynamic', cascade='all, delete-orphan', passive_deletes=True) followers = db.relationship('Follow', foreign_keys=[Follow.followed_id], backref=db.backref('followed', lazy='joined'), lazy='dynamic', cascade='all, delete-orphan', passive_deletes=True) subscribed_travels = db.relationship('Subscribe', backref=db.backref('subscriber', lazy='joined'), lazy='dynamic', cascade='all, delete-orphan', passive_deletes=True) def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')" def to_json(self): json_user = { 'id': self.id, 'username': self.username, 'followers': len(self.followers.all()), 'followed': len(self.followed.all()), 'subscribed_travels': len(self.subscribed_travels.all()), 'bio': self.bio, 'first_name': self.first_name, 'last_name': self.last_name } return json_user def get_posts_as_list(self): userPosts = [i.to_json() for i in self.travels] return userPosts def get_posts_as_list_with_sub(self, other_user): userPosts = [ i.to_json_with_sub_check(other_user) for i in self.travels ] return userPosts def getfollowers(self): userfollowers = [i.to_json() for i in self.followers] return userfollowers def getfollowings(self): userfollowed = [i.to_json() for i in self.followed] return userfollowed
class User(db.Model, UserMixin): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(20), unique=True, nullable=False) first_name = db.Column(db.String(20)) last_name = db.Column(db.String(20)) gender = db.Column(db.String(20), nullable=False) birth_date = db.Column(db.Date()) email = db.Column(db.String(120), unique=True, nullable=False) password = db.Column(db.String(60), nullable=False) image_file = db.Column(db.String(20), nullable=False, default='default.jpg') travels = db.relationship('Travel', backref='traveler', lazy='dynamic', cascade='all, delete-orphan') followed = db.relationship('Follow', foreign_keys=[Follow.follower_id], backref=db.backref('follower', lazy='joined'), lazy='dynamic', cascade='all, delete-orphan') followers = db.relationship('Follow', foreign_keys=[Follow.followed_id], backref=db.backref('followed', lazy='joined'), lazy='dynamic', cascade='all, delete-orphan') subcribed_posts = db.relationship('Subscriptions', backref='subcribed_posts', lazy='dynamic', cascade='all, delete-orphan') notifications = db.relationship('Notifications', backref='notifications', lazy='dynamic', cascade='all, delete-orphan') def __repr__(self): return f"User('{self.username}', '{self.email}', '{self.image_file}')" def update(self, data): for attr in data: setattr(self, attr, data[attr]) db.session.commit() def follow(self, user): if not self.is_following(user): f = Follow(follower=self, followed=user) db.session.add(f) db.session.commit() def unfollow(self, user): f = self.followed.filter_by(followed_id=user.id).first() if f: db.session.delete(f) db.session.commit() def is_following(self, user): if user.id is None: return False return self.followed.filter_by(followed_id=user.id).first() is not None def is_followed_by(self, user): if user.id is None: return False return self.followers.filter_by( follower_id=user.id).first() is not None # def get_followers(self): # User.query.join(User.followers).filter_by(followed_id=self.id).all() def is_subscribed(self, post): if post.id is None: return False return self.subcribed_posts.filter_by( post_id=post.id).first() is not None def subscribe(self, post): if not self.is_subscribed(post): f = Subscriptions(user_id=self.id, post_id=post.id) db.session.add(f) db.session.commit() def unsubscribe(self, post): found_post = self.subcribed_posts.filter_by(post_id=post.id).first() if found_post: db.session.delete(found_post) db.session.commit() ''' def show_notification(self, notification): found_notification = self.notifications.filter_by( notification_id = notification.notification_id).first() if found_notification.showed: Notifications.update().where( notification_id == found_notification.notification_id).values(showed=True) ''' def delete_notification(self, notification): found_notification = self.notifications.filter_by( notification_id=notification.notification_id).first() if found_notification: db.session.delete(found_notification) db.session.commit()