1
0
mirror of https://gitlab.crans.org/bde/nk20 synced 2025-06-21 09:58:23 +02:00

Add PDF member lists

This commit is contained in:
Yohann D'ANELLO
2020-04-23 18:28:16 +02:00
parent 38b32b0623
commit b81f186866
15 changed files with 427 additions and 166 deletions

View File

@ -36,13 +36,15 @@ class PermissionBackend(ModelBackend):
# Unauthenticated users have no permissions
return Permission.objects.none()
return Permission.objects.annotate(club=F("rolepermissions__role__membership__club")) \
.filter(
rolepermissions__role__membership__user=user,
rolepermissions__role__membership__date_start__lte=datetime.date.today(),
rolepermissions__role__membership__date_end__gte=datetime.date.today(),
type=t,
mask__rank__lte=get_current_session().get("permission_mask", 0),
return Permission.objects.annotate(
club=F("rolepermissions__role__membership__club"),
membership=F("rolepermissions__role__membership"),
).filter(
rolepermissions__role__membership__user=user,
rolepermissions__role__membership__date_start__lte=datetime.date.today(),
rolepermissions__role__membership__date_end__gte=datetime.date.today(),
type=t,
mask__rank__lte=get_current_session().get("permission_mask", 0),
).distinct()
@staticmethod
@ -55,6 +57,7 @@ class PermissionBackend(ModelBackend):
:return: A generator of the requested permissions
"""
clubs = {}
memberships = {}
for permission in PermissionBackend.get_raw_permissions(user, type):
if not isinstance(model.model_class()(), permission.model.model_class()) or not permission.club:
@ -64,9 +67,16 @@ class PermissionBackend(ModelBackend):
clubs[permission.club] = club = Club.objects.get(pk=permission.club)
else:
club = clubs[permission.club]
if permission.membership not in memberships:
memberships[permission.membership] = membership = Membership.objects.get(pk=permission.membership)
else:
membership = memberships[permission.membership]
permission = permission.about(
user=user,
club=club,
membership=membership,
User=User,
Club=Club,
Membership=Membership,

View File

@ -1470,7 +1470,7 @@
"wei",
"weiregistration"
],
"query": "{\"user\": [\"user\"], \"wei\": [\"club\"], \"wei__membership_start__lte\": [\"today\"], \"wei__year\": [\"today\", \"year\"]}",
"query": "{\"user\": [\"user\"], \"wei\": [\"club\"], \"wei__membership_start__lte\": [\"today\"]}",
"type": "view",
"mask": 1,
"field": "",
@ -1882,6 +1882,36 @@
"description": "View my own WEI membership if I am an old member or if the WEI is past"
}
},
{
"model": "permission.permission",
"pk": 115,
"fields": {
"model": [
"wei",
"weimembership"
],
"query": "{\"wei\": [\"club\"], \"bus\": [\"membership\", \"weimembership\", \"bus\"]}",
"type": "view",
"mask": 1,
"field": "",
"description": "View the members of the bus"
}
},
{
"model": "permission.permission",
"pk": 116,
"fields": {
"model": [
"wei",
"weimembership"
],
"query": "{\"wei\": [\"club\"], \"team\": [\"membership\", \"weimembership\", \"team\"]}",
"type": "view",
"mask": 1,
"field": "",
"description": "View the members of the team"
}
},
{
"model": "permission.rolepermissions",
"pk": 1,
@ -2230,5 +2260,25 @@
113
]
}
},
{
"model": "permission.rolepermissions",
"pk": 13,
"fields": {
"role": 13,
"permissions": [
115
]
}
},
{
"model": "permission.rolepermissions",
"pk": 14,
"fields": {
"role": 14,
"permissions": [
116
]
}
}
]