diff options
| author | Michel Etienne | 2012-06-04 15:52:32 +0200 |
|---|---|---|
| committer | Michel Etienne | 2012-06-04 15:52:32 +0200 |
| commit | 3dc257c6f68f075799adfb3083f578b9639d3dce (patch) | |
| tree | e4c1daaad69bf141964cb8d5d257208985131042 | |
| parent | 6163c10aa33d62e735d63aae7df796f0152ad3cc (diff) | |
| download | chouette-core-3dc257c6f68f075799adfb3083f578b9639d3dce.tar.bz2 | |
add fields to referentials and update textiles
| -rw-r--r-- | app/models/referential.rb | 10 | ||||
| -rw-r--r-- | app/views/help/dataspaces.textile | 1 | ||||
| -rw-r--r-- | app/views/help/index.textile | 11 | ||||
| -rw-r--r-- | app/views/help/journeypatterns.textile | 35 | ||||
| -rw-r--r-- | app/views/help/routes.textile | 2 | ||||
| -rw-r--r-- | app/views/help/toc.textile | 4 | ||||
| -rw-r--r-- | app/views/help/vehiclejourneys.textile | 37 | ||||
| -rw-r--r-- | app/views/referentials/_form.erb | 12 | ||||
| -rw-r--r-- | app/views/referentials/show.html.erb | 15 | ||||
| -rw-r--r-- | config/locales/referentials.yml | 16 | ||||
| -rw-r--r-- | db/migrate/20120523123806_add_fields_to_referentials.rb | 7 | ||||
| -rw-r--r-- | db/schema.rb | 3 | ||||
| -rw-r--r-- | spec/factories.rb | 2 | ||||
| -rw-r--r-- | spec/models/referential_spec.rb | 2 |
14 files changed, 151 insertions, 6 deletions
diff --git a/app/models/referential.rb b/app/models/referential.rb index d7c5bba7e..2d6d5b8d5 100644 --- a/app/models/referential.rb +++ b/app/models/referential.rb @@ -1,9 +1,19 @@ class Referential < ActiveRecord::Base validates_presence_of :name validates_presence_of :slug + validates_presence_of :prefix + validates_presence_of :time_zone + validates_uniqueness_of :slug + validates_uniqueness_of :name + validates_format_of :slug, :with => %r{\A[0-9a-z_]+\Z} + validates_format_of :prefix, :with => %r{\A[0-9a-zA-Z_]+\Z} has_many :imports, :dependent => :destroy + def human_attribute_name(*args) + self.class.human_attribute_name(*args) + end + def lines Chouette::Line.scoped end diff --git a/app/views/help/dataspaces.textile b/app/views/help/dataspaces.textile index 68e88173b..51c32e59d 100644 --- a/app/views/help/dataspaces.textile +++ b/app/views/help/dataspaces.textile @@ -13,6 +13,7 @@ h3. Attributs - Code := code de l'espace de données - Préfixe Neptune := préfixe utilisé par défaut pour la génération des identifiants Neptune - Projection géographique := référentiel de projection des coordonnées cartographiques en complément du WGS84 +- Fuseau horaire := fuseau horaire applicable pour les horaires des courses. (cf "Tz_database":http://fr.wikipedia.org/wiki/Tz_database) h3. Implémentation diff --git a/app/views/help/index.textile b/app/views/help/index.textile index d776a8d8d..bea9502ec 100644 --- a/app/views/help/index.textile +++ b/app/views/help/index.textile @@ -3,7 +3,7 @@ layout: default title: Présentation --- -Chouette v2 : itération 6 du 22/05/2012 +Chouette v2 : itération 7 du 04/06/2012 Cette itération présente les formulaires de : @@ -11,6 +11,7 @@ Cette itération présente les formulaires de : * transporteurs * lignes ** séquences d'arrêts +** missions * arrêts * calendriers d'application * correspondances @@ -20,12 +21,16 @@ l'avancement actuel permet de : * créer, modifier et supprimer les objets * consulter les cartes +** les noms des arrêts sont affiché sous forme de bulle d'aide sur les cartes du réseau, des lignes et des correspondances * déplacer un arrêt depuis la carte (voir mode opératoire dans l'aide des arrêts) * associer les arrêts à leurs parents * ajouter des fils à un arrêt * importer des lignes au format Neptune (fichier ZIP uniquement) * éditer des séquences d'arrêts : ** ajouter, déplacer et retirer des arrêts dans la séquence +** ajouter, modifier les missions de la séquence +* préciser des paramètres généraux de l'espace de données + les actions suivantes ne sont pas encore disponible : @@ -33,5 +38,7 @@ les actions suivantes ne sont pas encore disponible : * associer une ITL à une ligne * imports à d'autres formats que Neptune * exports de données -* consulter les missions et les horaires des lignes +* définir l'emprise générale du réseau +* gérer le second référentiel de projection +* consulter/créer/éditer les courses et les horaires diff --git a/app/views/help/journeypatterns.textile b/app/views/help/journeypatterns.textile new file mode 100644 index 000000000..727e3772b --- /dev/null +++ b/app/views/help/journeypatterns.textile @@ -0,0 +1,35 @@ +--- +layout: default +title: Missions +--- + +h3. Définition + +Si on considère la suite ordonnée des arrêts d'une séquence d'arrêts, la mission se définit comme une suite extraite. Autrement dit, toutes les courses d'une séquence d'arrêts qui desservent les mêmes arrêts et dans le même ordre, à des horaires différents éventuellement, référencent la même mission. La mission correspond donc à une suite ordonnée d'arrêts de la séquence d'arrêts. + +h3. Attributs + +- Nom := nom de la mission +- Nom public := nom public pour les voyageurs +- Numéro d'enregistrement := Le numéro d'enregistrement est unique. Aucune règle de nommage ne s'applique sur ce numéro. Celui-ci doit être unique sur l'ensemble des missions de la ligne. +- Commentaire := zone de texte libre + +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 object 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. +=: +- Date de création := date à laquelle l'objet a été créé ou modifié pour la dernière fois +- Version := version de l'objet (auto incrémenté à chaque modification) +- Créé par := compte utilisateur ayant procédé à la dernière modification + +h3. Implémentation + +p. TODO + diff --git a/app/views/help/routes.textile b/app/views/help/routes.textile index 30234c492..e34ccc162 100644 --- a/app/views/help/routes.textile +++ b/app/views/help/routes.textile @@ -13,7 +13,7 @@ h3. Attributs - Nom public := nom public pour les voyageurs - Commentaire := zone de texte libre sur le réseau - Direction := orientation principale (points cardinaux, circulaire ou aller/retour) -- Indoce := numéro de la séquence d'arrêts +- Indice := numéro de la séquence d'arrêts - Sens := aller ou retour - Itinéraire associé en sens opposé := référence de l'itinéraire de sens opposé associé diff --git a/app/views/help/toc.textile b/app/views/help/toc.textile index e3ed1ba6f..8a0d204f5 100644 --- a/app/views/help/toc.textile +++ b/app/views/help/toc.textile @@ -12,7 +12,8 @@ h3. Sommaire # "Transporteurs":companies # "Lignes":lines ## "Séquences d'arrêts":routes -## Horaires +## "Missions":journeypatterns +## "Courses/Horaires":vehiclejourneys # "Arrêts":stop_areas ## "Correspondances":connection_links ## Accès @@ -20,6 +21,7 @@ h3. Sommaire # "Calendriers d'application":timetables # Outils ## Imports +## Exports ## Validation # Divers ## "API Rest":restapis diff --git a/app/views/help/vehiclejourneys.textile b/app/views/help/vehiclejourneys.textile new file mode 100644 index 000000000..84547ebe7 --- /dev/null +++ b/app/views/help/vehiclejourneys.textile @@ -0,0 +1,37 @@ +--- +layout: default +title: Courses +--- + +h3. Définition + +Une course décrit le déplacement d'un véhicule de transport public sur une séquence d'arrêts de la ligne. La course parcourt les arrêts de la séquence d'arrêts dans l'ordre, sans nécessairement s'arrêter à chacun des arrêts. A chaque arrêt desservi, la course précise l'horaire de passage. +De plus, la course est rattachée à un nombre variable de calendriers d'application. + +h3. Attributs + +- Nom := nom de la course +- Nom public := nom public pour les voyageurs +- Commentaire := zone de texte libre +- Mode de transport := mode de transport pour la course; par défaut, c'est le mode de transport de la ligne qui est appliqué +- Particularité := champs libre pouvant préciser des modes de fonctionnement (TAD par exemple) + +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 object 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. +=: +- Date de création := date à laquelle l'objet a été créé ou modifié pour la dernière fois +- Version := version de l'objet (auto incrémenté à chaque modification) +- Créé par := compte utilisateur ayant procédé à la dernière modification + +h3. Implémentation + +p. TODO + diff --git a/app/views/referentials/_form.erb b/app/views/referentials/_form.erb index 34d515c4a..c82649909 100644 --- a/app/views/referentials/_form.erb +++ b/app/views/referentials/_form.erb @@ -1,7 +1,17 @@ <%= semantic_form_for @referential do |form| %> <%= form.inputs do %> <%= form.input :name %> - <%= form.input :slug%> + <% if @referential.new_record? %> + <%= form.input :slug%> + <% else %> + <li> + <label><%= @referential.human_attribute_name("slug") %></label> + <%= @referential.slug %> + </li> + <% end %> + <%= form.input :prefix%> + <%= form.input :projection_type%> + <%= form.input :time_zone%> <% if @referential.new_record? %> <%= form.input :resources, :as => :file %> diff --git a/app/views/referentials/show.html.erb b/app/views/referentials/show.html.erb index 146e19a67..e72c0ad06 100644 --- a/app/views/referentials/show.html.erb +++ b/app/views/referentials/show.html.erb @@ -5,11 +5,24 @@ <label><%= Referential.human_attribute_name("slug") %>: </label> <%= @referential.slug %> </p> + <p> + <label><%= Referential.human_attribute_name("prefix") %>: </label> + <%= @referential.prefix %> + </p> + <p> + <label><%= Referential.human_attribute_name("projection_type") %>: </label> + <%= @referential.projection_type %> + </p> + <p> + <label><%= Referential.human_attribute_name("time_zone") %>: </label> + <%= @referential.time_zone %> + </p> </div> <% content_for :sidebar do %> <ul class="actions"> - <li><%= link_to t('referentials.actions.destroy'), referential_path(@referential), :method => :delete, :confirm => t('referentials.actions.destroy_confirm'), :class => "remove" %></li> + <li><%= link_to t('referentials.actions.edit'), edit_referential_path(@referential), :class => "edit" %></li> + <li><%= link_to t('referentials.actions.destroy'), referential_path(@referential), :method => :delete, :confirm => t('referentials.actions.destroy_confirm'), :class => "remove" %></li> <br> </ul> <% end %> diff --git a/config/locales/referentials.yml b/config/locales/referentials.yml index dc0a160ed..7aa60fc1d 100644 --- a/config/locales/referentials.yml +++ b/config/locales/referentials.yml @@ -19,6 +19,14 @@ en: referential: name: Name slug: Code + prefix: Neptune Object Id prefix + projection_type: Alternate projection code (SRID) + time_zone: time zone + formtastic: + hints: + referential: + slug: only lowercase alphanumerical or underscore characters + prefix: only alphanumerical or underscore characters fr: referentials: @@ -41,3 +49,11 @@ fr: referential: name: Nom slug: Code + prefix: Préfixe des identifiants Neptune + projection_type: Code (SRID) de la seconde projection + time_zone: Fuseau horaire + formtastic: + hints: + referential: + slug: "caractères autorisés : alphanumériques minuscules et 'souligné'" + prefix: "caractères autorisés : alphanumériques et 'souligné'" diff --git a/db/migrate/20120523123806_add_fields_to_referentials.rb b/db/migrate/20120523123806_add_fields_to_referentials.rb new file mode 100644 index 000000000..3958ed106 --- /dev/null +++ b/db/migrate/20120523123806_add_fields_to_referentials.rb @@ -0,0 +1,7 @@ +class AddFieldsToReferentials < ActiveRecord::Migration + def change + add_column :referentials, :prefix, :string + add_column :referentials, :projection_type, :string + add_column :referentials, :time_zone, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index d8532b785..da51bd062 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -269,6 +269,9 @@ ActiveRecord::Schema.define(:version => 20120531091529) do t.string "slug" t.datetime "created_at" t.datetime "updated_at" + t.string "prefix" + t.string "projection_type" + t.string "time_zone" end create_table "routes", :force => true do |t| diff --git a/spec/factories.rb b/spec/factories.rb index c5c1c0ff0..c36f1c71a 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -3,6 +3,8 @@ FactoryGirl.define do factory :referential do |f| f.sequence(:name) { |n| "Test #{n}" } f.sequence(:slug) { |n| "test_#{n}" } + f.sequence(:prefix) { |n| "test_#{n}" } + f.time_zone "Europe/Paris" end factory :user do |f| diff --git a/spec/models/referential_spec.rb b/spec/models/referential_spec.rb index 363fe237f..bb6158d4f 100644 --- a/spec/models/referential_spec.rb +++ b/spec/models/referential_spec.rb @@ -4,5 +4,7 @@ describe Referential do it { should validate_presence_of(:name) } it { should validate_presence_of(:slug) } + it { should validate_presence_of(:prefix) } + it { should validate_presence_of(:time_zone) } end
\ No newline at end of file |
