From 4108babdb46503a8ae05585de97147a1de61a08c Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Thu, 7 May 2020 21:14:36 +0200 Subject: [PATCH] Permissions can be permanent --- apps/permission/backends.py | 16 +- apps/permission/fixtures/initial.json | 204 ++++++++++++++++++---- apps/permission/models.py | 6 + locale/de/LC_MESSAGES/django.po | 239 +++++++++++++------------ locale/fr/LC_MESSAGES/django.po | 241 ++++++++++++++------------ templates/permission/all_rights.html | 2 +- 6 files changed, 453 insertions(+), 255 deletions(-) diff --git a/apps/permission/backends.py b/apps/permission/backends.py index 97cded70..49e1e871 100644 --- a/apps/permission/backends.py +++ b/apps/permission/backends.py @@ -8,7 +8,6 @@ from django.contrib.auth.models import User, AnonymousUser from django.contrib.contenttypes.models import ContentType from django.db.models import Q, F from note.models import Note, NoteUser, NoteClub, NoteSpecial -from note_kfet import settings from note_kfet.middlewares import get_current_session from member.models import Membership, Club @@ -41,11 +40,16 @@ class PermissionBackend(ModelBackend): 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), + ( + Q( + rolepermissions__role__membership__date_start__lte=datetime.date.today(), + rolepermissions__role__membership__date_end__gte=datetime.date.today(), + ) + | Q(permanent=True) + ) + & Q(rolepermissions__role__membership__user=user) + & Q(type=t) + & Q(mask__rank__lte=get_current_session().get("permission_mask", 0)) ).distinct() @staticmethod diff --git a/apps/permission/fixtures/initial.json b/apps/permission/fixtures/initial.json index bad0ec80..c27739af 100644 --- a/apps/permission/fixtures/initial.json +++ b/apps/permission/fixtures/initial.json @@ -196,6 +196,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": true, "description": "View our User object" } }, @@ -211,6 +212,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": true, "description": "View our profile" } }, @@ -226,6 +228,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": true, "description": "View our own note" } }, @@ -241,6 +244,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": true, "description": "View our API token" } }, @@ -256,6 +260,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": true, "description": "View our own transactions" } }, @@ -271,6 +276,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": true, "description": "View aliases of clubs and members of Kfet club" } }, @@ -286,6 +292,7 @@ "type": "change", "mask": 1, "field": "last_login", + "permanent": false, "description": "Change myself's last login" } }, @@ -301,6 +308,7 @@ "type": "change", "mask": 1, "field": "username", + "permanent": true, "description": "Change myself's username" } }, @@ -316,6 +324,7 @@ "type": "change", "mask": 1, "field": "first_name", + "permanent": true, "description": "Change myself's first name" } }, @@ -331,6 +340,7 @@ "type": "change", "mask": 1, "field": "last_name", + "permanent": true, "description": "Change myself's last name" } }, @@ -346,6 +356,7 @@ "type": "change", "mask": 1, "field": "email", + "permanent": true, "description": "Change myself's email" } }, @@ -361,6 +372,7 @@ "type": "delete", "mask": 1, "field": "", + "permanent": false, "description": "Delete API Token" } }, @@ -376,6 +388,7 @@ "type": "add", "mask": 1, "field": "", + "permanent": true, "description": "Create API Token" } }, @@ -391,6 +404,7 @@ "type": "delete", "mask": 1, "field": "", + "permanent": false, "description": "Remove alias" } }, @@ -406,6 +420,7 @@ "type": "add", "mask": 1, "field": "", + "permanent": false, "description": "Add alias" } }, @@ -421,6 +436,7 @@ "type": "change", "mask": 1, "field": "display_image", + "permanent": false, "description": "Change myself's display image" } }, @@ -436,6 +452,7 @@ "type": "add", "mask": 1, "field": "", + "permanent": false, "description": "Transfer from myself's note" } }, @@ -451,6 +468,7 @@ "type": "change", "mask": 1, "field": "balance", + "permanent": false, "description": "Update a note balance with a transaction" } }, @@ -466,6 +484,7 @@ "type": "view", "mask": 2, "field": "", + "permanent": false, "description": "View notes of club members" } }, @@ -481,6 +500,7 @@ "type": "add", "mask": 2, "field": "", + "permanent": false, "description": "Create transactions with a club" } }, @@ -496,6 +516,7 @@ "type": "add", "mask": 2, "field": "", + "permanent": false, "description": "Create transactions from buttons with a club" } }, @@ -511,6 +532,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": false, "description": "View club infos" } }, @@ -526,6 +548,7 @@ "type": "change", "mask": 1, "field": "valid", + "permanent": false, "description": "Update validation status of a transaction" } }, @@ -541,6 +564,7 @@ "type": "view", "mask": 2, "field": "", + "permanent": false, "description": "View all transactions" } }, @@ -556,6 +580,7 @@ "type": "view", "mask": 2, "field": "", + "permanent": false, "description": "Display credit/debit interface" } }, @@ -571,6 +596,7 @@ "type": "add", "mask": 2, "field": "", + "permanent": false, "description": "Create credit/debit transaction" } }, @@ -586,6 +612,7 @@ "type": "view", "mask": 2, "field": "", + "permanent": false, "description": "View button categories" } }, @@ -601,6 +628,7 @@ "type": "change", "mask": 3, "field": "", + "permanent": false, "description": "Change button category" } }, @@ -616,6 +644,7 @@ "type": "add", "mask": 3, "field": "", + "permanent": false, "description": "Add button category" } }, @@ -631,6 +660,7 @@ "type": "view", "mask": 2, "field": "", + "permanent": false, "description": "View buttons" } }, @@ -646,6 +676,7 @@ "type": "add", "mask": 3, "field": "", + "permanent": false, "description": "Add buttons" } }, @@ -661,6 +692,7 @@ "type": "change", "mask": 3, "field": "", + "permanent": false, "description": "Update buttons" } }, @@ -676,6 +708,7 @@ "type": "add", "mask": 2, "field": "", + "permanent": false, "description": "Create any transaction" } }, @@ -691,6 +724,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": false, "description": "View valid activites" } }, @@ -706,6 +740,7 @@ "type": "change", "mask": 1, "field": "", + "permanent": false, "description": "Change our activities" } }, @@ -721,6 +756,7 @@ "type": "add", "mask": 1, "field": "", + "permanent": false, "description": "Add activities" } }, @@ -736,6 +772,7 @@ "type": "change", "mask": 2, "field": "valid", + "permanent": false, "description": "Validate activities" } }, @@ -751,6 +788,7 @@ "type": "change", "mask": 2, "field": "open", + "permanent": false, "description": "Open activities" } }, @@ -766,6 +804,7 @@ "type": "add", "mask": 1, "field": "", + "permanent": false, "description": "Invite people to activities" } }, @@ -781,6 +820,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": false, "description": "View invited people" } }, @@ -796,6 +836,7 @@ "type": "view", "mask": 2, "field": "", + "permanent": false, "description": "View all activities" } }, @@ -811,6 +852,7 @@ "type": "view", "mask": 2, "field": "", + "permanent": false, "description": "View all invited people" } }, @@ -826,6 +868,7 @@ "type": "add", "mask": 2, "field": "", + "permanent": false, "description": "Manage entries" } }, @@ -841,6 +884,7 @@ "type": "add", "mask": 2, "field": "", + "permanent": false, "description": "Add invitation transactions" } }, @@ -856,6 +900,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": false, "description": "View invitation transactions" } }, @@ -871,6 +916,7 @@ "type": "change", "mask": 2, "field": "valid", + "permanent": false, "description": "Validate invitation transactions" } }, @@ -886,6 +932,7 @@ "type": "change", "mask": 1, "field": "", + "permanent": false, "description": "Update club" } }, @@ -901,6 +948,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": true, "description": "View our memberships" } }, @@ -916,6 +964,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": false, "description": "View club's memberships" } }, @@ -931,6 +980,7 @@ "type": "add", "mask": 2, "field": "", + "permanent": false, "description": "Add a membership to a club" } }, @@ -946,6 +996,7 @@ "type": "change", "mask": 2, "field": "roles", + "permanent": false, "description": "Update user roles" } }, @@ -961,6 +1012,7 @@ "type": "change", "mask": 1, "field": "", + "permanent": false, "description": "Change own profile" } }, @@ -976,6 +1028,7 @@ "type": "change", "mask": 2, "field": "", + "permanent": false, "description": "Change any profile" } }, @@ -991,6 +1044,7 @@ "type": "change", "mask": 2, "field": "", + "permanent": false, "description": "Change any user" } }, @@ -1006,6 +1060,7 @@ "type": "add", "mask": 1, "field": "", + "permanent": false, "description": "Add user" } }, @@ -1021,6 +1076,7 @@ "type": "add", "mask": 1, "field": "", + "permanent": false, "description": "Add profile" } }, @@ -1036,6 +1092,7 @@ "type": "delete", "mask": 2, "field": "", + "permanent": false, "description": "Delete pre-registered user" } }, @@ -1051,6 +1108,7 @@ "type": "delete", "mask": 2, "field": "", + "permanent": false, "description": "Delete pre-registered user profile" } }, @@ -1066,6 +1124,7 @@ "type": "view", "mask": 2, "field": "", + "permanent": false, "description": "New club button" } }, @@ -1081,6 +1140,7 @@ "type": "add", "mask": 2, "field": "", + "permanent": false, "description": "Create club button" } }, @@ -1096,6 +1156,7 @@ "type": "change", "mask": 2, "field": "", + "permanent": false, "description": "Update club button" } }, @@ -1111,6 +1172,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": false, "description": "View transactions of a club" } }, @@ -1126,6 +1188,7 @@ "type": "view", "mask": 3, "field": "", + "permanent": false, "description": "View invoices" } }, @@ -1141,6 +1204,7 @@ "type": "add", "mask": 3, "field": "", + "permanent": false, "description": "Add invoice" } }, @@ -1156,6 +1220,7 @@ "type": "change", "mask": 3, "field": "", + "permanent": false, "description": "Change invoice" } }, @@ -1171,6 +1236,7 @@ "type": "view", "mask": 3, "field": "", + "permanent": false, "description": "View products" } }, @@ -1186,6 +1252,7 @@ "type": "add", "mask": 3, "field": "", + "permanent": false, "description": "Add products" } }, @@ -1201,6 +1268,7 @@ "type": "change", "mask": 3, "field": "", + "permanent": false, "description": "Change product" } }, @@ -1216,6 +1284,7 @@ "type": "delete", "mask": 3, "field": "", + "permanent": false, "description": "Delete product" } }, @@ -1231,6 +1300,7 @@ "type": "add", "mask": 1, "field": "", + "permanent": false, "description": "Add Soci\u00e9t\u00e9 g\u00e9n\u00e9rale credit" } }, @@ -1246,6 +1316,7 @@ "type": "view", "mask": 3, "field": "", + "permanent": false, "description": "View all Soci\u00e9t\u00e9 g\u00e9n\u00e9rale credits" } }, @@ -1261,6 +1332,7 @@ "type": "change", "mask": 1, "field": "", + "permanent": false, "description": "Update Soci\u00e9t\u00e9 g\u00e9n\u00e9rale credit" } }, @@ -1276,6 +1348,7 @@ "type": "delete", "mask": 3, "field": "", + "permanent": false, "description": "Delete Soci\u00e9t\u00e9 g\u00e9n\u00e9rale credit" } }, @@ -1291,6 +1364,7 @@ "type": "add", "mask": 3, "field": "", + "permanent": false, "description": "Create a WEI" } }, @@ -1306,6 +1380,7 @@ "type": "change", "mask": 3, "field": "", + "permanent": false, "description": "Update all WEI" } }, @@ -1321,6 +1396,7 @@ "type": "change", "mask": 3, "field": "", + "permanent": false, "description": "Update this WEI" } }, @@ -1336,6 +1412,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": true, "description": "View my WEI" } }, @@ -1351,6 +1428,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": false, "description": "View last WEI" } }, @@ -1366,6 +1444,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": false, "description": "View WEI Roles" } }, @@ -1381,6 +1460,7 @@ "type": "add", "mask": 3, "field": "", + "permanent": false, "description": "Add WEI Role" } }, @@ -1396,6 +1476,7 @@ "type": "change", "mask": 3, "field": "", + "permanent": false, "description": "Change WEI Role" } }, @@ -1411,6 +1492,7 @@ "type": "delete", "mask": 3, "field": "", + "permanent": false, "description": "Delete WEI Role" } }, @@ -1426,6 +1508,7 @@ "type": "add", "mask": 1, "field": "", + "permanent": false, "description": "Register myself to the last WEI" } }, @@ -1441,6 +1524,7 @@ "type": "add", "mask": 1, "field": "", + "permanent": false, "description": "Register first year members to the last WEI" } }, @@ -1456,6 +1540,7 @@ "type": "add", "mask": 1, "field": "", + "permanent": false, "description": "Register anyone to this WEI" } }, @@ -1471,6 +1556,7 @@ "type": "delete", "mask": 1, "field": "", + "permanent": false, "description": "Delete WEI registration" } }, @@ -1486,6 +1572,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": false, "description": "View my own WEI registration" } }, @@ -1501,6 +1588,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": true, "description": "View all WEI Registrations" } }, @@ -1516,6 +1604,7 @@ "type": "change", "mask": 1, "field": "soge_credit", + "permanent": false, "description": "Update the soge credit field of any WEI Registration" } }, @@ -1531,6 +1620,7 @@ "type": "change", "mask": 1, "field": "soge_credit", + "permanent": false, "description": "Update the soge credit field of my own WEI Registration" } }, @@ -1546,6 +1636,7 @@ "type": "change", "mask": 1, "field": "caution_check", + "permanent": false, "description": "Update the caution check field of any WEI Registration" } }, @@ -1561,6 +1652,7 @@ "type": "change", "mask": 1, "field": "birth_date", + "permanent": false, "description": "Update the birth date of any WEI Registration" } }, @@ -1576,6 +1668,7 @@ "type": "change", "mask": 1, "field": "birth_date", + "permanent": false, "description": "Update the birth date of my own WEI Registration" } }, @@ -1591,6 +1684,7 @@ "type": "change", "mask": 1, "field": "gender", + "permanent": false, "description": "Update the gender of any WEI Registration" } }, @@ -1606,6 +1700,7 @@ "type": "change", "mask": 1, "field": "gender", + "permanent": false, "description": "Update the gender of my own WEI Registration" } }, @@ -1621,6 +1716,7 @@ "type": "change", "mask": 1, "field": "health_issues", + "permanent": false, "description": "Update the health issues of any WEI Registration" } }, @@ -1636,6 +1732,7 @@ "type": "change", "mask": 1, "field": "health_issues", + "permanent": false, "description": "Update the health issues of my own WEI Registration" } }, @@ -1651,6 +1748,7 @@ "type": "change", "mask": 1, "field": "emergency_contact_name", + "permanent": false, "description": "Update the emergency contact name of any WEI Registration" } }, @@ -1666,6 +1764,7 @@ "type": "change", "mask": 1, "field": "emergency_contact_name", + "permanent": false, "description": "Update the emergency contact name of my own WEI Registration" } }, @@ -1681,6 +1780,7 @@ "type": "change", "mask": 1, "field": "emergency_contact_phone", + "permanent": false, "description": "Update the emergency contact phone of any WEI Registration" } }, @@ -1696,6 +1796,7 @@ "type": "change", "mask": 1, "field": "emergency_contact_phone", + "permanent": false, "description": "Update the emergency contact phone of my own WEI Registration" } }, @@ -1711,6 +1812,7 @@ "type": "change", "mask": 1, "field": "information_json", + "permanent": false, "description": "Update information of any WEI registration" } }, @@ -1726,6 +1828,7 @@ "type": "add", "mask": 3, "field": "", + "permanent": false, "description": "Add a bus for the current WEI" } }, @@ -1741,6 +1844,7 @@ "type": "change", "mask": 3, "field": "name", + "permanent": false, "description": "Update the name of a bus for the last WEI" } }, @@ -1756,6 +1860,7 @@ "type": "change", "mask": 3, "field": "description", + "permanent": false, "description": "Update the description of a bus for the last WEI" } }, @@ -1771,6 +1876,7 @@ "type": "add", "mask": 3, "field": "", + "permanent": false, "description": "Create a bus team for the last WEI" } }, @@ -1786,6 +1892,7 @@ "type": "change", "mask": 3, "field": "", + "permanent": false, "description": "Update a bus team for the last WEI" } }, @@ -1801,6 +1908,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": true, "description": "View buses of the last WEI" } }, @@ -1816,6 +1924,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": true, "description": "View bus teams of the last WEI" } }, @@ -1831,6 +1940,7 @@ "type": "add", "mask": 3, "field": "", + "permanent": false, "description": "Create a WEI membership for the last WEI" } }, @@ -1846,6 +1956,7 @@ "type": "change", "mask": 1, "field": "bus", + "permanent": false, "description": "Update the bus of a WEI membership" } }, @@ -1861,6 +1972,7 @@ "type": "change", "mask": 1, "field": "team", + "permanent": false, "description": "Update the team of a WEI membership" } }, @@ -1876,6 +1988,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": true, "description": "View all WEI Memberships for the last WEI" } }, @@ -1891,6 +2004,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": true, "description": "View my own WEI membership if I am an old member or if the WEI is past" } }, @@ -1906,6 +2020,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": true, "description": "View the members of the bus" } }, @@ -1921,6 +2036,7 @@ "type": "view", "mask": 1, "field": "", + "permanent": true, "description": "View the members of the team" } }, @@ -1936,6 +2052,7 @@ "type": "change", "mask": 1, "field": "name", + "permanent": false, "description": "Update the name of my bus" } }, @@ -1951,6 +2068,7 @@ "type": "change", "mask": 1, "field": "description", + "permanent": false, "description": "Update the description of my bus" } }, @@ -1966,6 +2084,7 @@ "type": "add", "mask": 1, "field": "", + "permanent": false, "description": "Add a team to my bus" } }, @@ -1981,6 +2100,7 @@ "type": "change", "mask": 1, "field": "name", + "permanent": false, "description": "Update the name of a team of my bus" } }, @@ -1996,6 +2116,7 @@ "type": "change", "mask": 1, "field": "color", + "permanent": false, "description": "Update the color of a team of my bus" } }, @@ -2011,6 +2132,7 @@ "type": "change", "mask": 1, "field": "description", + "permanent": false, "description": "Update the description of a team of my bus" } }, @@ -2026,6 +2148,7 @@ "type": "change", "mask": 1, "field": "name", + "permanent": false, "description": "Update the name of my team" } }, @@ -2041,6 +2164,7 @@ "type": "change", "mask": 1, "field": "color", + "permanent": false, "description": "Update the color of my team" } }, @@ -2056,9 +2180,26 @@ "type": "change", "mask": 1, "field": "description", + "permanent": false, "description": "Update the description of my team" } }, + { + "model": "permission.permission", + "pk": 126, + "fields": { + "model": [ + "activity", + "activity" + ], + "query": "{\"entry__note__noteuser__user\": [\"user\"]}", + "type": "view", + "mask": 1, + "field": "", + "permanent": true, + "description": "View my past activities" + } + }, { "model": "permission.rolepermissions", "pk": 1, @@ -2078,7 +2219,8 @@ 12, 13, 48, - 52 + 52, + 126 ] } }, @@ -2094,14 +2236,14 @@ 6, 39, 40, + 70, + 108, + 109, 14, 15, 16, 17, 18, - 70, - 108, - 109, 78, 79, 83 @@ -2138,11 +2280,11 @@ "fields": { "role": 6, "permissions": [ + 59, 19, 20, 21, 27, - 59, 60, 61, 62 @@ -2193,9 +2335,9 @@ 67, 68, 69, + 71, 72, - 73, - 71 + 73 ] } }, @@ -2329,7 +2471,8 @@ 122, 123, 124, - 125 + 125, + 126 ] } }, @@ -2339,6 +2482,15 @@ "fields": { "role": 10, "permissions": [ + 32, + 33, + 56, + 58, + 55, + 57, + 52, + 53, + 54, 23, 24, 25, @@ -2347,16 +2499,7 @@ 28, 29, 30, - 31, - 32, - 33, - 52, - 53, - 54, - 55, - 56, - 57, - 58 + 31 ] } }, @@ -2416,12 +2559,12 @@ "fields": { "role": 13, "permissions": [ - 115, 117, 118, 120, 121, - 122 + 122, + 115 ] } }, @@ -2431,7 +2574,10 @@ "fields": { "role": 14, "permissions": [ - 116 + 116, + 123, + 124, + 125 ] } }, @@ -2441,19 +2587,19 @@ "fields": { "role": 18, "permissions": [ - 77, - 84, - 87, - 90, - 93, - 95, 97, 99, 101, 108, + 77, 109, - 114 + 114, + 84, + 87, + 90, + 93, + 95 ] } } -] \ No newline at end of file +] diff --git a/apps/permission/models.py b/apps/permission/models.py index fe18c226..ed4a90d0 100644 --- a/apps/permission/models.py +++ b/apps/permission/models.py @@ -170,6 +170,12 @@ class Permission(models.Model): verbose_name=_("field"), ) + permanent = models.BooleanField( + default=False, + help_text=_("Tells if the permission should be granted even if the membership of the user is expired."), + verbose_name=_("permanent"), + ) + description = models.CharField( max_length=255, blank=True, diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po index ec0abeb7..d4fe6420 100644 --- a/locale/de/LC_MESSAGES/django.po +++ b/locale/de/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-27 03:55+0200\n" +"POT-Creation-Date: 2020-05-07 20:56+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -46,8 +46,8 @@ msgstr "" #: apps/activity/models.py:23 apps/activity/models.py:48 #: apps/member/models.py:151 apps/member/models.py:255 #: apps/note/models/notes.py:188 apps/note/models/transactions.py:25 -#: apps/note/models/transactions.py:45 apps/note/models/transactions.py:250 -#: apps/wei/models.py:62 templates/member/club_info.html:13 +#: apps/note/models/transactions.py:45 apps/note/models/transactions.py:249 +#: apps/wei/models.py:64 templates/member/club_info.html:13 #: templates/member/profile_info.html:14 #: templates/registration/future_profile_detail.html:16 #: templates/wei/weiclub_info.html:13 templates/wei/weimembership_form.html:18 @@ -71,8 +71,8 @@ msgid "activity types" msgstr "" #: apps/activity/models.py:53 apps/note/models/transactions.py:75 -#: apps/permission/models.py:103 apps/permission/models.py:176 -#: apps/wei/models.py:68 apps/wei/models.py:124 +#: apps/permission/models.py:103 apps/permission/models.py:182 +#: apps/wei/models.py:70 apps/wei/models.py:126 #: templates/activity/activity_detail.html:16 msgid "description" msgstr "" @@ -85,7 +85,7 @@ msgstr "" #: apps/activity/models.py:66 apps/logs/models.py:21 apps/member/models.py:277 #: apps/note/models/notes.py:117 apps/treasury/models.py:221 -#: apps/wei/models.py:155 templates/treasury/sogecredit_detail.html:14 +#: apps/wei/models.py:157 templates/treasury/sogecredit_detail.html:14 #: templates/wei/survey.html:16 msgid "user" msgstr "" @@ -193,7 +193,7 @@ msgstr "" #: apps/activity/tables.py:79 apps/member/forms.py:88 #: apps/registration/forms.py:69 apps/treasury/forms.py:123 -#: templates/note/transaction_form.html:97 +#: templates/note/transaction_form.html:126 msgid "First name" msgstr "" @@ -205,11 +205,11 @@ msgstr "" msgid "Balance" msgstr "" -#: apps/activity/views.py:46 templates/base.html:121 +#: apps/activity/views.py:46 templates/base.html:120 msgid "Activities" msgstr "" -#: apps/activity/views.py:153 +#: apps/activity/views.py:160 msgid "Entry for activity \"{}\"" msgstr "" @@ -250,7 +250,7 @@ msgstr "" msgid "edit" msgstr "" -#: apps/logs/models.py:62 apps/note/tables.py:120 apps/note/tables.py:149 +#: apps/logs/models.py:62 apps/note/tables.py:120 apps/note/tables.py:150 #: apps/wei/tables.py:65 msgid "delete" msgstr "" @@ -304,18 +304,18 @@ msgid "Credit amount" msgstr "" #: apps/member/forms.py:93 apps/registration/forms.py:74 -#: apps/treasury/forms.py:125 templates/note/transaction_form.html:103 +#: apps/treasury/forms.py:125 templates/note/transaction_form.html:132 msgid "Bank" msgstr "" #: apps/member/models.py:34 -#: templates/registration/future_profile_detail.html:47 +#: templates/registration/future_profile_detail.html:40 #: templates/wei/weimembership_form.html:48 msgid "phone number" msgstr "" -#: apps/member/models.py:41 templates/member/profile_info.html:27 -#: templates/registration/future_profile_detail.html:41 +#: apps/member/models.py:41 templates/member/profile_info.html:29 +#: templates/registration/future_profile_detail.html:34 #: templates/wei/weimembership_form.html:42 msgid "section" msgstr "" @@ -400,14 +400,14 @@ msgstr "" msgid "Year of entry to the school (None if not ENS student)" msgstr "" -#: apps/member/models.py:79 templates/member/profile_info.html:30 -#: templates/registration/future_profile_detail.html:44 +#: apps/member/models.py:79 templates/member/profile_info.html:32 +#: templates/registration/future_profile_detail.html:37 #: templates/wei/weimembership_form.html:45 msgid "address" msgstr "" #: apps/member/models.py:86 -#: templates/registration/future_profile_detail.html:50 +#: templates/registration/future_profile_detail.html:43 #: templates/wei/weimembership_form.html:51 msgid "paid" msgstr "" @@ -489,7 +489,7 @@ msgstr "" msgid "clubs" msgstr "" -#: apps/member/models.py:261 apps/permission/models.py:312 +#: apps/member/models.py:261 apps/permission/models.py:318 msgid "role" msgstr "" @@ -538,9 +538,9 @@ msgstr "" msgid "This address must be valid." msgstr "" -#: apps/member/views.py:65 templates/member/profile_info.html:45 -#: templates/registration/future_profile_detail.html:55 -#: templates/wei/weimembership_form.html:122 +#: apps/member/views.py:65 templates/member/profile_info.html:47 +#: templates/registration/future_profile_detail.html:48 +#: templates/wei/weimembership_form.html:124 msgid "Update Profile" msgstr "" @@ -674,7 +674,7 @@ msgid "alias" msgstr "" #: apps/note/models/notes.py:211 templates/member/club_info.html:54 -#: templates/member/profile_info.html:36 templates/wei/weiclub_info.html:48 +#: templates/member/profile_info.html:38 templates/wei/weiclub_info.html:48 msgid "aliases" msgstr "" @@ -749,39 +749,39 @@ msgid "transactions" msgstr "" #: apps/note/models/transactions.py:216 -#: templates/activity/activity_entry.html:13 templates/base.html:84 +#: templates/activity/activity_entry.html:13 templates/base.html:98 #: templates/note/transaction_form.html:19 #: templates/note/transaction_form.html:140 msgid "Transfer" msgstr "" -#: apps/note/models/transactions.py:240 +#: apps/note/models/transactions.py:239 msgid "Template" msgstr "" -#: apps/note/models/transactions.py:255 +#: apps/note/models/transactions.py:254 msgid "first_name" msgstr "" -#: apps/note/models/transactions.py:260 +#: apps/note/models/transactions.py:259 msgid "bank" msgstr "" -#: apps/note/models/transactions.py:266 +#: apps/note/models/transactions.py:265 #: templates/activity/activity_entry.html:17 #: templates/note/transaction_form.html:24 msgid "Credit" msgstr "" -#: apps/note/models/transactions.py:266 templates/note/transaction_form.html:28 +#: apps/note/models/transactions.py:265 templates/note/transaction_form.html:28 msgid "Debit" msgstr "" -#: apps/note/models/transactions.py:282 apps/note/models/transactions.py:287 +#: apps/note/models/transactions.py:281 apps/note/models/transactions.py:286 msgid "membership transaction" msgstr "" -#: apps/note/models/transactions.py:283 apps/treasury/models.py:227 +#: apps/note/models/transactions.py:282 apps/treasury/models.py:227 msgid "membership transactions" msgstr "" @@ -797,14 +797,14 @@ msgstr "" msgid "No reason specified" msgstr "" -#: apps/note/tables.py:122 apps/note/tables.py:151 apps/wei/tables.py:66 +#: apps/note/tables.py:122 apps/note/tables.py:152 apps/wei/tables.py:66 #: templates/treasury/sogecredit_detail.html:59 #: templates/wei/weiregistration_confirm_delete.html:32 msgid "Delete" msgstr "" -#: apps/note/tables.py:146 apps/wei/tables.py:42 apps/wei/tables.py:43 -#: templates/member/club_info.html:67 templates/note/conso_form.html:121 +#: apps/note/tables.py:147 apps/wei/tables.py:42 apps/wei/tables.py:43 +#: templates/member/club_info.html:67 templates/note/conso_form.html:128 #: templates/wei/bus_tables.html:15 templates/wei/busteam_tables.html:15 #: templates/wei/busteam_tables.html:33 templates/wei/weiclub_info.html:68 msgid "Edit" @@ -814,7 +814,7 @@ msgstr "" msgid "Transfer money" msgstr "" -#: apps/note/views.py:137 templates/base.html:94 +#: apps/note/views.py:137 templates/base.html:93 msgid "Consumptions" msgstr "" @@ -852,19 +852,29 @@ msgstr "" msgid "field" msgstr "" -#: apps/permission/models.py:181 -msgid "permission" +#: apps/permission/models.py:175 +msgid "" +"Tells if the permission should be granted even if the membership of the user " +"is expired." msgstr "" -#: apps/permission/models.py:182 apps/permission/models.py:316 -msgid "permissions" +#: apps/permission/models.py:176 templates/permission/all_rights.html:26 +msgid "permanent" msgstr "" #: apps/permission/models.py:187 +msgid "permission" +msgstr "" + +#: apps/permission/models.py:188 apps/permission/models.py:322 +msgid "permissions" +msgstr "" + +#: apps/permission/models.py:193 msgid "Specifying field applies only to view and change permission types." msgstr "" -#: apps/permission/models.py:323 apps/permission/models.py:324 +#: apps/permission/models.py:329 apps/permission/models.py:330 msgid "role permissions" msgstr "" @@ -944,14 +954,16 @@ msgid "" "The entered amount is not enough for the memberships, should be at least {}" msgstr "" -#: apps/treasury/apps.py:12 templates/base.html:126 +#: apps/treasury/apps.py:12 templates/base.html:125 msgid "Treasury" msgstr "" #: apps/treasury/forms.py:85 apps/treasury/forms.py:133 #: templates/activity/activity_form.html:9 #: templates/activity/activity_invite.html:8 +#: templates/django_filters/rest_framework/form.html:5 #: templates/member/add_members.html:14 templates/member/club_form.html:9 +#: templates/note/transactiontemplate_form.html:15 #: templates/treasury/invoice_form.html:46 templates/wei/bus_form.html:13 #: templates/wei/busteam_form.html:13 templates/wei/weiclub_form.html:15 #: templates/wei/weiregistration_form.html:14 @@ -971,7 +983,7 @@ msgid "You can't change the type of the remittance." msgstr "" #: apps/treasury/forms.py:127 apps/treasury/tables.py:47 -#: apps/treasury/tables.py:113 templates/note/transaction_form.html:133 +#: apps/treasury/tables.py:113 templates/note/transaction_form.html:95 #: templates/treasury/remittance_form.html:18 msgid "Amount" msgstr "" @@ -992,7 +1004,7 @@ msgstr "" msgid "Description" msgstr "" -#: apps/treasury/models.py:48 templates/note/transaction_form.html:91 +#: apps/treasury/models.py:48 templates/note/transaction_form.html:120 msgid "Name" msgstr "" @@ -1139,13 +1151,13 @@ msgstr "" msgid "No" msgstr "" -#: apps/wei/apps.py:10 apps/wei/models.py:45 apps/wei/models.py:46 -#: apps/wei/models.py:57 apps/wei/models.py:162 templates/base.html:116 +#: apps/wei/apps.py:10 apps/wei/models.py:47 apps/wei/models.py:48 +#: apps/wei/models.py:59 apps/wei/models.py:164 templates/base.html:130 msgid "WEI" msgstr "" -#: apps/wei/forms/registration.py:47 apps/wei/models.py:109 -#: apps/wei/models.py:271 +#: apps/wei/forms/registration.py:47 apps/wei/models.py:111 +#: apps/wei/models.py:273 msgid "bus" msgstr "" @@ -1166,7 +1178,7 @@ msgid "" msgstr "" #: apps/wei/forms/registration.py:61 apps/wei/forms/registration.py:67 -#: apps/wei/models.py:143 +#: apps/wei/models.py:145 msgid "WEI Roles" msgstr "" @@ -1178,151 +1190,151 @@ msgstr "" msgid "This team doesn't belong to the given bus." msgstr "" -#: apps/wei/models.py:20 templates/wei/weiclub_info.html:23 +#: apps/wei/models.py:22 templates/wei/weiclub_info.html:23 msgid "year" msgstr "" -#: apps/wei/models.py:24 templates/wei/weiclub_info.html:17 +#: apps/wei/models.py:26 templates/wei/weiclub_info.html:17 msgid "date start" msgstr "" -#: apps/wei/models.py:28 templates/wei/weiclub_info.html:20 +#: apps/wei/models.py:30 templates/wei/weiclub_info.html:20 msgid "date end" msgstr "" -#: apps/wei/models.py:73 +#: apps/wei/models.py:75 msgid "survey information" msgstr "" -#: apps/wei/models.py:74 +#: apps/wei/models.py:76 msgid "Information about the survey for new members, encoded in JSON" msgstr "" -#: apps/wei/models.py:96 +#: apps/wei/models.py:98 msgid "Bus" msgstr "" -#: apps/wei/models.py:97 templates/wei/weiclub_tables.html:79 +#: apps/wei/models.py:99 templates/wei/weiclub_tables.html:79 msgid "Buses" msgstr "" -#: apps/wei/models.py:117 +#: apps/wei/models.py:119 msgid "color" msgstr "" -#: apps/wei/models.py:118 +#: apps/wei/models.py:120 msgid "The color of the T-Shirt, stored with its number equivalent" msgstr "" -#: apps/wei/models.py:132 +#: apps/wei/models.py:134 msgid "Bus team" msgstr "" -#: apps/wei/models.py:133 +#: apps/wei/models.py:135 msgid "Bus teams" msgstr "" -#: apps/wei/models.py:142 +#: apps/wei/models.py:144 msgid "WEI Role" msgstr "" -#: apps/wei/models.py:167 +#: apps/wei/models.py:169 msgid "Credit from Société générale" msgstr "" -#: apps/wei/models.py:172 +#: apps/wei/models.py:174 msgid "Caution check given" msgstr "" -#: apps/wei/models.py:176 templates/wei/weimembership_form.html:62 +#: apps/wei/models.py:178 templates/wei/weimembership_form.html:62 msgid "birth date" msgstr "" -#: apps/wei/models.py:182 +#: apps/wei/models.py:184 msgid "Male" msgstr "" -#: apps/wei/models.py:183 +#: apps/wei/models.py:185 msgid "Female" msgstr "" -#: apps/wei/models.py:184 +#: apps/wei/models.py:186 msgid "Non binary" msgstr "" -#: apps/wei/models.py:186 templates/wei/weimembership_form.html:59 +#: apps/wei/models.py:188 templates/wei/weimembership_form.html:59 msgid "gender" msgstr "" -#: apps/wei/models.py:192 templates/wei/weimembership_form.html:65 +#: apps/wei/models.py:194 templates/wei/weimembership_form.html:65 msgid "health issues" msgstr "" -#: apps/wei/models.py:197 templates/wei/weimembership_form.html:68 +#: apps/wei/models.py:199 templates/wei/weimembership_form.html:68 msgid "emergency contact name" msgstr "" -#: apps/wei/models.py:202 templates/wei/weimembership_form.html:71 +#: apps/wei/models.py:204 templates/wei/weimembership_form.html:71 msgid "emergency contact phone" msgstr "" -#: apps/wei/models.py:207 templates/wei/weimembership_form.html:74 +#: apps/wei/models.py:209 templates/wei/weimembership_form.html:74 msgid "" "Register on the mailing list to stay informed of the events of the campus (1 " "mail/week)" msgstr "" -#: apps/wei/models.py:212 templates/wei/weimembership_form.html:77 +#: apps/wei/models.py:214 templates/wei/weimembership_form.html:77 msgid "" "Register on the mailing list to stay informed of the sport events of the " "campus (1 mail/week)" msgstr "" -#: apps/wei/models.py:217 templates/wei/weimembership_form.html:80 +#: apps/wei/models.py:219 templates/wei/weimembership_form.html:80 msgid "" "Register on the mailing list to stay informed of the art events of the " "campus (1 mail/week)" msgstr "" -#: apps/wei/models.py:222 templates/wei/weimembership_form.html:56 +#: apps/wei/models.py:224 templates/wei/weimembership_form.html:56 msgid "first year" msgstr "" -#: apps/wei/models.py:223 +#: apps/wei/models.py:225 msgid "Tells if the user is new in the school." msgstr "" -#: apps/wei/models.py:228 +#: apps/wei/models.py:230 msgid "registration information" msgstr "" -#: apps/wei/models.py:229 +#: apps/wei/models.py:231 msgid "" "Information about the registration (buses for old members, survey fot the " "new members), encoded in JSON" msgstr "" -#: apps/wei/models.py:260 +#: apps/wei/models.py:262 msgid "WEI User" msgstr "" -#: apps/wei/models.py:261 +#: apps/wei/models.py:263 msgid "WEI Users" msgstr "" -#: apps/wei/models.py:281 +#: apps/wei/models.py:283 msgid "team" msgstr "" -#: apps/wei/models.py:291 +#: apps/wei/models.py:293 msgid "WEI registration" msgstr "" -#: apps/wei/models.py:295 +#: apps/wei/models.py:297 msgid "WEI membership" msgstr "" -#: apps/wei/models.py:296 +#: apps/wei/models.py:298 msgid "WEI memberships" msgstr "" @@ -1509,23 +1521,27 @@ msgstr "" msgid "The ENS Paris-Saclay BDE note." msgstr "" -#: templates/base.html:104 +#: templates/base.html:103 msgid "Users" msgstr "" -#: templates/base.html:109 +#: templates/base.html:108 msgid "Clubs" msgstr "" -#: templates/base.html:115 +#: templates/base.html:114 msgid "Registrations" msgstr "" -#: templates/base.html:120 +#: templates/base.html:134 msgid "Rights" msgstr "" -#: templates/base.html:158 +#: templates/base.html:138 +msgid "Administration" +msgstr "" + +#: templates/base.html:177 msgid "" "Your e-mail address is not validated. Please check your mail inbox and click " "on the validation link." @@ -1543,6 +1559,11 @@ msgid "" "upgrading." msgstr "" +#: templates/django_filters/rest_framework/crispy_form.html:4 +#: templates/django_filters/rest_framework/form.html:2 +msgid "Field filters" +msgstr "" + #: templates/member/alias_update.html:5 msgid "Add alias" msgstr "" @@ -1559,7 +1580,7 @@ msgstr "" msgid "membership fee" msgstr "" -#: templates/member/club_info.html:50 templates/member/profile_info.html:33 +#: templates/member/club_info.html:50 templates/member/profile_info.html:35 #: templates/treasury/sogecredit_detail.html:18 #: templates/wei/weiclub_info.html:43 msgid "balance" @@ -1569,7 +1590,7 @@ msgstr "" msgid "Add member" msgstr "" -#: templates/member/club_info.html:71 templates/member/profile_info.html:48 +#: templates/member/club_info.html:71 templates/member/profile_info.html:50 msgid "View Profile" msgstr "" @@ -1617,17 +1638,15 @@ msgstr "" msgid "username" msgstr "" -#: templates/member/profile_info.html:20 -#: templates/registration/future_profile_detail.html:34 +#: templates/member/profile_info.html:21 msgid "password" msgstr "" -#: templates/member/profile_info.html:23 -#: templates/registration/future_profile_detail.html:37 +#: templates/member/profile_info.html:24 msgid "Change password" msgstr "" -#: templates/member/profile_info.html:41 +#: templates/member/profile_info.html:43 msgid "Manage auth token" msgstr "" @@ -1792,18 +1811,18 @@ msgid "" "activate your account." msgstr "" -#: templates/registration/future_profile_detail.html:56 +#: templates/registration/future_profile_detail.html:49 #: templates/wei/weiregistration_confirm_delete.html:12 msgid "Delete registration" msgstr "" -#: templates/registration/future_profile_detail.html:64 +#: templates/registration/future_profile_detail.html:57 msgid "Validate account" msgstr "" -#: templates/registration/future_profile_detail.html:71 -#: templates/wei/weimembership_form.html:132 -#: templates/wei/weimembership_form.html:190 +#: templates/registration/future_profile_detail.html:64 +#: templates/wei/weimembership_form.html:134 +#: templates/wei/weimembership_form.html:192 msgid "Validate registration" msgstr "" @@ -2184,32 +2203,32 @@ msgstr "" msgid "preferred roles" msgstr "" -#: templates/wei/weimembership_form.html:123 +#: templates/wei/weimembership_form.html:122 #: templates/wei/weiregistration_confirm_delete.html:31 msgid "Update registration" msgstr "" -#: templates/wei/weimembership_form.html:136 +#: templates/wei/weimembership_form.html:138 msgid "The registration is already validated and can't be unvalidated." msgstr "" -#: templates/wei/weimembership_form.html:137 +#: templates/wei/weimembership_form.html:139 msgid "The user joined the bus" msgstr "" -#: templates/wei/weimembership_form.html:138 +#: templates/wei/weimembership_form.html:140 msgid "in the team" msgstr "" -#: templates/wei/weimembership_form.html:139 +#: templates/wei/weimembership_form.html:141 msgid "in no team (staff)" msgstr "" -#: templates/wei/weimembership_form.html:139 +#: templates/wei/weimembership_form.html:141 msgid "with the following roles:" msgstr "" -#: templates/wei/weimembership_form.html:144 +#: templates/wei/weimembership_form.html:146 msgid "" "\n" " The WEI will be paid by Société générale. The " @@ -2221,7 +2240,7 @@ msgid "" " " msgstr "" -#: templates/wei/weimembership_form.html:154 +#: templates/wei/weimembership_form.html:156 #, python-format msgid "" "\n" @@ -2230,15 +2249,15 @@ msgid "" " " msgstr "" -#: templates/wei/weimembership_form.html:161 +#: templates/wei/weimembership_form.html:163 msgid "The note has enough money, the registration is possible." msgstr "" -#: templates/wei/weimembership_form.html:168 +#: templates/wei/weimembership_form.html:170 msgid "The user didn't give her/his caution check." msgstr "" -#: templates/wei/weimembership_form.html:176 +#: templates/wei/weimembership_form.html:178 #, python-format msgid "" "\n" diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po index f23c1913..967e00bc 100644 --- a/locale/fr/LC_MESSAGES/django.po +++ b/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2020-04-27 03:55+0200\n" +"POT-Creation-Date: 2020-05-07 20:56+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -47,8 +47,8 @@ msgstr "Vous ne pouvez pas inviter plus de 3 personnes à cette activité." #: apps/activity/models.py:23 apps/activity/models.py:48 #: apps/member/models.py:151 apps/member/models.py:255 #: apps/note/models/notes.py:188 apps/note/models/transactions.py:25 -#: apps/note/models/transactions.py:45 apps/note/models/transactions.py:250 -#: apps/wei/models.py:62 templates/member/club_info.html:13 +#: apps/note/models/transactions.py:45 apps/note/models/transactions.py:249 +#: apps/wei/models.py:64 templates/member/club_info.html:13 #: templates/member/profile_info.html:14 #: templates/registration/future_profile_detail.html:16 #: templates/wei/weiclub_info.html:13 templates/wei/weimembership_form.html:18 @@ -72,8 +72,8 @@ msgid "activity types" msgstr "types d'activité" #: apps/activity/models.py:53 apps/note/models/transactions.py:75 -#: apps/permission/models.py:103 apps/permission/models.py:176 -#: apps/wei/models.py:68 apps/wei/models.py:124 +#: apps/permission/models.py:103 apps/permission/models.py:182 +#: apps/wei/models.py:70 apps/wei/models.py:126 #: templates/activity/activity_detail.html:16 msgid "description" msgstr "description" @@ -86,7 +86,7 @@ msgstr "type" #: apps/activity/models.py:66 apps/logs/models.py:21 apps/member/models.py:277 #: apps/note/models/notes.py:117 apps/treasury/models.py:221 -#: apps/wei/models.py:155 templates/treasury/sogecredit_detail.html:14 +#: apps/wei/models.py:157 templates/treasury/sogecredit_detail.html:14 #: templates/wei/survey.html:16 msgid "user" msgstr "utilisateur" @@ -194,7 +194,7 @@ msgstr "Nom de famille" #: apps/activity/tables.py:79 apps/member/forms.py:88 #: apps/registration/forms.py:69 apps/treasury/forms.py:123 -#: templates/note/transaction_form.html:97 +#: templates/note/transaction_form.html:126 msgid "First name" msgstr "Prénom" @@ -206,11 +206,11 @@ msgstr "Note" msgid "Balance" msgstr "Solde du compte" -#: apps/activity/views.py:46 templates/base.html:121 +#: apps/activity/views.py:46 templates/base.html:120 msgid "Activities" msgstr "Activités" -#: apps/activity/views.py:153 +#: apps/activity/views.py:160 msgid "Entry for activity \"{}\"" msgstr "Entrées pour l'activité « {} »" @@ -251,7 +251,7 @@ msgstr "Créer" msgid "edit" msgstr "Modifier" -#: apps/logs/models.py:62 apps/note/tables.py:120 apps/note/tables.py:149 +#: apps/logs/models.py:62 apps/note/tables.py:120 apps/note/tables.py:150 #: apps/wei/tables.py:65 msgid "delete" msgstr "Supprimer" @@ -305,18 +305,18 @@ msgid "Credit amount" msgstr "Montant à créditer" #: apps/member/forms.py:93 apps/registration/forms.py:74 -#: apps/treasury/forms.py:125 templates/note/transaction_form.html:103 +#: apps/treasury/forms.py:125 templates/note/transaction_form.html:132 msgid "Bank" msgstr "Banque" #: apps/member/models.py:34 -#: templates/registration/future_profile_detail.html:47 +#: templates/registration/future_profile_detail.html:40 #: templates/wei/weimembership_form.html:48 msgid "phone number" msgstr "numéro de téléphone" -#: apps/member/models.py:41 templates/member/profile_info.html:27 -#: templates/registration/future_profile_detail.html:41 +#: apps/member/models.py:41 templates/member/profile_info.html:29 +#: templates/registration/future_profile_detail.html:34 #: templates/wei/weimembership_form.html:42 msgid "section" msgstr "section" @@ -401,14 +401,14 @@ msgstr "promotion" msgid "Year of entry to the school (None if not ENS student)" msgstr "Année d'entrée dans l'école (None si non-étudiant·e de l'ENS)" -#: apps/member/models.py:79 templates/member/profile_info.html:30 -#: templates/registration/future_profile_detail.html:44 +#: apps/member/models.py:79 templates/member/profile_info.html:32 +#: templates/registration/future_profile_detail.html:37 #: templates/wei/weimembership_form.html:45 msgid "address" msgstr "adresse" #: apps/member/models.py:86 -#: templates/registration/future_profile_detail.html:50 +#: templates/registration/future_profile_detail.html:43 #: templates/wei/weimembership_form.html:51 msgid "paid" msgstr "payé" @@ -494,7 +494,7 @@ msgstr "club" msgid "clubs" msgstr "clubs" -#: apps/member/models.py:261 apps/permission/models.py:312 +#: apps/member/models.py:261 apps/permission/models.py:318 msgid "role" msgstr "rôle" @@ -543,9 +543,9 @@ msgstr "Renouveler" msgid "This address must be valid." msgstr "Cette adresse doit être valide." -#: apps/member/views.py:65 templates/member/profile_info.html:45 -#: templates/registration/future_profile_detail.html:55 -#: templates/wei/weimembership_form.html:122 +#: apps/member/views.py:65 templates/member/profile_info.html:47 +#: templates/registration/future_profile_detail.html:48 +#: templates/wei/weimembership_form.html:124 msgid "Update Profile" msgstr "Modifier le profil" @@ -682,7 +682,7 @@ msgid "alias" msgstr "alias" #: apps/note/models/notes.py:211 templates/member/club_info.html:54 -#: templates/member/profile_info.html:36 templates/wei/weiclub_info.html:48 +#: templates/member/profile_info.html:38 templates/wei/weiclub_info.html:48 msgid "aliases" msgstr "alias" @@ -757,39 +757,39 @@ msgid "transactions" msgstr "transactions" #: apps/note/models/transactions.py:216 -#: templates/activity/activity_entry.html:13 templates/base.html:84 +#: templates/activity/activity_entry.html:13 templates/base.html:98 #: templates/note/transaction_form.html:19 #: templates/note/transaction_form.html:140 msgid "Transfer" msgstr "Virement" -#: apps/note/models/transactions.py:240 +#: apps/note/models/transactions.py:239 msgid "Template" msgstr "Bouton" -#: apps/note/models/transactions.py:255 +#: apps/note/models/transactions.py:254 msgid "first_name" msgstr "prénom" -#: apps/note/models/transactions.py:260 +#: apps/note/models/transactions.py:259 msgid "bank" msgstr "banque" -#: apps/note/models/transactions.py:266 +#: apps/note/models/transactions.py:265 #: templates/activity/activity_entry.html:17 #: templates/note/transaction_form.html:24 msgid "Credit" msgstr "Crédit" -#: apps/note/models/transactions.py:266 templates/note/transaction_form.html:28 +#: apps/note/models/transactions.py:265 templates/note/transaction_form.html:28 msgid "Debit" msgstr "Débit" -#: apps/note/models/transactions.py:282 apps/note/models/transactions.py:287 +#: apps/note/models/transactions.py:281 apps/note/models/transactions.py:286 msgid "membership transaction" msgstr "Transaction d'adhésion" -#: apps/note/models/transactions.py:283 apps/treasury/models.py:227 +#: apps/note/models/transactions.py:282 apps/treasury/models.py:227 msgid "membership transactions" msgstr "Transactions d'adhésion" @@ -805,14 +805,14 @@ msgstr "Cliquez pour valider" msgid "No reason specified" msgstr "Pas de motif spécifié" -#: apps/note/tables.py:122 apps/note/tables.py:151 apps/wei/tables.py:66 +#: apps/note/tables.py:122 apps/note/tables.py:152 apps/wei/tables.py:66 #: templates/treasury/sogecredit_detail.html:59 #: templates/wei/weiregistration_confirm_delete.html:32 msgid "Delete" msgstr "Supprimer" -#: apps/note/tables.py:146 apps/wei/tables.py:42 apps/wei/tables.py:43 -#: templates/member/club_info.html:67 templates/note/conso_form.html:121 +#: apps/note/tables.py:147 apps/wei/tables.py:42 apps/wei/tables.py:43 +#: templates/member/club_info.html:67 templates/note/conso_form.html:128 #: templates/wei/bus_tables.html:15 templates/wei/busteam_tables.html:15 #: templates/wei/busteam_tables.html:33 templates/wei/weiclub_info.html:68 msgid "Edit" @@ -822,7 +822,7 @@ msgstr "Éditer" msgid "Transfer money" msgstr "Transférer de l'argent" -#: apps/note/views.py:137 templates/base.html:94 +#: apps/note/views.py:137 templates/base.html:93 msgid "Consumptions" msgstr "Consommations" @@ -860,21 +860,33 @@ msgstr "masque" msgid "field" msgstr "champ" -#: apps/permission/models.py:181 +#: apps/permission/models.py:175 +msgid "" +"Tells if the permission should be granted even if the membership of the user " +"is expired." +msgstr "" +"Indique si la permission doit être attribuée même si l'adhésion de l'utilisateur " +"est expirée." + +#: apps/permission/models.py:176 templates/permission/all_rights.html:26 +msgid "permanent" +msgstr "permanent" + +#: apps/permission/models.py:187 msgid "permission" msgstr "permission" -#: apps/permission/models.py:182 apps/permission/models.py:316 +#: apps/permission/models.py:188 apps/permission/models.py:322 msgid "permissions" msgstr "permissions" -#: apps/permission/models.py:187 +#: apps/permission/models.py:193 msgid "Specifying field applies only to view and change permission types." msgstr "" "Spécifie le champ concerné, ne fonctionne que pour les permissions view et " "change." -#: apps/permission/models.py:323 apps/permission/models.py:324 +#: apps/permission/models.py:329 apps/permission/models.py:330 msgid "role permissions" msgstr "Permissions par rôles" @@ -965,14 +977,16 @@ msgstr "" "Le montant crédité est trop faible pour adhérer, il doit être au minimum de " "{}" -#: apps/treasury/apps.py:12 templates/base.html:126 +#: apps/treasury/apps.py:12 templates/base.html:125 msgid "Treasury" msgstr "Trésorerie" #: apps/treasury/forms.py:85 apps/treasury/forms.py:133 #: templates/activity/activity_form.html:9 #: templates/activity/activity_invite.html:8 +#: templates/django_filters/rest_framework/form.html:5 #: templates/member/add_members.html:14 templates/member/club_form.html:9 +#: templates/note/transactiontemplate_form.html:15 #: templates/treasury/invoice_form.html:46 templates/wei/bus_form.html:13 #: templates/wei/busteam_form.html:13 templates/wei/weiclub_form.html:15 #: templates/wei/weiregistration_form.html:14 @@ -992,7 +1006,7 @@ msgid "You can't change the type of the remittance." msgstr "Vous ne pouvez pas changer le type de la remise." #: apps/treasury/forms.py:127 apps/treasury/tables.py:47 -#: apps/treasury/tables.py:113 templates/note/transaction_form.html:133 +#: apps/treasury/tables.py:113 templates/note/transaction_form.html:95 #: templates/treasury/remittance_form.html:18 msgid "Amount" msgstr "Montant" @@ -1013,7 +1027,7 @@ msgstr "Objet" msgid "Description" msgstr "Description" -#: apps/treasury/models.py:48 templates/note/transaction_form.html:91 +#: apps/treasury/models.py:48 templates/note/transaction_form.html:120 msgid "Name" msgstr "Nom" @@ -1162,13 +1176,13 @@ msgstr "Oui" msgid "No" msgstr "Non" -#: apps/wei/apps.py:10 apps/wei/models.py:45 apps/wei/models.py:46 -#: apps/wei/models.py:57 apps/wei/models.py:162 templates/base.html:116 +#: apps/wei/apps.py:10 apps/wei/models.py:47 apps/wei/models.py:48 +#: apps/wei/models.py:59 apps/wei/models.py:164 templates/base.html:130 msgid "WEI" msgstr "WEI" -#: apps/wei/forms/registration.py:47 apps/wei/models.py:109 -#: apps/wei/models.py:271 +#: apps/wei/forms/registration.py:47 apps/wei/models.py:111 +#: apps/wei/models.py:273 msgid "bus" msgstr "Bus" @@ -1194,7 +1208,7 @@ msgstr "" "bus ou électron libre)" #: apps/wei/forms/registration.py:61 apps/wei/forms/registration.py:67 -#: apps/wei/models.py:143 +#: apps/wei/models.py:145 msgid "WEI Roles" msgstr "Rôles au WEI" @@ -1206,97 +1220,97 @@ msgstr "Sélectionnez les rôles qui vous intéressent." msgid "This team doesn't belong to the given bus." msgstr "Cette équipe n'appartient pas à ce bus." -#: apps/wei/models.py:20 templates/wei/weiclub_info.html:23 +#: apps/wei/models.py:22 templates/wei/weiclub_info.html:23 msgid "year" msgstr "année" -#: apps/wei/models.py:24 templates/wei/weiclub_info.html:17 +#: apps/wei/models.py:26 templates/wei/weiclub_info.html:17 msgid "date start" msgstr "début" -#: apps/wei/models.py:28 templates/wei/weiclub_info.html:20 +#: apps/wei/models.py:30 templates/wei/weiclub_info.html:20 msgid "date end" msgstr "fin" -#: apps/wei/models.py:73 +#: apps/wei/models.py:75 msgid "survey information" msgstr "informations sur le questionnaire" -#: apps/wei/models.py:74 +#: apps/wei/models.py:76 msgid "Information about the survey for new members, encoded in JSON" msgstr "" "Informations sur le sondage pour les nouveaux membres, encodées en JSON" -#: apps/wei/models.py:96 +#: apps/wei/models.py:98 msgid "Bus" msgstr "Bus" -#: apps/wei/models.py:97 templates/wei/weiclub_tables.html:79 +#: apps/wei/models.py:99 templates/wei/weiclub_tables.html:79 msgid "Buses" msgstr "Bus" -#: apps/wei/models.py:117 +#: apps/wei/models.py:119 msgid "color" msgstr "couleur" -#: apps/wei/models.py:118 +#: apps/wei/models.py:120 msgid "The color of the T-Shirt, stored with its number equivalent" msgstr "" "La couleur du T-Shirt, stocké sous la forme de son équivalent numérique" -#: apps/wei/models.py:132 +#: apps/wei/models.py:134 msgid "Bus team" msgstr "Équipe de bus" -#: apps/wei/models.py:133 +#: apps/wei/models.py:135 msgid "Bus teams" msgstr "Équipes de bus" -#: apps/wei/models.py:142 +#: apps/wei/models.py:144 msgid "WEI Role" msgstr "Rôle au WEI" -#: apps/wei/models.py:167 +#: apps/wei/models.py:169 msgid "Credit from Société générale" msgstr "Crédit de la Société générale" -#: apps/wei/models.py:172 +#: apps/wei/models.py:174 msgid "Caution check given" msgstr "Chèque de caution donné" -#: apps/wei/models.py:176 templates/wei/weimembership_form.html:62 +#: apps/wei/models.py:178 templates/wei/weimembership_form.html:62 msgid "birth date" msgstr "date de naissance" -#: apps/wei/models.py:182 +#: apps/wei/models.py:184 msgid "Male" msgstr "Homme" -#: apps/wei/models.py:183 +#: apps/wei/models.py:185 msgid "Female" msgstr "Femme" -#: apps/wei/models.py:184 +#: apps/wei/models.py:186 msgid "Non binary" msgstr "Non-binaire" -#: apps/wei/models.py:186 templates/wei/weimembership_form.html:59 +#: apps/wei/models.py:188 templates/wei/weimembership_form.html:59 msgid "gender" msgstr "genre" -#: apps/wei/models.py:192 templates/wei/weimembership_form.html:65 +#: apps/wei/models.py:194 templates/wei/weimembership_form.html:65 msgid "health issues" msgstr "problèmes de santé" -#: apps/wei/models.py:197 templates/wei/weimembership_form.html:68 +#: apps/wei/models.py:199 templates/wei/weimembership_form.html:68 msgid "emergency contact name" msgstr "Nom du contact en cas d'urgence" -#: apps/wei/models.py:202 templates/wei/weimembership_form.html:71 +#: apps/wei/models.py:204 templates/wei/weimembership_form.html:71 msgid "emergency contact phone" msgstr "Téléphone du contact en cas d'urgence" -#: apps/wei/models.py:207 templates/wei/weimembership_form.html:74 +#: apps/wei/models.py:209 templates/wei/weimembership_form.html:74 msgid "" "Register on the mailing list to stay informed of the events of the campus (1 " "mail/week)" @@ -1304,7 +1318,7 @@ msgstr "" "S'inscrire sur la liste de diffusion pour rester informé des événements sur " "le campus (1 mail par semaine)" -#: apps/wei/models.py:212 templates/wei/weimembership_form.html:77 +#: apps/wei/models.py:214 templates/wei/weimembership_form.html:77 msgid "" "Register on the mailing list to stay informed of the sport events of the " "campus (1 mail/week)" @@ -1312,7 +1326,7 @@ msgstr "" "S'inscrire sur la liste de diffusion pour rester informé des actualités " "sportives sur le campus (1 mail par semaine)" -#: apps/wei/models.py:217 templates/wei/weimembership_form.html:80 +#: apps/wei/models.py:219 templates/wei/weimembership_form.html:80 msgid "" "Register on the mailing list to stay informed of the art events of the " "campus (1 mail/week)" @@ -1320,19 +1334,19 @@ msgstr "" "S'inscrire sur la liste de diffusion pour rester informé des actualités " "artistiques sur le campus (1 mail par semaine)" -#: apps/wei/models.py:222 templates/wei/weimembership_form.html:56 +#: apps/wei/models.py:224 templates/wei/weimembership_form.html:56 msgid "first year" msgstr "première année" -#: apps/wei/models.py:223 +#: apps/wei/models.py:225 msgid "Tells if the user is new in the school." msgstr "Indique si l'utilisateur est nouveau dans l'école." -#: apps/wei/models.py:228 +#: apps/wei/models.py:230 msgid "registration information" msgstr "informations sur l'inscription" -#: apps/wei/models.py:229 +#: apps/wei/models.py:231 msgid "" "Information about the registration (buses for old members, survey fot the " "new members), encoded in JSON" @@ -1340,27 +1354,27 @@ msgstr "" "Informations sur l'inscription (bus pour les 2A+, questionnaire pour les " "1A), encodées en JSON" -#: apps/wei/models.py:260 +#: apps/wei/models.py:262 msgid "WEI User" msgstr "Participant au WEI" -#: apps/wei/models.py:261 +#: apps/wei/models.py:263 msgid "WEI Users" msgstr "Participants au WEI" -#: apps/wei/models.py:281 +#: apps/wei/models.py:283 msgid "team" msgstr "équipe" -#: apps/wei/models.py:291 +#: apps/wei/models.py:293 msgid "WEI registration" msgstr "inscription au WEI" -#: apps/wei/models.py:295 +#: apps/wei/models.py:297 msgid "WEI membership" msgstr "adhésion au WEI" -#: apps/wei/models.py:296 +#: apps/wei/models.py:298 msgid "WEI memberships" msgstr "adhésions au WEI" @@ -1558,23 +1572,29 @@ msgstr "Toutes les activités" msgid "The ENS Paris-Saclay BDE note." msgstr "La note du BDE de l'ENS Paris-Saclay." -#: templates/base.html:104 +#: templates/base.html:103 msgid "Users" msgstr "Utilisateurs" -#: templates/base.html:109 +#: templates/base.html:108 msgid "Clubs" msgstr "Clubs" -#: templates/base.html:115 +#: templates/base.html:114 msgid "Registrations" msgstr "Inscriptions" -#: templates/base.html:120 +#: templates/base.html:134 msgid "Rights" msgstr "Droits" -#: templates/base.html:158 +#: templates/base.html:138 +#, fuzzy +#| msgid "registration" +msgid "Administration" +msgstr "inscription" + +#: templates/base.html:177 msgid "" "Your e-mail address is not validated. Please check your mail inbox and click " "on the validation link." @@ -1597,6 +1617,11 @@ msgstr "" "la version %(VERSION)s et la dernière version est %(LAST_VERSION)s. Merci de " "vous mettre à jour." +#: templates/django_filters/rest_framework/crispy_form.html:4 +#: templates/django_filters/rest_framework/form.html:2 +msgid "Field filters" +msgstr "" + #: templates/member/alias_update.html:5 msgid "Add alias" msgstr "Ajouter un alias" @@ -1613,7 +1638,7 @@ msgstr "jours" msgid "membership fee" msgstr "cotisation pour adhérer" -#: templates/member/club_info.html:50 templates/member/profile_info.html:33 +#: templates/member/club_info.html:50 templates/member/profile_info.html:35 #: templates/treasury/sogecredit_detail.html:18 #: templates/wei/weiclub_info.html:43 msgid "balance" @@ -1623,7 +1648,7 @@ msgstr "solde du compte" msgid "Add member" msgstr "Ajouter un membre" -#: templates/member/club_info.html:71 templates/member/profile_info.html:48 +#: templates/member/club_info.html:71 templates/member/profile_info.html:50 msgid "View Profile" msgstr "Voir le profil" @@ -1671,17 +1696,15 @@ msgstr "Compte n°" msgid "username" msgstr "pseudo" -#: templates/member/profile_info.html:20 -#: templates/registration/future_profile_detail.html:34 +#: templates/member/profile_info.html:21 msgid "password" msgstr "mot de passe" -#: templates/member/profile_info.html:23 -#: templates/registration/future_profile_detail.html:37 +#: templates/member/profile_info.html:24 msgid "Change password" msgstr "Changer le mot de passe" -#: templates/member/profile_info.html:41 +#: templates/member/profile_info.html:43 msgid "Manage auth token" msgstr "Gérer les jetons d'authentification" @@ -1850,18 +1873,18 @@ msgstr "" "Le lien est invalide. Le jeton a sans doute expiré. Merci de nous contacter " "pour activer votre compte." -#: templates/registration/future_profile_detail.html:56 +#: templates/registration/future_profile_detail.html:49 #: templates/wei/weiregistration_confirm_delete.html:12 msgid "Delete registration" msgstr "Supprimer l'inscription" -#: templates/registration/future_profile_detail.html:64 +#: templates/registration/future_profile_detail.html:57 msgid "Validate account" msgstr "Valider le compte" -#: templates/registration/future_profile_detail.html:71 -#: templates/wei/weimembership_form.html:132 -#: templates/wei/weimembership_form.html:190 +#: templates/registration/future_profile_detail.html:64 +#: templates/wei/weimembership_form.html:134 +#: templates/wei/weimembership_form.html:192 msgid "Validate registration" msgstr "Valider l'inscription" @@ -2281,32 +2304,32 @@ msgstr "équipe préférée" msgid "preferred roles" msgstr "rôles préférés" -#: templates/wei/weimembership_form.html:123 +#: templates/wei/weimembership_form.html:122 #: templates/wei/weiregistration_confirm_delete.html:31 msgid "Update registration" msgstr "Mettre à jour l'inscription" -#: templates/wei/weimembership_form.html:136 +#: templates/wei/weimembership_form.html:138 msgid "The registration is already validated and can't be unvalidated." msgstr "L'inscription a déjà été validée et ne peut pas être dévalidée." -#: templates/wei/weimembership_form.html:137 +#: templates/wei/weimembership_form.html:139 msgid "The user joined the bus" msgstr "L'utilisateur a rejoint le bus" -#: templates/wei/weimembership_form.html:138 +#: templates/wei/weimembership_form.html:140 msgid "in the team" msgstr "dans l'équipe" -#: templates/wei/weimembership_form.html:139 +#: templates/wei/weimembership_form.html:141 msgid "in no team (staff)" msgstr "dans aucune équipe (staff)" -#: templates/wei/weimembership_form.html:139 +#: templates/wei/weimembership_form.html:141 msgid "with the following roles:" msgstr "avec les rôles suivants :" -#: templates/wei/weimembership_form.html:144 +#: templates/wei/weimembership_form.html:146 msgid "" "\n" " The WEI will be paid by Société générale. The " @@ -2325,7 +2348,7 @@ msgstr "" "aura validé la création du compte, ou bien changer de moyen de paiement.\n" " " -#: templates/wei/weimembership_form.html:154 +#: templates/wei/weimembership_form.html:156 #, python-format msgid "" "\n" @@ -2338,15 +2361,15 @@ msgstr "" "L'inscription va échouer.\n" " " -#: templates/wei/weimembership_form.html:161 +#: templates/wei/weimembership_form.html:163 msgid "The note has enough money, the registration is possible." msgstr "La note a assez d'argent, l'inscription est possible." -#: templates/wei/weimembership_form.html:168 +#: templates/wei/weimembership_form.html:170 msgid "The user didn't give her/his caution check." msgstr "L'utilisateur n'a pas donné son chèque de caution." -#: templates/wei/weimembership_form.html:176 +#: templates/wei/weimembership_form.html:178 #, python-format msgid "" "\n" diff --git a/templates/permission/all_rights.html b/templates/permission/all_rights.html index 85b47597..293e3386 100644 --- a/templates/permission/all_rights.html +++ b/templates/permission/all_rights.html @@ -23,7 +23,7 @@ {% endif %}
    {% for permission in role.permissions.permissions.all %} -
  • {{ permission }} ({{ permission.type }} {{ permission.model }})
  • +
  • {{ permission }} ({{ permission.type }} {{ permission.model }}{% if permission.permanent %}, {% trans "permanent" %}{% endif %})
  • {% empty %} {% trans "No associated permission" %} {% endfor %}