aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuc Donnet2014-09-30 13:56:43 +0200
committerLuc Donnet2014-09-30 13:56:43 +0200
commit943592b64acaa4a0432f0d4c1fa233791495b404 (patch)
tree5c34a4ba12e8af587bf3db06d693695c0130dc2b
parent4a35fb0a504b664dbf7853020cba936a91e4227a (diff)
parent9ed5022fad7c1dba366b8a282413b10fb24b4812 (diff)
downloadchouette-core-943592b64acaa4a0432f0d4c1fa233791495b404.tar.bz2
Merge branch 'sismo' of github.com:afimb/chouette2 into sismo
-rw-r--r--app/controllers/referentials_controller.rb2
-rw-r--r--app/exporters/chouette/hub/exporter.rb4
-rw-r--r--app/exporters/chouette/hub/group_of_lines_exporter.rb35
-rw-r--r--app/exporters/chouette/hub/line_exporter.rb3
-rw-r--r--app/helpers/breadcrumb_helper.rb2
-rw-r--r--app/inputs/extended_time_picker_input.rb3
-rw-r--r--app/maps/access_link_map.rb2
-rw-r--r--app/views/api/hub/groupe_de_lignes.hub.erb1
-rw-r--r--app/views/api/hub/lignes.hub.erb2
-rw-r--r--app/views/help/exports.textile6
-rw-r--r--app/views/help/imports.textile4
-rw-r--r--app/views/shared/_footer.erb16
-rw-r--r--app/views/stop_areas/access_links.html.erb65
-rw-r--r--config/locales/compliance_check_tasks.yml2
-rw-r--r--config/locales/exchange.yml20
-rw-r--r--config/locales/exports.yml4
-rw-r--r--config/locales/import_tasks.yml2
17 files changed, 116 insertions, 57 deletions
diff --git a/app/controllers/referentials_controller.rb b/app/controllers/referentials_controller.rb
index bf8a2f1ef..9cf4a5f62 100644
--- a/app/controllers/referentials_controller.rb
+++ b/app/controllers/referentials_controller.rb
@@ -26,7 +26,7 @@ class ReferentialsController < BreadcrumbController
@referential ||= current_organisation.referentials.find_by_id(params[:id])
end
def collection
- @referentials ||= current_organisation.referentials
+ @referentials ||= current_organisation.referentials.order(:name)
end
def build_resource
super.tap do |referential|
diff --git a/app/exporters/chouette/hub/exporter.rb b/app/exporters/chouette/hub/exporter.rb
index 091fa75c2..4dcc00045 100644
--- a/app/exporters/chouette/hub/exporter.rb
+++ b/app/exporters/chouette/hub/exporter.rb
@@ -133,6 +133,10 @@ class Chouette::Hub::Exporter
Chouette::Hub::LineExporter.save(@lines, temp_dir, hub_export)
networks = Chouette::Network.where( :id => @lines.map(&:network_id))
companies = Chouette::Network.where( :id => @lines.map(&:company_id))
+ groups_of_lines = []
+ @lines.each { |l| groups_of_lines << l.group_of_lines }
+ groups_of_lines = groups_of_lines.flatten.uniq
+ Chouette::Hub::GroupOfLinesExporter.save(groups_of_lines, temp_dir, hub_export)
Chouette::Hub::NetworkExporter.save(networks, temp_dir, hub_export)
Chouette::Hub::CompanyExporter.save(companies, temp_dir, hub_export)
else
diff --git a/app/exporters/chouette/hub/group_of_lines_exporter.rb b/app/exporters/chouette/hub/group_of_lines_exporter.rb
new file mode 100644
index 000000000..129913c8b
--- /dev/null
+++ b/app/exporters/chouette/hub/group_of_lines_exporter.rb
@@ -0,0 +1,35 @@
+class Chouette::Hub::GroupOfLinesExporter
+ include ERB::Util
+ attr_accessor :group_of_lines, :directory, :template
+
+ def initialize(group_of_lines, directory)
+ @group_of_lines = group_of_lines
+ @directory = directory
+ @template = File.open('app/views/api/hub/groupe_de_lignes.hub.erb' ){ |f| f.read }
+ end
+
+ def render()
+ ERB.new(@template).result(binding)
+ end
+
+ def hub_name
+ "/GROUPELIGNE.TXT"
+ end
+
+ def self.save( groups_of_lines, directory, hub_export)
+ groups_of_lines.each do |group_of_lines|
+ self.new( group_of_lines, directory).tap do |specific_exporter|
+ specific_exporter.save
+ end
+ end
+ hub_export.log_messages.create( :severity => "ok", :key => "EXPORT|GROUP_OF_LINES_COUNT", :arguments => {"0" => groups_of_lines.size})
+ end
+
+ def save
+ File.open(directory + hub_name , "a") do |f|
+ f.write("GROUPELIGNE\n") if f.size == 0
+ f.write(render)
+ end if group_of_lines.present?
+ end
+end
+
diff --git a/app/exporters/chouette/hub/line_exporter.rb b/app/exporters/chouette/hub/line_exporter.rb
index 0d58f3757..f8cf07b60 100644
--- a/app/exporters/chouette/hub/line_exporter.rb
+++ b/app/exporters/chouette/hub/line_exporter.rb
@@ -6,6 +6,9 @@ class Chouette::Hub::LineExporter
@line = line
@directory = directory
@template = File.open('app/views/api/hub/lignes.hub.erb' ){ |f| f.read }
+ if (line.group_of_lines.count > 0)
+ @group_of_line = line.group_of_lines[0].objectid.sub(/(\w*\:\w*\:)(\w*)/, '\2')
+ end
end
def render()
diff --git a/app/helpers/breadcrumb_helper.rb b/app/helpers/breadcrumb_helper.rb
index 580847331..34e03383c 100644
--- a/app/helpers/breadcrumb_helper.rb
+++ b/app/helpers/breadcrumb_helper.rb
@@ -79,7 +79,7 @@ module BreadcrumbHelper
def access_point_breadcrumb(action)
stop_area_breadcrumb :edit
- add_breadcrumb breadcrumb_label(@access_point), referential_stop_area_access_point_path(@referential, @stop_area,@access_point),:title => breadcrumb_tooltip(@access_point) if action == :edit
+ add_breadcrumb breadcrumb_label(@access_point), referential_stop_area_access_point_path(@referential, @access_point.stop_area,@access_point),:title => breadcrumb_tooltip(@access_point) if action == :edit
end
def access_link_breadcrumb(action)
diff --git a/app/inputs/extended_time_picker_input.rb b/app/inputs/extended_time_picker_input.rb
index 46b5bbdb4..2298c0185 100644
--- a/app/inputs/extended_time_picker_input.rb
+++ b/app/inputs/extended_time_picker_input.rb
@@ -3,9 +3,10 @@ class ExtendedTimePickerInput < Formtastic::Inputs::TimePickerInput
def value
return options[:input_html][:value] if options[:input_html] && options[:input_html].key?(:value)
val = object.send(method)
+ puts val.to_s
return "00:00:00" if val.is_a?(Date)
return val.strftime("%H:%M:%S") if val.is_a?(Time)
- return val if val.nil?
+ return "00:00:00" if val.nil?
val.to_s
end
diff --git a/app/maps/access_link_map.rb b/app/maps/access_link_map.rb
index 35873a9b1..544a1e792 100644
--- a/app/maps/access_link_map.rb
+++ b/app/maps/access_link_map.rb
@@ -23,7 +23,7 @@ class AccessLinkMap < ApplicationMap
end
def bounds
- @bounds ||= GeoRuby::SimpleFeatures::Point.bounds([access_link.stop_area.geometry,access_link.access_point.geometry])
+ @bounds ||= GeoRuby::SimpleFeatures::Point.bounds([access_link.stop_area.geometry,access_link.access_point.geometry].compact)
end
end
diff --git a/app/views/api/hub/groupe_de_lignes.hub.erb b/app/views/api/hub/groupe_de_lignes.hub.erb
new file mode 100644
index 000000000..f098b7a5e
--- /dev/null
+++ b/app/views/api/hub/groupe_de_lignes.hub.erb
@@ -0,0 +1 @@
+<%= @group_of_lines.objectid.sub(/(\w*\:\w*\:)(\w*)/, '\2') %>;<%= @group_of_lines.name %>;<%= @group_of_lines.id %>
diff --git a/app/views/api/hub/lignes.hub.erb b/app/views/api/hub/lignes.hub.erb
index e5d2c4c4c..f8b007044 100644
--- a/app/views/api/hub/lignes.hub.erb
+++ b/app/views/api/hub/lignes.hub.erb
@@ -1 +1 @@
-<%= @line.objectid.sub(/(\w*\:\w*\:)(\w*)/, '\2') %>;<%= @line.number %>;<%= @line.name %>;;;<%= Chouette::Company.find(@line.company_id).objectid.sub(/(\w*\:\w*\:)(\w*)/, '\2') %>;<%= Chouette::Network.find(@line.network_id).objectid.sub(/(\w*\:\w*\:)(\w*)/, '\2') %>;;<%= @line.id %>
+<%= @line.objectid.sub(/(\w*\:\w*\:)(\w*)/, '\2') %>;<%= @line.number %>;<%= @line.name %>;;;<%= Chouette::Company.find(@line.company_id).objectid.sub(/(\w*\:\w*\:)(\w*)/, '\2') %>;<%= Chouette::Network.find(@line.network_id).objectid.sub(/(\w*\:\w*\:)(\w*)/, '\2') %>;<%= @group_of_line %>;<%= @line.id %>
diff --git a/app/views/help/exports.textile b/app/views/help/exports.textile
index 03ae1f1d0..8f4511365 100644
--- a/app/views/help/exports.textile
+++ b/app/views/help/exports.textile
@@ -9,12 +9,12 @@ p. L'export permet d'extraire de la base un ensemble de données selon un format
h3. Formats disponibles
-- Neptune := format normalisé des échanges de données de transport en commun pour la France (cf "Normalisation":normalisation)
-- NeTEx := format d'échanges de données de transport en commun expérimental sur la norme européenne ["NeTEx":http://www.normes-donnees-tc.org/format-dechange/donnees-theoriques/] mais limité aux données définies dans la norme Neptune
+- Neptune := format d'échange de données de transport en commun pour la France (cf "Normalisation":normalisation)
+- NeTEx := format d'échange de données de transport en commun expérimental sur la future norme européenne ["NeTEx":http://www.normes-donnees-tc.org/format-dechange/donnees-theoriques/] mais limité au sous-ensemble des données définies dans le format Neptune
- CSV := format tabulaire spécifique à Chouette (cf "CSV":csv)
- GTFS := format destiné à ["Google Transit":https://developers.google.com/transit/gtfs/?hl=fr] ; les données exportées en GTFS sont explicités ["ICI":http://www.normes-donnees-tc.org/format-dechange/autres-normes/]
- KML := format contenant l'ensemble des données cartographiées pouvant ainsi être importée dans un SIG
-- HUB := format tabulaire interne CityWay
+- HUB := format tabulaire interne Transdev
h3. Options des formats
diff --git a/app/views/help/imports.textile b/app/views/help/imports.textile
index 66966b515..f4b5c894a 100644
--- a/app/views/help/imports.textile
+++ b/app/views/help/imports.textile
@@ -33,8 +33,8 @@ p(note). Les tests de niveau 1 et 2 ne sont actuellement implémentés que pour
h3(#fmt). Formats disponibles
-- Neptune := format normalisé des échanges de données de transport en commun pour la France (cf "Normalisation":normalisation)
-- NeTEx := format d'échange de données de transport en commun expérimental sur la norme européenne ["NeTEx":http://www.normes-donnees-tc.org/format-dechange/donnees-theoriques/] mais limité au sous-ensemble des données définies dans la norme Neptune
+- Neptune := format d'échange de données de transport en commun pour la France (cf "Normalisation":normalisation)
+- NeTEx := format d'échange de données de transport en commun expérimental sur la future norme européenne ["NeTEx":http://www.normes-donnees-tc.org/format-dechange/donnees-theoriques/] mais limité au sous-ensemble des données définies dans le format Neptune
- CSV := format tabulaire spécifique à Chouette (cf "CSV":csv)
- GTFS :=
format originaire de ["Google Transit":https://support.google.com/transitpartners/], à condition que le fichier soit préalablement validé avec l'outil Feed Validator =:
diff --git a/app/views/shared/_footer.erb b/app/views/shared/_footer.erb
index 3ad00df77..9b21219a0 100644
--- a/app/views/shared/_footer.erb
+++ b/app/views/shared/_footer.erb
@@ -6,9 +6,9 @@
<div class="col-md-3">
<ul>
<li><h4><%= t("layouts.footer.product.title") %></h4></li>
- <li><%= link_to t("layouts.footer.product.licence"), "http://www.cecill.info/licences/Licence_CeCILL-B_V1-fr.html" %></li>
- <li><%= link_to t("layouts.footer.product.source_code"), "https://github.com/afimb/chouette2" %></li>
- <li><%= link_to t("layouts.footer.product.user_group"), "http://www.chouette.mobi/les-utilisateurs/club-utilisateur-des-outils-chouette-et-irys/" %></li>
+ <li><%= link_to t("layouts.footer.product.licence"), "http://www.cecill.info/licences/Licence_CeCILL-B_V1-fr.html", :target => "_blank" %></li>
+ <li><%= link_to t("layouts.footer.product.source_code"), "https://github.com/afimb/chouette2", :target => "_blank" %></li>
+ <li><%= link_to t("layouts.footer.product.user_group"), "http://www.chouette.mobi/les-utilisateurs/club-utilisateur-des-outils-chouette-et-irys/", :target => "_blank" %></li>
</ul>
</div>
<div class="col-md-3">
@@ -18,10 +18,10 @@
<% if ChouetteIhm::Application.config.company_contact.include?("@") %>
<%= mail_to "#{ChouetteIhm::Application.config.company_contact}", t("layouts.footer.contact.mail") %>
<% else %>
- <%= link_to t("layouts.footer.contact.mail"), "#{ChouetteIhm::Application.config.company_contact}" %>
+ <%= link_to t("layouts.footer.contact.mail"), "#{ChouetteIhm::Application.config.company_contact}", :target => "_blank" %>
<% end %>
</li>
- <li><%= link_to t("layouts.footer.support.help"), "/help" %></li>
+ <li><%= link_to t("layouts.footer.support.help"), help_path, :target => "chouette_help" %></li>
</ul>
</div>
<div class="col-md-3">
@@ -31,11 +31,11 @@
<% if ChouetteIhm::Application.config.company_contact.include?("@") %>
<%= mail_to "#{ChouetteIhm::Application.config.company_contact}", t("layouts.footer.contact.mail") %>
<% else %>
- <%= link_to t("layouts.footer.contact.mail"), "#{ChouetteIhm::Application.config.company_contact}" %>
+ <%= link_to t("layouts.footer.contact.mail"), "#{ChouetteIhm::Application.config.company_contact}", :target => "_blank" %>
<% end %>
</li>
- <li><%= link_to t("layouts.footer.contact.newsletter"),"http://www.chouette.mobi/les-utilisateurs/etre-informe/" %></li>
- <li><%= link_to t("layouts.footer.contact.forum"), "http://forum.chouette.mobi/" %></li>
+ <li><%= link_to t("layouts.footer.contact.newsletter"),"http://www.chouette.mobi/les-utilisateurs/etre-informe/", :target => "_blank" %></li>
+ <li><%= link_to t("layouts.footer.contact.forum"), "http://forum.chouette.mobi/", :target => "_blank" %></li>
</ul>
</div>
</div>
diff --git a/app/views/stop_areas/access_links.html.erb b/app/views/stop_areas/access_links.html.erb
index d4727d7db..3ff1812b3 100644
--- a/app/views/stop_areas/access_links.html.erb
+++ b/app/views/stop_areas/access_links.html.erb
@@ -1,33 +1,46 @@
<%= title_tag t('stop_areas.access_links.title', :stop_area => @stop_area.name ) %>
<div class="stop_area_show">
- <h3 class="stop_area_generics">
- <a class="generics"><%= t('.generic_access_links') %>
- <%= image_tag("icons/plus.png" , :class => "switcher", :style => "display: none;") %>
- <%= image_tag("icons/minus.png" , :class => "switcher" ) %>
- </a>
-
- </h3>
- <div class="generics content">
- <div class="access_link_pairs">
- <table>
- <%= render :partial => "access_link_pairs/access_link_pair", :collection => access_links_pairs(@generic_access_links) %>
- </table>
- </div>
+
+<div class="panel-group" id="accordion">
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ <h4 class="panel-title">
+ <a data-toggle="collapse" data-parent="#accordion" href="#generic_access_links">
+ <%= t('.generic_access_links') %>
+ </a>
+ </h4>
+ </div>
+ <div id="generic_access_links" class="panel-collapse collapse in">
+ <div class="panel-body">
+ <div class="access_link_pairs">
+ <table>
+ <%= render :partial => "access_link_pairs/access_link_pair", :collection => access_links_pairs(@generic_access_links) %>
+ </table>
+ </div>
+ </div>
+ </div>
</div>
- <h3 class="stop_area_generics">
- <a class="details"><%= t('.detail_access_links') %>
- <%= image_tag("icons/plus.png" , :class => "switcher") %>
- <%= image_tag("icons/minus.png" , :class => "switcher", :style => "display: none;" ) %>
- </a>
-
- </h3>
- <div class="details content" style="display: none;">
- <div class="access_link_pairs">
- <table>
- <%= render :partial => "access_link_pairs/access_link_pair", :collection => access_links_pairs(@detail_access_links) %>
- </table>
- </div>
+</div>
+
+<div class="panel-group" id="accordion">
+ <div class="panel panel-default">
+ <div class="panel-heading">
+ <h4 class="panel-title">
+ <a data-toggle="collapse" data-parent="#accordion" href="#detail_access_links">
+ <%= t('.detail_access_links') %>
+ </a>
+ </h4>
+ </div>
+ <div id="detail_access_links" class="panel-collapse collapse">
+ <div class="panel-body">
+ <div class="access_link_pairs">
+ <table>
+ <%= render :partial => "access_link_pairs/access_link_pair", :collection => access_links_pairs(@detail_access_links) %>
+ </table>
+ </div>
+ </div>
+ </div>
</div>
</div>
diff --git a/config/locales/compliance_check_tasks.yml b/config/locales/compliance_check_tasks.yml
index 5f9e15113..00376c2bf 100644
--- a/config/locales/compliance_check_tasks.yml
+++ b/config/locales/compliance_check_tasks.yml
@@ -82,7 +82,7 @@ fr:
title: "Démarrer une nouvelle validation"
submit: "Lancer la validation"
all: "Toutes"
- flash: "La demande de validation est mise en file d'attente, veuillez rafraichir régulièrement la page pour le suivre"
+ flash: "La demande de validation est mise en file d'attente, veuillez rafraichir régulièrement la page pour en suivre la progression"
actions:
new: "Ajouter une validation"
destroy_confirm: "Voulez-vous supprimer ce résultat de validation ?"
diff --git a/config/locales/exchange.yml b/config/locales/exchange.yml
index 882e1feb0..df9d97728 100644
--- a/config/locales/exchange.yml
+++ b/config/locales/exchange.yml
@@ -1,18 +1,18 @@
en:
exchange:
format:
- neptune: "Neptune (French normalized format based on European Trident Standard)"
+ neptune: "Neptune"
gtfs: "GTFS (General Transit Feed Specification)"
csv: "CSV (Chouette format)"
- netex: "NeTEx (experimental Neptune local agreement for Network Exchange CEN standard)"
- hub: "HUB (Specific Cityway Format)"
- kml: "KML (line and route drawings on Keyhole Markup Language format)"
+ netex: "NeTEx (experimental)"
+ hub: "HUB 1.4 (Specific Transdev Format)"
+ kml: "KML (line, route, ... drawings on Keyhole Markup Language format)"
fr:
exchange:
format:
- neptune: "Neptune (Format normalisé français basé sur le standard européen Trident)"
- gtfs: "GTFS (General Transit Feed Specification définit par Google)"
- csv: "CSV (format spéficique à Chouette)"
- netex: "NeTEx (Profil expérimental de Neptune sur le standard européen 'Network Exchange' )"
- hub: "HUB (format spécifique Cityway)"
- kml: "KML (tracés de lignes et de séquences d'arrêts en 'Keyhole Markup Language')"
+ neptune: "profil Neptune"
+ gtfs: "GTFS (General Transit Feed Specification défini par Google)"
+ csv: "CSV (format spécifique à Chouette)"
+ netex: "profil NeTEx expérimental"
+ hub: "HUB 1.4 (format spécifique Transdev)"
+ kml: "KML (tracés de lignes, séquences d'arrêts, ... en 'Keyhole Markup Language')"
diff --git a/config/locales/exports.yml b/config/locales/exports.yml
index c94dd8d8e..bc9683d0b 100644
--- a/config/locales/exports.yml
+++ b/config/locales/exports.yml
@@ -32,6 +32,7 @@ en:
undefined: "%{key} undefined"
overflow: "Can't export more than %{count} %{data} in a single KML export operation. You should proceed with some exports, each one based on less selected lines."
LINE_COUNT: "Exported line count : %{0}"
+ GROUP_OF_LINES_COUNT: "Exported group of lines count : %{0}"
ROUTE_COUNT: "Route count : %{0}"
JOURNEY_PATTERN_COUNT: "Journey pattern count : %{0}"
QUAY_AND_BOARDING_POSITION_COUNT: "Quays and Boarding positions count : %{0}"
@@ -127,7 +128,7 @@ fr:
new:
title: "Nouvel export"
all: "Toutes"
- flash: "La demande d'export est mise en file d'attente, veuillez rafraichir régulièrement la page pour le suivre"
+ flash: "La demande d'export est mise en file d'attente, veuillez rafraichir régulièrement la page pour en suivre la progression"
flash2: "Une fois l'export terminé, un lien sera disponible pour télécharger le résultat"
fields_gtfs_export:
warning: "Le filtre sur arrêts produit uniquement les fichiers GTFS stops et transfers gtfs, ceux-ci contenant alors des attributs supplémentaires"
@@ -149,6 +150,7 @@ fr:
undefined: "%{key} non défini"
overflow: "Impossible d'exporter plus de %{count} %{data} en un seul export. Veuillez procéder par exports successifs en sélectionnant une moindre quantité de lignes."
LINE_COUNT: "Nombre de lignes exportées : %{0}"
+ GROUP_OF_LINES_COUNT: "Nombre de groupe de lignes exportés : %{0}"
ROUTE_COUNT: "Nombre de séquences d'arrêts exportées : %{0}"
QUAY_AND_BOARDING_POSITION_COUNT: "Nombre d'arrêts physiques exportés : %{0}"
COMMERCIAL_COUNT: "Nombre d'arrêts commerciaux exportés : %{0}"
diff --git a/config/locales/import_tasks.yml b/config/locales/import_tasks.yml
index a4f9ba2a5..df81a28d1 100644
--- a/config/locales/import_tasks.yml
+++ b/config/locales/import_tasks.yml
@@ -103,7 +103,7 @@ fr:
new:
title: "Nouvel import"
all: "Tout"
- flash: "La demande d'import est mise en file d'attente, veuillez rafraichir régulièrement la page pour le suivre"
+ flash: "La demande d'import est mise en file d'attente, veuillez rafraichir régulièrement la page pour en suivre la progression"
fields_gtfs_import:
warning: "Le filtre sur arrêts importe uniquement les fichiers GTFS stops et transfers gtfs, ceux-ci pouvant contenir des attributs supplémentaires"
index: