2021-07-23 17:35:29 +02:00
|
|
|
# encoding: utf-8
|
|
|
|
|
|
|
|
from app import admin, db
|
|
|
|
from app.model.model import Model, View
|
|
|
|
|
|
|
|
|
|
|
|
class MembershipModel(db.Model, Model):
|
|
|
|
__tablename__ = "membership"
|
|
|
|
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("memberships", lazy="dynamic")
|
|
|
|
)
|
|
|
|
role_id = db.Column(db.Integer, db.ForeignKey("role.id"))
|
|
|
|
role = db.relationship(
|
|
|
|
"RoleModel", backref=db.backref("memberships", lazy="dynamic")
|
|
|
|
)
|
2021-07-24 10:01:50 +02:00
|
|
|
start = db.Column(db.Date)
|
|
|
|
end = db.Column(db.Date)
|
2021-07-23 17:35:29 +02:00
|
|
|
entity_id = db.Column(db.Integer, db.ForeignKey("entity.id"))
|
|
|
|
entity = db.relationship(
|
|
|
|
"EntityModel", backref=db.backref("memberships", lazy="dynamic")
|
|
|
|
)
|
|
|
|
|
|
|
|
@property
|
|
|
|
def timestamp(self):
|
|
|
|
if self.end is None:
|
|
|
|
return 9999999999 + self.start.timestamp()
|
|
|
|
else:
|
|
|
|
return self.end.timestamp()
|
|
|
|
|
|
|
|
|
|
|
|
class AdminView(View):
|
|
|
|
column_default_sort = [("representative.name", False), ("entity.name", False)]
|
|
|
|
column_filters = ["representative.name", "entity.name", "role.name"]
|
|
|
|
|
|
|
|
|
|
|
|
admin.add_view(AdminView(MembershipModel, db.session, name="Membership", category="CRUD"))
|