aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorMichel Etienne2012-11-12 15:12:24 +0100
committerMichel Etienne2012-11-12 15:12:24 +0100
commite4728a4cc84f91bc2aa6bb82c38c1b87ff629ba2 (patch)
treec2a413e09fcfbbd7ac476a96ba5303c7a62b65d5 /app
parent2746176c6b2675d13568208061296915b2904277 (diff)
downloadchouette-core-e4728a4cc84f91bc2aa6bb82c38c1b87ff629ba2.tar.bz2
manage generic access_links and hide/show datas on several views
Diffstat (limited to 'app')
-rw-r--r--app/assets/images/icons/disabled_left_arrow.pngbin823 -> 958 bytes
-rw-r--r--app/assets/images/icons/disabled_right_arrow.pngbin815 -> 920 bytes
-rw-r--r--app/assets/images/map/access_in.pngbin666 -> 840 bytes
-rw-r--r--app/assets/images/map/access_in_out.pngbin666 -> 847 bytes
-rw-r--r--app/assets/images/map/access_out.pngbin666 -> 829 bytes
-rw-r--r--app/assets/javascripts/access_points.js.coffee16
-rw-r--r--app/assets/javascripts/stop_areas.js.coffee15
-rw-r--r--app/assets/javascripts/time_tables.js.coffee7
-rw-r--r--app/controllers/access_points_controller.rb3
-rw-r--r--app/controllers/file_validations_controller.rb13
-rw-r--r--app/controllers/stop_areas_controller.rb3
-rw-r--r--app/views/access_links/_form.html.erb2
-rw-r--r--app/views/access_points/show.html.erb33
-rw-r--r--app/views/help/access_links.textile66
-rw-r--r--app/views/help/access_points.textile74
-rw-r--r--app/views/help/stop_areas.textile2
-rw-r--r--app/views/help/toc.textile2
-rw-r--r--app/views/stop_areas/access_links.html.erb27
-rw-r--r--app/views/time_tables/_form.erb36
-rw-r--r--app/views/time_tables/show.html.erb30
20 files changed, 295 insertions, 34 deletions
diff --git a/app/assets/images/icons/disabled_left_arrow.png b/app/assets/images/icons/disabled_left_arrow.png
index d919ca52e..3e11b9c71 100644
--- a/app/assets/images/icons/disabled_left_arrow.png
+++ b/app/assets/images/icons/disabled_left_arrow.png
Binary files differ
diff --git a/app/assets/images/icons/disabled_right_arrow.png b/app/assets/images/icons/disabled_right_arrow.png
index 57793256b..be6fcdf65 100644
--- a/app/assets/images/icons/disabled_right_arrow.png
+++ b/app/assets/images/icons/disabled_right_arrow.png
Binary files differ
diff --git a/app/assets/images/map/access_in.png b/app/assets/images/map/access_in.png
index 82ea29382..6d341c517 100644
--- a/app/assets/images/map/access_in.png
+++ b/app/assets/images/map/access_in.png
Binary files differ
diff --git a/app/assets/images/map/access_in_out.png b/app/assets/images/map/access_in_out.png
index 82ea29382..5c9b066c5 100644
--- a/app/assets/images/map/access_in_out.png
+++ b/app/assets/images/map/access_in_out.png
Binary files differ
diff --git a/app/assets/images/map/access_out.png b/app/assets/images/map/access_out.png
index 82ea29382..bd366b7fc 100644
--- a/app/assets/images/map/access_out.png
+++ b/app/assets/images/map/access_out.png
Binary files differ
diff --git a/app/assets/javascripts/access_points.js.coffee b/app/assets/javascripts/access_points.js.coffee
index c0f49ebd5..74c5e926f 100644
--- a/app/assets/javascripts/access_points.js.coffee
+++ b/app/assets/javascripts/access_points.js.coffee
@@ -28,3 +28,19 @@ jQuery ->
$('input#access_point_x').change(lon_lat_change)
$('input#access_point_y').change(lon_lat_change)
+
+
+ # switch visibility of access_links
+ switch_generics = (event) ->
+ event.preventDefault()
+ $('.access_points .generics.content').toggle('slow')
+ $('a.generics .switcher').toggle()
+
+ $('.access_points a.generics').click(switch_generics)
+
+ switch_details = (event) ->
+ event.preventDefault()
+ $('.access_points .details.content').toggle('slow')
+ $('a.details .switcher').toggle()
+
+ $('.access_points a.details').click(switch_details)
diff --git a/app/assets/javascripts/stop_areas.js.coffee b/app/assets/javascripts/stop_areas.js.coffee
index cab862d46..aae8d4885 100644
--- a/app/assets/javascripts/stop_areas.js.coffee
+++ b/app/assets/javascripts/stop_areas.js.coffee
@@ -28,3 +28,18 @@ jQuery ->
$('input#stop_area_x').change(lon_lat_change)
$('input#stop_area_y').change(lon_lat_change)
+
+ # switch visibility of access_links
+ switch_generics = (event) ->
+ event.preventDefault()
+ $('.stop_areas .generics.content').toggle('slow')
+ $('a.generics .switcher').toggle()
+
+ $('.stop_areas a.generics').click(switch_generics)
+
+ switch_details = (event) ->
+ event.preventDefault()
+ $('.stop_areas .details.content').toggle('slow')
+ $('a.details .switcher').toggle()
+
+ $('.stop_areas a.details').click(switch_details)
diff --git a/app/assets/javascripts/time_tables.js.coffee b/app/assets/javascripts/time_tables.js.coffee
index b85376edb..d347ddc67 100644
--- a/app/assets/javascripts/time_tables.js.coffee
+++ b/app/assets/javascripts/time_tables.js.coffee
@@ -1,5 +1,12 @@
jQuery ->
# add trigger to hide/show application dates and periods
+ switch_calendars = (event) ->
+ event.preventDefault()
+ $('.time_tables .calendars.content').toggle('slow')
+ $('a.calendars .switcher').toggle()
+
+ $('.time_tables a.calendars').click(switch_calendars)
+
switch_dates = (event) ->
event.preventDefault()
$('.time_tables .dates.content').toggle('slow')
diff --git a/app/controllers/access_points_controller.rb b/app/controllers/access_points_controller.rb
index 4f3c0d717..d26595a85 100644
--- a/app/controllers/access_points_controller.rb
+++ b/app/controllers/access_points_controller.rb
@@ -15,7 +15,8 @@ class AccessPointsController < ChouetteController
def show
map.editable = false
- @access_links = @access_point.access_link_matrix
+ @generic_access_links = @access_point.generic_access_link_matrix
+ @detail_access_links = @access_point.detail_access_link_matrix
show! do |format|
unless access_point.position or params[:default]
format.kml {
diff --git a/app/controllers/file_validations_controller.rb b/app/controllers/file_validations_controller.rb
index cc50a7499..274d11f9f 100644
--- a/app/controllers/file_validations_controller.rb
+++ b/app/controllers/file_validations_controller.rb
@@ -1,23 +1,36 @@
class FileValidationsController < InheritedResources::Base
respond_to :html, :xml, :json
+ def index
+ no_referential
+ index!
+ end
+
def show
+ no_referential
@toc = TestSheetPage.find("toc")
show!
end
def new
+ no_referential
@toc = TestSheetPage.find("toc")
new!
end
def create
+ no_referential
create! do |success, failure|
success.html { redirect_to file_validations_path }
end
end
+
protected
+ def no_referential
+ Apartment::Database.switch("public")
+ end
+
def resource
@file_validation ||= current_organisation.file_validations.find_by_id(params[:id])
end
diff --git a/app/controllers/stop_areas_controller.rb b/app/controllers/stop_areas_controller.rb
index dfd756d9b..d08ed1803 100644
--- a/app/controllers/stop_areas_controller.rb
+++ b/app/controllers/stop_areas_controller.rb
@@ -36,7 +36,8 @@ class StopAreasController < ChouetteController
def access_links
@stop_area = stop_area
- @access_links = stop_area.access_link_matrix
+ @generic_access_links = stop_area.generic_access_link_matrix
+ @detail_access_links = stop_area.detail_access_link_matrix
end
def index
diff --git a/app/views/access_links/_form.html.erb b/app/views/access_links/_form.html.erb
index e07de415f..147686930 100644
--- a/app/views/access_links/_form.html.erb
+++ b/app/views/access_links/_form.html.erb
@@ -5,6 +5,8 @@
<%= form.input :link_orientation_type , :as => :hidden%>
<%= form.input :name %>
<%= form.input :access_link_type, :as => :select, :collection => Chouette::AccessLink.access_link_types, :include_blank => false, :member_label => Proc.new { |type| t("connection_link_types.label.#{type}") } %>
+ <%= form.input :comment %>
+ <%= form.input :link_distance %>
<%= form.inputs :name => t('access_links.show.durations') do %>
<%= form.input "default_duration(1i)", :as => :hidden ,:input_html => { :value => "2000" } %>
<%= form.input "default_duration(2i)", :as => :hidden ,:input_html => { :value => "1" } %>
diff --git a/app/views/access_points/show.html.erb b/app/views/access_points/show.html.erb
index fb46c27c8..97bd961d6 100644
--- a/app/views/access_points/show.html.erb
+++ b/app/views/access_points/show.html.erb
@@ -103,14 +103,43 @@
<p class="after_map" />
<div>
- <h3><%= t('.access_links') %></h3>
+ <h3 class="access_point_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(@access_links) %>
+ <%= render :partial => "access_link_pairs/access_link_pair", :collection => access_links_pairs(@generic_access_links) %>
</table>
</div>
<p><%= t('.access_link_legend_1') %></p>
<p><%= t('.access_link_legend_2') %></p>
+
+ </div>
+
+ <h3 class="access_point_details">
+ <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>
+ <p><%= t('.access_link_legend_1') %></p>
+ <p><%= t('.access_link_legend_2') %></p>
+
+ </div>
</div>
diff --git a/app/views/help/access_links.textile b/app/views/help/access_links.textile
new file mode 100644
index 000000000..1b747e4a7
--- /dev/null
+++ b/app/views/help/access_links.textile
@@ -0,0 +1,66 @@
+---
+layout: default
+title: Liens entre arrêts et accès
+---
+
+* "Définition":#def
+* "Attributs":#attr
+* "Mode opératoire":#ope
+
+h3(#def). Définition
+
+Un *lien arrêt-accès* est, dans un voyage en transports en commun, le cheminement piéton permettant dans une infrastucture lourde de passer de la voirie à l'arrêt physique (point d'embarquement ou quai) et vice versa.
+
+Le lien permet de définir les caractéristiques du parcours entre un arrêt physique et un accès
+Cette liaison n'existe qu'au sein d'une zone d'arrêts (arrêt commercial ou pôle d'échange)
+Si la liaison est générique sur la zone, elle s'applique à tous les arrêts (selon le sens) qui n'ont pas un lien spécifique
+
+La liaison est orientée, il est donc nécessaire dans le cas où l'accès est bi-directionnel de définir 2 liens, un pour chaque sens
+
+h3(#attr). Attributs
+
+- Accès := nom de l'accès
+- Arrêt := nom de arrêt
+- Nom := nom du lien ( par défaut, chouette propose de le nommer _nom de la source -> nom de la cible_)
+- Type := liste de choix parmi << Aérien >>, << Souterrain>> ou mixte << Aérien et souterrain >>
+- Commentaire := zone de texte libre
+- Distance := distance en mètres
+- Durée moyenne := champ de type horaire hh:mm
+- Durée pour un voyageur à mobilité réduite := champ de type horaire hh:mm
+- Durée pour un voyageur occasionnel := champ de type horaire hh:mm
+- Durée pour un habitué := champ de type horaire hh:mm
+- Ascenseur := indicateur (Oui ou Non)
+- Accès pour personne à mobilité réduite := indicateur (Oui ou Non)
+- Escalator disponible := indicateur (Oui ou Non)
+
+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.
+=:
+- 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(#ope). Mode opératoire
+
+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:
+
+* !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
+* !disabled_left_arrow.png! ou !disabled_right_arrow.png! lien interdit; la flèche est inopérante dans le sens qui contredirait le type d'accès (entrée ou sortie seule)
+
+Lors de la consultation d'un accès, les liens arrêt-accès de cet accès sont affichés selon la même présentation
diff --git a/app/views/help/access_points.textile b/app/views/help/access_points.textile
new file mode 100644
index 000000000..4c809b7a7
--- /dev/null
+++ b/app/views/help/access_points.textile
@@ -0,0 +1,74 @@
+---
+layout: default
+title: Accès
+---
+
+* "Définition":#def
+* "Attributs":#attr
+* "Mode opératoire":#ope
+
+h3(#def). Définition
+
+Un *accès* est un élément d'infrastucture donnant sur la voirie et permettant d'accéder à un ou plusieurs arrêts physiques (point d'embarquement ou quai) non accessibles directement.
+
+Dans Chouette, les accès sont rattachés à une zone d'arrêt (arrêt commercial ou pôle d'échange) et peuvent être reliés par des liens arrêt-accès :
+
+* sous forme générique à la zone; ce qui donnera des valeurs par défaut pour tous les arrêts de celle-ci
+* sous forme spécifique à tout ou partie des arrêts physiques de cette zone, pour ceux qui nécessitent des précisions par rapport au cas général.
+
+h3(#attr). Attributs
+
+- Zone d'arrêt := nom de la zone d'arrêt contenant l'accès
+- Nom := nom de l'accès
+- Commentaire := zone de texte libre
+- Nom de la rue := nom de la rue de l'accès
+- Code INSEE := code INSEE de la commune de l'accès
+- Type d'accès := sens de circulation de l'accès
+
+* !access_in.png! entrée
+* !access_out.png! sortie
+* !access_in_out.png! entrée-sortie
+
+- Horaire d'ouverture := horaire d'ouverture de l'accès (hh:mm)
+- Horaire de fermeture := horaire d'ouverture de l'accès (hh:mm)
+- Ascenseur := indicateur (Oui ou Non)
+- Accès pour personne à mobilité réduite := indicateur (Oui ou Non)
+- Escalator disponible := indicateur (Oui ou Non)
+
+p(attr_data). Données géographiques :
+
+- Position X := coordonnée horizontale de l'accès dans le référentiel de projection de l'espace de données
+- Position Y := coordonnée verticale de l'accès dans le référentiel de projection de l'espace de données
+- Longitude := longitude de l'accès dans le référentiel WGS84
+- latitude := latitude de l'accès dans le référentiel WGS84
+
+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.
+=:
+- 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(#ope). Mode opératoire
+
+h4. Création
+
+la création est accessible dans l'écran de consultation d'une zone d'arrêt;
+lors de la création, la carte n'est pas disponible; pour localiser un accès sur la carte, il faut le créer puis le modifier.
+en modification, si l'accès n'a pas été positionné, il est proposé à l'emplacement de la zone d'arrêt associée ou par défaut au centre géographique de l'emprise de l'espace de données.
+
+h4. Déplacement sur la carte
+
+* activer le déplacement en cliquant sur l'accès -> 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'accès suit la souris
+* relâcher le bouton -> l'accès 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/stop_areas.textile b/app/views/help/stop_areas.textile
index 8c6f1401c..8bed87b65 100644
--- a/app/views/help/stop_areas.textile
+++ b/app/views/help/stop_areas.textile
@@ -69,7 +69,7 @@ p(attr_data). Données de gestion :
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)
+* 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.
diff --git a/app/views/help/toc.textile b/app/views/help/toc.textile
index d75134cdf..beb8f152d 100644
--- a/app/views/help/toc.textile
+++ b/app/views/help/toc.textile
@@ -21,6 +21,8 @@ h3. Sommaire
## "Courses/Horaires":vehiclejourneys
# "Arrêts":stop_areas
## "Correspondances":connection_links
+## "Accès":access_points
+## "Liens Arrêts-Accès":access_links
# "Calendriers d'application":timetables
# Outils
## "Imports":imports
diff --git a/app/views/stop_areas/access_links.html.erb b/app/views/stop_areas/access_links.html.erb
index 7d2ff7928..da648eef6 100644
--- a/app/views/stop_areas/access_links.html.erb
+++ b/app/views/stop_areas/access_links.html.erb
@@ -1,12 +1,37 @@
<%= 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(@access_links) %>
+ <%= render :partial => "access_link_pairs/access_link_pair", :collection => access_links_pairs(@generic_access_links) %>
</table>
</div>
<p><%= t('.access_link_legend_1') %></p>
<p><%= t('.access_link_legend_2') %></p>
+ </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>
+ <p><%= t('.access_link_legend_1') %></p>
+ <p><%= t('.access_link_legend_2') %></p>
+ </div>
</div>
diff --git a/app/views/time_tables/_form.erb b/app/views/time_tables/_form.erb
index 3325b97a5..9970577d6 100644
--- a/app/views/time_tables/_form.erb
+++ b/app/views/time_tables/_form.erb
@@ -17,6 +17,24 @@
<%= form.input :objectid, :required => !@time_table.new_record?, :input_html => { :disabled => !@time_table.new_record? } %>
<% end %>
+ <h3 class="time_table_periods">
+ <a class="periods"><%= @time_table.human_attribute_name("periods") %>
+ <%= image_tag("icons/plus.png" , :class => "switcher", :style => "display: none;") %>
+ <%= image_tag("icons/minus.png" , :class => "switcher" ) %>
+ </a>
+
+ </h3>
+ <div class="periods content" id="periods_content">
+ <div id="periods">
+ <%= form.semantic_fields_for :periods do |p| %>
+ <%= render "period_fields", :f => p %>
+ <% end %>
+ </div>
+ <%= link_to_add_association t("time_tables.actions.add_period"), form, :periods ,
+ :"data-association-insertion-method" => "append",
+ :"data-association-insertion-node" => "div#periods"%>
+ </div>
+
<h3 class="time_table_dates">
<a class="dates"><%= @time_table.human_attribute_name("dates") %>
<%= image_tag("icons/plus.png" , :class => "switcher", :style => "display: none;") %>
@@ -35,24 +53,6 @@
:"data-association-insertion-node" => "div#dates" %>
</div>
-
- <h3 class="time_table_periods">
- <a class="periods"><%= @time_table.human_attribute_name("periods") %>
- <%= image_tag("icons/plus.png" , :class => "switcher", :style => "display: none;") %>
- <%= image_tag("icons/minus.png" , :class => "switcher" ) %>
- </a>
-
- </h3>
- <div class="periods content" id="periods_content">
- <div id="periods">
- <%= form.semantic_fields_for :periods do |p| %>
- <%= render "period_fields", :f => p %>
- <% end %>
- </div>
- <%= link_to_add_association t("time_tables.actions.add_period"), form, :periods ,
- :"data-association-insertion-method" => "append",
- :"data-association-insertion-node" => "div#periods"%>
- </div>
<p/>
<%= form.actions do %>
<%= form.action :submit, :as => :button %>
diff --git a/app/views/time_tables/show.html.erb b/app/views/time_tables/show.html.erb
index 06c31041a..c23ed912c 100644
--- a/app/views/time_tables/show.html.erb
+++ b/app/views/time_tables/show.html.erb
@@ -63,6 +63,14 @@
<%= @time_table.objectid %>
</p>
+ <h3 class="time_table_calendars">
+ <a class="calendars"><%= @time_table.human_attribute_name("calendars") %>
+ <%= image_tag("icons/plus.png" , :class => "switcher", :style => "display: none;") %>
+ <%= image_tag("icons/minus.png" , :class => "switcher" ) %>
+ </a>
+
+ </h3>
+ <div class="calendars content">
<div class="year_choice">
<span class="previous"> <%= link_to("<", referential_time_table_path(@referential, @time_table, :year => (@year - 1)) ) %> </span>
<span class="year"> <%= "#{@year}" %> </span>
@@ -84,9 +92,21 @@
cal.html_safe
%>
</div>
+ </div>
</div>
+ <h3 class="time_table_periods">
+ <a class="periods"><%= @time_table.human_attribute_name("periods") %>
+ <%= image_tag("icons/plus.png" , :class => "switcher", :style => "display: none;") %>
+ <%= image_tag("icons/minus.png" , :class => "switcher" ) %>
+ </a>
+
+ </h3>
+ <div class="periods content">
+ <%= render "periods" %>
+ </div>
+
<h3 class="time_table_dates">
<a class="dates"><%= @time_table.human_attribute_name("dates") %>
<%= image_tag("icons/plus.png" , :class => "switcher", :style => "display: none;") %>
@@ -98,16 +118,6 @@
<%= render "dates" %>
</div>
- <h3 class="time_table_periods">
- <a class="periods"><%= @time_table.human_attribute_name("periods") %>
- <%= image_tag("icons/plus.png" , :class => "switcher", :style => "display: none;") %>
- <%= image_tag("icons/minus.png" , :class => "switcher" ) %>
- </a>
-
- </h3>
- <div class="periods content">
- <%= render "periods" %>
- </div>
</div>
<% content_for :sidebar do %>