mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-04-25 16:12:37 +00:00
permission, fixture, translation (fr), bug fixes
This commit is contained in:
parent
6d6583bfe6
commit
a2b42c5329
100
apps/food/fixtures/initial.json
Normal file
100
apps/food/fixtures/initial.json
Normal file
@ -0,0 +1,100 @@
|
||||
[
|
||||
{
|
||||
"model": "food.allergen",
|
||||
"pk": 1,
|
||||
"fields": {
|
||||
"name": "Lait"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "food.allergen",
|
||||
"pk": 2,
|
||||
"fields": {
|
||||
"name": "Oeufs"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "food.allergen",
|
||||
"pk": 3,
|
||||
"fields": {
|
||||
"name": "Gluten"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "food.allergen",
|
||||
"pk": 4,
|
||||
"fields": {
|
||||
"name": "Fruits à coques"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "food.allergen",
|
||||
"pk": 5,
|
||||
"fields": {
|
||||
"name": "Arachides"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "food.allergen",
|
||||
"pk": 6,
|
||||
"fields": {
|
||||
"name": "Sésame"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "food.allergen",
|
||||
"pk": 7,
|
||||
"fields": {
|
||||
"name": "Soja"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "food.allergen",
|
||||
"pk": 8,
|
||||
"fields": {
|
||||
"name": "Céléri"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "food.allergen",
|
||||
"pk": 9,
|
||||
"fields": {
|
||||
"name": "Lupin"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "food.allergen",
|
||||
"pk": 10,
|
||||
"fields": {
|
||||
"name": "Moutarde"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "food.allergen",
|
||||
"pk": 11,
|
||||
"fields": {
|
||||
"name": "Sulfites"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "food.allergen",
|
||||
"pk": 12,
|
||||
"fields": {
|
||||
"name": "Crustacés"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "food.allergen",
|
||||
"pk": 13,
|
||||
"fields": {
|
||||
"name": "Mollusques"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "food.allergen",
|
||||
"pk": 14,
|
||||
"fields": {
|
||||
"name": "Poissons"
|
||||
}
|
||||
}
|
||||
]
|
@ -73,7 +73,13 @@ class FoodListView(ProtectQuerysetMixin, LoginRequiredMixin, MultiTableMixin, Li
|
||||
PermissionBackend.filter_queryset(self.request, Food, 'view'))
|
||||
# table served
|
||||
served_table = self.get_queryset().order_by('-pk').filter(
|
||||
end_of_life='', is_ready=True)
|
||||
end_of_life='', is_ready=True).filter(
|
||||
Q(polymorphic_ctype__model='basicfood',
|
||||
basicfood__date_type='DLC',
|
||||
expiry_date__lte=timezone.now(),)
|
||||
| Q(polymorphic_ctype__model='transformedfood',
|
||||
expiry_date__lte=timezone.now(),
|
||||
))
|
||||
# tables club
|
||||
bureau_role_pk = 4
|
||||
clubs = Club.objects.filter(membership__in=Membership.objects.filter(
|
||||
@ -354,7 +360,7 @@ class FoodDetailView(ProtectQuerysetMixin, LoginRequiredMixin, DetailView):
|
||||
value) for field, value in fields.items()]
|
||||
context["meals"] = self.object.transformed_ingredient_inv.all()
|
||||
context["update"] = PermissionBackend.check_perm(self.request, "food.change_food")
|
||||
context["add_ingredient"] = self.object.end_of_life = '' and PermissionBackend.check_perm(self.request, "food.change_transformedfood")
|
||||
context["add_ingredient"] = (self.object.end_of_life == '' and PermissionBackend.check_perm(self.request, "food.change_transformedfood"))
|
||||
return context
|
||||
|
||||
def get(self, *args, **kwargs):
|
||||
|
@ -3307,436 +3307,184 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 211,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"transformedfood"
|
||||
],
|
||||
"query": "{}",
|
||||
"type": "view",
|
||||
"mask": 3,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Voir tout les plats"
|
||||
}
|
||||
"model": "permission.permission",
|
||||
"pk": 211,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"qrcode"
|
||||
],
|
||||
"query": "{}",
|
||||
"type": "view",
|
||||
"mask": 2,
|
||||
"permanent": false,
|
||||
"description": "Voir n'importe quel QR-code"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 212,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"transformedfood"
|
||||
],
|
||||
"query": "{\"owner\": [\"club\"]}",
|
||||
"type": "view",
|
||||
"mask": 3,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Voir tout les plats de son club"
|
||||
}
|
||||
"model": "permission.permission",
|
||||
"pk": 212,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"allergen"
|
||||
],
|
||||
"query": "{}",
|
||||
"type": "view",
|
||||
"mask": 1,
|
||||
"permanent": false,
|
||||
"description": "Voir n'importe quel allergène"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 213,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"transformedfood"
|
||||
],
|
||||
"query": "{\"is_ready\": true}",
|
||||
"type": "view",
|
||||
"mask": 1,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Voir les plats préparés actifs servis"
|
||||
}
|
||||
"model": "permission.permission",
|
||||
"pk": 213,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"food"
|
||||
],
|
||||
"query": "{}",
|
||||
"type": "view",
|
||||
"mask": 2,
|
||||
"permanent": false,
|
||||
"description": "Voir n'importe quelle bouffe"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 214,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"qrcode"
|
||||
],
|
||||
"query": "{}",
|
||||
"type": "add",
|
||||
"mask": 3,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Initialiser un QR code de traçabilité"
|
||||
}
|
||||
"model": "permission.permission",
|
||||
"pk": 214,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"qrcode"
|
||||
],
|
||||
"query": "{}",
|
||||
"type": "add",
|
||||
"mask": 2,
|
||||
"permanent": false,
|
||||
"description": "Ajouter n'importe quel QR-code"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 215,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"basicfood"
|
||||
],
|
||||
"query": "{\"owner\": [\"club\"]}",
|
||||
"type": "add",
|
||||
"mask": 3,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Créer un nouvel ingrédient pour son club"
|
||||
}
|
||||
"model": "permission.permission",
|
||||
"pk": 215,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"food"
|
||||
],
|
||||
"query": "{}",
|
||||
"type": "add",
|
||||
"mask": 2,
|
||||
"permanent": false,
|
||||
"description": "Ajouter n'importe quelle bouffe"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 216,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"basicfood"
|
||||
],
|
||||
"query": "{}",
|
||||
"type": "add",
|
||||
"mask": 3,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Créer un nouvel ingrédient"
|
||||
}
|
||||
"model": "permission.permission",
|
||||
"pk": 216,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"food"
|
||||
],
|
||||
"query": "{}",
|
||||
"type": "change",
|
||||
"mask": 2,
|
||||
"permanent": false,
|
||||
"description": "Modifier n'importe quelle bouffe"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 217,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"basicfood"
|
||||
],
|
||||
"query": "{}",
|
||||
"type": "view",
|
||||
"mask": 3,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Voir toute la bouffe"
|
||||
}
|
||||
"model": "permission.permission",
|
||||
"pk": 217,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"qrcode"
|
||||
],
|
||||
"query": "{\"food_container__owner\": [\"club\"]}",
|
||||
"type": "view",
|
||||
"mask": 2,
|
||||
"permanent": false,
|
||||
"description": "Voir un QR-code lié à son club"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 218,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"basicfood"
|
||||
],
|
||||
"query": "{\"is_ready\": true}",
|
||||
"type": "view",
|
||||
"mask": 3,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Voir toute la bouffe active"
|
||||
}
|
||||
"model": "permission.permission",
|
||||
"pk": 218,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"food"
|
||||
],
|
||||
"query": "{\"owner\": [\"club\"]}",
|
||||
"type": "view",
|
||||
"mask": 2,
|
||||
"permanent": false,
|
||||
"description": "Voir la bouffe de son club"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 219,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"basicfood"
|
||||
],
|
||||
"query": "{\"is_ready\": true, \"owner\": [\"club\"]}",
|
||||
"type": "view",
|
||||
"mask": 3,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Voir la bouffe active de son club"
|
||||
}
|
||||
"model": "permission.permission",
|
||||
"pk": 219,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"qrcode"
|
||||
],
|
||||
"query": "{\"food_container__owner\": [\"club\"]}",
|
||||
"type": "add",
|
||||
"mask": 2,
|
||||
"permanent": false,
|
||||
"description": "Ajouter un QR-code pour son club"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 220,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"basicfood"
|
||||
],
|
||||
"query": "{}",
|
||||
"type": "change",
|
||||
"mask": 3,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Modifier de la bouffe"
|
||||
}
|
||||
"model": "permission.permission",
|
||||
"pk": 220,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"food"
|
||||
],
|
||||
"query": "{\"owner\": [\"club\"]}",
|
||||
"type": "add",
|
||||
"mask": 2,
|
||||
"permanent": false,
|
||||
"description": "Ajouter de la bouffe appartenant à son club"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 221,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"basicfood"
|
||||
],
|
||||
"query": "{\"is_ready\": true}",
|
||||
"type": "change",
|
||||
"mask": 3,
|
||||
"field": "allergens",
|
||||
"permanent": false,
|
||||
"description": "Modifier les allergènes de la bouffe existante"
|
||||
}
|
||||
"model": "permission.permission",
|
||||
"pk": 221,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"food"
|
||||
],
|
||||
"query": "{\"owner\": [\"club\"]}",
|
||||
"type": "change",
|
||||
"mask": 2,
|
||||
"permanent": false,
|
||||
"description": "Modifier la bouffe appartenant à son club"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 222,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"basicfood"
|
||||
],
|
||||
"query": "{\"is_ready\": true, \"owner\": [\"club\"]}",
|
||||
"type": "change",
|
||||
"mask": 3,
|
||||
"field": "allergens",
|
||||
"permanent": false,
|
||||
"description": "Modifier les allergènes de la bouffe appartenant à son club"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 223,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"transformedfood"
|
||||
],
|
||||
"query": "{}",
|
||||
"type": "add",
|
||||
"mask": 3,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Créer un plat"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 224,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"transformedfood"
|
||||
],
|
||||
"query": "{\"owner\": [\"club\"]}",
|
||||
"type": "add",
|
||||
"mask": 3,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Créer un plat pour son club"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 225,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"transformedfood"
|
||||
],
|
||||
"query": "{}",
|
||||
"type": "change",
|
||||
"mask": 3,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Modifier tout les plats"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 226,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"transformedfood"
|
||||
],
|
||||
"query": "{\"is_ready\": true}",
|
||||
"type": "change",
|
||||
"mask": 3,
|
||||
"field": "end_of_life",
|
||||
"permanent": false,
|
||||
"description": "Indiquer si un plat a été mangé"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 227,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"transformedfood"
|
||||
],
|
||||
"query": "{\"is_ready\": true, \"owner\": [\"club\"]}",
|
||||
"type": "change",
|
||||
"mask": 3,
|
||||
"field": "is_ready",
|
||||
"permanent": false,
|
||||
"description": "Indiquer si un plat de son club est prêt"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 228,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"transformedfood"
|
||||
],
|
||||
"query": "{\"is_ready\": true}",
|
||||
"type": "change",
|
||||
"mask": 3,
|
||||
"field": "is_ready",
|
||||
"permanent": false,
|
||||
"description": "Archiver un plat"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 229,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"basicfood"
|
||||
],
|
||||
"query": "{\"is_ready\": true}",
|
||||
"type": "change",
|
||||
"mask": 3,
|
||||
"field": "is_ready",
|
||||
"permanent": false,
|
||||
"description": "Archiver de la bouffe"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 231,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"qrcode"
|
||||
],
|
||||
"query": "{}",
|
||||
"type": "view",
|
||||
"mask": 3,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Voir tous les QR codes"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 232,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"qrcode"
|
||||
],
|
||||
"query": "{\"food_container__is_ready\": true}",
|
||||
"type": "view",
|
||||
"mask": 3,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Voir tous les QR codes actifs"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 233,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"qrcode"
|
||||
],
|
||||
"query": "{\"food_container__owner\": [\"club\"], \"food_container__is_ready\": true}",
|
||||
"type": "view",
|
||||
"mask": 3,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Voir tous les QR codes actifs de son club"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk" : 234,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"transformedfood"
|
||||
],
|
||||
"query": "{\"owner\": [\"club\"]}",
|
||||
"type": "change",
|
||||
"mask": 3,
|
||||
"field": "ingredients",
|
||||
"permanent": false,
|
||||
"description": "Changer les ingrédients d'un plat actif de son club"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 235,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"food"
|
||||
],
|
||||
"query": "{}",
|
||||
"type": "view",
|
||||
"mask": 3,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Voir bouffe"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 236,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"food"
|
||||
],
|
||||
"query": "[]",
|
||||
"type": "view",
|
||||
"mask": 3,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Voir bouffe active"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 237,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"food"
|
||||
],
|
||||
"query": "{\"owner\": [\"club\"]}",
|
||||
"type": "view",
|
||||
"mask": 3,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Voir bouffe active de son club"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
"pk": 238,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"food"
|
||||
],
|
||||
"query": "{}",
|
||||
"type": "change",
|
||||
"mask": 3,
|
||||
"field": "",
|
||||
"permanent": false,
|
||||
"description": "Modifier bouffe"
|
||||
}
|
||||
"model": "permission.permission",
|
||||
"pk": 222,
|
||||
"fields": {
|
||||
"model": [
|
||||
"food",
|
||||
"food"
|
||||
],
|
||||
"query": "{\"end_of_life\": \"\"}",
|
||||
"type": "view",
|
||||
"mask": 1,
|
||||
"permanent": false,
|
||||
"description": "Voir la bouffe servie"
|
||||
}
|
||||
},
|
||||
{
|
||||
"model": "permission.permission",
|
||||
@ -4343,7 +4091,8 @@
|
||||
158,
|
||||
159,
|
||||
160,
|
||||
213
|
||||
212,
|
||||
222
|
||||
]
|
||||
}
|
||||
},
|
||||
@ -4384,16 +4133,11 @@
|
||||
50,
|
||||
141,
|
||||
169,
|
||||
212,
|
||||
214,
|
||||
215,
|
||||
219,
|
||||
222,
|
||||
224,
|
||||
227,
|
||||
233,
|
||||
234,
|
||||
237,
|
||||
217,
|
||||
218,
|
||||
219,
|
||||
220,
|
||||
221,
|
||||
247,
|
||||
258,
|
||||
259
|
||||
@ -4574,20 +4318,7 @@
|
||||
166,
|
||||
167,
|
||||
168,
|
||||
182,
|
||||
212,
|
||||
214,
|
||||
215,
|
||||
218,
|
||||
221,
|
||||
224,
|
||||
226,
|
||||
227,
|
||||
228,
|
||||
229,
|
||||
232,
|
||||
234,
|
||||
236
|
||||
182
|
||||
]
|
||||
}
|
||||
},
|
||||
@ -4795,8 +4526,7 @@
|
||||
168,
|
||||
176,
|
||||
177,
|
||||
197,
|
||||
211
|
||||
197
|
||||
]
|
||||
}
|
||||
},
|
||||
@ -4824,15 +4554,11 @@
|
||||
"permissions": [
|
||||
137,
|
||||
211,
|
||||
214,
|
||||
216,
|
||||
217,
|
||||
220,
|
||||
223,
|
||||
225,
|
||||
231,
|
||||
235,
|
||||
238
|
||||
212,
|
||||
213,
|
||||
214,
|
||||
215,
|
||||
216
|
||||
]
|
||||
}
|
||||
},
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-03-25 11:16+0100\n"
|
||||
"POT-Creation-Date: 2025-04-24 18:22+0200\n"
|
||||
"PO-Revision-Date: 2022-04-11 22:05+0200\n"
|
||||
"Last-Translator: bleizi <bleizi@crans.org>\n"
|
||||
"Language-Team: French <http://translate.ynerant.fr/projects/nk20/nk20/fr/>\n"
|
||||
@ -25,7 +25,7 @@ msgid "This opener already exists"
|
||||
msgstr "Cette amitié existe déjà"
|
||||
|
||||
#: apps/activity/apps.py:10 apps/activity/models.py:129
|
||||
#: apps/activity/models.py:169 apps/activity/models.py:328
|
||||
#: apps/activity/models.py:169 apps/activity/models.py:329
|
||||
msgid "activity"
|
||||
msgstr "activité"
|
||||
|
||||
@ -37,29 +37,29 @@ msgstr "La note du club est inactive."
|
||||
msgid "The end date must be after the start date."
|
||||
msgstr "La date de fin doit être après celle de début."
|
||||
|
||||
#: apps/activity/forms.py:83 apps/activity/models.py:276
|
||||
#: apps/activity/forms.py:83 apps/activity/models.py:277
|
||||
msgid "You can't invite someone once the activity is started."
|
||||
msgstr ""
|
||||
"Vous ne pouvez pas inviter quelqu'un une fois que l'activité a démarré."
|
||||
|
||||
#: apps/activity/forms.py:86 apps/activity/models.py:279
|
||||
#: apps/activity/forms.py:86 apps/activity/models.py:280
|
||||
msgid "This activity is not validated yet."
|
||||
msgstr "Cette activité n'est pas encore validée."
|
||||
|
||||
#: apps/activity/forms.py:96 apps/activity/models.py:287
|
||||
#: apps/activity/forms.py:96 apps/activity/models.py:288
|
||||
msgid "This person has been already invited 5 times this year."
|
||||
msgstr "Cette personne a déjà été invitée 5 fois cette année."
|
||||
|
||||
#: apps/activity/forms.py:100 apps/activity/models.py:291
|
||||
#: apps/activity/forms.py:100 apps/activity/models.py:292
|
||||
msgid "This person is already invited."
|
||||
msgstr "Cette personne est déjà invitée."
|
||||
|
||||
#: apps/activity/forms.py:104 apps/activity/models.py:295
|
||||
#: apps/activity/forms.py:104 apps/activity/models.py:296
|
||||
msgid "You can't invite more than 3 people to this activity."
|
||||
msgstr "Vous ne pouvez pas inviter plus de 3 personnes à cette activité."
|
||||
|
||||
#: apps/activity/models.py:28 apps/activity/models.py:63 apps/food/models.py:42
|
||||
#: apps/food/models.py:56 apps/member/models.py:203
|
||||
#: apps/activity/models.py:28 apps/activity/models.py:63 apps/food/models.py:18
|
||||
#: apps/food/models.py:35 apps/member/models.py:203
|
||||
#: apps/member/templates/member/includes/club_info.html:4
|
||||
#: apps/member/templates/member/includes/profile_info.html:4
|
||||
#: apps/note/models/notes.py:263 apps/note/models/transactions.py:26
|
||||
@ -121,7 +121,7 @@ msgid "type"
|
||||
msgstr "type"
|
||||
|
||||
#: apps/activity/models.py:91 apps/logs/models.py:22 apps/member/models.py:325
|
||||
#: apps/note/models/notes.py:148 apps/treasury/models.py:293
|
||||
#: apps/note/models/notes.py:148 apps/treasury/models.py:294
|
||||
#: apps/wei/models.py:171 apps/wei/templates/wei/attribute_bus_1A.html:13
|
||||
#: apps/wei/templates/wei/survey.html:15
|
||||
msgid "user"
|
||||
@ -205,21 +205,21 @@ msgstr "Entrée de la note {note} pour l'activité « {activity} »"
|
||||
msgid "Already entered on "
|
||||
msgstr "Déjà rentré·e le "
|
||||
|
||||
#: apps/activity/models.py:204 apps/activity/tables.py:58
|
||||
#: apps/activity/models.py:205 apps/activity/tables.py:58
|
||||
msgid "{:%Y-%m-%d %H:%M:%S}"
|
||||
msgstr "{:%d/%m/%Y %H:%M:%S}"
|
||||
|
||||
#: apps/activity/models.py:212
|
||||
#: apps/activity/models.py:213
|
||||
msgid "The balance is negative."
|
||||
msgstr "La note est en négatif."
|
||||
|
||||
#: apps/activity/models.py:242
|
||||
#: apps/activity/models.py:243
|
||||
#: apps/treasury/templates/treasury/sogecredit_detail.html:14
|
||||
#: apps/wei/templates/wei/attribute_bus_1A.html:16
|
||||
msgid "last name"
|
||||
msgstr "nom de famille"
|
||||
|
||||
#: apps/activity/models.py:247
|
||||
#: apps/activity/models.py:248
|
||||
#: apps/member/templates/member/includes/profile_info.html:4
|
||||
#: apps/registration/templates/registration/future_profile_detail.html:16
|
||||
#: apps/treasury/templates/treasury/sogecredit_detail.html:17
|
||||
@ -228,36 +228,36 @@ msgstr "nom de famille"
|
||||
msgid "first name"
|
||||
msgstr "prénom"
|
||||
|
||||
#: apps/activity/models.py:252
|
||||
#: apps/activity/models.py:253
|
||||
msgid "school"
|
||||
msgstr "école"
|
||||
|
||||
#: apps/activity/models.py:259
|
||||
#: apps/activity/models.py:260
|
||||
msgid "inviter"
|
||||
msgstr "hôte"
|
||||
|
||||
#: apps/activity/models.py:263
|
||||
#: apps/activity/models.py:264
|
||||
msgid "guest"
|
||||
msgstr "invité·e"
|
||||
|
||||
#: apps/activity/models.py:264
|
||||
#: apps/activity/models.py:265
|
||||
msgid "guests"
|
||||
msgstr "invité·e·s"
|
||||
|
||||
#: apps/activity/models.py:317
|
||||
#: apps/activity/models.py:318
|
||||
msgid "Invitation"
|
||||
msgstr "Invitation"
|
||||
|
||||
#: apps/activity/models.py:335 apps/activity/models.py:339
|
||||
#: apps/activity/models.py:336 apps/activity/models.py:340
|
||||
msgid "Opener"
|
||||
msgstr "Ouvreur⋅se"
|
||||
|
||||
#: apps/activity/models.py:340
|
||||
#: apps/activity/models.py:341
|
||||
#: apps/activity/templates/activity/activity_detail.html:16
|
||||
msgid "Openers"
|
||||
msgstr "Ouvreur⋅ses"
|
||||
|
||||
#: apps/activity/models.py:344
|
||||
#: apps/activity/models.py:345
|
||||
#, fuzzy, python-brace-format
|
||||
#| msgid "Entry for {note} to the activity {activity}"
|
||||
msgid "{opener} is opener of activity {acivity}"
|
||||
@ -285,7 +285,7 @@ msgstr "Entré·e le "
|
||||
msgid "remove"
|
||||
msgstr "supprimer"
|
||||
|
||||
#: apps/activity/tables.py:84 apps/note/forms.py:69 apps/treasury/models.py:208
|
||||
#: apps/activity/tables.py:84 apps/note/forms.py:69 apps/treasury/models.py:209
|
||||
msgid "Type"
|
||||
msgstr "Type"
|
||||
|
||||
@ -382,10 +382,8 @@ msgid "Entry done!"
|
||||
msgstr "Entrée effectuée !"
|
||||
|
||||
#: apps/activity/templates/activity/activity_form.html:16
|
||||
#: apps/food/templates/food/add_ingredient_form.html:16
|
||||
#: apps/food/templates/food/basicfood_form.html:16
|
||||
#: apps/food/templates/food/create_qrcode_form.html:20
|
||||
#: apps/food/templates/food/transformedfood_form.html:16
|
||||
#: apps/food/templates/food/food_update.html:17
|
||||
#: apps/food/templates/food/qrcode.html:18
|
||||
#: apps/member/templates/member/add_members.html:46
|
||||
#: apps/member/templates/member/club_form.html:16
|
||||
#: apps/note/templates/note/transactiontemplate_form.html:18
|
||||
@ -493,257 +491,277 @@ msgstr "Entrées pour l'activité « {} »"
|
||||
msgid "API"
|
||||
msgstr "API"
|
||||
|
||||
#: apps/food/apps.py:11 apps/food/models.py:105
|
||||
#: apps/food/apps.py:11
|
||||
msgid "food"
|
||||
msgstr "bouffe"
|
||||
|
||||
#: apps/food/forms.py:32
|
||||
msgid "Fully used"
|
||||
msgstr "Entièrement utilisé"
|
||||
|
||||
#: apps/food/forms.py:50
|
||||
msgid "Pasta METRO 5kg"
|
||||
msgstr "Pâtes METRO 5kg"
|
||||
|
||||
#: apps/food/forms.py:100
|
||||
#: apps/food/forms.py:54 apps/food/forms.py:82
|
||||
msgid "Specific order given to GCKs"
|
||||
msgstr ""
|
||||
|
||||
#: apps/food/forms.py:78
|
||||
msgid "Lasagna"
|
||||
msgstr "Lasagnes"
|
||||
|
||||
#: apps/food/models.py:18
|
||||
msgid "QR-code number"
|
||||
msgstr "numéro de QR-code"
|
||||
#: apps/food/forms.py:117
|
||||
msgid "Shelf life (in hours)"
|
||||
msgstr "Durée de vie (en heure)"
|
||||
|
||||
#: apps/food/models.py:26
|
||||
msgid "food container"
|
||||
msgstr "récipient"
|
||||
#: apps/food/forms.py:139
|
||||
msgid "Fully used"
|
||||
msgstr "Entièrement utilisé"
|
||||
|
||||
#: apps/food/models.py:30
|
||||
msgid "QR-code"
|
||||
msgstr "QR-code"
|
||||
|
||||
#: apps/food/models.py:31
|
||||
msgid "QR-codes"
|
||||
msgstr "QR-codes"
|
||||
|
||||
#: apps/food/models.py:34
|
||||
#, python-brace-format
|
||||
msgid "QR-code number {qr_code_number}"
|
||||
msgstr "numéro du QR-code {qr_code_number}"
|
||||
|
||||
#: apps/food/models.py:47
|
||||
#: apps/food/models.py:23
|
||||
msgid "Allergen"
|
||||
msgstr "Allergène"
|
||||
|
||||
#: apps/food/models.py:48 apps/food/templates/food/basicfood_detail.html:17
|
||||
#: apps/food/templates/food/transformedfood_detail.html:20
|
||||
#: apps/food/models.py:24
|
||||
msgid "Allergens"
|
||||
msgstr "Allergènes"
|
||||
|
||||
#: apps/food/models.py:64
|
||||
#: apps/food/models.py:43
|
||||
msgid "owner"
|
||||
msgstr "propriétaire"
|
||||
|
||||
#: apps/food/models.py:70
|
||||
msgid "allergen"
|
||||
msgstr "allergène"
|
||||
#: apps/food/models.py:49
|
||||
msgid "allergens"
|
||||
msgstr "allergènes"
|
||||
|
||||
#: apps/food/models.py:74
|
||||
#: apps/food/models.py:53
|
||||
msgid "expiry date"
|
||||
msgstr "date de péremption"
|
||||
|
||||
#: apps/food/models.py:80
|
||||
msgid "was eaten"
|
||||
msgstr "a été mangé"
|
||||
#: apps/food/models.py:59
|
||||
msgid "end of life"
|
||||
msgstr "fin de vie"
|
||||
|
||||
#: apps/food/models.py:89
|
||||
#: apps/food/models.py:64
|
||||
msgid "is ready"
|
||||
msgstr "est prêt"
|
||||
|
||||
#: apps/food/models.py:94
|
||||
msgid "is active"
|
||||
msgstr "est en cours"
|
||||
#: apps/food/models.py:70
|
||||
msgid "order"
|
||||
msgstr "consigne"
|
||||
|
||||
#: apps/food/models.py:106
|
||||
msgid "foods"
|
||||
msgstr "bouffes"
|
||||
#: apps/food/models.py:107 apps/food/views.py:32
|
||||
#: note_kfet/templates/base.html:72
|
||||
msgid "Food"
|
||||
msgstr "Bouffe"
|
||||
|
||||
#: apps/food/models.py:122
|
||||
#: apps/food/models.py:108
|
||||
msgid "Foods"
|
||||
msgstr "Bouffes"
|
||||
|
||||
#: apps/food/models.py:117
|
||||
msgid "arrival date"
|
||||
msgstr "date d'arrivée"
|
||||
|
||||
#: apps/food/models.py:152
|
||||
#: apps/food/models.py:169
|
||||
msgid "Basic food"
|
||||
msgstr "Aliment basique"
|
||||
|
||||
#: apps/food/models.py:153
|
||||
#: apps/food/models.py:170
|
||||
msgid "Basic foods"
|
||||
msgstr "Aliments basiques"
|
||||
|
||||
#: apps/food/models.py:161
|
||||
#: apps/food/models.py:182
|
||||
msgid "creation date"
|
||||
msgstr "date de création"
|
||||
|
||||
#: apps/food/models.py:169
|
||||
msgid "transformed ingredient"
|
||||
msgstr "ingrédients tranformées"
|
||||
|
||||
#: apps/food/models.py:174
|
||||
#: apps/food/models.py:188
|
||||
msgid "shelf life"
|
||||
msgstr "durée de vie"
|
||||
|
||||
#: apps/food/models.py:225 apps/food/views.py:375
|
||||
#: apps/food/models.py:196
|
||||
msgid "transformed ingredient"
|
||||
msgstr "ingrédients tranformées"
|
||||
|
||||
#: apps/food/models.py:258
|
||||
msgid "Transformed food"
|
||||
msgstr "Aliment transformé"
|
||||
|
||||
#: apps/food/models.py:226
|
||||
#: apps/food/models.py:259
|
||||
msgid "Transformed foods"
|
||||
msgstr "Aliments transformés"
|
||||
|
||||
#: apps/food/templates/food/basicfood_detail.html:14
|
||||
#: apps/food/templates/food/create_qrcode_form.html:31
|
||||
#: apps/food/templates/food/qrcode_detail.html:15
|
||||
#: apps/food/templates/food/transformedfood_detail.html:14
|
||||
msgid "Owner"
|
||||
msgstr "Propriétaire"
|
||||
#: apps/food/models.py:271
|
||||
msgid "qr code number"
|
||||
msgstr "numéro de QR-code"
|
||||
|
||||
#: apps/food/templates/food/basicfood_detail.html:15
|
||||
#: apps/food/templates/food/create_qrcode_form.html:34
|
||||
msgid "Arrival date"
|
||||
msgstr "Date d'arrivée"
|
||||
#: apps/food/models.py:278
|
||||
msgid "food container"
|
||||
msgstr "récipient"
|
||||
|
||||
#: apps/food/templates/food/basicfood_detail.html:16
|
||||
#: apps/food/templates/food/create_qrcode_form.html:37
|
||||
#: apps/food/templates/food/qrcode_detail.html:16
|
||||
#: apps/food/templates/food/transformedfood_detail.html:19
|
||||
msgid "Expiry date"
|
||||
msgstr "Date de péremption"
|
||||
#: apps/food/models.py:282
|
||||
msgid "QR-code"
|
||||
msgstr "QR-code"
|
||||
|
||||
#: apps/food/templates/food/basicfood_detail.html:24
|
||||
#: apps/food/templates/food/transformedfood_detail.html:36
|
||||
msgid "Active"
|
||||
msgstr "Actif"
|
||||
#: apps/food/models.py:283
|
||||
msgid "QR-codes"
|
||||
msgstr "QR-codes"
|
||||
|
||||
#: apps/food/templates/food/basicfood_detail.html:25
|
||||
#: apps/food/templates/food/transformedfood_detail.html:37
|
||||
msgid "Eaten"
|
||||
msgstr "Mangé"
|
||||
#: apps/food/models.py:286
|
||||
msgid "QR-code number"
|
||||
msgstr "numéro de QR-code"
|
||||
|
||||
#: apps/food/templates/food/basicfood_detail.html:28
|
||||
#: apps/food/templates/food/qrcode_detail.html:20
|
||||
#: apps/food/templates/food/qrcode_detail.html:24
|
||||
#: apps/food/templates/food/transformedfood_detail.html:41
|
||||
#: apps/food/templates/food/food_detail.html:19
|
||||
msgid "Contained in"
|
||||
msgstr "Contenu dans"
|
||||
|
||||
#: apps/food/templates/food/food_detail.html:26
|
||||
msgid "Contain"
|
||||
msgstr "Contient"
|
||||
|
||||
#: apps/food/templates/food/food_detail.html:35
|
||||
msgid "Update"
|
||||
msgstr "Modifier"
|
||||
|
||||
#: apps/food/templates/food/basicfood_detail.html:32
|
||||
#: apps/food/templates/food/qrcode_detail.html:34
|
||||
#: apps/food/templates/food/transformedfood_detail.html:46
|
||||
#: apps/food/templates/food/food_detail.html:40
|
||||
msgid "Add to a meal"
|
||||
msgstr "Ajouter à un plat"
|
||||
|
||||
#: apps/food/templates/food/create_qrcode_form.html:15
|
||||
msgid "New basic food"
|
||||
msgstr "Nouvel aliment basique"
|
||||
#: apps/food/templates/food/food_detail.html:44
|
||||
msgid "Return to the food list"
|
||||
msgstr "Retour à la liste de nourriture"
|
||||
|
||||
#: apps/food/templates/food/create_qrcode_form.html:23
|
||||
msgid "Copy constructor"
|
||||
msgstr "Constructeur de copie"
|
||||
|
||||
#: apps/food/templates/food/create_qrcode_form.html:28
|
||||
#: apps/food/templates/food/qrcode_detail.html:14
|
||||
#: apps/note/templates/note/transaction_form.html:132
|
||||
#: apps/treasury/models.py:60
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
#: apps/food/templates/food/qrcode_detail.html:10
|
||||
msgid "number"
|
||||
msgstr "numéro"
|
||||
|
||||
#: apps/food/templates/food/qrcode_detail.html:29
|
||||
msgid "View details"
|
||||
msgstr "Voir plus"
|
||||
|
||||
#: apps/food/templates/food/transformedfood_detail.html:16
|
||||
#: apps/food/templates/food/transformedfood_detail.html:35
|
||||
msgid "Ready"
|
||||
msgstr "Prêt"
|
||||
|
||||
#: apps/food/templates/food/transformedfood_detail.html:18
|
||||
msgid "Creation date"
|
||||
msgstr "Date de création"
|
||||
|
||||
#: apps/food/templates/food/transformedfood_detail.html:27
|
||||
msgid "Ingredients"
|
||||
msgstr "Ingrédients"
|
||||
|
||||
#: apps/food/templates/food/transformedfood_detail.html:34
|
||||
msgid "Shelf life"
|
||||
msgstr "Durée de vie"
|
||||
|
||||
#: apps/food/templates/food/transformedfood_list.html:11
|
||||
#: apps/food/templates/food/food_list.html:14
|
||||
msgid "Meal served"
|
||||
msgstr "Plat servis"
|
||||
|
||||
#: apps/food/templates/food/transformedfood_list.html:16
|
||||
#: apps/food/templates/food/food_list.html:19
|
||||
msgid "New meal"
|
||||
msgstr "Nouveau plat"
|
||||
|
||||
#: apps/food/templates/food/transformedfood_list.html:25
|
||||
#: apps/food/templates/food/food_list.html:28
|
||||
msgid "There is no meal served."
|
||||
msgstr "Il n'y a pas de plat servi."
|
||||
|
||||
#: apps/food/templates/food/transformedfood_list.html:33
|
||||
msgid "Open"
|
||||
#: apps/food/templates/food/food_list.html:35
|
||||
msgid "Free food"
|
||||
msgstr "Open"
|
||||
|
||||
#: apps/food/templates/food/transformedfood_list.html:40
|
||||
msgid "There is no free meal."
|
||||
msgstr "Il n'y a pas de plat en open"
|
||||
#: apps/food/templates/food/food_list.html:42
|
||||
msgid "There is no free food."
|
||||
msgstr "Il n'y a pas de bouffe en open"
|
||||
|
||||
#: apps/food/templates/food/transformedfood_list.html:48
|
||||
msgid "All meals"
|
||||
msgstr "Tout les plats"
|
||||
#: apps/food/templates/food/food_list.html:50
|
||||
msgid "Food of your clubs"
|
||||
msgstr "Bouffe de tes clubs"
|
||||
|
||||
#: apps/food/templates/food/transformedfood_list.html:55
|
||||
msgid "There is no meal."
|
||||
msgstr "Il n'y a pas de plat"
|
||||
#: apps/food/templates/food/food_list.html:56
|
||||
msgid "Food of club"
|
||||
msgstr "Bouffe du club"
|
||||
|
||||
#: apps/food/views.py:28
|
||||
msgid "Add the ingredient"
|
||||
msgstr "Ajouter un ingrédient"
|
||||
#: apps/food/templates/food/food_list.html:63
|
||||
msgid "Yours club has not food yet."
|
||||
msgstr "Ton club n'a pas de bouffe pour l'instant"
|
||||
|
||||
#: apps/food/views.py:42
|
||||
msgid "The product is already prepared"
|
||||
msgstr "Le produit est déjà prêt"
|
||||
#: apps/food/templates/food/qrcode.html:22
|
||||
msgid "Copy constructor"
|
||||
msgstr "Constructeur de copie"
|
||||
|
||||
#: apps/food/views.py:70
|
||||
msgid "Update an aliment"
|
||||
msgstr "Modifier un aliment"
|
||||
#: apps/food/templates/food/qrcode.html:23
|
||||
msgid "New food"
|
||||
msgstr "Nouvel aliment"
|
||||
|
||||
#: apps/food/views.py:97
|
||||
msgid "Details of:"
|
||||
msgstr "Détails de:"
|
||||
#: apps/food/templates/food/qrcode.html:29
|
||||
#: apps/note/templates/note/transaction_form.html:132
|
||||
#: apps/treasury/models.py:61
|
||||
msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
#: apps/food/views.py:121
|
||||
msgid "Add a new basic food with QRCode"
|
||||
msgstr "Ajouter un nouvel ingrédient avec un QR-code"
|
||||
#: apps/food/templates/food/qrcode.html:32
|
||||
msgid "Owner"
|
||||
msgstr "Propriétaire"
|
||||
|
||||
#: apps/food/views.py:194
|
||||
#: apps/food/templates/food/qrcode.html:35
|
||||
msgid "Expiry date"
|
||||
msgstr "Date de péremption"
|
||||
|
||||
#: apps/food/utils.py:6
|
||||
msgid "second"
|
||||
msgstr "seconde"
|
||||
|
||||
#: apps/food/utils.py:6
|
||||
msgid "seconds"
|
||||
msgstr "secondes"
|
||||
|
||||
#: apps/food/utils.py:7
|
||||
msgid "minute"
|
||||
msgstr "minute"
|
||||
|
||||
#: apps/food/utils.py:7
|
||||
msgid "minutes"
|
||||
msgstr "minutes"
|
||||
|
||||
#: apps/food/utils.py:8
|
||||
msgid "hour"
|
||||
msgstr "heure"
|
||||
|
||||
#: apps/food/utils.py:8
|
||||
msgid "hours"
|
||||
msgstr "heures"
|
||||
|
||||
#: apps/food/utils.py:9
|
||||
msgid "day"
|
||||
msgstr "jour"
|
||||
|
||||
#: apps/food/utils.py:9 apps/member/templates/member/includes/club_info.html:27
|
||||
msgid "days"
|
||||
msgstr "jours"
|
||||
|
||||
#: apps/food/utils.py:10
|
||||
msgid "week"
|
||||
msgstr "semaine"
|
||||
|
||||
#: apps/food/utils.py:10
|
||||
msgid "weeks"
|
||||
msgstr "semaines"
|
||||
|
||||
#: apps/food/utils.py:53
|
||||
msgid "and"
|
||||
msgstr "et"
|
||||
|
||||
#: apps/food/views.py:116
|
||||
msgid "Add a new QRCode"
|
||||
msgstr "Ajouter un nouveau QR-code"
|
||||
|
||||
#: apps/food/views.py:245
|
||||
msgid "QRCode"
|
||||
msgstr "QR-code"
|
||||
#: apps/food/views.py:165
|
||||
msgid "Add an aliment"
|
||||
msgstr "Ajouter un nouvel aliment"
|
||||
|
||||
#: apps/food/views.py:281
|
||||
msgid "Add a new meal"
|
||||
msgstr "Ajouter un nouveau plat"
|
||||
#: apps/food/views.py:224
|
||||
msgid "Add a meal"
|
||||
msgstr "Ajouter un plat"
|
||||
|
||||
#: apps/food/views.py:347
|
||||
msgid "Update a meal"
|
||||
msgstr "Modifier le plat"
|
||||
#: apps/food/views.py:251
|
||||
msgid "Add the ingredient:"
|
||||
msgstr "Ajouter l'ingrédient"
|
||||
|
||||
#: apps/food/views.py:275
|
||||
#, python-brace-format
|
||||
msgid "Food fully used in : {meal.name}"
|
||||
msgstr "Aliment entièrement utilisé dans : {meal.name}"
|
||||
|
||||
#: apps/food/views.py:294
|
||||
msgid "Update an aliment"
|
||||
msgstr "Modifier un aliment"
|
||||
|
||||
#: apps/food/views.py:342
|
||||
msgid "Details of:"
|
||||
msgstr "Détails de :"
|
||||
|
||||
#: apps/food/views.py:352 apps/treasury/tables.py:149
|
||||
msgid "Yes"
|
||||
msgstr "Oui"
|
||||
|
||||
#: apps/food/views.py:354 apps/member/models.py:99 apps/treasury/tables.py:149
|
||||
msgid "No"
|
||||
msgstr "Non"
|
||||
|
||||
#: apps/logs/apps.py:11
|
||||
msgid "Logs"
|
||||
@ -1044,10 +1062,6 @@ msgstr "payé⋅e"
|
||||
msgid "Tells if the user receive a salary."
|
||||
msgstr "Indique si l'utilisateur⋅rice perçoit un salaire."
|
||||
|
||||
#: apps/member/models.py:99 apps/treasury/tables.py:149
|
||||
msgid "No"
|
||||
msgstr "Non"
|
||||
|
||||
#: apps/member/models.py:100
|
||||
msgid "Yes (receive them in french)"
|
||||
msgstr "Oui (les recevoir en français)"
|
||||
@ -1357,10 +1371,6 @@ msgstr "Il n'y a pas d'adhésion trouvée avec cette entrée."
|
||||
msgid "Club Parent"
|
||||
msgstr "Club parent"
|
||||
|
||||
#: apps/member/templates/member/includes/club_info.html:27
|
||||
msgid "days"
|
||||
msgstr "jours"
|
||||
|
||||
#: apps/member/templates/member/includes/club_info.html:31
|
||||
#: apps/wei/templates/wei/base.html:40
|
||||
msgid "membership fee"
|
||||
@ -1456,11 +1466,11 @@ msgstr "Introspection :"
|
||||
msgid "Show my applications"
|
||||
msgstr "Voir mes applications"
|
||||
|
||||
#: apps/member/templates/member/picture_update.html:38
|
||||
#: apps/member/templates/member/picture_update.html:40
|
||||
msgid "Nevermind"
|
||||
msgstr "Annuler"
|
||||
|
||||
#: apps/member/templates/member/picture_update.html:39
|
||||
#: apps/member/templates/member/picture_update.html:41
|
||||
msgid "Crop and upload"
|
||||
msgstr "Recadrer et envoyer"
|
||||
|
||||
@ -1899,7 +1909,7 @@ msgstr "Ce champ est requis."
|
||||
msgid "membership transaction"
|
||||
msgstr "transaction d'adhésion"
|
||||
|
||||
#: apps/note/models/transactions.py:381 apps/treasury/models.py:300
|
||||
#: apps/note/models/transactions.py:381 apps/treasury/models.py:301
|
||||
msgid "membership transactions"
|
||||
msgstr "transactions d'adhésion"
|
||||
|
||||
@ -2512,7 +2522,7 @@ msgstr "Invalider l'inscription"
|
||||
msgid "Treasury"
|
||||
msgstr "Trésorerie"
|
||||
|
||||
#: apps/treasury/forms.py:26 apps/treasury/models.py:112
|
||||
#: apps/treasury/forms.py:26 apps/treasury/models.py:113
|
||||
#: apps/treasury/templates/treasury/invoice_form.html:22
|
||||
msgid "This invoice is locked and can no longer be edited."
|
||||
msgstr "Cette facture est verrouillée et ne peut plus être éditée."
|
||||
@ -2525,7 +2535,7 @@ msgstr "La remise est déjà fermée."
|
||||
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:125 apps/treasury/models.py:275
|
||||
#: apps/treasury/forms.py:125 apps/treasury/models.py:276
|
||||
#: apps/treasury/tables.py:99 apps/treasury/tables.py:108
|
||||
#: apps/treasury/templates/treasury/invoice_list.html:16
|
||||
#: apps/treasury/templates/treasury/remittance_list.html:16
|
||||
@ -2541,139 +2551,139 @@ msgstr "Pas de remise associée"
|
||||
msgid "Invoice identifier"
|
||||
msgstr "Numéro de facture"
|
||||
|
||||
#: apps/treasury/models.py:42 apps/wrapped/models.py:28
|
||||
#: apps/treasury/models.py:43 apps/wrapped/models.py:28
|
||||
#: apps/wrapped/models.py:29
|
||||
msgid "BDE"
|
||||
msgstr "BDE"
|
||||
|
||||
#: apps/treasury/models.py:46
|
||||
#: apps/treasury/models.py:47
|
||||
msgid "Quotation"
|
||||
msgstr "Devis"
|
||||
|
||||
#: apps/treasury/models.py:51
|
||||
#: apps/treasury/models.py:52
|
||||
msgid "Object"
|
||||
msgstr "Objet"
|
||||
|
||||
#: apps/treasury/models.py:55
|
||||
#: apps/treasury/models.py:56
|
||||
msgid "Description"
|
||||
msgstr "Description"
|
||||
|
||||
#: apps/treasury/models.py:64
|
||||
#: apps/treasury/models.py:65
|
||||
msgid "Address"
|
||||
msgstr "Adresse"
|
||||
|
||||
#: apps/treasury/models.py:69 apps/treasury/models.py:202
|
||||
#: apps/treasury/models.py:70 apps/treasury/models.py:203
|
||||
msgid "Date"
|
||||
msgstr "Date"
|
||||
|
||||
#: apps/treasury/models.py:75
|
||||
#: apps/treasury/models.py:76
|
||||
msgid "Payment date"
|
||||
msgstr "Date de paiement"
|
||||
|
||||
#: apps/treasury/models.py:79
|
||||
#: apps/treasury/models.py:80
|
||||
msgid "Acquitted"
|
||||
msgstr "Acquittée"
|
||||
|
||||
#: apps/treasury/models.py:84
|
||||
#: apps/treasury/models.py:85
|
||||
msgid "Locked"
|
||||
msgstr "Verrouillée"
|
||||
|
||||
#: apps/treasury/models.py:85
|
||||
#: apps/treasury/models.py:86
|
||||
msgid "An invoice can't be edited when it is locked."
|
||||
msgstr "Une facture ne peut plus être modifiée si elle est verrouillée."
|
||||
|
||||
#: apps/treasury/models.py:91
|
||||
#: apps/treasury/models.py:92
|
||||
msgid "tex source"
|
||||
msgstr "fichier TeX source"
|
||||
|
||||
#: apps/treasury/models.py:95 apps/treasury/models.py:140
|
||||
#: apps/treasury/models.py:96 apps/treasury/models.py:141
|
||||
msgid "invoice"
|
||||
msgstr "facture"
|
||||
|
||||
#: apps/treasury/models.py:96
|
||||
#: apps/treasury/models.py:97
|
||||
msgid "invoices"
|
||||
msgstr "factures"
|
||||
|
||||
#: apps/treasury/models.py:99
|
||||
#: apps/treasury/models.py:100
|
||||
#, python-brace-format
|
||||
msgid "Invoice #{id}"
|
||||
msgstr "Facture n°{id}"
|
||||
|
||||
#: apps/treasury/models.py:145
|
||||
#: apps/treasury/models.py:146
|
||||
msgid "Designation"
|
||||
msgstr "Désignation"
|
||||
|
||||
#: apps/treasury/models.py:151
|
||||
#: apps/treasury/models.py:152
|
||||
msgid "Quantity"
|
||||
msgstr "Quantité"
|
||||
|
||||
#: apps/treasury/models.py:156
|
||||
#: apps/treasury/models.py:157
|
||||
msgid "Unit price"
|
||||
msgstr "Prix unitaire"
|
||||
|
||||
#: apps/treasury/models.py:160
|
||||
#: apps/treasury/models.py:161
|
||||
msgid "product"
|
||||
msgstr "produit"
|
||||
|
||||
#: apps/treasury/models.py:161
|
||||
#: apps/treasury/models.py:162
|
||||
msgid "products"
|
||||
msgstr "produits"
|
||||
|
||||
#: apps/treasury/models.py:189
|
||||
#: apps/treasury/models.py:190
|
||||
msgid "remittance type"
|
||||
msgstr "type de remise"
|
||||
|
||||
#: apps/treasury/models.py:190
|
||||
#: apps/treasury/models.py:191
|
||||
msgid "remittance types"
|
||||
msgstr "types de remises"
|
||||
|
||||
#: apps/treasury/models.py:213
|
||||
#: apps/treasury/models.py:214
|
||||
msgid "Comment"
|
||||
msgstr "Commentaire"
|
||||
|
||||
#: apps/treasury/models.py:218
|
||||
#: apps/treasury/models.py:219
|
||||
msgid "Closed"
|
||||
msgstr "Fermée"
|
||||
|
||||
#: apps/treasury/models.py:222
|
||||
#: apps/treasury/models.py:223
|
||||
msgid "remittance"
|
||||
msgstr "remise"
|
||||
|
||||
#: apps/treasury/models.py:223
|
||||
#: apps/treasury/models.py:224
|
||||
msgid "remittances"
|
||||
msgstr "remises"
|
||||
|
||||
#: apps/treasury/models.py:226
|
||||
#: apps/treasury/models.py:227
|
||||
msgid "Remittance #{:d}: {}"
|
||||
msgstr "Remise n°{:d} : {}"
|
||||
|
||||
#: apps/treasury/models.py:279
|
||||
#: apps/treasury/models.py:280
|
||||
msgid "special transaction proxy"
|
||||
msgstr "proxy de transaction spéciale"
|
||||
|
||||
#: apps/treasury/models.py:280
|
||||
#: apps/treasury/models.py:281
|
||||
msgid "special transaction proxies"
|
||||
msgstr "proxys de transactions spéciales"
|
||||
|
||||
#: apps/treasury/models.py:306
|
||||
#: apps/treasury/models.py:307
|
||||
msgid "credit transaction"
|
||||
msgstr "transaction de crédit"
|
||||
|
||||
#: apps/treasury/models.py:311
|
||||
#: apps/treasury/models.py:312
|
||||
#: apps/treasury/templates/treasury/sogecredit_detail.html:10
|
||||
msgid "Credit from the Société générale"
|
||||
msgstr "Crédit de la Société générale"
|
||||
|
||||
#: apps/treasury/models.py:312
|
||||
#: apps/treasury/models.py:313
|
||||
msgid "Credits from the Société générale"
|
||||
msgstr "Crédits de la Société générale"
|
||||
|
||||
#: apps/treasury/models.py:315
|
||||
#: apps/treasury/models.py:316
|
||||
#, python-brace-format
|
||||
msgid "Soge credit for {user}"
|
||||
msgstr "Crédit de la société générale pour l'utilisateur·rice {user}"
|
||||
|
||||
#: apps/treasury/models.py:445
|
||||
#: apps/treasury/models.py:446
|
||||
msgid ""
|
||||
"This user doesn't have enough money to pay the memberships with its note. "
|
||||
"Please ask her/him to credit the note before invalidating this credit."
|
||||
@ -2702,10 +2712,6 @@ msgstr "Nombre de transactions"
|
||||
msgid "View"
|
||||
msgstr "Voir"
|
||||
|
||||
#: apps/treasury/tables.py:149
|
||||
msgid "Yes"
|
||||
msgstr "Oui"
|
||||
|
||||
#: apps/treasury/templates/treasury/invoice_confirm_delete.html:10
|
||||
#: apps/treasury/views.py:174
|
||||
msgid "Delete invoice"
|
||||
@ -3812,10 +3818,6 @@ msgstr ""
|
||||
msgid "Reset"
|
||||
msgstr "Réinitialiser"
|
||||
|
||||
#: note_kfet/templates/base.html:72
|
||||
msgid "Food"
|
||||
msgstr "Bouffe"
|
||||
|
||||
#: note_kfet/templates/base.html:84
|
||||
msgid "Users"
|
||||
msgstr "Utilisateur·rices"
|
||||
@ -4125,6 +4127,67 @@ msgstr ""
|
||||
"d'adhésion. Vous devez également valider votre adresse email en suivant le "
|
||||
"lien que vous avez reçu."
|
||||
|
||||
#, python-brace-format
|
||||
#~ msgid "QR-code number {qr_code_number}"
|
||||
#~ msgstr "numéro du QR-code {qr_code_number}"
|
||||
|
||||
#~ msgid "was eaten"
|
||||
#~ msgstr "a été mangé"
|
||||
|
||||
#~ msgid "is active"
|
||||
#~ msgstr "est en cours"
|
||||
|
||||
#~ msgid "foods"
|
||||
#~ msgstr "bouffes"
|
||||
|
||||
#~ msgid "Arrival date"
|
||||
#~ msgstr "Date d'arrivée"
|
||||
|
||||
#~ msgid "Active"
|
||||
#~ msgstr "Actif"
|
||||
|
||||
#~ msgid "Eaten"
|
||||
#~ msgstr "Mangé"
|
||||
|
||||
#~ msgid "number"
|
||||
#~ msgstr "numéro"
|
||||
|
||||
#~ msgid "View details"
|
||||
#~ msgstr "Voir plus"
|
||||
|
||||
#~ msgid "Ready"
|
||||
#~ msgstr "Prêt"
|
||||
|
||||
#~ msgid "Creation date"
|
||||
#~ msgstr "Date de création"
|
||||
|
||||
#~ msgid "Ingredients"
|
||||
#~ msgstr "Ingrédients"
|
||||
|
||||
#~ msgid "Open"
|
||||
#~ msgstr "Open"
|
||||
|
||||
#~ msgid "All meals"
|
||||
#~ msgstr "Tout les plats"
|
||||
|
||||
#~ msgid "There is no meal."
|
||||
#~ msgstr "Il n'y a pas de plat"
|
||||
|
||||
#~ msgid "The product is already prepared"
|
||||
#~ msgstr "Le produit est déjà prêt"
|
||||
|
||||
#~ msgid "Add a new basic food with QRCode"
|
||||
#~ msgstr "Ajouter un nouvel ingrédient avec un QR-code"
|
||||
|
||||
#~ msgid "QRCode"
|
||||
#~ msgstr "QR-code"
|
||||
|
||||
#~ msgid "Add a new meal"
|
||||
#~ msgstr "Ajouter un nouveau plat"
|
||||
|
||||
#~ msgid "Update a meal"
|
||||
#~ msgstr "Modifier le plat"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "invalidate"
|
||||
#~ msgid "Enter a valid color."
|
||||
@ -4180,11 +4243,6 @@ msgstr ""
|
||||
#~ msgid "Enter a number."
|
||||
#~ msgstr "numéro de téléphone"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "add"
|
||||
#~ msgid "and"
|
||||
#~ msgstr "ajouter"
|
||||
|
||||
#, fuzzy, python-format
|
||||
#~| msgid "A template with this name already exist"
|
||||
#~ msgid "%(model_name)s with this %(field_labels)s already exists."
|
||||
@ -4446,9 +4504,6 @@ msgstr ""
|
||||
#~ msgid "Free"
|
||||
#~ msgstr "Open"
|
||||
|
||||
#~ msgid "Add a new aliment"
|
||||
#~ msgstr "Ajouter un nouvel aliment"
|
||||
|
||||
#, fuzzy
|
||||
#~| msgid "Transformed food"
|
||||
#~ msgid "New transformed food"
|
||||
|
Loading…
x
Reference in New Issue
Block a user