aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/help.js.coffee3
-rw-r--r--app/assets/stylesheets/help.css.scss70
-rw-r--r--app/controllers/help_controller.rb13
-rw-r--r--app/helpers/application_helper.rb7
-rw-r--r--app/helpers/help_helper.rb2
-rw-r--r--app/models/help_page.rb46
-rw-r--r--app/views/help/companies.textile44
-rw-r--r--app/views/help/dataspaces.textile21
-rw-r--r--app/views/help/index.textile37
-rw-r--r--app/views/help/introduction.textile15
-rw-r--r--app/views/help/lines.textile46
-rw-r--r--app/views/help/networks.textile41
-rw-r--r--app/views/help/normalisation.textile43
-rw-r--r--app/views/help/restapis.textile30
-rw-r--r--app/views/help/show.html.erb3
-rw-r--r--app/views/help/stop_areas.textile78
-rw-r--r--app/views/help/timetables.textile55
-rw-r--r--app/views/layouts/_user_links.erb6
-rw-r--r--app/views/layouts/application.html.erb8
19 files changed, 563 insertions, 5 deletions
diff --git a/app/assets/javascripts/help.js.coffee b/app/assets/javascripts/help.js.coffee
new file mode 100644
index 000000000..761567942
--- /dev/null
+++ b/app/assets/javascripts/help.js.coffee
@@ -0,0 +1,3 @@
+# Place all the behaviors and hooks related to the matching controller here.
+# All this logic will automatically be available in application.js.
+# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
diff --git a/app/assets/stylesheets/help.css.scss b/app/assets/stylesheets/help.css.scss
new file mode 100644
index 000000000..ca68e15b5
--- /dev/null
+++ b/app/assets/stylesheets/help.css.scss
@@ -0,0 +1,70 @@
+#workspace.help {
+h2 {
+ font-size: 17px;
+}
+
+h3 {
+ font-size: 15px;
+}
+
+h4 {
+ font-weight: bold;
+ padding: 7px 0;
+}
+
+ul li {
+ list-style: circle;
+ margin: 7px 0 7px 20px;
+}
+
+ol {
+ list-style: none;
+ margin: 7px 0 7px 20px;
+ padding: 0;
+ counter-reset: num;
+}
+
+ol li:before {
+ content: counter(num) '. ';
+ counter-increment: num;
+}
+
+ol ol li:before {
+ content: counters(num, '.') ' ';
+}
+
+em {
+ font-style: italic;
+}
+
+strong {
+ font-weight: bold;
+}
+
+cite {
+ font-style: italic;
+}
+
+p.attr_data {
+ font-style: italic;
+ text-decoration: underline;
+}
+
+table {
+ width: 100%;
+}
+
+table td {
+ padding: 3px 5px;
+ width: 30%;
+}
+
+dt {
+ font-style:italic;
+ margin: 5px 0;
+}
+
+dd {
+ padding-left: 10px;
+}
+}
diff --git a/app/controllers/help_controller.rb b/app/controllers/help_controller.rb
new file mode 100644
index 000000000..92f96ebd7
--- /dev/null
+++ b/app/controllers/help_controller.rb
@@ -0,0 +1,13 @@
+class HelpController < ApplicationController
+
+ def show
+ @page = HelpPage.find(slug)
+ end
+
+ private
+
+ def slug
+ params[:slug] or "index"
+ end
+
+end
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index cf6486306..29951da87 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -4,5 +4,12 @@ module ApplicationHelper
@referential.present? and not @referential.new_record?
end
+ def help_page?
+ controller_name == "help"
+ end
+
+ def help_path
+ url_for(:controller => "help", :action => "show") + '/'
+ end
end
diff --git a/app/helpers/help_helper.rb b/app/helpers/help_helper.rb
new file mode 100644
index 000000000..6a35490ac
--- /dev/null
+++ b/app/helpers/help_helper.rb
@@ -0,0 +1,2 @@
+module HelpHelper
+end
diff --git a/app/models/help_page.rb b/app/models/help_page.rb
new file mode 100644
index 000000000..1207c5198
--- /dev/null
+++ b/app/models/help_page.rb
@@ -0,0 +1,46 @@
+class HelpPage
+
+ attr_accessor :slug, :content, :data
+
+ def initialize(slug)
+ @slug = slug
+ @data = {}.with_indifferent_access
+ end
+
+ def filename
+ "#{Rails.root}/app/views/help/#{slug}.textile"
+ end
+
+ def exists?
+ File.exists? filename
+ end
+
+ def load
+ self.content = File.read(filename)
+ self.data ||= {}
+
+ if self.content =~ /^(---\s*\n.*?\n?)^(---\s*$\n?)/m
+ self.content = $POSTMATCH
+ self.data.merge! YAML.load($1)
+ end
+ end
+
+ def method_missing(method, *arguments)
+ if arguments.empty? and data.has_key?(method)
+ data[method]
+ else
+ super
+ end
+ end
+
+ def self.find(slug)
+ new(slug).tap do |page|
+ if page.exists?
+ page.load
+ else
+ raise ActiveRecord::RecordNotFound
+ end
+ end
+ end
+
+end
diff --git a/app/views/help/companies.textile b/app/views/help/companies.textile
new file mode 100644
index 000000000..c1db6f4d3
--- /dev/null
+++ b/app/views/help/companies.textile
@@ -0,0 +1,44 @@
+---
+layout: default
+title: Transporteurs
+---
+
+h3. D&eacute;finition
+
+Dans la r&eacute;alit&eacute;, le transporteur est l'entit&eacute; en charge de l'exploitation d'une ou plusieurs lignes de transport.
+Ce principe se retrouve dans ce logiciel.
+
+* Il s'agit de l'exploitant de la ligne; chaque ligne est rattach&eacute;e &agrave; un seul transporteur, un transporteur pouvant &eacute;videmment g&eacute;rer plusieurs lignes.
+* Chaque transporteur dispose d'un identifiant fonctionnel (&laquo; num&eacute;ro d'enregistrement &raquo;) qui est utilis&eacute; dans les &eacute;changes XML pour identifier le transporteur et le mettre &agrave; jour. Cet identifiant est unique pour toute la base CHOUETTE, quel que soit le r&eacute;seau ; il est donc important que le gestionnaire de la base CHOUETTE le renseigne d'une mani&egrave;re bien d&eacute;finie et p&eacute;renne.
+
+h3. Attributs
+
+- Nom := nom du transporteur
+- Nom court := nom abr&eacute;g&eacute; du transporteur
+- Nom d'unit&eacute; := nom de l'unit&eacute; de gestion dans la soci&eacute;t&eacute; de transport
+- Nom du d&eacute;partement := nom du d&eacute;partement dans la soci&eacute;t&eacute; de transport
+- Code postal := code postal de l'adresse de la soci&eacute;t&eacute; de transport
+- Num&eacute;ro de t&eacute;l&eacute;phone := Numr&eacute;ro de t&eacute;l&eacute;phone de l'unit&eacute; de gestion
+- Num&eacute;ro de fax := Num&eacute;ro de fax de l'unit&eacute; de gestion
+- Email := adresse &eacute;lectronique de l'unit&eacute; de gestion de l'unit&eacute; de gestion
+- Num&eacute;ro d'enregistrement := code r&eacute;f&eacute;ren&ccedil;ant un transporteur au sein d'une autorit&eacute; sup&eacute;rieure
+
+p(attr_data). Donn&eacute;es de gestion :
+
+- Identifiant Neptune :=
+cl&eacute; unique p&eacute;renne identifiant le transporteur pour les &eacute;changes Neptune
+cet identifiant est compos&eacute; de 3 parties : pr&eacute;fixe:type:id_technique
+* pr&eacute;fixe : cl&eacute; identifiant un producteur de donn&eacute;es unique
+* type = Company : cl&eacute; identifiant le type d'objet (valeur impos&eacute;e)
+* id_technique : valeur identifiant un seul object d'un type donn&eacute; pour un m&ecirc;me producteur
+ce champ obligatoire est automatiquement g&eacute;n&eacute;r&eacute; s'il n'est pas renseign&eacute;
+il est possible aussi de ne renseigner que le pr&eacute;fixe auquel cas la valeur sera compl&eacute;t&eacute;e automatiquement.
+=:
+- Date de cr&eacute;ation := date &agrave; laquelle l'objet a &eacute;t&eacute; cr&eacute;&eacute; ou modifi&eacute; pour la derni&egrave;re fois
+- Version := version de l'objet (auto incr&eacute;ment&eacute; &agrave; chaque modification)
+- Cr&eacute;&eacute; par := compte utilisateur ayant proc&eacute;d&eacute; &agrave; la derni&egrave;re modification
+
+h3. Impl&eacute;mentation
+
+p. TODO
+
diff --git a/app/views/help/dataspaces.textile b/app/views/help/dataspaces.textile
new file mode 100644
index 000000000..536ea4173
--- /dev/null
+++ b/app/views/help/dataspaces.textile
@@ -0,0 +1,21 @@
+---
+layout: default
+title: Espaces de donnees
+---
+
+h3. D&eacute;finition
+
+p. un espace de donn&eacute;es est le lieu de stockage d'un ensemble de donn&eacute;es de transport connect&eacute;es entre elles.
+
+h3. Attributs
+
+- Nom := nom de l'espace de donn&eacute;es
+- Code := code de l'espace de donn&eacute;es
+- Pr&eacute;fixe Neptune := pr&eacute;fixe utilis&eacute; par d&eacute;faut pour la g&eacute;n&eacute;ration des identifiants Neptune
+- Projection g&eacute;ographique := r&eacute;f&eacute;rentiel de projection des coordonn&eacute;es cartographiques en compl&eacute;ment du WGS84
+
+h3. Impl&eacute;mentation
+
+p. L'espace de donn&eacute;es est concr&eacute;tis&eacute; dans la base de donn&eacute;es par un sch&eacute;ma au sens SQL portant le nom definit par l'attribut code,
+les attributs sont enregistr&eacute;s dans la table REFERENTIALS du schema PUBLIC
+
diff --git a/app/views/help/index.textile b/app/views/help/index.textile
new file mode 100644
index 000000000..64a4281e5
--- /dev/null
+++ b/app/views/help/index.textile
@@ -0,0 +1,37 @@
+---
+layout: default
+title: Présentation
+---
+
+Chouette v2 : it&eacute;ration 4 du 16/04/2012
+
+Cette it&eacute;ration pr&eacute;sente les formulaires de :
+
+* r&eacute;seaux
+* lignes
+* arr&ecirc;ts
+* calendriers d'application
+
+l'avancement actuel permet de ...
+
+h3. Sommaire
+
+# "G&eacute;n&eacute;ralit&eacute;s":introduction
+## "Normalisation":normalisation
+# "Espaces de donn&eacute;es":dataspaces
+# "R&eacute;seaux":networks
+# "Transporteurs":companies
+# "Lignes":lines
+## S&eacute;quences d'arr&ecirc;ts
+## Horaires
+# "Arr&ecirc;ts":stop_areas
+## Correspondances
+## Acc&egrave;s
+## Liaisons Arr&ecirc;t-Acc&egrave;s
+# "Calendriers d'application":timetables
+# Outils
+## Imports
+## Validation
+# Divers
+## "API Rest":restapis
+
diff --git a/app/views/help/introduction.textile b/app/views/help/introduction.textile
new file mode 100644
index 000000000..71f954d53
--- /dev/null
+++ b/app/views/help/introduction.textile
@@ -0,0 +1,15 @@
+---
+layout: default
+title: Introduction
+---
+
+CHOUETTE est un logiciel libre d&eacute;velopp&eacute; &agrave; l'initiative du minist&egrave;re fran&ccedil;ais charg&eacute; des transports (et du d&eacute;veloppement durable),
+dans le but de faciliter l'&eacute;change de donn&eacute;es d'offre (th&eacute;orique) de transport collectif (TC),
+en s'appuyant pour cela sur la norme NFP 99506, dite Neptune, qui sp&eacute;cifie un profil d'&eacute;change XML.
+
+Les utilisateurs vis&eacute;s sont les collectivit&eacute;s locales Autorit&eacute;s Organisatrices de Transport (AOT),
+les exploitants des r&eacute;seaux TC ,et leurs prestataires (bureaux d'&eacute;tude ou soci&eacute;t&eacute; de services).
+D'autres utilisateurs potentiels sont n&eacute;anmoins identifi&eacute;s : services de l'&eacute;tat, &eacute;diteurs de logiciels,
+op&eacute;rateurs de services d'information, chercheurs...
+
+
diff --git a/app/views/help/lines.textile b/app/views/help/lines.textile
new file mode 100644
index 000000000..9997c0d50
--- /dev/null
+++ b/app/views/help/lines.textile
@@ -0,0 +1,46 @@
+---
+layout: default
+title: Lignes
+---
+
+h3. D&eacute;finition
+
+Une ligne r&eacute;f&eacute;rence un r&eacute;seau et un transporteur; par ailleurs la ligne se compose d'un ou plusieurs itin&eacute;raires.
+La ligne dispose aussi d'un identifiant fonctionnel (&laquo; num&eacute;ro d'enregistrement &raquo;) qui est utilis&eacute; dans les &eacute;changes XML pour identifier la ligne et la mettre &agrave; jour; il est donc important que le gestionnaire de la base CHOUETTE le renseigne d'une mani&egrave;re bien d&eacute;finie et p&eacute;renne.
+
+h3. Attributs
+
+- R&eacute;seau := r&eacute;seau d'appartenance de la ligne
+- Transporteur :=
+transporteur principal exploitant la ligne
+les autres transporteurs de la lignes sont r&eacute;f&eacute;renc&eacute;s au niveau de chaque course
+=:
+- Nom := nom de la ligne
+- Nom public := nom de la ligne connu des usagers
+- Num&eacute;ro d'enregistrement := code r&eacute;f&eacute;ren&ccedil;ant une ligne au sein d'une autorit&eacute; sup&eacute;rieure
+- Indice := indice de la ligne
+- Mode de transport :=
+mode de transport principal de la ligne
+les modes de transports particuliers sont indiqu&eacute;s au niveau de chaque course
+=:
+- Commentaire := zone de texte libre sur la ligne
+
+p(attr_data). Donn&eacute;es de gestion :
+
+- Identifiant Neptune :=
+cl&eacute; unique p&eacute;renne identifiant la ligne pour les &eacute;changes Neptune
+cet identifiant est compos&eacute; de 3 parties : pr&eacute;fixe:type:id_technique
+* pr&eacute;fixe : cl&eacute; identifiant un producteur de donn&eacute;es unique
+* type = Line : cl&eacute; identifiant le type d'objet (valeur impos&eacute;e)
+* id_technique : valeur identifiant un seul object d'un type donn&eacute; pour un m&ecirc;me producteur
+ce champ obligatoire est automatiquement g&eacute;n&eacute;r&eacute; s'il n'est pas renseign&eacute;
+il est possible aussi de ne renseigner que le pr&eacute;fixe auquel cas la valeur sera compl&eacute;t&eacute;e automatiquement.
+=:
+- Date de cr&eacute;ation := date &agrave; laquelle l'objet a &eacute;t&eacute; cr&eacute;&eacute; ou modifi&eacute; pour la derni&egrave;re fois
+- Version := version de l'objet (auto incr&eacute;ment&eacute; &agrave; chaque modification)
+- Cr&eacute;&eacute; par := compte utilisateur ayant proc&eacute;d&eacute; &agrave; la derni&egrave;re modification
+
+h3. Impl&eacute;mentation
+
+p. TODO
+
diff --git a/app/views/help/networks.textile b/app/views/help/networks.textile
new file mode 100644
index 000000000..424808f48
--- /dev/null
+++ b/app/views/help/networks.textile
@@ -0,0 +1,41 @@
+---
+layout: default
+title: Réseaux
+---
+
+h3. D&eacute;finition
+
+Un r&eacute;seau est constitu&eacute; par les lignes, les s&eacute;quences d'arr&ecirc;ts, les Interdictions de Trafic Local (ITL), les horaires, et les courses qui le d&eacute;finissent.
+
+Chaque r&eacute;seau dispose d'un identifiant fonctionnel (&laquo; num&eacute;ro d'enregistrement &raquo;) qui est utilis&eacute; dans les &eacute;changes XML pour identifier le r&eacute;seau et le mettre &agrave; jour. Il est donc important que le gestionnaire le renseigne d'une mani&egrave;re bien d&eacute;finie et p&eacute;renne.
+
+
+h3. Attributs
+
+- Nom := nom du r&eacute;seau
+- Num&eacute;ro d'enregistrement := code r&eacute;f&eacute;ren&ccedil;ant un r&eacute;seau au sein d'une autorit&eacute; sup&eacute;rieure
+- Commentaire := zone de texte libre sur le r&eacute;seau
+- Date de version := date de mise en r&eacute;f&eacute;rence de l'ensemble des constituants du r&eacute;seau
+- Description := description du r&eacute;seau
+- Nom du syst&egrave;me origine := nom du syst&egrave;me ayant produit les donn&eacute;es du r&eacute;seau
+- Identifiant du syst&egrave;me origine := identifiant du syst&egrave;me ayant produit les donn&eacute;es du r&eacute;seau
+
+p(attr_data). Donn&eacute;es de gestion :
+
+- Identifiant Neptune :=
+cl&eacute; unique p&eacute;renne identifiant le r&eacute;seau pour les &eacute;changes Neptune
+cet identifiant est compos&eacute; de 3 parties : pr&eacute;fixe:type:id_technique
+* pr&eacute;fixe : cl&eacute; identifiant un producteur de donn&eacute;es unique
+* type = GroupOfLine : cl&eacute; identifiant le type d'objet (valeur impos&eacute;e)
+* id_technique : valeur identifiant un seul object d'un type donn&eacute; pour un m&ecirc;me producteur
+ce champ obligatoire est automatiquement g&eacute;n&eacute;r&eacute; s'il n'est pas renseign&eacute;
+il est possible aussi de ne renseigner que le pr&eacute;fixe auquel cas la valeur sera compl&eacute;t&eacute;e automatiquement.
+=:
+- Date de cr&eacute;ation := date &agrave; laquelle l'objet a &eacute;t&eacute; cr&eacute;&eacute; ou modifi&eacute; pour la derni&egrave;re fois
+- Version := version de l'objet (auto incr&eacute;ment&eacute; &agrave; chaque modification)
+- Cr&eacute;&eacute; par := compte utilisateur ayant proc&eacute;d&eacute; &agrave; la derni&egrave;re modification
+
+h3. Impl&eacute;mentation
+
+p. TODO
+
diff --git a/app/views/help/normalisation.textile b/app/views/help/normalisation.textile
new file mode 100644
index 000000000..2790d5320
--- /dev/null
+++ b/app/views/help/normalisation.textile
@@ -0,0 +1,43 @@
+---
+layout: default
+title: Normalisation
+---
+
+Le projet Chouette a &eacute;t&eacute; d&eacute;velopp&eacute; dans le cadre de la normalisation de l'information sur les transports publics (AFNOR/BNEVT CN03/GT7), en vue de faciliter l'interop&eacute;rabilit&eacute; des syst&egrave;mes et en particulier les &eacute;changes de donn&eacute;es entre Syst&egrave;mes d'Information Multimodale.
+
+h3. TRANSMODEL (EN12896)
+
+La norme europ&eacute;enne TRANSMODEL constitue le mod&egrave;le conceptuel de donn&eacute;es sur lequel s'appuie l'ensemble des travaux normatifs (Neptune, SIRI, IFOPT, NETEX) . Elle est actuellement valid&eacute;e dans sa version 5.1.
+
+Elle a pour objectif de d&eacute;crire les diff&eacute;rents concepts utilis&eacute;s au sein des multiples m&eacute;tiers du transport public (aussi bien dans le domaine de l'exploitation, de la r&eacute;gulation que dans celui de l'information voyageur) en usant de la mod&eacute;lisation UML. Cette description a abouti &agrave; la constitution d'un "dictionnaire" dans lequel chacun peut venir piocher la terminologie ad&eacute;quate pour pouvoir d&eacute;signer, quels que soient la structure et le m&eacute;tier de l'int&eacute;ress&eacute;, de fa&ccedil;on homog&egrave;ne et non ambigu&eumlc; les concepts qu'il va d&eacute;cliner dans son application.
+
+h3. de TRIDENT &agrave; NEPTUNE (PR NF P99-506)
+
+Dans le cadre de la commission de normalisation CN03 pour les applications t&eacute;l&eacute;matiques dans les transports publics, miroir du groupe europ&eacute;en CEN TC278 / WG3, un groupe de travail GT7 a &eacute;t&eacute; cr&eacute;&eacute; en 2002 pour normaliser les &eacute;changes de donn&eacute;es concernant l'information aux voyageurs entre exploitants et Autorit&eacute;s Organisatrices de transport.
+
+Apr&egrave;s examen des travaux en cours au niveau europ&eacute;en, il est apparu au groupe que les sp&eacute;cifications d'&eacute;change &eacute;labor&eacute;es dans le cadre du projet europ&eacute;en TRIDENT &eacute;taient la meilleure base de travail sur laquelle s'appuyer pour la normalisation.
+Ces sp&eacute;cifications d'&eacute;change couvrent l'information VP et TC, th&eacute;orique et en situation perturb&eacute;e; elles s'appuient sur :
+* un mod&egrave;le d'&eacute;change pair &agrave; pair entre fournisseur et client, avec possibilit&eacute; d'abonnement ;
+* un mod&egrave;le de donn&eacute;es orient&eacute; objets d&eacute;crit en UML, reprenant pour ce qui concerne les transports publics, le mod&egrave;le conceptuel de donn&eacute;es Transmodel V4.0, normalis&eacute; au niveau europ&eacute;en ;
+* un format d'&eacute;change XML sp&eacute;cifi&eacute; sous forme de sch&eacute;mas XSD.
+
+Les sp&eacute;cifications TRIDENT ont &eacute;t&eacute; impl&eacute;ment&eacute;es dans plusieurs pays europ&eacute;ens, et en France ont &eacute;t&eacute; mises en &oelig;uvre par la RATP pour son syst&egrave;me d'information sur les situations perturb&eacute;es SIPRE, et &eacute;galement pour les &eacute;changes d'information au niveau francilien en cours entre les syst&egrave;mes de la RATP et du STIF, pour ce qui concerne l'information th&eacute;orique.
+
+Le travail du groupe GT7 a abouti &agrave; des sp&eacute;cifications de profil d'&eacute;change TRIDENT / Chouette en 2006, qui ont servi de r&eacute;f&eacute;rence pour impl&eacute;menter le logiciel CHOUETTE et sont utilis&eacute;es depuis lors par plusieurs projets de SIM en France.
+
+Lors des discussions pr&eacute;c&eacute;dant l'enqu&ecirc;te probatoire AFNOR en 2009 en vue faire de ces sp&eacute;cifications une norme fran&ccedil;aise, ces sp&eacute;cifications ont &eacute;t&eacute; compl&eacute;t&eacute;es par quelques &eacute;l&eacute;ments de donn&eacute;es relatifs &agrave; l'accessibilit&eacute; des transports : le nouveau profil d'&eacute;change baptis&eacute; *NEPTUNE* (PR NF99-506 D&eacute;cembre 2009) a &eacute;t&eacute; adopt&eacute; en janvier 2010. Il y a compatibilit&eacute; ascendante avec les fichiers au profil Trident/Chouette dont Neptune est une extension.
+
+h3. Le profile d'&eacute;change NEPTUNE
+
+Le d&eacute;veloppement des Syst&egrave;mes d'Information Multimodale a conduit les partenaires des transports publics en France (AOT et op&eacute;rateurs, repr&eacute;sentants d'utilisateurs et administrations publiques) dans leur ensemble &agrave; demander l'inscription de ce profil d'&eacute;change en tant que 'norme pleine'. L'adoption de ce statut de norme est d'autant plus important aujourd'hui, que les outils pr&eacute;cit&eacute;s vont conna&icirc;tre des p&eacute;riodes d'&eacute;volution et d'adaptation.
+
+Dans le cadre du processus de normalisation, le profil d'&eacute;change a &eacute;t&eacute; rebaptis&eacute; NEPTUNE et compl&eacute;t&eacute; . Le processus s'est conclu d&eacute;but 2010 par l'adoption d'un document AFNOR (cf. PR NF P99-506) .
+
+En pratique, l'essentiel est de savoir que le profil TRIDENT/CHOUETTE est compatible avec NEPTUNE : Neptune reprend l'essentiel de Trident profil Chouette, et n'a &eacute;t&eacute; compl&eacute;t&eacute; qu'en ce qui concerne l'information sur l'accessibilit&eacute; aux Personnes &agrave; Mobilit&eacute; R&eacute;duite et les acc&egrave;s. En particulier, le nommage des &eacute;l&eacute;ments de donn&eacute;es du profil XSD n'a pas &eacute;t&eacute; modifi&eacute;.
+
+Ce profil r&eacute;sulte d'un consensus entre les diff&eacute;rentes parties prenantes participant au groupe de travail de normalisation CN03/GT7. Il est r&eacute;dig&eacute; en fran&ccedil;ais. Dans certains cas, pour &eacute;viter des confusions ou des contre-sens, les concepts de la norme TRANSMODEL qui ont &eacute;t&eacute; manipul&eacute;s sont rappel&eacute;s dans leur terminologie, voire leur d&eacute;finition en anglais dans le texte original de la norme TRANSMODEL V5.1 qui vaut r&eacute;f&eacute;rence. Les rapprochements n&eacute;cessaires ont &eacute;t&eacute; faits avec la version provisoire en fran&ccedil;ais de la norme TRANSMODEL en cours de validation.
+
+Ce profil sera sans doute amen&eacute; &agrave; &eacute;voluer en fonction des travaux r&eacute;alis&eacute;s dans le cadre des travaux de normalisation europ&eacute;ens ou internationaux en cours. Ceux-ci touchent tout &agrave; la fois la repr&eacute;sentation topographique des r&eacute;seaux de transport, les interfaces entre les donn&eacute;es d'exploitation et l'information diffus&eacute;e vers le voyageur avant et pendant le voyage (NeTEX ), la description des points d'arr&ecirc;ts et points fixes (IFOPT2) , les interfaces avec la billettique et les autres &eacute;changes de donn&eacute;es envisageables dans les m&eacute;tiers des transports publics (TRANSMODEL).
+
+Le profil d'&eacute;change NEPTUNE (PR NF P99-506 D&eacute;cembre 2009) et donc l'outil CHOUETTE se limitent aux &eacute;changes d'information concernant la description " statique " de l'offre TC (r&eacute;seau, horaires), et ne couvrent pas l'information en temps r&eacute;el.
+
diff --git a/app/views/help/restapis.textile b/app/views/help/restapis.textile
new file mode 100644
index 000000000..ed4aaf3b4
--- /dev/null
+++ b/app/views/help/restapis.textile
@@ -0,0 +1,30 @@
+---
+layout: default
+title: API Rest
+---
+
+h3. Syntaxe
+
+Les diff&eacute;rents objets Neptune sont accessibles dans Chouette par l'URL Rest:
+??[URL_server]/[referential_id]/[Objects]/[id].[format]??
+la liste des objets d'un m&ecirc;me type peut &ecirc;tre obtenue par l'URL REST :
+??[URL_server]/[referential_id]/[Objects].[format]??
+o&ugrave; :
+* URL_server : l'adresse web d'installation du serveur Chouette
+* referential_id: l'identifiant de l'espace de donn&eacute;es
+* Objects: le type d'objet demand&eacute; (au pluriel)
+** networks
+** lines
+** companies
+** ...
+* id : l'identifiant de l'objet d&eacute;sir&eacute;
+* format : le format de sortie :
+** json
+** xml
+
+h3. Exemples
+
+??http://chouette.dryade.net/chouette2/referentials/4/lines/674.json??
+??http://chouette.dryade.net/chouette2/referentials/4/lines/674.xml??
+
+
diff --git a/app/views/help/show.html.erb b/app/views/help/show.html.erb
new file mode 100644
index 000000000..b5c8506ee
--- /dev/null
+++ b/app/views/help/show.html.erb
@@ -0,0 +1,3 @@
+<h2><%= @page.title %></h2>
+
+<%= textilize(@page.content).html_safe %>
diff --git a/app/views/help/stop_areas.textile b/app/views/help/stop_areas.textile
new file mode 100644
index 000000000..f527798fe
--- /dev/null
+++ b/app/views/help/stop_areas.textile
@@ -0,0 +1,78 @@
+---
+layout: default
+title: Arr&ecirc;ts
+---
+
+h3. D&eacute;finition
+
+Le r&eacute;f&eacute;rentiel des arr&ecirc;ts constitue un maillon essentiel du r&eacute;seau, et se compose de plusieurs &eacute;l&eacute;ments de niveaux diff&eacute;rents.
+
+On recense tout d'abord les arr&ecirc;ts physiques, qualifi&eacute;s de *point d'embarquement* ou de *quai*.
+
+Du fait de l'existence de deux concepts dans TRIDENT, cet arr&ecirc;t physique sera consid&eacute;r&eacute; par l'application comme une *zone d'arr&ecirc;t de premier niveau*. Cette notion est n&eacute;cessaire pour g&eacute;rer les *points d'arr&ecirc;ts sur itin&eacute;raire* utilis&eacute;s par certains r&eacute;seaux.
+
+L'application g&egrave;re ensuite les points d'arr&ecirc;ts sur itin&eacute;raire &agrave; partir de ces arr&ecirc;ts physiques, en assurant le regroupement des points d'arr&ecirc;t sur itin&eacute;raire dans un arr&ecirc;t physique (cas de plusieurs lignes passant par le m&ecirc;me arr&ecirc;t physique).
+
+Par la suite, vous pourrez regrouper deux (ou plus) arr&ecirc;ts physiques au sein d'un *arr&ecirc;t commercial* (par exemple pour regrouper les points d'arr&ecirc;t physiques correspondant &agrave; deux poteaux d'arr&ecirc;t de la m&ecirc;me ligne situ&eacute;s de part et d'autre d'une chauss&eacute;e mais aussi pour regrouper l'ensemble des points d'arr&ecirc;t physiques d'un quai de gare routi&egrave;re pour lesquels vous consid&eacute;rez que le temps de correspondance est nul). Vous aurez ainsi constitu&eacute; une zone d'arr&ecirc;t, avec qualification arr&ecirc;t commercial, de deuxi&egrave;me niveau.
+
+Enfin, CHOUETTE vous offre la possibilit&eacute; de regrouper les lieux d'arr&ecirc;t agglom&eacute;r&eacute;s ainsi cr&eacute;&eacute;s au sein d'une *zone d'arr&ecirc;t de troisi&egrave;me niveau* pour constituer des *p&ocirc;les d'&eacute;change*.
+
+Ainsi on obtient les possibilit&eacute;s de regroupements suivants:
+* un arr&ecirc;t physique regroupe plusieurs arr&ecirc;ts itin&eacute;raire.
+* un arr&ecirc;t commercial regroupe plusieurs arr&ecirc;ts physiques (quai, embarquement).
+* un p&ocirc;le d'&eacute;change regroupe plusieurs arr&ecirc;ts commerciaux.
+
+Pour ne pas aboutir &agrave; un syst&egrave;me trop complexe, les r&egrave;gles suivantes sont pos&eacute;es:
+* un p&ocirc;le d'&eacute;change peut contenir des arr&ecirc;ts commerciaux et/ou des p&ocirc;les d'&eacute;changes (qui ne peuvent pas en contenir d'autres).
+* un arr&ecirc;t commercial ne peut contenir que des arr&ecirc;ts physiques.
+
+Un dernier regourpement est *l'ITL* :
+
+*L'interdiction de trafic local* est l'interdiction faite &agrave; un service routier de prendre et de laisser un m&ecirc;me voyageur &agrave; l'int&eacute;rieur du p&eacute;rim&egrave;tre des transports urbains _(cf. D&eacute;cret n&ordm;49-1473 du 14 novembre 1949)_ .
+Ainsi dans CHOUETTE:
+* Une ITL est un regroupement d'arr&ecirc;ts repr&eacute;sentant le p&eacute;rim&egrave;tre d'interdiction.
+* Une ITL est associ&eacute;e &agrave; une ou plusieurs lignes
+
+h3. Attributs
+
+- Type d'arr&ecirc;t := cat&eacute;gorie de l'arr&ecirc;t
+
+* !boardingposition.png! point d'embarquement
+* !quay.png! quai
+* !commercialstoppoint.png! arr&ecirc;t commercial
+* !stopplace.png! p&ocirc;le d'&eacute;change
+
+- Nom := nom de l'arr&ecirc;t
+- Commentaire := zone de texte libre
+- Point d'int&eacute;r&ecirc;t le plus proche := nom du lieu desservi par l'arr&ecirc;t
+- Nom de la rue := nom de la rue de l'arr&ecirc;t
+- Code INSEE := code INSEE de la commune de l'arr&ecirc;t
+- Zone tarifaire := zone de tarification applicable &agrave; cet arr&ecirc;t
+- Num&eacute;ro d'enregistrement := code r&eacute;f&eacute;ren&ccedil;ant un arr&ecirc;t au sein d'une autorit&eacute; sup&eacute;rieure
+
+p(attr_data). Donn&eacute;es g&eacute;ographiques :
+
+- Position X := coordonn&eacute;e horizontale de l'arr&ecirc;t dans le r&eacute;f&eacute;rentiel de projection de l'espace de donn&eacute;es
+- Position Y := coordonn&eacute;e verticale de l'arr&ecirc;t dans le r&eacute;f&eacute;rentiel de projection de l'espace de donn&eacute;es
+- Longitude := longitude de l'arr&ecirc;t dans le r&eacute;f&eacute;rentiel WGS84
+- latitude := latitude de l'arr&ecirc;t dans le r&eacute;f&eacute;rentiel WGS84
+
+p(attr_data). Donn&eacute;es de gestion :
+
+- Identifiant Neptune :=
+cl&eacute; unique p&eacute;renne identifiant la ligne pour les &eacute;changes Neptune
+cet identifiant est compos&eacute; de 3 parties : pr&eacute;fixe:type:id_technique
+* pr&eacute;fixe : cl&eacute; identifiant un producteur de donn&eacute;es unique
+* type = Line : cl&eacute; identifiant le type d'objet (valeur impos&eacute;e)
+* id_technique : valeur identifiant un seul object d'un type donn&eacute; pour un m&ecirc;me producteur
+ce champ obligatoire est automatiquement g&eacute;n&eacute;r&eacute; s'il n'est pas renseign&eacute;
+il est possible aussi de ne renseigner que le pr&eacute;fixe auquel cas la valeur sera compl&eacute;t&eacute;e automatiquement.
+=:
+- Date de cr&eacute;ation := date &agrave; laquelle l'objet a &eacute;t&eacute; cr&eacute;&eacute; ou modifi&eacute; pour la derni&egrave;re fois
+- Version := version de l'objet (auto incr&eacute;ment&eacute; &agrave; chaque modification)
+- Cr&eacute;&eacute; par := compte utilisateur ayant proc&eacute;d&eacute; &agrave; la derni&egrave;re modification
+
+h3. Impl&eacute;mentation
+
+p. TODO
+
diff --git a/app/views/help/timetables.textile b/app/views/help/timetables.textile
new file mode 100644
index 000000000..57fe0d50b
--- /dev/null
+++ b/app/views/help/timetables.textile
@@ -0,0 +1,55 @@
+---
+layout: default
+title: Calendriers d'application
+---
+
+h3. D&eacute;finition
+
+Un calendrier d'application permet de d&eacute;finir la p&eacute;riode de validit&eacute; des horaires d'une course.
+Les calendriers d'application sont donc d&eacute;finis ind&eacute;pendamment des lignes, &agrave; l'instar du r&eacute;f&eacute;rentiel des arr&ecirc;ts.
+
+La mani&egrave;re de d&eacute;finir un calendrier d'application est restreinte.
+Les calendriers sont caract&eacute;ris&eacute;s par :
+
+* une liste de quanti&egrave;mes (jours calendaires dans l'ann&eacute;e)
+* une liste de jours d'application (lundis, mardis, etc.)
+* une liste de p&eacute;riodes
+
+L'utilisateur doit donc faire attention au nommage de ses diff&eacute;rents calendriers d'application.
+
+Plusieurs courses peuvent r&eacute;f&eacute;rencer le m&ecirc;me calendrier.
+
+Ainsi, il est possible de construire des calendriers d'application qui sont ensuite r&eacute;f&eacute;renc&eacute;s par des courses de lignes diff&eacute;rentes.
+
+h3. Attributs
+
+- Commentaire := Description du calendrier
+- Version := version du calendrier (diff&eacute;rent de la version de l'objet)
+- Jours d'application := jours de la semaine effectivement applicables dans le cas o&ugrave; des p&eacute;riodes sont d&eacute;finies dans le calendrier
+- P&eacute;riodes d'application := p&eacute;riodes calendaires durant lesquelles le calendrier est applicable
+- Dates d'application :=
+dates sp&eacute;cifiques pour lesquelles le calendrier est applicable;
+ces dates peuvent &ecirc;tre ajout&eacute;es dans ou en dehors des p&eacute;riodes calendaires.
+Un calendrier peut n'avoir que des dates calendaires, auquel cas les jours d'applications n'ont pas de signification
+=:
+
+p(attr_data). Donn&eacute;es de gestion :
+
+- Identifiant Neptune :=
+cl&eacute; unique p&eacute;renne identifiant le r&eacute;seau pour les &eacute;changes Neptune
+cet identifiant est compos&eacute; de 3 parties : pr&eacute;fixe:type:id_technique
+
+* pr&eacute;fixe : cl&eacute; identifiant un producteur de donn&eacute;es unique
+* type = Timetable : cl&eacute; identifiant le type d'objet (valeur impos&eacute;e)
+* id_technique : valeur identifiant un seul object d'un type donn&eacute; pour un m&ecirc;me producteur
+ce champ obligatoire est automatiquement g&eacute;n&eacute;r&eacute; s'il n'est pas renseign&eacute;
+il est possible aussi de ne renseigner que le pr&eacute;fixe auquel cas la valeur sera compl&eacute;t&eacute;e automatiquement.
+=:
+- Date de cr&eacute;ation := date &agrave; laquelle l'objet a &eacute;t&eacute; cr&eacute;&eacute; ou modifi&eacute; pour la derni&egrave;re fois
+- Version := version de l'objet (auto incr&eacute;ment&eacute; &agrave; chaque modification)
+- Cr&eacute;&eacute; par := compte utilisateur ayant proc&eacute;d&eacute; &agrave; la derni&egrave;re modification
+
+h3. Impl&eacute;mentation
+
+p. TODO
+
diff --git a/app/views/layouts/_user_links.erb b/app/views/layouts/_user_links.erb
index f82d4d7b4..ccbe17596 100644
--- a/app/views/layouts/_user_links.erb
+++ b/app/views/layouts/_user_links.erb
@@ -9,11 +9,11 @@
<% end %>
<li> | </li>
- <li class="<%= language_class("fr") %>"><%= link_to_language :fr %></li>
- <li class="<%= language_class("en") %>"><%= link_to_language :en %></li>
+ <li class="<%= language_class('fr') %>"><%= link_to_language :fr %></li>
+ <li class="<%= language_class('en') %>"><%= link_to_language :en %></li>
<li>
<li> | </li>
- <%= link_to "/help/index" do %>
+ <%= link_to help_path do %>
<span class="help"><%= t('layouts.help') %></span>
<% end %>
</li>
diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb
index ceafd8944..f75b138fe 100644
--- a/app/views/layouts/application.html.erb
+++ b/app/views/layouts/application.html.erb
@@ -21,6 +21,8 @@
<div class="title">
<% if selected_referential? %>
<h1><%= @referential.name %></h1>
+ <% elsif help_page? %>
+ <h1>Documentation</h1>
<% end %>
</div>
<div class="interaction">
@@ -29,8 +31,10 @@
</div>
<div class="tabs">
<ul class="main">
- <% unless selected_referential? %>
- <li><%= tab_link_to Referential, referentials_path %></li>
+ <% if help_page? %>
+ <li><%= link_to "Aide", help_path, :class => "current" %></li>
+ <% elsif ! selected_referential? %>
+ <li><%= tab_link_to Referential, referentials_path, :class => "current" %></li>
<% else %>
<li><%= link_to t("layouts.tabs.dashboard"), referential_path(@referential), :class => ("current" if current_page?(referential_path(@referential))) %></li>
<li><%= tab_link_to Chouette::Network, referential_networks_path(@referential) %></li>