class University(db.Model, AutoSerialize, ExpandedAttr): __tablename__ = 'attrs_university' id = db.Column(db.String(8), primary_key=True) school_type_id = db.Column(db.String(1)) school_type_en = db.Column(db.String(32)) school_type_pt = db.Column(db.String(32)) yu = db.relationship("Yu", backref='university', lazy='dynamic') yuc = db.relationship("Yuc", backref='university', lazy='dynamic') ybu = db.relationship("Ybu", backref='university', lazy='dynamic') ybuc = db.relationship("Ybuc", backref='university', lazy='dynamic') def icon(self): return "/static/img/icons/university/university_{}.png".format( self.school_type_id.lower()) def school_type(self): lang = getattr(g, "locale", "en") return getattr(self, "school_type_" + lang) def url(self): return "/profiles/university/{}/".format(self.id) def __repr__(self): return '<University %r>' % (self.name_en)
class Short(db.Model): __tablename__ = 'apps_short' slug = db.Column(db.String(30), unique=True, primary_key=True) long_url = db.Column(db.String(255), unique=True) created = db.Column(db.DateTime, default=datetime.now) clicks = db.Column(db.Integer, default=0) @staticmethod def make_unique_slug(long_url): # Helper to generate random URL string # Thx EJF: https://github.com/ericjohnf/urlshort def id_generator(size=6, chars=string.ascii_uppercase + string.digits): return ''.join(random.choice(chars) for x in range(size)) # test if it already exists short = Short.query.filter_by(long_url=long_url).first() if short: return short.slug else: while True: new_slug = id_generator() if Short.query.filter_by(slug=new_slug).first() == None: break return new_slug def __repr__(self): return "<ShortURL: '%s'>" % self.long_url
class Wld(db.Model, AutoSerialize, BasicAttr): __tablename__ = 'attrs_wld' id = db.Column(db.String(5), primary_key=True) id_2char = db.Column(db.String(2)) id_3char = db.Column(db.String(3)) id_num = db.Column(db.Integer(11)) id_mdic = db.Column(db.Integer(11)) ymw = db.relationship("Ymw", backref='wld', lazy='dynamic') ympw = db.relationship("Ympw", backref='wld', lazy='dynamic') ymbw = db.relationship("Ymbw", backref='wld', lazy='dynamic') ymbpw = db.relationship("Ymbpw", backref='wld', lazy='dynamic') def icon(self): if self.id == "all": return "/static/img/icons/wld/wld_sabra.png" else: return "/static/img/icons/wld/wld_%s.png" % (self.id) def url(self): if self.id == "sabra": return "/profiles/bra/all/" else: return "/profiles/wld/{}/".format(self.id) def __repr__(self): return '<Wld %r>' % (self.id_3char)
class Flag(db.Model): __tablename__ = 'ask_reply_flag' reply_id = db.Column(db.Integer, db.ForeignKey(Reply.id), primary_key = True) user_id = db.Column(db.Integer, db.ForeignKey(User.id), primary_key = True) def __repr__(self): return '<Flag %r by user:%r>' % (self.reply_id, self.user_id)
class Yu(Hedu): __tablename__ = 'hedu_yu' year = db.Column(db.Integer(4), primary_key=True) university_id = db.Column(db.String(5), db.ForeignKey(University.id), primary_key=True) def __repr__(self): return '<Yu {}.{}>'.format(self.year, self.university_id)
class Yc_hedu(Hedu): __tablename__ = 'hedu_yc' year = db.Column(db.Integer(4), primary_key=True) course_hedu_id = db.Column(db.String(6), db.ForeignKey(Course_hedu.id), primary_key=True) course_hedu_id_len = db.Column(db.Integer(1)) def __repr__(self): return '<Ybc {}.{}.{}>'.format(self.year, self.bra_id, self.course_hedu_id)
class Vote(db.Model): __tablename__ = 'ask_vote' type = db.Column(db.SmallInteger, primary_key = True, default=TYPE_QUESTION) type_id = db.Column(db.Integer, primary_key = True) user_id = db.Column(db.Integer, db.ForeignKey(User.id), primary_key = True) def __repr__(self): return '<Vote %r:%r by:%r>' % (self.type, self.type_id, self.user_id)
class Yb(db.Model, AutoSerialize): __tablename__ = 'attrs_yb' year = db.Column(db.Integer(4), primary_key=True) bra_id = db.Column(db.String(10), db.ForeignKey(Bra.id), primary_key=True) population = db.Column(db.Integer) def __repr__(self): return '<Yb %r.%r>' % (self.year, self.bra_id)
class Crosswalk_oc(db.Model): __tablename__ = 'crosswalk_oc' cbo_id = db.Column(db.String(4), db.ForeignKey(Cbo.id), primary_key = True) course_hedu_id = db.Column(db.String(6), db.ForeignKey(Course_hedu.id), primary_key = True) def get_id(self, dataset): if dataset == "rais": return self.course_hedu_id return self.cbo_id
class Crosswalk_pi(db.Model): __tablename__ = 'crosswalk_pi' hs_id = db.Column(db.String(6), primary_key=True) cnae_id = db.Column(db.String(5), primary_key=True) def get_id(self, dataset): if dataset == "rais": return self.hs_id return self.cnae_id
class KeyWord(db.Model): __tablename__ = 'scholar_keyword' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50)) def __init__(self, name=None): self.name = name def __repr__(self): return '<Keyword %r>' % (self.name)
class PostSubject(db.Model): __tablename__ = 'blog_subject' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50)) def __init__(self, name=None): self.name = name def __repr__(self): return '<PostSubject %r>' % (self.name)
class Starred(db.Model, AutoSerialize): __tablename__ = 'account_starred' app_id = db.Column(db.String(80), primary_key=True) user_id = db.Column(db.Integer, db.ForeignKey(User.id), primary_key=True) app_name = db.Column(db.String(255)) timestamp = db.Column(db.DateTime) def __repr__(self): return '<App %r starred by %r>' % (self.app_id, self.user.nickname)
class Yb_sc(Sc): __tablename__ = 'sc_yb' bra_id = db.Column(db.String(9), db.ForeignKey(Bra.id), primary_key=True) num_schools = db.Column(db.Integer(11)) bra_id_len = db.Column(db.Integer(1)) def __repr__(self): return '<Yb {0}.{1}>'.format(self.year, self.bra_id)
class Yc_sc(Sc): __tablename__ = 'sc_yc' course_sc_id = db.Column(db.String(5), db.ForeignKey(Course_sc.id), primary_key=True) course_sc_id_len = db.Column(db.Integer(1)) def __repr__(self): return '<Ybc %d.%s.%s>' % (self.year, self.course_sc_id)
class Bs(db.Model, AutoSerialize): __tablename__ = 'attrs_bs' bra_id = db.Column(db.String(10), db.ForeignKey(Bra.id), primary_key=True) stat_id = db.Column(db.String(20), db.ForeignKey(Stat.id), primary_key=True) stat_val = db.Column(db.String(40)) def __repr__(self): return "<Bs {}.{}>".format(self.bra_id, self.stat_id)
class Ybi_reqs(db.Model, AutoSerialize): __tablename__ = 'rais_ybi_required' year = db.Column(db.Integer(4), primary_key=True) bra_id = db.Column(db.String(8), db.ForeignKey(Bra.id), primary_key=True) cnae_id = db.Column(db.String(5), db.ForeignKey(Cnae.id), primary_key=True) required_bras = db.Column(db.String(255)) def __repr__(self): return '<Ybi_reqs %d.%s.%s>' % (self.year, self.bra_id, self.cnae_id)
class AuthorScholar(db.Model): __tablename__ = 'scholar_author' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(500)) article_id = db.Column(db.Integer, ForeignKey('scholar_article.id')) def __init__(self, name=None): self.name = name def __repr__(self): return '<AuthorScholar %r>' % (self.name)
class Yb_hedu(Hedu): __tablename__ = 'hedu_yb' year = db.Column(db.Integer(4), primary_key=True) bra_id = db.Column(db.String(9), db.ForeignKey(Bra.id), primary_key=True) num_universities = db.Column(db.Integer(11)) bra_id_len = db.Column(db.Integer(1)) def __repr__(self): return '<Yb {}.{}>'.format(self.year, self.bra_id)
class Ybo(BaseRais, db.Model, AutoSerialize): __tablename__ = 'rais_ybo' year = db.Column(db.Integer(4), primary_key=True) bra_id = db.Column(db.String(8), db.ForeignKey(Bra.id), primary_key=True) cbo_id = db.Column(db.String(6), db.ForeignKey(Cbo.id), primary_key=True) bra_id_len = db.Column(db.Integer(1)) cbo_id_len = db.Column(db.Integer(1)) def __repr__(self): return '<Ybo %d.%s.%s>' % (self.year, self.bra_id, self.cbo_id)
class Yio(BaseRais, db.Model, AutoSerialize): __tablename__ = 'rais_yio' cnae_id = db.Column(db.String(5), db.ForeignKey(Cnae.id), primary_key=True) cbo_id = db.Column(db.String(6), db.ForeignKey(Cbo.id), primary_key=True) importance = db.Column(db.Float()) cnae_id_len = db.Column(db.Integer(1)) cbo_id_len = db.Column(db.Integer(1)) def __repr__(self): return '<Yio %d.%s.%s>' % (self.year, self.cnae_id, self.cbo_id)
class Ybs(db.Model, AutoSerialize): __tablename__ = 'attrs_ybs' year = db.Column(db.Integer(4), primary_key=True) bra_id = db.Column(db.String(10), db.ForeignKey(Bra.id), primary_key=True) stat_id = db.Column(db.String(20), db.ForeignKey(Stat.id), primary_key=True) stat_val = db.Column(db.Float) def __repr__(self): return "<Ybs {}.{}.{}>".format(self.year, self.bra_id, self.stat_id)
class PublicationSubject(db.Model): __tablename__ = 'news_subject' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(50)) language = db.Column(db.String(2)) def __init__(self, name=None, language=None): self.name = name self.language = language def __repr__(self): return '<PublicationSubject %r (%r)>' % (self.name, self.language)
class Yuc(Hedu): __tablename__ = 'hedu_yuc' year = db.Column(db.Integer(4), primary_key=True) university_id = db.Column(db.String(5), db.ForeignKey(University.id), primary_key=True) course_hedu_id = db.Column(db.Integer(6), db.ForeignKey(Course_hedu.id), primary_key=True) course_hedu_id_len = db.Column(db.Integer(1)) def __repr__(self): return '<Yuc {}.{}.{}>'.format(self.year, self.university_id, self.course_hedu_id)
class HelpSubject(db.Model): __tablename__ = 'help_subject' id = db.Column(db.Integer, primary_key=True) name_en = db.Column(db.String(50)) name_pt = db.Column(db.String(50)) def name(self): lang = getattr(g, "locale", "en") return title_case(getattr(self, "name_" + lang)) def __repr__(self): return '<Subject %r>' % (self.name())
class SearchSelector(db.Model): __tablename__ = 'search_selector' id = db.Column(db.String(50), primary_key=True) name_pt = db.Column(db.String(50)) name_en = db.Column(db.String(50)) def name(self): lang = getattr(g, "locale", "en") return title_case(getattr(self, "name_" + lang)) def __repr__(self): return '<SearchSelector %r>' % (self.name)
class SearchProfile(db.Model): __tablename__ = 'search_profile' id = db.Column(db.String(50), primary_key=True) name_pt = db.Column(db.String(50)) name_en = db.Column(db.String(50)) questions = db.relationship("SearchQuestion", backref='search_question') def name(self): lang = getattr(g, "locale", "en") return title_case(getattr(self, "name_" + lang)) def __repr__(self): return '<SearchProfile %r>' % (self.name)
class Yoo(db.Model, AutoSerialize): __tablename__ = 'attrs_yoo' year = db.Column(db.Integer(4), primary_key=True) cbo_id = db.Column(db.String(6), db.ForeignKey(Cbo.id), primary_key=True) cbo_id_target = db.Column(db.String(6), db.ForeignKey(Cbo.id), primary_key=True) prox_bra = db.Column(db.Float) def __repr__(self): return "<Yoo {}.{}.{}>".format(self.year, self.cbo_id, self.cbo_id_target)
class Yww(db.Model, AutoSerialize): __tablename__ = 'attrs_yww' year = db.Column(db.Integer(4), primary_key=True) wld_id = db.Column(db.String(5), db.ForeignKey(Wld.id), primary_key=True) wld_id_target = db.Column(db.String(5), db.ForeignKey(Wld.id), primary_key=True) prox_bra = db.Column(db.Float) def __repr__(self): return "<Yww {}.{}.{}>".format(self.year, self.wld_id, self.wld_id_target)
class Ybs(Sc): __tablename__ = 'sc_ybs' bra_id = db.Column(db.String(9), db.ForeignKey(Bra.id), primary_key=True) school_id = db.Column(db.String(8), db.ForeignKey(School.id), primary_key=True) bra_id_len = db.Column(db.Integer(1)) def __repr__(self): return '<Ybs %d.%s.%s>' % (self.year, self.bra_id, self.school_id)