mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-08-28 12:03:53 +02:00
Add some data to report
This commit is contained in:
parent
1e43974a11
commit
9ac8a3e8bc
3 changed files with 83 additions and 29 deletions
|
@ -151,11 +151,23 @@ class MemberExport(BaseExport):
|
|||
if not portfolio:
|
||||
return {}
|
||||
|
||||
# Union the two querysets to combine UserPortfolioPermission + invites
|
||||
permissions = UserPortfolioPermissionModelDict.get_annotated_queryset(portfolio)
|
||||
invitations = PortfolioInvitationModelDict.get_annotated_queryset(portfolio)
|
||||
objects = permissions.union(invitations)
|
||||
return convert_queryset_to_dict(objects, is_model=False)
|
||||
# Union the two querysets to combine UserPortfolioPermission + invites.
|
||||
# Unions cannot have a col mismatch, so we must clamp what is returned here.
|
||||
shared_columns = [
|
||||
"id",
|
||||
"first_name",
|
||||
"last_name",
|
||||
"email_display",
|
||||
"last_active",
|
||||
"roles",
|
||||
"additional_permissions_display",
|
||||
"member_display",
|
||||
"domain_info",
|
||||
"source",
|
||||
]
|
||||
permissions = UserPortfolioPermissionModelDict.get_annotated_queryset(portfolio, csv_report=True).values(*shared_columns)
|
||||
invitations = PortfolioInvitationModelDict.get_annotated_queryset(portfolio, csv_report=True).values(*shared_columns)
|
||||
return convert_queryset_to_dict(permissions.union(invitations), is_model=False)
|
||||
|
||||
@classmethod
|
||||
def get_columns(cls):
|
||||
|
@ -183,18 +195,32 @@ class MemberExport(BaseExport):
|
|||
"""
|
||||
|
||||
is_admin = UserPortfolioRoleChoices.ORGANIZATION_ADMIN in (model.get("roles") or [])
|
||||
domains = ",".join(model.get("domain_info")) if model.get("domain_info") else ""
|
||||
FIELDS = {
|
||||
"Email": model.get("email"),
|
||||
"Email": model.get("email_display"),
|
||||
"Organization admin": is_admin,
|
||||
"Invited by": "TODO",
|
||||
"Last active": "TODO",
|
||||
"Invited by": model.get("source"),
|
||||
"Last active": model.get("last_active"),
|
||||
"Domain requests": "TODO",
|
||||
"Member management": "TODO",
|
||||
"Domain management": "TODO",
|
||||
"Number of domains": "TODO",
|
||||
"Domains": "TODO",
|
||||
# Quote enclose the domain list
|
||||
# Note: this will only enclose when more than two items exist
|
||||
"Domains": domains,
|
||||
}
|
||||
|
||||
# "id",
|
||||
# "first_name",
|
||||
# "last_name",
|
||||
# "email_display",
|
||||
# "last_active",
|
||||
# "roles",
|
||||
# "additional_permissions_display",
|
||||
# "member_display",
|
||||
# "domain_info",
|
||||
# "source",
|
||||
|
||||
row = [FIELDS.get(column, "") for column in columns]
|
||||
return row
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue