diff options
24 files changed, 281 insertions, 92 deletions
| diff --git a/CHANGELOG.md b/CHANGELOG.md index ff655665e..0876062a0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +# Version 2.4.1 (en développement) +* Corrections d'anomalies +  * L'export GTFS exige que l'indice de ligne soit renseigné (Mantis 26726) +  * L'import GTFS ne tient pas compte des courses commençant après minuit (Mantis 25824) +  * Mise en place d'un script produisant l'aide en ligne sous forme de docx (Mantis 26604) +  * L'import GTFS plante sur une course qui dessert plus de 2 fois le même arrêt (Mantis 26755) +  * L'export NeTEx produit un fichier invalide si le champ VersionDate du réseau est vide (Mantis 26434) +  # Version 2.4.0 (27/05/14)  * Corrections d'anomalies    * L'Import GTFS n'importe pas les fichiers avec marqueurs BOM (Mantis 21260) diff --git a/app/views/help/access_links.textile b/app/views/help/access_links.textile index 960f3484b..1ae69e050 100644 --- a/app/views/help/access_links.textile +++ b/app/views/help/access_links.textile @@ -38,9 +38,11 @@ p(attr_data). Données de gestion :  - Identifiant Neptune :=   clé unique pérenne identifiant la correspondance pour les échanges Neptune  cet identifiant est composé de 3 parties : préfixe:type:id_technique +  * préfixe : clé identifiant un producteur de données unique  * type = AccessLink : clé identifiant le type d'objet (valeur imposée)  * id_technique : valeur identifiant un seul objet d'un type donné pour un même producteur +  ce champ obligatoire est automatiquement généré s'il n'est pas renseigné   il est possible aussi de ne renseigner que l'identifiant technique, auquel cas la valeur sera complétée automatiquement.  =: @@ -54,10 +56,11 @@ h4. Création/consultation  Lors de la consultation d'une zone d'arrêts possédant au moins un accès,   l'action <<Gérer les liens arrêt-accès>> affiche deux matrices :  +  * _Liens génériques_ : les différentes combinaisons de liens entre les accès et la zone;  * _Liens détaillés_ : les différentes combinaisons de liens entre les accès et les arrêts inclus dans la zone. -Chaque lien est représenté par une flêche orientée représentant l'existance ou non de ce lien: +Chaque lien est représenté par une flèche orientée représentant l'existence ou non de ce lien:  * !gray_left_arrow.png! ou !gray_right_arrow.png! lien non défini; la flèche est un lien vers l'écran de création de ce lien  * !green_left_arrow.png! ou !green_right_arrow.png! lien existant; la flèche est un lien vers l'écran de consultation/modification/suppression de ce lien diff --git a/app/views/help/access_points.textile b/app/views/help/access_points.textile index b32e0ae8e..f8d38f085 100644 --- a/app/views/help/access_points.textile +++ b/app/views/help/access_points.textile @@ -47,9 +47,11 @@ p(attr_data). Données de gestion :  - Identifiant Neptune :=  clé unique pérenne identifiant la ligne pour les échanges Neptune  cet identifiant est composé de 3 parties : préfixe:type:id_technique +  * préfixe : clé identifiant un producteur de données unique  * type = AccessPoint : clé identifiant le type d'objet (valeur imposée)  * id_technique : valeur identifiant un seul objet d'un type donné pour un même producteur +  ce champ obligatoire est automatiquement généré s'il n'est pas renseigné   il est possible aussi de ne renseigner que l'identifiant technique, auquel cas la valeur sera complétée automatiquement.  =: diff --git a/app/views/help/companies.textile b/app/views/help/companies.textile index 704c3554a..e991ae67c 100644 --- a/app/views/help/companies.textile +++ b/app/views/help/companies.textile @@ -28,9 +28,11 @@ p(attr_data). Données de gestion :  - Identifiant Neptune :=   clé unique pérenne identifiant le transporteur pour les échanges Neptune  cet identifiant est composé de 3 parties : préfixe:type:id_technique +  * préfixe : clé identifiant un producteur de données unique  * type = Company : clé identifiant le type d'objet (valeur imposée)  * id_technique : valeur identifiant un seul objet d'un type donné pour un même producteur +  ce champ obligatoire est automatiquement généré s'il n'est pas renseigné   il est possible aussi de ne renseigner que l'identifiant technique, auquel cas la valeur sera complétée automatiquement.  =: diff --git a/app/views/help/connection_links.textile b/app/views/help/connection_links.textile index 129b9c6d5..a4865465f 100644 --- a/app/views/help/connection_links.textile +++ b/app/views/help/connection_links.textile @@ -30,9 +30,11 @@ p(attr_data). Données de gestion :  - Identifiant Neptune :=   clé unique pérenne identifiant la correspondance pour les échanges Neptune  cet identifiant est composé de 3 parties : préfixe:type:id_technique +  * préfixe : clé identifiant un producteur de données unique  * type = ConnectionLink : clé identifiant le type d'objet (valeur imposée)  * id_technique : valeur identifiant un seul objet d'un type donné pour un même producteur +  ce champ obligatoire est automatiquement généré s'il n'est pas renseigné   il est possible aussi de ne renseigner que l'identifiant technique, auquel cas la valeur sera complétée automatiquement.  =: diff --git a/app/views/help/csv.textile b/app/views/help/csv.textile index 9852b96b6..e1c0f6708 100644 --- a/app/views/help/csv.textile +++ b/app/views/help/csv.textile @@ -7,9 +7,8 @@ Le format CSV utilise un caractère comme séparateur de champs, c'est le caract  Ce séparateur est configurable sur l'application WEB. Il est donc possible de le changer et le nouveau séparateur est pris en compte après redémarrage.  Le format CSV est décrit par l'exemple ci-dessous (attention, le format est 'strict' ! et l'encodage attendu est en UTF-8) -<notextile>  <pre width="100%"> - +<code>  ;;;;;;;"Nom du réseau";"RER";;;;;   ;;;;;;;"Code Réseau";500;;;;;   ;;;;;;;"Description du réseau";"Réseau Express Régional ,exploités par la RATP et la SNCF";;;;;  @@ -95,5 +94,5 @@ Le format CSV est décrit par l'exemple ci-dessous (attention, le format est 'st  ;;;;;;;"Cergy-le Haut";09:54:00;09:54:00;;;;   ;;;;;;;"Achères-Grand Cormier";;;10:35:00;10:35:00;06:31:00;06:31:00   ;;;;;;;"Poissy";;;10:36:00;10:36:00;06:30:00;06:30:00  +</code>  </pre> - </notextile>
\ No newline at end of file diff --git a/app/views/help/dataspaces.textile b/app/views/help/dataspaces.textile index 21f846b04..d138f26d7 100644 --- a/app/views/help/dataspaces.textile +++ b/app/views/help/dataspaces.textile @@ -20,12 +20,13 @@ h3. Implémentation  p. L'espace de données est concrétisé dans la base de données par un schéma au sens SQL portant le nom défini par l'attribut code. -p. Les attributs de l'espace de données sont enregistrés dans la table REFERENTIALS du schema 'public' +p. Les attributs de l'espace de données sont enregistrés dans la table REFERENTIALS du schéma 'public'  p. Le préfixe Neptune est utilisé dans la génération des identifiants de l'ensemble des objets du modèle; sa modification n'a d'effet que sur les objets créés après. -p. La projection géographique permet un affichae et l'export des coordonnées selon un système géographique secondaires; les coordonnées de ce système ne sont pas conservés dans la base. +p. La projection géographique permet un affichage et l'export des coordonnées selon un système géographique secondaires; les coordonnées de ce système ne sont pas conservés dans la base. -p. Les limitations de PosgreSQL imposent qu'un nom de schéma soit en minuscule et commence par une lettre; les préfixes 'pg_' ainsi que 'public' sont réservés.  +p. Les limitations de PosgreSQL imposent qu'un nom de schéma soit en minuscule et commence par une lettre; les préfixes *pg_* ainsi que *public* sont réservés.   p. Les noms et codes des espaces de données sont uniques quelque soit l'organisation; une erreur de doublon peut donc arriver si une autre organisation a déjà utilisé le même terme. + diff --git a/app/views/help/exports.textile b/app/views/help/exports.textile index 644f11a04..eb88c6589 100644 --- a/app/views/help/exports.textile +++ b/app/views/help/exports.textile @@ -48,9 +48,9 @@ h3. Consultation des résultats  p. L'export est lancé en différé; son état d'avancement est affiché sous la forme d'une icône donc la couleur dépend de l'état: -- bleu : en cours -- vert : terminé correctement; un lien de téléchargement est alors disponible -- rouge : terminé en échec +* bleu : en cours +* vert : terminé correctement; un lien de téléchargement est alors disponible +* rouge : terminé en échec  p. La consultation du résultat de l'export donnera la liste des éléments exportés ou les motifs de l'échec. diff --git a/app/views/help/group_of_lines.textile b/app/views/help/group_of_lines.textile index efef28bb8..05121ff46 100644 --- a/app/views/help/group_of_lines.textile +++ b/app/views/help/group_of_lines.textile @@ -21,9 +21,11 @@ p(attr_data). Données de gestion :  - Identifiant Neptune :=   clé unique pérenne identifiant le groupe de lignes pour les échanges Neptune  cet identifiant est composé de 3 parties : préfixe:type:id_technique +  * préfixe : clé identifiant un producteur de données unique  * type = GroupOfLine : clé identifiant le type d'objet (valeur imposée)  * id_technique : valeur identifiant un seul objet d'un type donné pour un même producteur +  ce champ obligatoire est automatiquement généré s'il n'est pas renseigné   il est possible aussi de ne renseigner que l'identifiant technique auquel cas la valeur sera complétée automatiquement.  =: diff --git a/app/views/help/imports.textile b/app/views/help/imports.textile index f8610134f..f05126421 100644 --- a/app/views/help/imports.textile +++ b/app/views/help/imports.textile @@ -43,11 +43,11 @@ p(olnext). - les données exportées en GTFS sont explicités ["ICI":http://norm  h3(#com). Paramètres communs -- Pas de sauvegarde := permet d'effecter une simulation de l'import sans enregistrer les données +- Pas de sauvegarde := permet d'effectuer une simulation de l'import sans enregistrer les données  p(ddnext). - active donc les tests de validation de niveau 1 et 2 -- Jeu de paramètres pour validation := paramètres définisant les seuils des tests de niveau 3 (indisponible si l'option 'pas de sauvegarde' est cochée) +- Jeu de paramètres pour validation := paramètres définissant les seuils des tests de niveau 3 (indisponible si l'option 'pas de sauvegarde' est cochée)  p(ddnext). - les jeux de paramètres sont créés via le lien ["Jeux de paramètres":parametersets] disponible sur les vues des listes d'imports et de validations @@ -105,7 +105,7 @@ h3(#new). Nouvel Import  p. Il est possible de modifier le jeu de paramètres par défaut ou de créer un nouveau Jeu de paramètres. Il est possible de ne choisir aucun jeu de paramètres. -p. L’import est lancé en différé, son résultat n'est pas immédiat. Le résultat est conservé tant que l’import n’est pas supprimé. L'import lance également la validation (avec ou sans jeu de paramètres associés), ce qui crée un objet Validation associé. La suppression d’un import également l'objet Validation associé à cet import ; néanmoins si les données ont été sauvergardées en base, elles seront conservées. +p. L’import est lancé en différé, son résultat n'est pas immédiat. Le résultat est conservé tant que l’import n’est pas supprimé. L'import lance également la validation (avec ou sans jeu de paramètres associés), ce qui crée un objet Validation associé. La suppression d’un import également l'objet Validation associé à cet import ; néanmoins si les données ont été sauvegardées en base, elles seront conservées.  p. Si les données ne sont pas sauvées en base, il faut relancer un import avec sauvegarde si on souhaite effectivement importer ces données en base après une première validation « à blanc ». @@ -130,11 +130,11 @@ p. _1 - La synthèse des fichiers analysés affiche 3 secteurs_  p(border_image). !import_file_result.png! -* en vert les fichiers correctements traités  +* en vert les fichiers correctement traités   * en rouge les fichiers comportant des erreurs qui empêche leur traitement  * en gris les fichiers ignorés -p. En passant la souris sur chaque partie, le nombre de fchiers correspondant est affiché. +p. En passant la souris sur chaque partie, le nombre de fichiers correspondant est affiché.  p. La sélection (clic souris) d'un des secteurs affiche la liste des fichiers concernés : diff --git a/app/views/help/index.textile b/app/views/help/index.textile index 83a3bc8c9..709babf44 100644 --- a/app/views/help/index.textile +++ b/app/views/help/index.textile @@ -3,7 +3,7 @@ layout: default  title: Chouette v2   --- -Version 2.4.0 +Version 2.5.0  h3. Logiciel libre propriété de : @@ -24,7 +24,16 @@ A cet égard  l'attention de l'utilisateur est attirée sur les risques associé  h3. Notes de version -h4. V2.4.0 +h4. Version 2.5.0 + +* Corrections des anomalies suivantes : +** L'export GTFS exige que l'indice de ligne soit renseigné (Mantis 26726) +** L'import GTFS ne tient pas compte des courses commençant après minuit (Mantis 25824) +** Mise en place d'un script produisant l'aide en ligne sous forme de docx (Mantis 26604) +** L'import GTFS plante sur une course qui dessert plus de 2 fois le même arrêt (Mantis 26755) +** L'export NeTEx produit un fichier invalide si le champ VersionDate du réseau est vide (Mantis 26434) + +h4. Version 2.4.0  * Corrections des anomalies suivantes :  ** L'Import GTFS n'importe pas les fichiers avec marqueurs BOM (Mantis 21260) @@ -41,25 +50,27 @@ h4. V2.4.0  ** Protection des listes avec filtre si la page courante est au delà du nombre de pages (Mantis 20954)  ** L'export n'accepte plus une liste de réseaux (Mantis 26438)  ** L'insertion d'un arrêt dans une séquence perturbe les courses existantes (Mantis 23800) +** Import Neptune : erreur de sauvegarde si le mode de transport est manquant (Mantis 26702) +** Edition Calendrier : problème de saisie des dates sous Chrome (Mantis 26746) -h4. V2.3.0 +h4. Version 2.3.0  * Migration technique des frameworks JAVA  ** Spring 4  ** Hibernate 4 -h4. V2.2.0 +h4. Version 2.2.0  * Refonte de la validation  ** La validation se fait soit lors d'un import, soit sur les données déjà en base.  ** Les tests ont été redéfinis. -h4. V2.1.1 +h4. Version 2.1.1  * Clonage de courses  ** les calendiers de la course initiale sont reportés dans les copies -h4. V2.1.0  +h4. Version 2.1.0   * suppression des coordonnées projetées en base  ** les données sont produites à la volée pour l'export et l'affichage à partir de la projection fixée dans le référentiel @@ -75,19 +86,19 @@ h4. V2.1.0  ** ajout des fonds niveau cadastre et orthophoto  ** affichage de l'orthophoto IGN par défaut lorsque la clé IGN est présente -h4. V2.0.3  +h4. Version 2.0.3   * Ajout des imports/export NeTex   * Fonctionnement sous windows  * Prise en compte de grandes quantités de calendriers.  * Reprise des logs d'import Neptune -h4. V2.0.2  +h4. Version 2.0.2   * Ajout de l'import GTFS (expérimental, ne traite pas les stations)  * Ajout d'API Rest pour accéder aux données depuis une autre application -h4. V2.0.1  +h4. Version 2.0.1   * Ajout de la gestion des groupes de lignes  * Ajout de la gestion des accès et des relations arrêts-accès @@ -95,7 +106,7 @@ h4. V2.0.1  * Améliorations ergonomiques et cartographiques  * L'import Neptune accepte les principaux formats d'encodage : ISO-8859-1, UTF-8, ... -h4. V2.0.0  +h4. Version 2.0.0   * refonte de l'interface graphique  * ajout d'une gestion simplifiée d'utilisateurs : diff --git a/app/views/help/journeypatterns.textile b/app/views/help/journeypatterns.textile index f9278ad75..b6a67e0e1 100644 --- a/app/views/help/journeypatterns.textile +++ b/app/views/help/journeypatterns.textile @@ -19,9 +19,11 @@ p(attr_data). Données de gestion :  - Identifiant Neptune :=   clé unique pérenne identifiant la mission pour les échanges Neptune  cet identifiant est composé de 3 parties : préfixe:type:id_technique +  * préfixe : clé identifiant un producteur de données unique  * type = JourneyPattern : clé identifiant le type d'objet (valeur imposée)  * id_technique : valeur identifiant un seul objet d'un type donné pour un même producteur +  ce champ obligatoire est automatiquement généré s'il n'est pas renseigné   il est possible aussi de ne renseigner que l'identifiant technique, auquel cas la valeur sera complétée automatiquement.  =: diff --git a/app/views/help/kml_exports.textile b/app/views/help/kml_exports.textile index 75180acbc..ddd1961d2 100644 --- a/app/views/help/kml_exports.textile +++ b/app/views/help/kml_exports.textile @@ -14,6 +14,7 @@ h3. Sélection des données à exporter  L'écran d'export propose un formulaire de sélection de données d'un référentiel.  Voici les choix possibles : +  * Tout  * des réseaux  * des transporteurs @@ -22,13 +23,13 @@ Voici les choix possibles :  Selon le type de données, les lignes sont sélectionnées en suivant les règles ci-dessous :  * Si le type de données à exporter est « Tout » -  - toutes les lignes du référentiel sont sélectionnées. +** toutes les lignes du référentiel sont sélectionnées.  * Si le type de données à exporter est le réseau, -  - les lignes sélectionnées sont celles appartenant à l'un des réseaux. +** les lignes sélectionnées sont celles appartenant à l'un des réseaux.  * Si le type de données à exporter est le transporteur, -  - les lignes sélectionnées sont celles appartenant à  l'un des transporteurs. +** les lignes sélectionnées sont celles appartenant à  l'un des transporteurs.  * Si le type de données à exporter est la ligne, -  - les lignes sont explicitement sélectionnées +** les lignes sont explicitement sélectionnées  h3. Format et nom du fichier exporté @@ -39,31 +40,32 @@ h3. Contenu de l'archive d'export  h4. Pour un export de lignes, réseaux, transporteurs  L'archive ZIP contient les fichiers KML suivants : +  * un fichier de tracé de ligne pour chacune des lignes sélectionnées des réseaux sélectionnés ou des transporteurs sélectionnés -  - le type de géométrie est MultiLineString -  - les attributs de ligne figurent dans l'élément KML ExtendedData -  - l'attribut « name » du Document KML porte le nom « Ligne : nom de la ligne » -  - le nom de ce fichier KML est de la forme : line_identifiant de ligne.kml, l'identifiant de ligne étant un entier +** le type de géométrie est MultiLineString +** les attributs de ligne figurent dans l'élément KML ExtendedData +** l'attribut « name » du Document KML porte le nom « Ligne : nom de la ligne » +** le nom de ce fichier KML est de la forme : line_identifiant de ligne.kml, l'identifiant de ligne étant un entier  * un fichier de tracé de chacune des séquences d'arrêts des lignes -  - le type de géométrie est LineString -  - les attributs de la séquence d'arrêts figurent dans l'élément KML ExtendedData -  - l'attribut « name » du Document KML porte le nom « Séquence d'arrêts : nom de la séquence d'arrêts » -  - le nom de ce fichier KML est de la forme : line_identifiant de ligne_route_identifiant de séquence d'arrêts.kml, l'identifiant de ligne et de séquence étant des  entiers +** le type de géométrie est LineString +** les attributs de la séquence d'arrêts figurent dans l'élément KML ExtendedData +** l'attribut « name » du Document KML porte le nom « Séquence d'arrêts : nom de la séquence d'arrêts » +** le nom de ce fichier KML est de la forme : line_identifiant de ligne_route_identifiant de séquence d'arrêts.kml, l'identifiant de ligne et de séquence étant des  entiers  * un fichier KML pour chaque mission de chaque séquence d'arrêts -  - le type de géométrie est Point -  - les attributs de la séquence d'arrêts figurent dans l'élément KML ExtendedData -  - l'attribut « name » du Document KML porte le nom «Mission : nom de la mission » -  - le nom de ce fichier KML est de la forme : line_identifiant de ligne_route_identifiant de séquence d'arrêts_journey_pattern_id_mission.kml, les identifiants étant des  entiers +** le type de géométrie est Point +** les attributs de la séquence d'arrêts figurent dans l'élément KML ExtendedData +** l'attribut « name » du Document KML porte le nom «Mission : nom de la mission » +** le nom de ce fichier KML est de la forme : line_identifiant de ligne_route_identifiant de séquence d'arrêts_journey_pattern_id_mission.kml, les identifiants étant des  entiers  * un fichier des arrêts commerciaux appartenant à au moins une des lignes sélectionnées -  - le type de géométrie est Point -  - les attributs d'arrêt commercial figurent dans l'élément KML ExtendedData -  - l'attribut « name » du Document KML porte le nom « arrêts commerciaux» -  - le nom de ce fichier KML est : commercial_stop_areas.kml +** le type de géométrie est Point +** les attributs d'arrêt commercial figurent dans l'élément KML ExtendedData +** l'attribut « name » du Document KML porte le nom « arrêts commerciaux» +** le nom de ce fichier KML est : commercial_stop_areas.kml  * un fichier des arrêts physiques appartenant à au moins une des lignes sélectionnées -  - le type de géométrie est Point -  - les attributs d'arrêt physique figurent dans l'élément KML ExtendedData -  - l'attribut « name » du Document KML porte le nom « arrêts physiques» -  - le nom de ce fichier KML est : stop_areas.kml +** le type de géométrie est Point +** les attributs d'arrêt physique figurent dans l'élément KML ExtendedData +** l'attribut « name » du Document KML porte le nom « arrêts physiques» +** le nom de ce fichier KML est : stop_areas.kml  h5. Remarque sur le nom des fichiers @@ -77,6 +79,7 @@ h5. Géométrie associée au KML de tracé de ligne :  Ce fichier KML rassemble en une seule géométrie la totalité des tronçons reliant les arrêts commerciaux entre eux.  Ce tracé ne porte pas d'information sur les sens de parcours. Un tronçon qui relie des arrêts commerciaux A et B peut correspondre : +  * à un seul itinéraire dans le sens A vers B  * à un seul itinéraire dans le sens B vers A  * à 2 itinéraires dans les sens A vers B et B vers A @@ -88,9 +91,9 @@ Ce tracé relie les arrêts physiques en suivant l'ordre de parcours de la séqu  h5. Limitations de volumétrie -1. La fonction d'export KML autorise un export de plusieurs lignes dans la limite de 150 au maximum. Au-delà, les fichiers KML des lignes ne sont pas produits, ni les fichiers des arrêts physiques, des commerciaux, des séquences d'arrêt et des missions. Seuls seront présents les fichiers des pôles d'échange, des ITL, des correspondances, des accès et  des liens accès-arrêt si l'utilisateur a choisi de tout exporter (comme indiqué au paragraphe 4.2). Le rapport d'export mentionne dans ce cas une alerte pour prévenir que le quota de lignes autorisées est dépassé. -2. Si il y a plus de 150 séquences d'arrêt, elles ne sont pas exportées, un message d'alerte est affiché dans le résultat de l'export. Dans ce cas les fichiers des missions ne sont pas produits non plus. -3. De même, s'il y a plus de 150 missions elles ne sont pas exportées, un message d'alerte est affiché dans le résultat de l'export. +# La fonction d'export KML autorise un export de plusieurs lignes dans la limite de 150 au maximum. Au-delà, les fichiers KML des lignes ne sont pas produits, ni les fichiers des arrêts physiques, des commerciaux, des séquences d'arrêt et des missions. Seuls seront présents les fichiers des pôles d'échange, des ITL, des correspondances, des accès et  des liens accès-arrêt si l'utilisateur a choisi de tout exporter (comme indiqué au paragraphe 4.2). Le rapport d'export mentionne dans ce cas une alerte pour prévenir que le quota de lignes autorisées est dépassé. +# Si il y a plus de 150 séquences d'arrêt, elles ne sont pas exportées, un message d'alerte est affiché dans le résultat de l'export. Dans ce cas les fichiers des missions ne sont pas produits non plus. +# De même, s'il y a plus de 150 missions elles ne sont pas exportées, un message d'alerte est affiché dans le résultat de l'export.  Par conséquent, dans le cas des référentiels qui comptent plus de 150 lignes, il est nécessaire de procéder en plusieurs opérations d'export.  Cependant, il faut garder à l'esprit que les outils SIG ont aussi leurs propres limites quant au nombre de couches qui peuvent être gérées en même temps. @@ -100,28 +103,29 @@ h4. Pour un export de « Tout »  L'archive ZIP contient tous les fichiers KML produits par un export de tous les réseaux (ou tous les transporteurs).  L'archive ZIP contient également d'autres fichiers KML listés ci-dessous : +  * un fichier des pôles d'échange -  - le type de géométrie est Point -  - les attributs de pole d'échange figurent dans l'élément KML ExtendedData -  - l'attribut « name » du Document KML porte le nom « poles d'échange » -  - le nom de ce fichier KML est : stop_places.kml +** le type de géométrie est Point +** les attributs de pôle d'échange figurent dans l'élément KML ExtendedData +** l'attribut « name » du Document KML porte le nom « pôles d'échange » +** le nom de ce fichier KML est : stop_places.kml  * un fichier des correspondances -  - le type de géométrie est LineString -  - les attributs de correspondance figurent dans l'élément KML ExtendedData -  - l'attribut « name » du Document KML porte le nom « correspondances » -  - le nom de ce fichier KML est : connection_links.kml +** le type de géométrie est LineString +** les attributs de correspondance figurent dans l'élément KML ExtendedData +** l'attribut « name » du Document KML porte le nom « correspondances » +** le nom de ce fichier KML est : connection_links.kml  * un fichier des accès -  - le type de géométrie est Point -  - les attributs d'accès figurent dans l'élément KML ExtendedData -  - l'attribut « name » du Document KML porte le nom « accès » -  - le nom de ce fichier KML est : access.kml +** le type de géométrie est Point +** les attributs d'accès figurent dans l'élément KML ExtendedData +** l'attribut « name » du Document KML porte le nom « accès » +** le nom de ce fichier KML est : access.kml  * un fichier des liens accès-arrêt -  - le type de géométrie est LineString -  - les attributs de lien accès-arrêt figurent dans l'élément KML ExtendedData -  - l'attribut « name » du Document KML porte le nom «liens d'accès » -  - le nom de ce fichier KML est : access_links.kml +** le type de géométrie est LineString +** les attributs de lien accès-arrêt figurent dans l'élément KML ExtendedData +** l'attribut « name » du Document KML porte le nom «liens d'accès » +** le nom de ce fichier KML est : access_links.kml  * un fichier des ITL -  - le type de géométrie est MultiPoint -  - les attributs d'ITL figurent dans l'élément KML ExtendedData -  - l'attribut « name » du Document KML porte le nom «ITL » -  - le nom de ce fichier KML est : itls.kml +** le type de géométrie est MultiPoint +** les attributs d'ITL figurent dans l'élément KML ExtendedData +** l'attribut « name » du Document KML porte le nom «ITL » +** le nom de ce fichier KML est : itls.kml diff --git a/app/views/help/lines.textile b/app/views/help/lines.textile index b75aca883..4b35d2b61 100644 --- a/app/views/help/lines.textile +++ b/app/views/help/lines.textile @@ -31,9 +31,11 @@ p(attr_data). Données de gestion :  - Identifiant Neptune :=   clé unique pérenne identifiant la ligne pour les échanges Neptune  cet identifiant est composé de 3 parties : préfixe:type:id_technique +  * préfixe : clé identifiant un producteur de données unique  * type = Line : clé identifiant le type d'objet (valeur imposée)  * id_technique : valeur identifiant un seul objet d'un type donné pour un même producteur +  ce champ obligatoire est automatiquement généré s'il n'est pas renseigné   il est possible aussi de ne renseigner que l'identifiant technique, auquel cas la valeur sera complétée automatiquement.  =: diff --git a/app/views/help/networks.textile b/app/views/help/networks.textile index aabd3cab8..bc6a35feb 100644 --- a/app/views/help/networks.textile +++ b/app/views/help/networks.textile @@ -25,9 +25,11 @@ p(attr_data). Données de gestion :  - Identifiant Neptune :=   clé unique pérenne identifiant le réseau pour les échanges Neptune  cet identifiant est composé de 3 parties : préfixe:type:id_technique +  * préfixe : clé identifiant un producteur de données unique  * type = GroupOfLine : clé identifiant le type d'objet (valeur imposée)  * id_technique : valeur identifiant un seul objet d'un type donné pour un même producteur +  ce champ obligatoire est automatiquement généré s'il n'est pas renseigné   il est possible aussi de ne renseigner que l'identifiant technique, auquel cas la valeur sera complétée automatiquement.  =: diff --git a/app/views/help/normalisation.textile b/app/views/help/normalisation.textile index fb8f7d6e3..97f69419d 100644 --- a/app/views/help/normalisation.textile +++ b/app/views/help/normalisation.textile @@ -11,7 +11,7 @@ h3. TRANSMODEL (EN12896)  La norme européenne TRANSMODEL constitue le modèle conceptuel de données sur lequel s'appuie l'ensemble des travaux normatifs (Neptune, SIRI, IFOPT, NETEX) . Elle est actuellement validée dans sa version 5.1. -Elle a pour objectif de décrire les différents concepts utilisés au sein des multiples métiers du transport public (aussi bien dans le domaine de l'exploitation, de la régulation que dans celui de l'information voyageur) en usant de la modélisation UML. Cette description a abouti à la constitution d'un "dictionnaire" dans lequel chacun peut venir piocher la terminologie adéquate pour pouvoir désigner, quels que soient la structure et le métier de l'intéressé, de façon homogène et non ambiguëe les concepts qu'il va décliner dans son application. +Elle a pour objectif de décrire les différents concepts utilisés au sein des multiples métiers du transport public (aussi bien dans le domaine de l'exploitation, de la régulation que dans celui de l'information voyageur) en usant de la modélisation UML. Cette description a abouti à la constitution d'un "dictionnaire" dans lequel chacun peut venir piocher la terminologie adéquate pour pouvoir désigner, quels que soient la structure et le métier de l'intéressé, de façon homogène et non ambiguë les concepts qu'il va décliner dans son application.  h3. de TRIDENT à NEPTUNE (PR NF P99-506) @@ -19,6 +19,7 @@ Dans le cadre de la "commission de normalisation CN03 pour les applications tél  Après examen des travaux en cours au niveau européen, il est apparu au groupe que les spécifications d'échange élaborées dans le cadre du projet européen TRIDENT étaient la meilleure base de travail sur laquelle s'appuyer pour la normalisation.   Ces spécifications d'échange couvrent l'information VP et TC, théorique et en situation perturbée; elles s'appuient sur : +  * un modèle d'échange pair à pair entre fournisseur et client, avec possibilité d'abonnement ;   * un modèle de données orienté objets décrit en UML, reprenant pour ce qui concerne les transports publics, le modèle conceptuel de données Transmodel V4.0, normalisé au niveau européen ;   * un format d'échange XML spécifié sous forme de schémas XSD.  diff --git a/app/views/help/parametersets.textile b/app/views/help/parametersets.textile index 8884c5ca7..e5a9c0045 100644 --- a/app/views/help/parametersets.textile +++ b/app/views/help/parametersets.textile @@ -7,7 +7,7 @@ h3. Définition  La phase 3 de la validation nécessite de définir des paramètres afin d'adapter les tests au plus proche de la réalité du terrain. -Afin de rejouer facilement les tests dans différent contextes, il est possible de définir plusieurs jeux qui sont conservés indépendament des validations. +Afin de rejouer facilement les tests dans différent contextes, il est possible de définir plusieurs jeux qui sont conservés indépendamment des validations.  Un jeu de paramètre est proposé par défaut à la création du référentiel; celui-ci peut être modifié ou détruit; il n'est alors pas possible de le recréer. @@ -16,7 +16,7 @@ h3. Paramètres généraux  - Nom := Nom du jeu de données (nom utilisé pour sa sélection dans les imports et validations)  - Délimitation géographique des arrêts :=   Emprise géographique du réseau (tous les arrêts testés devront être inclus dans cette zone) -Le format de ce champs est un ensembe de points formant une polyligne fermée: +Le format de ce champs est un ensemble de points formant une polyligne fermée:  [[longitude1,latitude1],[longitude2,latitude2],,,[longitudeN,latitudeN],[longitude1,latitude1]]  Les longitudes et latitudes sont exprimées en degré, décimaux positifs à l'est et au nord  =: @@ -24,8 +24,8 @@ Les longitudes et latitudes sont exprimées en degré, décimaux positifs à l'e  p. *Distance minimum entre :* (en mètres) -- 2 arrêts n'ayant pas le même parent := distance en deça de laquelle 2 arrêts devraient être regroupés dans la même zone -- 2 accès de noms différents pour un même arrêt := distance en deça de laquelle 2 accès d'un même arrêt devraient en être qu'un +- 2 arrêts n'ayant pas le même parent := distance en deçà de laquelle 2 arrêts devraient être regroupés dans la même zone +- 2 accès de noms différents pour un même arrêt := distance en deçà de laquelle 2 accès d'un même arrêt devraient en être qu'un  p. *Distance maximum entre :* (en mètres) @@ -38,8 +38,8 @@ p. *Vitesse de marche maximum d'un voyageur :* (en kilomètres/heure)  vitesse maximale admise dans les correspondances et les liaisons arrêt - accès pour :   - un voyageur ordinaire := qui a un connaissance théorique du réseau -- un voyageur occasionnel := qui ne connait pas le réseau -- un voyageur habituel := qui connait bien le réseau +- un voyageur occasionnel := qui ne connaît pas le réseau +- un voyageur habituel := qui connaît bien le réseau  - un voyageur à mobilité réduite := qui a des difficultés de déplacement @@ -51,7 +51,7 @@ p. les paramètres suivants sont à définir pour chaque mode de transport dispo  - Distance maximum entre 2 arrêts (en mètres) := distance maximale de parcours d'un véhicule entre 2 arrêts.  - Vitesse minimum (en kilomètres/heure) := vitesse minimale attendue entre 2 arrêts d'une course  - Vitesse maximum (en kilomètres/heure) := vitesse maximale attendue entre 2 arrêts d'une course -- Ecart maximum de durée de trajet entre 2 arrêts successifs pour les différentes courses (en secondes) :=  +- Écart maximum de durée de trajet entre 2 arrêts successifs pour les différentes courses (en secondes) :=   la différence de temps de trajet entre 2 arrêts successifs de 2 courses d'une même mission ne doit pas dépasser ce seuil =:  h3. Remarques diff --git a/app/views/help/restapis.textile b/app/views/help/restapis.textile index 2bd3d2d2d..4a2d097b6 100644 --- a/app/views/help/restapis.textile +++ b/app/views/help/restapis.textile @@ -18,12 +18,15 @@ h4. Principe  Ces interfaces externes REST (notées API) sont des Web Service (noté WS) qui donnent un accès en consultation à la topologie d’un référentiel.  Les WS proposent 2 sortes de requêtes REST +  * la requête « index » qui liste des éléments de topologie avec éventuellement un paramètre de filtre  * la requête « show » qui donne le détail d’un élément de topologie  Pour garantir la sécurité, ces API nécessitent une clé d'authentification créée à partir du tableau de bord du référentiel.  La clé doit être positionnée dans la propriété HTTP_AUTHORIZATION de l'entête de la requête. +  * Token token = [clé] +  Cette clé permet de garantir la sécurité et de diriger l'API rest sur le bon référentiel.  Ces API sont plus amplement décrites dans le document SFT-Chouette Définition des API REST V1 disponible sur "chouette.mobi":http://chouette.mobi @@ -31,10 +34,11 @@ Ces API sont plus amplement décrites dans le document SFT-Chouette Définition  h4. Syntaxe  Les différents objets Neptune sont accessibles dans Chouette par l'URL Rest: -??[URL_server]/api/v1/[Objects]/[objectId].[format]?? +?? [URL_server]/api/v1/[Objects]/[objectId].[format] ??  la liste des objets d'un même type peut être obtenue par l'URL REST :  -??[URL_server]/api/v1/[Objects].[format][?q filtre]?? +?? [URL_server]/api/v1/[Objects].[format][?q filtre] ??  où : +  * URL_server : l'adresse web d'installation du serveur Chouette  * Objects: le type d'objet demandé (au pluriel)   ** networks @@ -49,11 +53,13 @@ où :  h4. exemples -* http://chouette.mobi/chouette2/api/v1/lines.xml?q%5Bname_or_number_cont%5D=34 -Dans cet exemple le critère porte sur les champs « name » et « number » dont l'un des 2 doit contenir la chaine « 34 ». +* http://appli.chouette.mobi/chouette2/api/v1/lines.xml?q%5Bname_or_number_cont%5D=34 + +Dans cet exemple le critère porte sur les champs « name » et « number » dont l'un des 2 doit contenir la chaîne « 34 ».  (note: 5B et 5D sont les codes ascii des crochets ouvrants [ et fermants ] )  * http://localhost:3000/api/v1/lines/Tatrobus:Line:3.json +  Cet exemple retourne les attributs de la ligne 3 du réseau Tatrobus au format json diff --git a/app/views/help/routes.textile b/app/views/help/routes.textile index 6edc24ce6..7016b6369 100644 --- a/app/views/help/routes.textile +++ b/app/views/help/routes.textile @@ -24,9 +24,11 @@ p(attr_data). Données de gestion :  - Identifiant Neptune :=   clé unique pérenne identifiant la séquence d'arrêts pour les échanges Neptune  cet identifiant est composé de 3 parties : préfixe:type:id_technique +  * préfixe : clé identifiant un producteur de données unique  * type = Route : clé identifiant le type d'objet (valeur imposée)  * id_technique : valeur identifiant un seul objet d'un type donné pour un même producteur +  ce champ obligatoire est automatiquement généré s'il n'est pas renseigné   il est possible aussi de ne renseigner que l'identifiant technique, auquel cas la valeur sera complétée automatiquement.  =: diff --git a/app/views/help/stop_areas.textile b/app/views/help/stop_areas.textile index 8bed87b65..43b7be200 100644 --- a/app/views/help/stop_areas.textile +++ b/app/views/help/stop_areas.textile @@ -22,18 +22,22 @@ Par la suite, on peut regrouper deux (ou plus) arrêts physiques au sein d'un *a  Enfin, CHOUETTE offre la possibilité de regrouper les lieux d'arrêt agglomérés ainsi créés au sein d'une *zone d'arrêt de troisième niveau* pour constituer des *pôles d'échange*.  Ainsi on obtient les possibilités de regroupements suivants: +  * un arrêt physique regroupe plusieurs arrêts sur itinéraire (ou séquence d'arrêts).  * un arrêt commercial regroupe plusieurs arrêts physiques (quai, embarquement).  * un pôle d'échange regroupe plusieurs arrêts commerciaux.   Pour ne pas aboutir à un système trop complexe, les règles suivantes sont posées: +  * un pôle d'échange peut contenir des arrêts commerciaux et/ou des pôles d'échanges (qui ne peuvent pas en contenir d'autres).  * un arrêt commercial ne peut contenir que des arrêts physiques.  Un dernier regroupement est *l'ITL* :  -*L'interdiction de trafic local* est l'interdiction faite à un service routier de prendre et de laisser un même voyageur à l'intérieur du périmètre des transports urbains _(cf. Décret n°49-1473 du 14 novembre 1949)_ . +*L'interdiction de trafic local* est l'interdiction faite à un service routier de prendre et de laisser un même voyageur à l'intérieur du périmètre des transports urbains (cf. Décret n°49-1473 du 14 novembre 1949) . +  Ainsi dans CHOUETTE: +  * Une ITL est un regroupement d'arrêts représentant le périmètre d'interdiction.  * Une ITL est associée à une ou plusieurs lignes  @@ -47,7 +51,6 @@ h3(#attr). Attributs  * !stopplace.png! pôle d'échange  * !itl.png! ITL -  - Nom := nom de l'arrêt   - Commentaire := zone de texte libre  - Point d'intérêt le plus proche := nom du lieu desservi par l'arrêt @@ -68,9 +71,11 @@ p(attr_data). Données de gestion :  - Identifiant Neptune :=  clé unique pérenne identifiant la ligne pour les échanges Neptune  cet identifiant est composé de 3 parties : préfixe:type:id_technique +  * préfixe : clé identifiant un producteur de données unique  * type = StopArea : clé identifiant le type d'objet (valeur imposée)  * id_technique : valeur identifiant un seul objet d'un type donné pour un même producteur +  ce champ obligatoire est automatiquement généré s'il n'est pas renseigné   il est possible aussi de ne renseigner que l'identifiant technique, auquel cas la valeur sera complétée automatiquement.  =: @@ -83,7 +88,7 @@ h3(#ope). Mode opératoire  h4. Déplacement sur la carte  * activer le déplacement en cliquant sur l'arrêt -> le curseur prend la forme d'une quadruple flèche -* appuyer sur le bouton gauche de la souris et maintenir appuyer lors du déplacement -> l'arrêt suit la souris +* appuyer sur le bouton gauche de la souris et maintenir appuyé lors du déplacement -> l'arrêt suit la souris  * relâcher le bouton -> l'arrêt a une nouvelle position fixe  * cliquer sur la carte -> sortie du mode déplacement; les coordonnées sont actualisées dans le formulaire diff --git a/app/views/help/timetables.textile b/app/views/help/timetables.textile index e3d56eed9..87e04b37f 100644 --- a/app/views/help/timetables.textile +++ b/app/views/help/timetables.textile @@ -42,6 +42,7 @@ cet identifiant est composé de 3 parties : préfixe:type:id_technique  * préfixe : clé identifiant un producteur de données unique  * type = Timetable : clé identifiant le type d'objet (valeur imposée)  * id_technique : valeur identifiant un seul objet d'un type donné pour un même producteur +  ce champ obligatoire est automatiquement généré s'il n'est pas renseigné   il est possible aussi de ne renseigner que l'identifiant technique, auquel cas la valeur sera complétée automatiquement.  =: diff --git a/app/views/help/validations.textile b/app/views/help/validations.textile index 7101739fb..e70b81183 100644 --- a/app/views/help/validations.textile +++ b/app/views/help/validations.textile @@ -49,9 +49,9 @@ h3(#res). Consultation des résultats : détail de l'objet Validation  p. La validation est lancée en différé; son état d'avancement est affiché sous la forme d'une icône donc la couleur dépend de l'état: -- bleu : en cours -- vert : terminé correctement -- rouge : terminé en échec (la validation n'a pas pu aboutir, contacter l'administrateur système pour plus de détails) +* bleu : en cours +* vert : terminé correctement +* rouge : terminé en échec (la validation n'a pas pu aboutir, contacter l'administrateur système pour plus de détails)  p. La consultation du résultat de la validation donne le bilan des contrôles ou les motifs de l’échec. Le résultat est conservé tant que la validation n’est pas supprimée. @@ -93,11 +93,11 @@ p. Dans les 2 cas, la sélection d'un des secteurs affiche la liste des tests co  p(border_image). !validation_mandatory_detail.png! -Une bulle d'information s'affiche en sélectionnant une icone bleue !notice.png! : +Une bulle d'information s'affiche en sélectionnant une icône bleue !notice.png! :  p(border_image). !validation_bulle.png! -p. La spécificaation du test s'affiche par le lien sur le code  +p. La spécification du test s'affiche par le lien sur le code   p. En cas d'erreur, la localisation est fournie dans la colonne 'Détail':  diff --git a/app/views/help/vehiclejourneys.textile b/app/views/help/vehiclejourneys.textile index 74322ea88..d5186cf57 100644 --- a/app/views/help/vehiclejourneys.textile +++ b/app/views/help/vehiclejourneys.textile @@ -21,9 +21,11 @@ p(attr_data). Données de gestion :  - Identifiant Neptune :=   clé unique pérenne identifiant la course pour les échanges Neptune  cet identifiant est composé de 3 parties : préfixe:type:id_technique +  * préfixe : clé identifiant un producteur de données unique  * type = VehicleJourney : clé identifiant le type d'objet (valeur imposée)  * id_technique : valeur identifiant un seul objet d'un type donné pour un même producteur +  ce champ obligatoire est automatiquement généré s'il n'est pas renseigné   il est possible aussi de ne renseigner que l'identifiant technique, auquel cas la valeur sera complétée automatiquement.  =: diff --git a/lib/tasks/userdoc.rake b/lib/tasks/userdoc.rake new file mode 100644 index 000000000..1023aa681 --- /dev/null +++ b/lib/tasks/userdoc.rake @@ -0,0 +1,132 @@ +#encoding: utf-8  +require 'fileutils' +require 'nokogiri' + +namespace :doc do +  desc "doc production" +  task :user  do +    puts "Produce user documentation" +     +    abort("Missing commands: please install them before processing") unless command?("pandoc") && command?("unzip") && command?("zip") + +    FileUtils.rm_r("tmp/doc") if File.exist?("tmp/doc") +    FileUtils.rm_r("word") if File.exist?("word") +    File.delete("userdoc.docx") if File.exists?("userdoc.docx") +  +    Dir.mkdir("tmp/doc"); +    # merge all textile files in one +    merge_textiles +     +    # copy images in temp dir +    puts "add images" +    FileUtils.cp_r Dir.glob("public/help/*.png"), "tmp/doc" +     +    # call pandoc to build docx +    puts "build docx" +    Dir.chdir "tmp/doc" +    system "pandoc -s -o ../../userdoc.docx temp.textile" +     +    # clean working directory +    puts "clean temp files" +    Dir.chdir "../.." +    FileUtils.rm_r("tmp/doc") if File.exist?("tmp/doc") +     +    # patch docx +    patch_docx "userdoc.docx" +     +    # end job +    puts "User doc completed" +  end +   +  def merge_textiles +    puts "parsing app/views/help/toc.textile" +    File.open('tmp/doc/temp.textile','w') { |f|  +      File.open('app/views/help/toc.textile','r').each_line do |line| +        line.chomp! +        if line.start_with?("#") +          title="" +          file="" +          if line.include? ":" +            title=line.scan(/"([^"]*)"/).last.first +            file=line.split(":").last +          else +            title=line.split.last +          end +          if line.start_with?("##") +            f.puts "h2. "+title +          elsif line.start_with?("#") +            f.puts "h1. "+title +          end +          f.puts "" +          if !file.empty? +            parse_textile "app/views/help/#{file}.textile",f +          end +        end +      end +    } +  end +   +  def command?(command) +       puts "command #{command} missing" unless system("which #{command} > /dev/null 2>&1")   +       system("which #{command} > /dev/null 2>&1") +  end +   +  def parse_textile (file,out) +    puts "  parsing #{file}" +    File.open(file,"r").each_line do |l| +      l.chomp! +      next if l.start_with? "---"  +      next if l.start_with? "layout:"  +      next if l.start_with? "title:" +      next if !l.scan(/^\* ".*":#/).empty? +      l=l.gsub("->","→").gsub("<<","«").gsub(">>","»").gsub("oe","œ").gsub("p=.","p.") +      clean_local_links l +      out.puts l  +    end +    out.puts "" +  end + +  def clean_local_links (line) +    if line.include? '":' +      check_and_remove_link line,0 +    end +  end +   +  def check_and_remove_link (line,pos) +      link_pos = line.index '":',pos +      return if link_pos.nil?  +      title_pos = line[0..link_pos-1].rindex '"' +      title=line[title_pos+1..link_pos-1] +      if !line[link_pos+2..-1].start_with? "http" +        end_link = line.index(/[^a-z_]/, link_pos+2) +        end_link = line.length if end_link.nil?  +        end_link = end_link - 1 +        link=line[link_pos+1..end_link] +        # remove link syntax +        line.sub!(link,'') +        line.sub!('"'+title+'"',title) +      end +      check_and_remove_link line,link_pos+1 +  end   +   +  def patch_docx file +    system "unzip #{file} word/document.xml > /dev/null 2>&1" +     +    f=File.open("word/document.xml","r+") +    doc = Nokogiri::XML(f) +    doc.xpath("//w:t").each do |tag| +      if tag.to_s.include? '&#95;' +        tag.child.content = tag.child.content.gsub '_','_' +      end +    end +    f.rewind +    f.write(doc.to_xml(:save_with => Nokogiri::XML::Node::SaveOptions::AS_XML)) +    f.close +     +    system "zip -r #{file} word/document.xml > /dev/null 2>&1" +    FileUtils.rm_r("word") if File.exist?("word") +  end +   +end + + | 
