tags.md 1.05 KB
Newer Older
Florent Chehab's avatar
Florent Chehab committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Tags
=====

Afin de simplifier l'architecture générale du backend est d'offrir de nombreuses possibilités d'évolutions, un système de tag a été mis en place.

Un `Tag` est une sorte de module Django abstrait qui contient la définition de ses champs (et des contraintes associées) dans son attribut `config`. Les informations saises par les utilisateurs sont alors stockées sous forme de `JSON`.

Les éléments `City`, `University`, `Campus` et `Country` peuvent être associé à n'importe quel tag : cela se passe dans les classes `*****TaggedItem`.

Le tag se configure via un fichier `JSON` qui prend la forme suivante :

```json
{
    "nom du champ":{
        "type": "????",
        "required": bool,
        "validators" : {
            "name_validator_1" : ...
        }
}
```
À ce jour, `type` et `validators` peuvent-être :
- 'text' :
  - `max_length` pour contraindre la longueur maximale de la chaine de caractère.
- 'url' :
  - `extension` : pour contraindre l'url (il doit se terminer par une extension de la liste)
- `list` : dans ce cas,  TODO