1
0
mirror of https://gitlab.crans.org/bde/nk20 synced 2025-04-30 10:31:32 +00:00

Update Apps/Droits

Pierre-antoine Comby 2020-03-21 18:36:12 +01:00
parent fcf4c651d4
commit d8b294f152

@ -20,12 +20,11 @@ Exception faite sur l'ajout d'objets : l'objet n'existant pas encore en base de
La requête est enregistrée sous un format JSON, puis est traduite en requête `Q` récursivement en appliquant certains paramètres (on note `about` la fonction de traduction) : La requête est enregistrée sous un format JSON, puis est traduite en requête `Q` récursivement en appliquant certains paramètres (on note `about` la fonction de traduction) :
``` * `[] | {} -> Q(pk=F("pk"))` Une liste ou un objet vide représente tous les objets
* [] | {} -> Q(pk=F("pk")) # Une liste ou un objet vide représente tous les objets * `["AND", query, …] -> about(query) & … ` Conjonction de requêtes
* ["AND", query, …] -> about(query) & … # Conjonction de requêtes * `["OR", query, …] -> about(query) | … ` Disjonction de requêtes
* ["OR", query, …] -> about(query) | … # Disjonction de requêtes * `["NOT", query] -> ~about(query) ` Négation d'une requête
* ["NOT", query] -> ~about(query) # Négation d'une requête * `{key: value, …} -> Q(key=value, …) ` Liste de champs et de valeurs dans un objet Q
* {key: value, …} -> Q(key=value, …) # Liste de champs et de valeurs dans un objet Q
* `key` est une chaîne de caractères,représentant le nom du champ * `key` est une chaîne de caractères,représentant le nom du champ
* `value` peut être de plusieurs natures : * `value` peut être de plusieurs natures :
* Un nombre, une chaîne de caractères, un booléen, `null` pour représenter des valeurs littérales * Un nombre, une chaîne de caractères, un booléen, `null` pour représenter des valeurs littérales
@ -36,12 +35,12 @@ La requête est enregistrée sous un format JSON, puis est traduite en requête
* Les exemples seront plus clairs. * Les exemples seront plus clairs.
* Si c'est un dictionnaire de la forme {"F": oper}, alors c'est interprété comme un objet `F`. * Si c'est un dictionnaire de la forme {"F": oper}, alors c'est interprété comme un objet `F`.
* Si `oper` est un littéral, il est interprété tel quel. * Si `oper` est un littéral, il est interprété tel quel.
* Si `oper` = ["ADD", oper1, oper2, …], le résultat est la somme des objets `F` calculés d'après le reste de la liste. * Si `oper = ["ADD", oper1, oper2, …]`, le résultat est la somme des objets `F` calculés d'après le reste de la liste.
* Si `oper` = ["SUB", oper1, oper2,], le résultat est la différence des deux objets `F`. * Si `oper = ["SUB", oper1, oper2,]`, le résultat est la différence des deux objets `F`.
* Si `oper` = ["MUL", oper1, oper2, …], le résultat est le produit des objets `F` calculés d'après le reste de la liste. * Si `oper = ["MUL", oper1, oper2, …]`, le résultat est le produit des objets `F` calculés d'après le reste de la liste.
* Si `oper` = ["F", name], le résultat est F(name). * Si `oper = ["F", name]`, le résultat est F(name).
* Dans les autres cas, `oper` est un paramètre calculé comme précédemment. * Dans les autres cas, `oper` est un paramètre calculé comme précédemment.
```
## Exemples ## Exemples