fix: representative API
This commit is contained in:
parent
77d0b98641
commit
8a48b73eae
|
@ -22,10 +22,45 @@ class RepresentativesApi(Resource):
|
|||
),
|
||||
))
|
||||
query = query.order_by(RepresentativeModel.last_name)
|
||||
print(request.args.get("name"))
|
||||
print(query)
|
||||
return [
|
||||
representative.serialize()
|
||||
{
|
||||
"first_name": representative.first_name,
|
||||
"last_name": representative.last_name,
|
||||
"full_name": representative.full_name,
|
||||
"picture": representative.picture,
|
||||
"active": True,
|
||||
"memberships": [
|
||||
{
|
||||
"reference": membership.reference,
|
||||
"source": membership.entity.source,
|
||||
"start_date": membership.start.strftime("%Y-%m-%d"),
|
||||
"end_date": membership.end.strftime("%Y-%m-%d") if membership.end is not None else None,
|
||||
"entity": {
|
||||
"reference": membership.entity.reference,
|
||||
"type": {
|
||||
"code": membership.entity.type.code,
|
||||
"name": membership.entity.type.name,
|
||||
},
|
||||
"name": membership.entity.name,
|
||||
},
|
||||
"role": {
|
||||
"code": membership.role.code,
|
||||
"name": membership.role.name,
|
||||
},
|
||||
}
|
||||
for membership
|
||||
in representative.memberships
|
||||
|
||||
],
|
||||
"references": [
|
||||
{
|
||||
"reference": reference.reference,
|
||||
"source": reference.source.name,
|
||||
}
|
||||
for reference
|
||||
in representative.references
|
||||
],
|
||||
}
|
||||
for representative
|
||||
in query.paginate(
|
||||
page, current_app.config["API_PER_PAGE"], error_out=False
|
||||
|
|
|
@ -24,7 +24,10 @@ class MembershipModel(db.Model, Model):
|
|||
|
||||
|
||||
class AdminView(View):
|
||||
column_filters = ["entity.name", "entity.type.name", "role.name", "start", "end", "active"]
|
||||
column_filters = [
|
||||
"entity.name", "entity.type.name", "representative.full_name", "role.name",
|
||||
"start", "end", "active",
|
||||
]
|
||||
|
||||
|
||||
admin.add_view(
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
from app import admin, db
|
||||
from app.model.model import Model, View
|
||||
|
||||
from sqlalchemy.ext.hybrid import hybrid_property
|
||||
|
||||
|
||||
class RepresentativeModel(db.Model, Model):
|
||||
__tablename__ = "representative"
|
||||
|
@ -23,8 +25,12 @@ class RepresentativeModel(db.Model, Model):
|
|||
)
|
||||
picture = db.Column(db.String(200))
|
||||
|
||||
@hybrid_property
|
||||
def full_name(self):
|
||||
return self.first_name + " " + self.last_name
|
||||
|
||||
def __repr__(self):
|
||||
return f"{self.last_name.upper()} {self.first_name.capitalize()}"
|
||||
return f"{self.first_name.capitalize()} {self.last_name.upper()}"
|
||||
|
||||
|
||||
class AdminView(View):
|
||||
|
|
Loading…
Reference in New Issue