# encoding: utf-8 from app import admin, db from app.model.model import Model, View from app.model.matter import MatterModel from app.model.representative import RepresentativeModel class StanceModel(db.Model, Model): __tablename__ = "stance" id = db.Column(db.Integer, primary_key=True) representative_id = db.Column(db.Integer, db.ForeignKey("representative.id")) representative = db.relationship( "RepresentativeModel", backref=db.backref("stances", lazy="dynamic") ) matter_id = db.Column(db.Integer, db.ForeignKey("matter.id"), nullable=True) matter = db.relationship( "MatterModel", backref=db.backref("stances", lazy="dynamic") ) date = db.Column(db.Date) subject = db.Column(db.String(2000)) extract = db.Column(db.Text) source_url = db.Column(db.String(2000)) active = db.Column(db.Boolean, default=False) def __repr__(self): return self.representative.name + " : " + self.extract[:50] @property def extract_html(self): return "

" + self.extract.replace("\n", "

") + "

" @property def extract_chapo(self): return " ".join((self.extract + " ")[:60].split(" ")[:-1]) class AdminView(View): column_default_sort = ("date", False) column_exclude_list = ["extract"] column_filters = ["representative.name", "subject", "date"] admin.add_view(AdminView(StanceModel, db.session, name="Stance", category="CRUD"))