diff options
| author | Luc Donnet | 2014-09-30 13:56:43 +0200 |
|---|---|---|
| committer | Luc Donnet | 2014-09-30 13:56:43 +0200 |
| commit | 943592b64acaa4a0432f0d4c1fa233791495b404 (patch) | |
| tree | 5c34a4ba12e8af587bf3db06d693695c0130dc2b | |
| parent | 4a35fb0a504b664dbf7853020cba936a91e4227a (diff) | |
| parent | 9ed5022fad7c1dba366b8a282413b10fb24b4812 (diff) | |
| download | chouette-core-943592b64acaa4a0432f0d4c1fa233791495b404.tar.bz2 | |
Merge branch 'sismo' of github.com:afimb/chouette2 into sismo
| -rw-r--r-- | app/controllers/referentials_controller.rb | 2 | ||||
| -rw-r--r-- | app/exporters/chouette/hub/exporter.rb | 4 | ||||
| -rw-r--r-- | app/exporters/chouette/hub/group_of_lines_exporter.rb | 35 | ||||
| -rw-r--r-- | app/exporters/chouette/hub/line_exporter.rb | 3 | ||||
| -rw-r--r-- | app/helpers/breadcrumb_helper.rb | 2 | ||||
| -rw-r--r-- | app/inputs/extended_time_picker_input.rb | 3 | ||||
| -rw-r--r-- | app/maps/access_link_map.rb | 2 | ||||
| -rw-r--r-- | app/views/api/hub/groupe_de_lignes.hub.erb | 1 | ||||
| -rw-r--r-- | app/views/api/hub/lignes.hub.erb | 2 | ||||
| -rw-r--r-- | app/views/help/exports.textile | 6 | ||||
| -rw-r--r-- | app/views/help/imports.textile | 4 | ||||
| -rw-r--r-- | app/views/shared/_footer.erb | 16 | ||||
| -rw-r--r-- | app/views/stop_areas/access_links.html.erb | 65 | ||||
| -rw-r--r-- | config/locales/compliance_check_tasks.yml | 2 | ||||
| -rw-r--r-- | config/locales/exchange.yml | 20 | ||||
| -rw-r--r-- | config/locales/exports.yml | 4 | ||||
| -rw-r--r-- | config/locales/import_tasks.yml | 2 |
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: |
