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)
|
query = query.order_by(RepresentativeModel.last_name)
|
||||||
print(request.args.get("name"))
|
|
||||||
print(query)
|
|
||||||
return [
|
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
|
for representative
|
||||||
in query.paginate(
|
in query.paginate(
|
||||||
page, current_app.config["API_PER_PAGE"], error_out=False
|
page, current_app.config["API_PER_PAGE"], error_out=False
|
||||||
|
|
|
@ -24,7 +24,10 @@ class MembershipModel(db.Model, Model):
|
||||||
|
|
||||||
|
|
||||||
class AdminView(View):
|
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(
|
admin.add_view(
|
||||||
|
|
|
@ -3,6 +3,8 @@
|
||||||
from app import admin, db
|
from app import admin, db
|
||||||
from app.model.model import Model, View
|
from app.model.model import Model, View
|
||||||
|
|
||||||
|
from sqlalchemy.ext.hybrid import hybrid_property
|
||||||
|
|
||||||
|
|
||||||
class RepresentativeModel(db.Model, Model):
|
class RepresentativeModel(db.Model, Model):
|
||||||
__tablename__ = "representative"
|
__tablename__ = "representative"
|
||||||
|
@ -23,8 +25,12 @@ class RepresentativeModel(db.Model, Model):
|
||||||
)
|
)
|
||||||
picture = db.Column(db.String(200))
|
picture = db.Column(db.String(200))
|
||||||
|
|
||||||
|
@hybrid_property
|
||||||
|
def full_name(self):
|
||||||
|
return self.first_name + " " + self.last_name
|
||||||
|
|
||||||
def __repr__(self):
|
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):
|
class AdminView(View):
|
||||||
|
|
Loading…
Reference in New Issue