doc/source/renkan.rst
branchdocumentation
changeset 693 09e00f38d177
child 695 f151478c7628
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/doc/source/renkan.rst	Wed Apr 11 12:19:47 2018 +0200
@@ -0,0 +1,199 @@
+.. description des renkan
+
+##############################
+Description de l'outils renkan
+##############################
+
+Introduction
+============
+
+Renkan est un outil d'édition et d'affichage de carte mentale.
+
+Il a été conçu de façon modulaire et avec une claire separation entre la partie cliente en javascript et la partie serveur.
+
+En particulier la partie du client en charge des communications avec le serveur (chargement des projets, gestion de la persistance) est totalement modulaire et configurable.
+Cela permet d'adapter facilement le client à l'api de sauvegarde du serveur.
+
+
+Modèle de donnée serveur (HDALab)
+=================================
+
+Le modèle de donnée du coté serveur est simple.
+En effet le serveur ne cherche pas à interpréter le contenu d'un renkan.
+Il se content de sauvegarder le contenu qui lui est transmis par le client et dans l'autre sens de transmettre directement au client le contenu sauvegardé en base.
+Toute l'interprétation du modèle se fait dans le client.
+
+Classe renkanmanager.models.Renkan
+----------------------------------
+
+*class* ``renkanmanager.models.``\ **Renkan** :
+
+    Classe de base d'un renkan.
+
+    Champs de l'objet:
+
+      - **owner** (`object`) : Le propriétaire (créateur) du renkan.
+      - **rk_id** (`str`) : id du renkan.
+      - **content** (`str`) : contenu du renkan (la chaine JSON brute).
+      - **title** (`str`) : titre du renkan.
+      - **image** (`str`) : chemin vers l'image miniature du renkan.
+      - **creation_date** (`datetime`) : date de création.
+      - **modification_date** (`datetime`) : date de modification.
+
+
+Classe hdalab.models.renkan.HdalabRenkan
+----------------------------------------
+
+.. autoclass:: hdalab.models.renkan.HdalabRenkan
+  :noindex:
+
+
+Format renkan
+=============
+
+Un renkan a le format suivant:
+
+  exemple ::
+
+    {
+        "id": "f4d002b7-d4fd-486c-8898-6c6ceebc3354",
+        "schema_version": 2, #version of schema, latest is 2.
+        "title": "Example of Renkan with movies",
+        "description": "A long description",
+        "created": "2013-03-18T11:32:40.253+01:00",
+        "updated": "2014-02-04T15:12:56.619+01:00",
+        "nodes": [
+            {
+                "id": "node-2013-05-08-72c911bafdf9932c-0001",
+                "title": "Une femme mène l'enquête",
+                "description": "La caméra suit la femme qui marche\nJeu avec la caméra qui se substitue au spectateur",
+                "uri": "http://ldt.iri.centrepompidou.fr/ldtplatform/ldt/front/player/lyceehulst_3extraits/c8a61ee4-b33c-11e2-802c-00145ea4a2be#id=s_DCA8D184-EFC2-314B-0F6B-84043E8F9984",
+                "style": { #optional
+                    "color": "#ff7f00", #line color, optional (null)
+                    "thickness": 1, #thickness of the line, optional (1)
+                    "dash": false, #dashed line, optional (false)
+                },
+                "position": {
+                    "x": -547.0499881440252,
+                    "y": -221.5401229374163
+                },
+                "image": "http://ldt.iri.centrepompidou.fr/static/site/ldt/css/imgs/video_sequence.png",
+                "size": 0,
+                "project_id": "f4d002b7-d4fd-486c-8898-6c6ceebc3354",
+                "created_by": "de68xf75y6hs5rgjhgghxbm217xk",
+                "type": "...",
+                "hidden": false,
+                "shape": "circle",
+            },
+            ...
+        ],
+        "edges": [
+            {
+                "id": "edge-2013-05-08-72c911bafdf9932c-0002",
+                "title": "",
+                "description": "",
+                "uri": "",
+                "style": { #optional
+                    "color": "#ff7f00", #line color, optional (null)
+                    "thickness": 1, #thickness of the line, optional (1)
+                    "dash": false, #dashed line, optional (false)
+                    "arrow": true,  #draw the arrow, optional (true)
+                },
+                "from": "node-2013-04-30-a81adec6694db5f4-0032",
+                "to": "node-2013-05-08-72c911bafdf9932c-0001",
+                "project_id": "f4d002b7-d4fd-486c-8898-6c6ceebc3354",
+                "created_by": "de68xf75y6hs5rgjhgghxbm217xk"
+            },
+            ...
+        ],
+        "users": [ #optional
+            {
+                "userId": "user-2015-05-05-72c911bafdf9932c-0001",
+                "color": "#cc9866",
+                "username": "user1",
+                "anonymous": true
+            },
+        ...
+        ],
+        "space_id": "17f968e4-2640-4319-aa61-b5b8b527ebb4", #Optional
+        "views": [ #Optional
+            {
+                "zoom_level": 0.8275032552816195,
+                "offset_x": 832.0104075533723,
+                "offset_y": 402.8917139487223
+            }
+        ]
+    }
+
+Système de chutier
+==================
+
+Renkan propose un système de "chutier". C'est un système de liste d'élément ouvert à gauche d'un renkan en édition.
+
+On le voit à gauche sur l'image suivante :
+
+.. image:: _static/img/renkan/renkan_edition.png
+
+Ce système permet d'ajouter rapidement des resources fiches ou tag par "glisser/déposer".
+Techniquement, ces fonctionalités de chutiers propres à HDALab sont définies dans le fichier `hdalab/static/hdalab/js/hdalab-renkan-bins.js`.
+
+
+.. _renkan_boite_recherche_contenus:
+
+Boite de recherche de contenus
+------------------------------
+
+.. image:: _static/img/renkan/renkan_recherche_contenus.png
+
+
+Cette boite de recherche permet de lancer une requête sur 3 types de ressources:
+  - recherche de tag
+  - recherche de fiches
+  - recherche d'article wikipedia
+
+  +--------------------+----------------------------------------------------------+--------------------------------------+
+  | type               | url de requête                                           | Vue                                  |
+  +====================+==========================================================+======================================+
+  | tags               | http://hdalab.iri-research.org/hdalab/a/tagsearch?       | :func:`hdalab.views.ajax.tagsearch`  |
+  +--------------------+----------------------------------------------------------+--------------------------------------+
+  | fiches             | http://hdalab.iri-research.org/hdalab/hdabo/searchajax/? | :class:`hdabo.views.SearchDatasheet` |
+  +--------------------+----------------------------------------------------------+--------------------------------------+
+  | articles wikipedia | https://fr.wikipedia.org/w/api.php?action=query...       |                                      |
+  +--------------------+----------------------------------------------------------+--------------------------------------+
+
+Le resultat de la recherche est affiché dans un nouvel onglet listant les ressources.
+
+
+Boite de recherche sur les résultats
+------------------------------------
+
+.. image:: _static/img/renkan/renkan_recherche_resultats.png
+
+Cette boite de recherche permet de rechercher et de filtrer des résultats déjà présent dans les onglets. La recherche est uniquement locale et ne lance fait pas de requête http.
+
+
+Liste de ressource
+------------------
+
+.. image:: _static/img/renkan/renkan_bin_resources.png
+
+Cet onglet liste des ressources statiques qui peuvent être utiles à l'édition du renkan.
+
+
+Liste de ressource supplémentaire
+---------------------------------
+
+.. image:: _static/img/renkan/renkan_bin_plus_ressources.png
+
+Cet onglet liste des ressources "supplémentaires".
+Un renkan est souvent créé à partir du résultat d'une recherche sur la page de `recherche par facette <pages_recherche_facette>`.
+Pour éviter d'avoir trop de noeuds ressources, les 8 premiers résultats de la recherche sont utilisés dans le renkan et les 10 suivants sont utilisés dans ce chutier.
+(ce comportement est défini dans la méthode :func:`hdalab.views.profile.HdalabRenkanGetPut.get`).
+
+
+Sauvegarde des renkan
+=====================
+
+la sauvegarde des renkan est définie dans le fichier `hdalab/static/hdalab/js/renkan-manual-save.js`.
+La sauvegarde est déclenchée par une action de l'utilisateur.
+