doc/evolution.rst
author ymh <ymh.work@gmail.com>
Tue, 03 Dec 2013 13:54:30 +0100
changeset 160 470ea7806537
parent 158 03fea67e18e9
permissions -rw-r--r--
Remove TODO comment
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
     1
:tocdepth: 4
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
     2
:tocmaxdepth: 3
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
     3
121
0d2a35462576 Add doc
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
*********
0d2a35462576 Add doc
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
Évolution
0d2a35462576 Add doc
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
*********
0d2a35462576 Add doc
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
0d2a35462576 Add doc
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
Internationalisation
0d2a35462576 Add doc
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
====================
0d2a35462576 Add doc
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    11
Le système d'internationalisation (i18n) utilise le mécanisme fourni par Django.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    12
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    13
Il est documenté aux adresses suivantes :
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    14
  * https://docs.djangoproject.com/en/1.5/topics/i18n/ et
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    15
  * https://docs.djangoproject.com/en/1.5/topics/i18n/translation/
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    16
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    17
Ce mécanisme est basé sur l'utilitaire `gettext <http://www.gnu.org/software/gettext/manual/gettext.html#Concepts>`_.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    18
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
    19
En particulier, dans l'arborescence des sources de l'application, les fichiers ``src/p4l/locale/*/LC_MESSAGES/django.[po,mo]`` sont les fichiers de ressources de langues.
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
    20
Les fichier éditable sont les fichiers ``.po``.
121
0d2a35462576 Add doc
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
    22
Deux commandes d'administration sont fournies par Django pour gérer les fichiers de ressources de traduction:
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    23
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    24
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    25
  * ``makemessages`` : https://docs.djangoproject.com/en/1.5/ref/django-admin/#django-admin-makemessages.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    26
    C'est la commande permettant la création et la mis ā jour des fichiers ``.po``.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    27
    Cette commande extrait des fichier sources de l'application les chaîne de caractères à traduire et les places dans les fichier ``.po``.
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
    28
    Typiquement, on ne lancera cette commande que si de nouvelles chaînes à traduire sont ajoutées dans l'application.
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    29
     
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
    30
  * ``compilemessages`` : Compile les fichiers ``.po`` constitués par la commande précédente afin que les traduction soit prise en compte.
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
    31
    Cette commande produit les fichier ``.mo``. 
121
0d2a35462576 Add doc
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
    33
Ces commandes peuvent être lancées de plusieurs façons. Le plus simple est de les lancer depuis le répertoire ``src/p4l`` et avec l'utilitaire ``django-admin.py``.
147
e4d53c64f0d0 Evolution doc correction for i18n. fix bug #7 (https://github.com/IRI-Research/plan4learning/issues/7)
ymh <ymh.work@gmail.com>
parents: 144
diff changeset
    34
Ce dernier est installé lors de l'installation de Django.
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
    35
Dans le cas de l'utilisation d'un environnement virtuel, il se trouve dans le répertoire ``bin``, et de fait dans le "PATH" lorsque l'environnement virtuel est activé.
147
e4d53c64f0d0 Evolution doc correction for i18n. fix bug #7 (https://github.com/IRI-Research/plan4learning/issues/7)
ymh <ymh.work@gmail.com>
parents: 144
diff changeset
    36
La suite des commandes pour 
e4d53c64f0d0 Evolution doc correction for i18n. fix bug #7 (https://github.com/IRI-Research/plan4learning/issues/7)
ymh <ymh.work@gmail.com>
parents: 144
diff changeset
    37
e4d53c64f0d0 Evolution doc correction for i18n. fix bug #7 (https://github.com/IRI-Research/plan4learning/issues/7)
ymh <ymh.work@gmail.com>
parents: 144
diff changeset
    38
.. code-block:: bash
e4d53c64f0d0 Evolution doc correction for i18n. fix bug #7 (https://github.com/IRI-Research/plan4learning/issues/7)
ymh <ymh.work@gmail.com>
parents: 144
diff changeset
    39
e4d53c64f0d0 Evolution doc correction for i18n. fix bug #7 (https://github.com/IRI-Research/plan4learning/issues/7)
ymh <ymh.work@gmail.com>
parents: 144
diff changeset
    40
    $ cd src/p4l
e4d53c64f0d0 Evolution doc correction for i18n. fix bug #7 (https://github.com/IRI-Research/plan4learning/issues/7)
ymh <ymh.work@gmail.com>
parents: 144
diff changeset
    41
    $ django-admin.py makemessages -a
e4d53c64f0d0 Evolution doc correction for i18n. fix bug #7 (https://github.com/IRI-Research/plan4learning/issues/7)
ymh <ymh.work@gmail.com>
parents: 144
diff changeset
    42
    <edition des fichiers .po>
e4d53c64f0d0 Evolution doc correction for i18n. fix bug #7 (https://github.com/IRI-Research/plan4learning/issues/7)
ymh <ymh.work@gmail.com>
parents: 144
diff changeset
    43
    $ django-admin.py compilemessages 
e4d53c64f0d0 Evolution doc correction for i18n. fix bug #7 (https://github.com/IRI-Research/plan4learning/issues/7)
ymh <ymh.work@gmail.com>
parents: 144
diff changeset
    44
121
0d2a35462576 Add doc
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
    46
Modification des champs
121
0d2a35462576 Add doc
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
=======================
0d2a35462576 Add doc
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    49
La modification de la liste des champs traitée par le back-office nécessite des changements a plusieurs niveaux.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    50
Voici une liste des points à modifier.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    51
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    52
  * Dans la :ref:`configuration <evol-config>` (``settings.py``) : les propriétés ``SPARQL_REF_QUERIES`` et ``RDF_SCHEMES``
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    53
  * :ref:`Évolution du schéma <evol-schema>` de la base de données
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    54
  * :ref:`Modification du parser <evol-parser>` pour l'import.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    55
  * :ref:`Modification du sérialiseur <evol-serializer>` pour l'export 
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
    56
    + Modification de la constante ``p4l.mapping.constants.GRAPH_NAMESPACES``
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    57
  * :ref:`Modification du serialiseur rest <evol-rest-serializer>`.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    58
  * 
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    59
  * modification de l'écran d'affichage du :ref:`détail <evol-detail>` d'une notice.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    60
  * modification de l'écran d':ref:`édition <evol-edition>` d'une notice.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    61
  
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    62
La description de ces modifications se base sur la condition que le type de champ ajouté est le même qu'un champ déjà existant.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    63
La création d'un nouveau type de champ est hors du scope de cette documentation, 
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
    64
Mais l'examen attentif des points suivants pourront être un point de départ pour le développement. 
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    65
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    66
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    67
.. _evol-config:
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    68
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    69
Modification de la configuration
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    70
--------------------------------
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    71
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    72
Cette modification concerne seulement les champs dont la(es) valeur(s) est(sont) contrôlé(s) par un référentiel.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    73
Les deux propriétés concernées sont ``SPARQL_REF_QUERIES`` et ``RDF_SCHEMES``. ce sont deux dictionnaires ayant les mêmes valeurs de clef.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    74
Chaque clef correspond à un référentiel.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    75
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    76
.. _evol-config-SPARQL-REF-QUERIES:
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    77
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    78
``SPARQL_REF_QUERIES``
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    79
^^^^^^^^^^^^^^^^^^^^^^
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    80
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
    81
les valeurs de ce dictionnaire sont elle même un dictionnaire qui contient les requêtes SPARQL d'exploration des référentiels.
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    82
les clés suivantes sont à renseigner:
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    83
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    84
    * ``url`` : url du endpoint pour ce référentiel. On n'y mettra ``SPARQL_QUERY_ENDPOINT`` la plupart du temps.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    85
    * ``filter`` : requête filtrant les entrées du référentiel selon une partie de terme.
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
    86
      Cette requète est utilisé pour faire de l'auto complétion.
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    87
    * ``root`` : Requête qui donne les racines des référentiels en arbre et l'ensemble des termes pour les autres
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
    88
    * ``childs`` : Requête donnant les enfants d'un nœud particulier pour les référentiel "arbre".
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    89
      Cette clé n'a pas besoin d'être renseigné pour les autres.
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
    90
    * ``child-count`` : Nombre d’enfants pour 1 nœud d'un référentiel arbre. N'a pas besoin d'être renseignée pour les autres.
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    91
 
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    92
 
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    93
``RDF_SCHEMES``
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    94
^^^^^^^^^^^^^^^
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    95
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    96
Ce dictionnaire donne les uri des ``scheme`` des référentiels. 
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    97
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    98
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
    99
.. _evol-schema:
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   100
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   101
Modification du schéma de la base de donnée
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   102
-------------------------------------------
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   103
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   104
Modification du modèle Django
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   105
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   106
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   107
La première étape consiste à modifier le modèle Django.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   108
La documentation Django sur les modèle se trouve à l'url suivante https://docs.djangoproject.com/en/1.5/topics/db/models/
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   109
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   110
le modèle du projet se trouve dans ``src/p4l/models`` et en particulier la définition d'une notice (objet ``Record``) dans ``src/p4l/models/data.py``.
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   111
Ce fichier contient toute les définitions des champs actuellement utilisés et pourra servir de base d'exemple pour les évolutions envisagées.
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   112
 
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   113
Attention, contrairement à la documentation Django, il ne faut pas appliquer pas la commande ``syncdb`` pour mettre à jour le schema de la base de donnée.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   114
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   115
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   116
Utilisation de South
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   117
^^^^^^^^^^^^^^^^^^^^
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   118
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   119
Pour assurer la gestion des migration de modèle de donnée sur des base en production nous utilisons le module Django South : http://south.aeracode.org/.
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   120
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   121
L'utilisation de ce module passe par la création de migrations.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   122
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   123
En particulier nous suivons l'exemple donné à l'url suivante:
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   124
http://south.readthedocs.org/en/latest/tutorial/part1.html#changing-the-model
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   125
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   126
Les commandes ajoutées par South sont documentées à l'adresse suivante :
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   127
http://south.readthedocs.org/en/latest/commands.html
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   128
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   129
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   130
.. _evol-parser:
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   131
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   132
Modification du parser pour l'import
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   133
------------------------------------
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   134
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   135
L'import des notice au format rdf se fait avec la commande ``import_record`` (cf :ref:`admin-import-record`).
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   136
Cette commande sépare le fichier rdf en sous graphes rdf, un par objet ``Record``.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   137
Ces graphes sont alors pris en présent à un parser qui se charge de leur transformation en objets ``Record``.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   138
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   139
Le parser est définit dans le fichier ``src/p4l/mapping/parsers.py``, plus particulièrement dans la classe ``RecordParser``.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   140
La définition des champs et des sous-objets se fait dans la méthode ``build_record``.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   141
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   142
Le parsing des données du graphe se fait en fait à l'aide de deux méthodes principales définies sur la classe ``RecordParser``:
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   143
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   144
  * ``extract_single_value_form_graph`` : permet d'extraire une valeur simple du graphe. Elle est utilisée pour les champs simples monovalués.
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   145
  * ``extract_multiple_values_from_graph`` : Gère l'ajout d'objet à un gestionnaire d'objets liés ("related object manager" : https://docs.djangoproject.com/en/1.5/ref/models/relations/).
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   146
    Les données nécessaires pour la création des objets sont extraites du graphe. 
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   147
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   148
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   149
Points à noter:
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   150
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   151
  #. Les champs simples doivent être positionnés avant la sauvegarde de la notice (appel à la méthode save du modèle ``Record``).
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   152
     Par contre les champs complexes (sous objets, champs multivalués,...) doivent être traités après l'appel à ``.save()``
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   153
  #. Lorsqu'une notice est mise à jour, l'objet ``Record`` et ces dépendances sont effacés et recréés
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   154
  #. Sauf pour les champs gérés par un référentiel, ll y a une relation d'aggregation entre l'objet ``Record`` et ses sous objets.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   155
     Dans le cas des champs complexes avec référentiel, c'est une relation multiple (many to many).
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   156
     Dans ce cas lors de l'effacement d'un object ``Record``, seul les entrées dans les tables de liaison sont effacées. Les entrées dans les tables de référentiel ne sont pas affectées.
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   157
  #. Sur les champs avec référentiel, il n'y a pas de validation. Les entrées dans les tables de référentiels sont crées à la demande, sans validation par rapport au repository Sésame.      
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   158
  #. L'ensemble de la création (ou de l'effacement) d'un objet ``Record`` et de ces dépendances est fait dans une transaction.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   159
 
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   160
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   161
.. _evol-serializer:
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   162
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   163
Modification du serialiseur pour l'export
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   164
-----------------------------------------
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   165
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   166
L’export des notices au format rdf se fait avec la commande ``dump_record`` (cf :ref:`admin-dump-record`).
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   167
Chaque objet ``Record`` concerné par l'export est transformé en graphe rdf par un serialiseur. Le graphe rdf est ensuite sérialisé en xml.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   168
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   169
Le serializer est défini dans le fichier ``src/p4l/mapping/__init__.py`` et fait appel à des ressources se trouvant dans ``src/p4l/mapping/serializers.py``. 
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   170
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   171
Les interfaces définies dans ce modules sont inspirées de celle proposée par le module ``Rest framework`` que nous utilisons par ailleurs (cf. :ref:`evol-rest-serializer`).
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   172
En particulier on pourra lire la documentation des ``serializer``: http://django-rest-framework.org/api-guide/serializers.html .
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   173
121
0d2a35462576 Add doc
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   175
.. _evol-rest-serializer:
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   176
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   177
Modification du serialiseur REST
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   178
--------------------------------
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   179
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   180
Une partie de l'application (l'édition des notices) dépend d'interface REST proposant du JSON.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   181
Pour cela nous utilisons le module "Django REST Framework".
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   182
La documentation de ce module se trouve à l'adresse suivante : http://django-rest-framework.org/ .
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   183
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   184
La classe à modifier est ``RecordSerializer`` qui se trouve dans le fichier ``src/p4l/api/serializers.py``.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   185
La documentation sur les ``serializer`` du Rest Framework est à l'adresses suivante : http://django-rest-framework.org/tutorial/1-serialization.html.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   186
La documentation de l'api des serializer se trouve aux url suivantes : http://django-rest-framework.org/api-guide/serializers.html, http://django-rest-framework.org/api-guide/fields.html, http://django-rest-framework.org/api-guide/relations.html.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   187
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   188
Nous utilisons les mécanismes standards de sérialisation du ``REST Framework``. Nous avons juste adapté les points suivants:
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   189
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   190
  * Pour les champs contrôlés par un référentiel, le mécanisme standard du ``REST Framework`` est d'accepter les valeurs que si elle sont déjà présente dans la base.
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   191
    Nous avons changé ce comportement pour accepter toutes les valeurs et de créer les nouvelles à la demande. Ceci a été fait pour simplifier la gestion des référentiels et la centraliser en amont du back office.
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   192
    Ceci est implémenté dans la classe ``p4l.api.serializers.ThesaurusSerializer``.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   193
  * Pour les champs multiples et les sous-objets, l'ID de l'objet en base n'est pas sérialisée. Ceci se trouve dans la classe ``p4l.api.serializers.P4lModelSerializer``.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   194
  * Lors d'un update, les sous-objets sont effacés puis recréés. cela a pour conséquence qu'un update partiel n'est pas possible. A chaque requête de mise à jour, l'ensemble de l'objet ``Record`` et de tous ses sous-objets doit être envoyé à l'API REST d'update. 
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   195
  * Une modification du seerializer REST n'est nécessaire que si le nouveau champ est contrôlé par un référentiel (bien sur si ce nouveau champ est d'un type déjà supporté par l'application).
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   196
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   197
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   198
.. _evol-ref-labels:
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   199
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   200
Modification de la récupération des labels des champs contrôlés par référentiel
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   201
-------------------------------------------------------------------------------
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   202
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   203
L'application ne gère pas les labels des valeurs des champs contrôlés par référentiel.
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   204
Pour l'affichage des notices il est donc nécessaire de préalablement requêter tous ces labels.
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   205
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   206
La requête se fait dans la méthode ``p4l.views.fill_label_for_model`` (dans le fichier ``src/p4l/views.py``).
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   207
Cette méthode retourne un dictionnaire où les clefs sont les uri des termes, et les valeurs les labels correspondants dans la langue demandées.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   208
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   209
Bien sur aucune modification n’est nécessaire si le champ ajouté ou modifié n'introduit pas un nouveau référentiel.
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   210
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   211
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   212
.. _evol-detail:
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   213
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   214
Modification de l'écran de détail
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   215
---------------------------------
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   216
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   217
L'écran de détail d'une notice (cf. :ref:`interface-detail`) utilise le couple classique vue/template Django.
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   218
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   219
La documentation Django sur les vues est à l'url suivante : https://docs.djangoproject.com/en/1.5/topics/class-based-views/.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   220
La documentation Django sur les template est ici : https://docs.djangoproject.com/en/1.5/topics/templates/.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   221
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   222
La vue d'affichage du détail d'une notice est générée par la classe suivante : ``p4l.views.RecordDetailView`` (dans le fichier ``src/p4l/views.py``).
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   223
Le template d'affichage du détail est le suivant : ``src/templates/p4l/record_view.html``.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   224
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   225
Normalement seul le template a besoin d'être modifié. Les champs déjà présents pourront être pris comme exemple pour introduire le nouveau champ.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   226
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   227
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   228
.. _evol-edition:
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   229
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   230
Modification de l'écran d'édition
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   231
---------------------------------
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   232
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   233
Comme pour l'écran de détail, l'écran d'édition d'une notice (c.f. :ref:`interface-edit`) utilise un couple vue/template Django. (c.f. :ref:`evol-detail` pour les url de documentation Django)
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   234
Par contre les fonctionnalités de cette page sont nettement plus complexes dans leur mise en œuvre.
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   235
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   236
La vue d'édition d'une notice est générée par la classe suivante : ``p4l.views.RecordEditView`` (dans le fichier ``src/p4l/views.py``).
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   237
Le template d'affichage du détail est le suivant : ``src/templates/p4l/record_update_form.html``.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   238
Par ailleurs la vue d'édition est en fait une véritable application web ("webapp") basée sur la librairie Angularjs (http://angularjs.org/).
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   239
Elle est implémentée dans le fichier ``src/p4l/static/p4l/js/p4l.js``.
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   240
La page fait aussi appel à des ressources (des templates) dans le répertoire ``src/p4l/static/p4l/template``.
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   241
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   242
Normalement, seul les fichiers template Django ``src/templates/p4l/record_update_form.html`` ou bien angular ``src/p4l/static/p4l/templates`` auront besoin d'être modifiés pour ajouter ou modifier un champs d'un type déjà existant.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   243
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   244
Lors du chargement de la page d'édition, les données de la notice sont chargées à partir de la couche d'API REST sous forme d'objets sérialisés en JSON.
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   245
Ces données viennent remplir le "modèle" de l'appli web.
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   246
Ce modèle est ensuite exploité dans une série de directives Angularjs (c.f. http://docs.angularjs.org/guide/directive) qui permettent l’édition des différents champs et sous-objets de la notice.
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   247
Lors de la sauvegarde, ce modèle est sérialisé en JSON et soumis par requête http à la couche d'API REST de l'application.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   248
 
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   249
Le formulaire d'édition utilise 4 types d'éléments pour gérer les différents champs et sous-objets de l'objet notice.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   250
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   251
  * Pour les champs simples: des contrôles html (``input``, ``textarea``...) liés au modèle dans un formulaire Angularjs (http://docs.angularjs.org/guide/forms)
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   252
  * Pour les champs simples liés à un référentiel : la directive :ref:`simple-sem-uri <evol-edition-simple-sem-uri>`.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   253
  * Pour les champs complexes liés à un référentiel : la directive :ref:`add-sem-uri <evol-edition-add-sem-uri>`.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   254
  * Pour les champs complexes autres (sous-objets) : la directive :ref:`object-list <evol-edition-object-list>`.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   255
 
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   256
Les contrôles html et l'usage qu'Angularjs en fait sont documentés dans la référence d'API : http://docs.angularjs.org/api/.
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   257
Le reste des directives est documenté ci-après et on pourra se baser sur les champs existant pour avoir des exemple d'utilisation.
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   258
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   259
.. _evol-edition-simple-sem-uri:
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   260
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   261
Directive ``simple-sem-uri``
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   262
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   263
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   264
  * ``val`` : le champ du modèle lié à cette directive.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   265
  * ``listname`` : Une des clefs du paramètre de configuration ``SPARQL_REF_QUERIES`` (c.f. :ref:`evol-config-SPARQL-REF-QUERIES`)
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   266
  * ``placeholder`` : texte d'aide du champs de saisie pour le référentiel.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   267
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   268
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   269
.. _evol-edition-add-sem-uri:
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   270
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   271
Directive ``add-sem-uri``
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   272
^^^^^^^^^^^^^^^^^^^^^^^^^
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   273
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   274
  * ``list`` : le champ du modèle lié à cette directive, ce doit être une liste (champ multivalué).
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   275
  * ``listname`` : Une des clefs du paramètre de configuration ``SPARQL_REF_QUERIES`` (cf. :ref:`evol-config-SPARQL-REF-QUERIES`)
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   276
  * ``placeholder`` : texte d'aide du champs de saisie pour le référentiel.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   277
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   278
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   279
.. _evol-edition-object-list:
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   280
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   281
Directive ``object-list``
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   282
^^^^^^^^^^^^^^^^^^^^^^^^^
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   283
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   284
  * ``form-template`` : nom d'un template pour l'édition des sous-objets.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   285
  * ``disp-template`` : nom d'un template pour gérer l'affichage des sous-objets. Ce paramêtre est optionnel en mode table.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   286
    Si ce paramêtre est vide, un template est automatiquement généré.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   287
  * ``object-list`` : le champ du modèle lié à cette directive, ce doit être une liste (champ multivalué).
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   288
  * ``object-fields`` : Liste des champs du sous-objet à afficher en mode table.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   289
  * ``table`` : Affiche les sous objets en table ou pas.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   290
  * ``size-fields`` : Largeur des colonnes pour le mode table. L'ordre des colonnes est le même que pour ``object-fields``.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   291
    L'unité est une colonne définie par le système de grille Bootstrap : http://getbootstrap.com/css/#grid.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   292
  * ``label-fields`` : Label des colonnes pour le mode table. Ces labels sont traduits. L'ordre des colonnes est le même que pour ``object-fields``.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   293
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   294
Les templates définis par les paramètres ``form-template`` et ``disp-template`` se trouvent dans le répertoire ``src/p4l/static/p4l/templates``.
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   295
Ce sont des templates Angularjs (c.f. http://docs.angularjs.org/guide/dev_guide.templates).
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   296
Pour les template ``form-template``, l'objet édité est dans la variable ``editedObj``.
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   297
Pour les template ``disp-template``, l'objet édité est dans la variable ``obj``. 
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   298
Les templates existant donneront des exemples d'utilisation et pourront servir de base pour l'ajout d'un nouveau champ.
144
8c32ea1310de In the edit screen documentCode should have a lang field.
ymh <ymh.work@gmail.com>
parents: 137
diff changeset
   299
Attention, ce sont des ressources statiques pour l'application.
8c32ea1310de In the edit screen documentCode should have a lang field.
ymh <ymh.work@gmail.com>
parents: 137
diff changeset
   300
Si ils sont modifiés, la commande ``collectstatic`` doit être lancée afin qu'ils soient correctement déployés et pris en compte par Angular.
137
bb8bf2688d7e - Finish and correct documentation
ymh <ymh.work@gmail.com>
parents: 121
diff changeset
   301
158
03fea67e18e9 correction orthographiques
ymh <ymh.work@gmail.com>
parents: 147
diff changeset
   302