mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-06-21 01:48:21 +02:00
permission, fixture, translation (fr), bug fixes
This commit is contained in:
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
|
||||
]
|
||||
}
|
||||
},
|
||||
|
Reference in New Issue
Block a user