class Tutorial(db.Model): __tablename__ = 'tutorial' __searchable__ = ['title'] # query_class = ArticleQuery id = db.Column('tutor_id', db.String, primary_key=True, default=uuid_gen) user_id = db.Column(db.String, db.ForeignKey('users.user_id')) title = db.Column(db.String(60)) url = db.Column(db.String(300)) type = db.Column(db.String(10)) username = db.Column(db.String(20)) like = db.Column(db.Integer, default=0) slug = db.Column(db.String(50), index=True) content = db.Column(db.Text()) # title_vector = db.Column(TSVectorType('title')) __table_args__ = (db.UniqueConstraint('user_id', 'slug'), {}) def __init__(self, title, url, name="tutorial"): self.title = title self.url = url self.type = name def get_id(self): return self.id def get_url(self): return self.url def get_title(self): return self.title
class TempUniversity(db.Model): __tablename__ = 'temp_university' id = db.Column('university_id', db.String, primary_key=True, default=uuid_gen) name = db.Column(db.String(70), unique=True) info = db.Column(JSON) def __init__(self, name, info): self.name = name self.info = info
class ReciteWord(db.Model): __tablename__ = 'ReciteWord' id = db.Column('recite_id', db.String, primary_key=True, default=uuid_gen) user_id = db.Column(db.String, db.ForeignKey('users.user_id')) book_name = db.Column(db.String(30)) data = db.Column(JSON) def __init__(self, user_id, book_name, json): self.user_id = user_id self.book_name = book_name self.data = json def get_data(self): return self.data
class EntryMastery(db.Model): __tablename__ = 'entry_mastery' id = db.Column('entry_id', db.String, primary_key=True, default=str(uuid.uuid4())) user_id = db.Column(db.String, db.ForeignKey('users.user_id')) tutor_id = db.Column(db.String, db.ForeignKey('tutorial.tutor_id')) name = db.Column(db.String(60)) mastery = db.Column(db.Integer, default=1) def __init__(self, tutor_id): self.tutor_id = tutor_id self.mastery = 0
class Professor(db.Model): __tablename__ = 'Professor' id = db.Column('professor_id', db.String, primary_key=True, default=uuid_gen) name = db.Column(db.String(30)) school = db.Column(db.String(60)) major = db.Column(db.String(4)) school_url = db.Column(db.String(150)) home_page = db.Column(db.String(150)) position = db.Column(db.Boolean) term = db.Column(db.String(20)) interests = db.relationship('Interests', secondary=professor_interests_table, backref=db.backref('Professor', lazy='dynamic')) __table_args__ = (UniqueConstraint('name', 'school', 'major', name='_professor_uniq'), ) def __init__(self, name, school, major): self.name = name self.school = school self.major = major
class Episode(db.Model): __tablename__ = 'episode' id = db.Column('epis_id', db.String, primary_key=True, default=uuid_gen) user_id = db.Column(db.String, db.ForeignKey('users.user_id')) name = db.Column(db.String(30)) no = db.Column(db.Integer) data = db.Column(JSON) def __init__(self, user_id, name, no, json): self.user_id = user_id self.name = name self.no = no self.data = json def get_data(self): return self.data
class CrawlTask(db.Model): __tablename__ = 'interests_task' id = db.Column('task_id', db.String, primary_key=True, default=uuid_gen) school = db.Column(db.String(70)) major = db.Column(db.String(4)) school_url = db.Column(db.String(150)) example = db.Column(db.String(150)) __table_args__ = (UniqueConstraint('school', 'major', name='_school_major_uniq'), ) def __init__(self, school, major, url, example): self.school = school self.major = major self.school_url = url self.example = example
class Interests(db.Model): __tablename__ = 'Interests' id = db.Column('interests_id', db.String, primary_key=True, default=uuid_gen) name = db.Column(db.String(50)) zh_name = db.Column(db.String(20)) major = db.Column(db.String(4)) category_name = db.Column(db.String(50), default='') __table_args__ = (UniqueConstraint('name', 'major', name='_interests_uniq'), ) def __init__(self, name, major): self.name = name self.major = major
class MindMap(db.Model): __tablename__ = 'mindmap' id = db.Column('mindmap_id', db.String, primary_key=True, default=str(uuid.uuid4())) user_id = db.Column(db.String, db.ForeignKey('users.user_id')) title = db.Column(db.String(60)) map = db.Column(JSON) last_edit = db.Column('last_edit', db.DateTime) def __init__(self, title, json): self.title = title self.map = json self.last_edit = datetime.now() def get_id(self): return self.id def get_user_id(self): return str(self.user_id)
class User(db.Model): __tablename__ = "users" id = db.Column('user_id', db.String, primary_key=True, default=uuid_gen) username = db.Column('username', db.String(20), unique=True, index=True) password = db.Column('password', db.String(250)) email = db.Column('email', db.String(50), unique=True, index=True) registered_on = db.Column('registered_on', db.DateTime) last_edit = db.Column('last_edit', db.DateTime) def __init__(self , username ,password , email): self.username = username self.password = generate_password_hash(password) self.email = email self.registered_on = datetime.now() def set_password(self , password): self.password = generate_password_hash(password) def check_password(self , password): return check_password_hash(self.password , password) def is_authenticated(self): return True def is_active(self): return True def is_anonymous(self): return False def get_id(self): return unicode(self.id) def get_name(self): return unicode(self.username) def check_frequence(self, now): if not self.last_edit: return True differ = (now - self.last_edit).seconds if differ >= 60: return True else: return False def avatar(self, size): return 'http://www.gravatar.com/avatar/' + md5(self.email).hexdigest() + '?d=mm&s=' + str(size) def __repr__(self): return '<User %r>' % (self.username)
class Account(db.Model): __tablename__ = "account" id = db.Column('user_id', db.String, primary_key=True, default=uuid_gen) appname = db.Column('appname', db.String(50), index=True) username = db.Column('username', db.String(20), index=True) password = db.Column('password', db.String(250)) hint = db.Column('hint', db.String(100), index=True) registered_on = db.Column('registered_on', db.DateTime) __table_args__ = (UniqueConstraint('appname', 'username', name='_app_user'), ) def __init__(self, appname, username, password, hint): self.appname = appname self.username = username self.password = generate_password_hash(password) self.hint = hint self.registered_on = datetime.now() def set_password(self, password): self.password = generate_password_hash(password) def check_password(self, password): return check_password_hash(self.password, password) def is_authenticated(self): return True def is_active(self): return True def is_anonymous(self): return False def get_id(self): return unicode(self.id) def get_name(self): return unicode(self.username) def __repr__(self): return u'<Account %r>' % self.username
class TempCollege(db.Model): __tablename__ = 'temp_college' id = db.Column('college_id', db.String, primary_key=True, default=uuid_gen) name = db.Column(db.String(70)) degree = db.Column(db.Integer) major = db.Column(db.String(10)) program_name = db.Column(db.String(70)) site_url = db.Column(db.String(250)) gpa = db.Column(db.Float) gpa_url = db.Column(db.String(250)) tuition = db.Column(db.Float) tuition_url = db.Column(db.String(250)) fall = db.Column(db.String(20)) spring = db.Column(db.String(20)) deadline_url = db.Column(db.String(250)) toefl = db.Column(db.Integer) ielts = db.Column(db.Float) eng_url = db.Column(db.String(250)) gre = db.Column(db.String(20)) gre_url = db.Column(db.String(250)) rl = db.Column(db.String(10)) evalue = db.Column(db.String(10)) finance = db.Column(db.String(10)) docum_url = db.Column(db.String(250)) int_docum_url = db.Column(db.String(250)) info = db.Column(JSON) def __init__(self, name, degree, major, site_url): self.name = name self.degree = degree self.major = major self.site_url = site_url
class College(db.Model): __tablename__ = 'college' id = db.Column('college_id', db.String, primary_key=True, default=uuid_gen) name = db.Column(db.String(70)) degree = db.Column(db.Integer) major = db.Column(db.String(10)) program_name = db.Column(db.String(70)) site_url = db.Column(db.String(250)) gpa = db.Column(db.Float) gpa_url = db.Column(db.String(250)) tuition = db.Column(db.Float) tuition_url = db.Column(db.String(250)) fall = db.Column(db.String(20)) spring = db.Column(db.String(20)) deadline_url = db.Column(db.String(250)) toefl = db.Column(db.Integer) ielts = db.Column(db.Float) eng_url = db.Column(db.String(250)) gre = db.Column(db.String(20)) gre_url = db.Column(db.String(250)) rl = db.Column(db.String(10)) evalue = db.Column(db.String(10)) finance = db.Column(db.String(10)) docum_url = db.Column(db.String(250)) int_docum_url = db.Column(db.String(250)) info = db.Column(JSON) __table_args__ = (UniqueConstraint('name', 'degree', 'major', 'program_name', name='_degree_major'), ) def __init__(self, name, degree, major, site_url, pname=''): self.name = name self.degree = degree self.major = major self.site_url = site_url self.program_name = pname def set(self, college): self.gpa = college.gpa self.gpa_url = college.gpa_url self.tuition = college.tuition self.tuition_url = college.tuition_url self.fall = college.fall self.spring = college.spring self.deadline_url = college.deadline_url self.toefl = college.toefl self.ielts = college.ielts self.eng_url = college.eng_url self.gre = college.gre self.gre_url = college.gre_url self.rl = college.rl self.evalue = college.evalue self.finance = college.finance self.docum_url = college.docum_url self.int_docum_url = college.int_docum_url self.info = college.info
__tablename__ = 'temp_university' id = db.Column('university_id', db.String, primary_key=True, default=uuid_gen) name = db.Column(db.String(70), unique=True) info = db.Column(JSON) def __init__(self, name, info): self.name = name self.info = info professor_interests_table = db.Table( 'professor_interests', db.Model.metadata, db.Column('professor_id', db.String, db.ForeignKey('Professor.professor_id')), db.Column('interests_id', db.String, db.ForeignKey('Interests.interests_id'))) class Professor(db.Model): __tablename__ = 'Professor' id = db.Column('professor_id', db.String, primary_key=True, default=uuid_gen) name = db.Column(db.String(30)) school = db.Column(db.String(60)) major = db.Column(db.String(4)) school_url = db.Column(db.String(150)) home_page = db.Column(db.String(150))