apidae 0.9.22 → 0.9.23

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dfc1b95dc88ba4172021e2e09962e40ae80ae625
4
- data.tar.gz: 5f0a00c08b67e921aaf14437d7531a1dd3342fd8
3
+ metadata.gz: 8dee48fd2b8808b2229b97a48aa7f33905168161
4
+ data.tar.gz: b46567843cb53f55b2b8679c72b4c2b70fd0632b
5
5
  SHA512:
6
- metadata.gz: d9eadd900cbddfba13b9b2209a5ce3153abb55d71b0c4afca2c8dac30ea8228644c028d05199bcc04042055cbd0c98590fa3963fafb990651e0188af65815ebc
7
- data.tar.gz: 3001c74138b39c8f6ac8447bb83459c2c89a341351c92b6fb104e192c3fa004b35832553b61cea6670f5e05c2524f16cd3f2b4e8ac0f8dfbb92a0d29eefecb08
6
+ metadata.gz: 62cb9107e29bf2aba9dc240023a22615d371850bb88a732d9bf97d9728ab053c2acf65e9b1d0a5fca64c52d90516b1c8d5c2cc4707f9471525b4af2bd1ce341d
7
+ data.tar.gz: 29e0fd0106e606d88953c92521800b39d8a37ccc485cd543bc025ce2e1af1b970baea77db586bac619d16254d7797785b7f2ff2e9df33d9f227db0255fc0ee1e
@@ -20,6 +20,7 @@ module Apidae
20
20
 
21
21
  def new
22
22
  @obj = Obj.new
23
+ @selection_apidae_id = params[:selection_apidae_id]
23
24
  end
24
25
 
25
26
  def edit
@@ -27,13 +28,18 @@ module Apidae
27
28
 
28
29
  def create
29
30
  @obj = Obj.new(object_params)
30
- selection = params[:selection_apidae_id].blank? ? Selection.last : Selection.find_by_apidae_id(params[:selection_apidae_id])
31
- if @obj.save && selection.add_or_refresh_obj(@obj.apidae_id)
32
- redirect_to objects_url, notice: "L'objet a bien été importé"
31
+ if Obj.find_by_apidae_id(@obj.apidae_id)
32
+ redirect_to objects_url, alert: "Cet objet est déjà importé."
33
33
  else
34
- flash[:alert] = "Une erreur s'est produite lors de l'import de l'objet."
35
- render :new
34
+ selection = params[:selection_apidae_id].blank? ? Selection.last : Selection.find_by_apidae_id(params[:selection_apidae_id])
35
+ if @obj.save && selection.add_or_refresh_obj(@obj.apidae_id)
36
+ redirect_to objects_url, notice: "L'objet a bien été importé"
37
+ else
38
+ flash[:alert] = "Une erreur s'est produite lors de l'import de l'objet."
39
+ render :new
40
+ end
36
41
  end
42
+
37
43
  end
38
44
 
39
45
  def update
@@ -9,7 +9,7 @@ module Apidae
9
9
  end
10
10
 
11
11
  def new
12
- session[:referrer] = request.referrer.split('?').first
12
+ session[:referrer] = request.referrer.split('?').first unless request.referrer.blank?
13
13
  @project = Project.new(locales: [DEFAULT_LOCALE], versions: [DEFAULT_VERSION])
14
14
  end
15
15
 
@@ -30,7 +30,7 @@ module Apidae
30
30
  end
31
31
 
32
32
  def edit
33
- session[:referrer] = request.referrer.split('?').first
33
+ session[:referrer] = request.referrer.split('?').first unless request.referrer.blank?
34
34
  end
35
35
 
36
36
  def update
@@ -2,7 +2,7 @@ require_dependency "apidae/application_controller"
2
2
 
3
3
  module Apidae
4
4
  class SelectionsController < ApplicationController
5
- before_action :set_selection, only: [:show, :edit, :update, :destroy]
5
+ before_action :set_selection, only: [:show, :edit, :update, :destroy, :refresh]
6
6
 
7
7
  def index
8
8
  @selections = Selection.all
@@ -41,6 +41,15 @@ module Apidae
41
41
  redirect_to selections_url, notice: 'Selection was successfully destroyed.'
42
42
  end
43
43
 
44
+ def refresh
45
+ referrer = (session.delete(:referrer) || selections_url)
46
+ if @selection && @selection.add_or_refresh_objs
47
+ redirect_to referrer, notice: "La sélection a bien été mise à jour."
48
+ else
49
+ redirect_to referrer, alert: "Une erreur s'est produite lors de la mise à jour de la sélection."
50
+ end
51
+ end
52
+
44
53
  private
45
54
  def set_selection
46
55
  @selection = Selection.find(params[:id])
@@ -23,20 +23,29 @@ module Apidae
23
23
  store_accessor :service_data, :services, :equipments, :comfort, :activities, :challenged, :languages
24
24
  store_accessor :booking_data, :booking_desc, :booking_entities
25
25
  store_accessor :tags_data, :promo, :internal, :linked
26
+ store_accessor :version_data, :versioned_fields
26
27
 
27
28
  LOCALIZED_FIELDS.each do |f|
28
29
  alias_method :"#{f}_hash", :"#{f}"
29
30
  alias_method :"#{f}_hash=", :"#{f}="
30
31
 
31
32
  define_method "#{f}=" do |val|
32
- ref_obj = @obj_version == DEFAULT_VERSION ? self : in_version(@obj_version)
33
- field_hash = ref_obj.send(:"#{f}_hash")
33
+ ref_obj = (@obj_version == DEFAULT_VERSION || @obj_version.nil?) ? self : in_version(@obj_version)
34
+ field_hash = ref_obj.send(:"#{f}_hash") || {}
34
35
  ref_obj.send(:"#{f}_hash=", field_hash.merge(@locale => val))
35
36
  end
36
37
 
37
38
  define_method f do
38
- ref_obj = @obj_version == DEFAULT_VERSION ? self : in_version(@obj_version)
39
- field_hash = ref_obj.send(:"#{f}_hash") || {}
39
+ field_hash = self.send(:"#{f}_hash") || {}
40
+ unless @obj_version == DEFAULT_VERSION
41
+ versioned_obj = in_version(@obj_version)
42
+ versioned_hash = versioned_obj ? (versioned_obj.send(:"#{f}_hash") || {}) : {}
43
+ if versioned_obj.versioned_fields.include?(f.to_s)
44
+ field_hash = versioned_hash
45
+ else
46
+ field_hash.deep_merge!(versioned_hash)
47
+ end
48
+ end
40
49
  field_hash[@locale] || field_hash[DEFAULT_LOCALE]
41
50
  end
42
51
  end
@@ -116,7 +125,6 @@ module Apidae
116
125
  end
117
126
 
118
127
  def self.update_object(apidae_obj, object_data, locales, versions)
119
- result = true
120
128
  populate_fields(apidae_obj, object_data, locales)
121
129
  apidae_obj.save!
122
130
 
@@ -127,18 +135,19 @@ module Apidae
127
135
  version_data[:type] = apidae_obj.apidae_type
128
136
  version_obj = apidae_obj.in_version(version) || Obj.new(apidae_id: apidae_obj.apidae_id,
129
137
  root_obj_id: apidae_obj.id, version: version)
138
+ version_obj.versioned_fields = parse_versioned_fields(version_data)
130
139
  populate_fields(version_obj, version_data, locales)
131
140
  version_obj.save!
132
141
  end
133
142
  end
134
143
  end
135
- result
144
+ apidae_obj
136
145
  end
137
146
 
138
147
  def self.populate_fields(apidae_obj, object_data, locales)
139
148
  type_fields = TYPES_DATA[object_data[:type]]
140
- apidae_obj.last_update = DateTime.parse(object_data[:gestion][:dateModification])
141
- apidae_obj.owner_data = parse_owner_data(object_data[:gestion][:membreProprietaire])
149
+ apidae_obj.last_update = DateTime.parse(object_data[:gestion][:dateModification]) unless object_data[:gestion].blank?
150
+ apidae_obj.owner_data = parse_owner_data(object_data[:gestion][:membreProprietaire]) unless object_data[:gestion].blank?
142
151
  apidae_obj.apidae_type = object_data[:type]
143
152
  apidae_obj.apidae_subtype = node_id(object_data[type_fields[:node]], type_fields[:subtype])
144
153
  apidae_obj.title_data = parse_title(object_data, *locales)
@@ -160,25 +169,57 @@ module Apidae
160
169
  apidae_obj.meta_data = object_data[:metadonnees]
161
170
  end
162
171
 
163
- def self.merge_fields(apidae_obj, aspect_obj)
164
- apidae_obj.description_data.merge!(non_empty(aspect_obj.description_data)) if aspect_obj.description_data
165
- apidae_obj.contact.merge!(non_empty(aspect_obj.contact)) if aspect_obj.contact
166
- apidae_obj.location_data.merge!(non_empty(aspect_obj.location_data)) if aspect_obj.location_data
167
- apidae_obj.openings_data.merge!(non_empty(aspect_obj.openings_data)) if aspect_obj.openings_data
168
- apidae_obj.rates_data.merge!(non_empty(aspect_obj.rates_data)) if aspect_obj.rates_data
169
- apidae_obj.booking_data.merge!(non_empty(aspect_obj.booking_data)) if aspect_obj.booking_data
170
- apidae_obj.type_data.merge!(non_empty(aspect_obj.type_data)) if aspect_obj.type_data
171
- apidae_obj.pictures_data.merge!(non_empty(aspect_obj.pictures_data)) if aspect_obj.pictures_data
172
- apidae_obj.attachments_data.merge!(non_empty(aspect_obj.attachments_data)) if aspect_obj.attachments_data
173
- apidae_obj.service_data.merge!(non_empty(aspect_obj.service_data)) if aspect_obj.service_data
174
- apidae_obj.tags_data.merge!(non_empty(aspect_obj.tags_data)) if aspect_obj.tags_data
175
- apidae_obj.meta_data.merge!(non_empty(aspect_obj.meta_data)) if aspect_obj.meta_data
176
- end
177
-
178
172
  def self.non_empty(data_hash)
179
173
  data_hash.keep_if {|k, v| !v.blank?}
180
174
  end
181
175
 
176
+ def self.parse_versioned_fields(data_hash)
177
+ version_fields = data_hash[:champsAspect] || []
178
+ matched_fields = []
179
+ version_fields.each do |f|
180
+ case f
181
+ when 'nom'
182
+ matched_fields << 'title'
183
+ when 'presentation.descriptifCourt'
184
+ matched_fields << 'short_desc'
185
+ when 'presentation.descriptifDetaille'
186
+ matched_fields << 'long_desc'
187
+ when 'illustrations'
188
+ matched_fields << 'pictures'
189
+ when 'multimedias'
190
+ matched_fields << 'attachments'
191
+ when 'informations.moyensCommunication'
192
+ matched_fields << 'contact'
193
+ when 'descriptifsThematises'
194
+ matched_fields << 'theme_desc'
195
+ when 'ouverture.periodesOuvertures', 'ouverture.periodeEnClair'
196
+ matched_fields << 'openings_desc'
197
+ matched_fields << 'openings'
198
+ when 'ouverture.periodeEnClairAutomatique'
199
+ matched_fields << 'openings_desc_mode'
200
+ when 'descriptionTarif.tarifsEnClair', 'descriptionTarif.periodes'
201
+ matched_fields << 'rates_desc'
202
+ matched_fields << 'rates'
203
+ when 'descriptionTarif.tarifsEnClairAutomatique'
204
+ matched_fields << 'rates_desc_mode'
205
+ when 'prestations.equipements'
206
+ matched_fields << 'equipments'
207
+ when 'prestations.activites'
208
+ matched_fields << 'activities'
209
+ when 'prestations.services'
210
+ matched_fields << 'services'
211
+ when 'localisation.environnements'
212
+ matched_fields << 'environments'
213
+ when 'prestations.complementAccueil'
214
+ matched_fields << 'extra'
215
+ when 'localisation.geolocalisation.complement'
216
+ matched_fields << 'access'
217
+ else
218
+ end
219
+ end
220
+ matched_fields.uniq
221
+ end
222
+
182
223
  def self.parse_title(data_hash, *locales)
183
224
  {title: node_value(data_hash, :nom, *locales)}
184
225
  end
@@ -93,20 +93,37 @@ module Apidae
93
93
  res = api_object(apidae_obj_id)
94
94
  if res[:results] && res[:results].length == 1
95
95
  obj_data = res[:results].first.deep_symbolize_keys
96
- obj = Obj.find_by_apidae_id(apidae_obj_id)
97
- if obj
98
- refreshed = Obj.update_object(obj, obj_data, apidae_project.locales, apidae_project.versions)
99
- if refreshed && Rails.application.config.respond_to?(:apidae_obj_refresh_callback)
100
- Rails.application.config.apidae_obj_refresh_callback.call(apidae_obj_id)
101
- end
102
- refreshed
103
- else
104
- Obj.add_object(obj_data, apidae_project.locales, apidae_project.versions)
96
+ add_or_refresh(obj_data)
97
+ end
98
+ end
99
+ end
100
+
101
+ def add_or_refresh_objs(fields = ["@all"])
102
+ if apidae_project
103
+ res = api_objects({fields: fields})
104
+ if res[:results] && res[:results].length > 0
105
+ res[:results].each do |result|
106
+ obj_data = result.deep_symbolize_keys
107
+ add_or_refresh(obj_data)
105
108
  end
106
109
  end
107
110
  end
108
111
  end
109
112
 
113
+ def add_or_refresh(obj_data)
114
+ obj = Obj.find_by_apidae_id(obj_data[:id])
115
+ if obj
116
+ obj = Obj.update_object(obj, obj_data, apidae_project.locales, apidae_project.versions)
117
+ else
118
+ obj = Obj.add_object(obj_data, apidae_project.locales, apidae_project.versions)
119
+ SelectionObject.create(apidae_selection_id: id, apidae_object_id: added_obj.id)
120
+ end
121
+ if Rails.application.config.respond_to?(:apidae_obj_refresh_callback)
122
+ Rails.application.config.apidae_obj_refresh_callback.call(obj.apidae_id)
123
+ end
124
+ obj
125
+ end
126
+
110
127
  def as_text
111
128
  "#{label} (#{apidae_id})"
112
129
  end
@@ -2,7 +2,7 @@ module Apidae
2
2
  class Town < ActiveRecord::Base
3
3
  def self.import(towns_json)
4
4
  towns_hashes = JSON.parse(towns_json, symbolize_names: true)
5
- if Time.current > (maximum(:updated_at) + 1.day)
5
+ if count == 0 || Time.current > (maximum(:updated_at) + 1.day)
6
6
  countries = Hash[Reference.where(apidae_type: "Pays").map {|ref| [ref.apidae_id, ref.label(:fr)]}]
7
7
  towns_hashes.each do |town_data|
8
8
  town = Town.find_or_initialize_by(apidae_id: town_data[:id])
@@ -1,6 +1,6 @@
1
1
  <%= render layout: "/layouts/#{Rails.application.config.apidae_layout}" do |styles| %>
2
2
  <div id="apidae_header" class="<%= styles[:header] %>">
3
- <%= link_to 'Importer un objet', apidae.new_object_path, class: styles[:objects] %>
3
+ <%= link_to 'Importer un objet', apidae.new_object_path(selection_apidae_id: @selection ? @selection.apidae_id : nil), class: styles[:objects] %>
4
4
  <%= link_to 'Retour', @selection ? apidae.selections_path : root_path, class: styles[:back] %>
5
5
  <h1 class="<%= styles[:h1] %>">Apidae - <%= @selection ? "Sélection \"#{@selection.label}\"" : "Tous les objets touristiques" %></h1>
6
6
  </div>
@@ -22,7 +22,7 @@
22
22
  </div>
23
23
  <div class="<%= styles[:form_field] %>">
24
24
  <div><%= label_tag :selection_apidae_id %></div>
25
- <div><%= text_field_tag :selection_apidae_id %></div>
25
+ <div><%= text_field_tag :selection_apidae_id, @selection_apidae_id %></div>
26
26
  </div>
27
27
  <div class="<%= styles[:form_actions] %>">
28
28
  <%= f.submit 'Valider' %>
@@ -12,6 +12,7 @@
12
12
  <th>Reference</th>
13
13
  <th>Identifiant</th>
14
14
  <th>Objets</th>
15
+ <th></th>
15
16
  </tr>
16
17
  </thead>
17
18
  <tbody class="<%= styles[:table_body] %>">
@@ -21,6 +22,8 @@
21
22
  <td><%= selection.reference %></td>
22
23
  <td><%= selection.apidae_id %></td>
23
24
  <td><%= link_to selection.objects.count, selection_objects_path(selection) %></td>
25
+ <td><%= link_to 'Rafraîchir', apidae.refresh_selection_path(selection), method: :post,
26
+ data: {confirm: 'Voulez-vous vraiment rafraîchir cette sélection ? Les données existantes seront écrasées.'} %></td>
24
27
  </tr>
25
28
  <% end %>
26
29
  <% if @selections.empty? %>
@@ -1,4 +1,21 @@
1
1
  fr:
2
+ activerecord:
3
+ attributes:
4
+ apidae/project:
5
+ name: Nom
6
+ apidae_id: Identifiant Apidae
7
+ api_key: Clé d'API
8
+ locales: Langues
9
+ versions: Aspects
10
+ apidae/obj:
11
+ apidae_id: Identifiant Apidae
12
+ selection_apidae_id: Sélection Apidae
13
+ errors:
14
+ models:
15
+ apidae/project:
16
+ attributes:
17
+ apidae_id:
18
+ taken: Un projet avec cet identifiant Apidae existe déjà.
2
19
  apidae:
3
20
  file_import:
4
21
  status:
@@ -6,19 +23,20 @@ fr:
6
23
  complete: Terminé
7
24
  cancelled: Annulé
8
25
  locales:
9
- fr: fr
10
- en: en
11
- de: de
12
- it: it
13
- nl: nl
14
- ru: ru
15
- zh: zh
16
- pt-BR: pt-BR
26
+ fr: Français
27
+ en: Anglais
28
+ it: Italien
29
+ es: Espagnol
30
+ de: Allemand
31
+ nl: Néerlandais
32
+ ru: Russe
33
+ zh: Chinois
34
+ 'pt-BR': Brésilien
17
35
  versions:
18
- STANDARD: standard
19
- HIVER: hiver
20
- ETE: été
21
- HANDICAP: handicap
22
- TOURISME_AFFAIRES: affaires
23
- GROUPES: groupes
24
- PRESTATAIRE_ACTIVITES: activités
36
+ STANDARD: Standard
37
+ HIVER: Hiver
38
+ ETE: Été
39
+ HANDICAP: Handicap
40
+ TOURISME_AFFAIRES: Affaires
41
+ GROUPES: Groupes
42
+ PRESTATAIRE_ACTIVITES: Prestataire d'activités
@@ -5,6 +5,7 @@ Apidae::Engine.routes.draw do
5
5
  end
6
6
 
7
7
  resources :selections, only: [:index] do
8
+ post 'refresh', on: :member
8
9
  resources :objects, only: [:index], path: 'objets' do
9
10
  post 'refresh', on: :member
10
11
  end
@@ -0,0 +1,5 @@
1
+ class AddVersionDataToApidaeObjs < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_column :apidae_objs, :version_data, :jsonb
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddVersionIndexOnApidaeObjs < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_index :apidae_objs, [:root_obj_id, :version], unique: true
4
+ end
5
+ end
@@ -1,3 +1,3 @@
1
1
  module Apidae
2
- VERSION = "0.9.22"
2
+ VERSION = "0.9.23"
3
3
  end
@@ -393,10 +393,12 @@
393
393
  },
394
394
  "aspects" : [ {
395
395
  "aspect" : "HIVER",
396
- "champsAspect" : [ "illustrations", "presentation.descriptifCourt", "informationsPrestataireActivites.activitesSportives", "presentation.descriptifDetaille" ],
396
+ "champsAspect" : [ "illustrations", "multimedias", "presentation.descriptifCourt", "informationsPrestataireActivites.activitesSportives", "presentation.descriptifDetaille" ],
397
397
  "presentation" : {
398
398
  "descriptifCourt" : {
399
- "libelleFr" : "short desc winter fr"
399
+ "libelleFr" : "short desc winter fr",
400
+ "libelleEn" : "short desc standard en",
401
+ "libelleDe" : "short desc standard de"
400
402
  },
401
403
  "descriptifDetaille" : {
402
404
  "libelleFr" : "long desc winter fr"
@@ -475,6 +477,7 @@
475
477
  } ],
476
478
  "locked" : false
477
479
  } ],
480
+ "multimedias": [],
478
481
  "informationsPrestataireActivites" : {
479
482
  "prestataireActivites" : false,
480
483
  "activitesSportives" : [ {
@@ -0,0 +1,1498 @@
1
+ [{
2
+ "type" : "EQUIPEMENT",
3
+ "id" : 185789,
4
+ "nom" : {
5
+ "libelleFr" : "Train à vapeur du Haut Rhône"
6
+ },
7
+ "identifier" : "sitraLOI659444",
8
+ "state" : "PUBLISHED",
9
+ "gestion" : {
10
+ "dateCreation" : "2011-03-30T12:30:59.877+0000",
11
+ "dateModification" : "2020-02-21T13:26:38.013+0000",
12
+ "dateExportModification" : "2020-02-21T13:26:38.459+0000",
13
+ "membreProprietaire" : {
14
+ "type" : {
15
+ "elementReferenceType" : "MembreSitraType",
16
+ "id" : 233,
17
+ "libelleFr" : "Contributeur Généraliste",
18
+ "ordre" : 1
19
+ },
20
+ "nom" : "Office du Tourisme Les Balcons du Dauphiné",
21
+ "dateCreation" : "2009-01-26T08:21:11.550+0000",
22
+ "dateModification" : "2020-02-24T15:45:59.426+0000",
23
+ "departement" : "38",
24
+ "id" : 276,
25
+ "siteWeb" : "http://www.morestel.com"
26
+ },
27
+ "signalerUnProblemeMails" : [ "commercialisation@tousauxbalcons.com", "lesavenieres@tousauxbalcons.com", "cremieu@tousauxbalcons.com", "morestel@tousauxbalcons.com" ]
28
+ },
29
+ "informations" : {
30
+ "moyensCommunication" : [ {
31
+ "identifiant" : 5673157,
32
+ "type" : {
33
+ "elementReferenceType" : "MoyenCommunicationType",
34
+ "id" : 201,
35
+ "libelleFr" : "Téléphone",
36
+ "ordre" : 1
37
+ },
38
+ "coordonnees" : {
39
+ "fr" : "04 78 81 84 30"
40
+ },
41
+ "observation" : {
42
+ "libelleFr" : "Jean Claude THOOS"
43
+ }
44
+ }, {
45
+ "identifiant" : 5673160,
46
+ "type" : {
47
+ "elementReferenceType" : "MoyenCommunicationType",
48
+ "id" : 204,
49
+ "libelleFr" : "Mél",
50
+ "ordre" : 2
51
+ },
52
+ "coordonnees" : {
53
+ "fr" : "haut.rhone@aol.fr"
54
+ }
55
+ }, {
56
+ "identifiant" : 72276483,
57
+ "type" : {
58
+ "elementReferenceType" : "MoyenCommunicationType",
59
+ "id" : 201,
60
+ "libelleFr" : "Téléphone",
61
+ "ordre" : 1
62
+ },
63
+ "coordonnees" : {
64
+ "fr" : "07 83 78 46 70"
65
+ },
66
+ "observation" : {
67
+ "libelleFr" : "Service réservations"
68
+ }
69
+ }, {
70
+ "identifiant" : 5673161,
71
+ "type" : {
72
+ "elementReferenceType" : "MoyenCommunicationType",
73
+ "id" : 205,
74
+ "libelleFr" : "Site web (URL)",
75
+ "ordre" : 3
76
+ },
77
+ "coordonnees" : {
78
+ "fr" : "http://www.cft-hr.com"
79
+ }
80
+ } ],
81
+ "informationsLegales" : { },
82
+ "structureGestion" : {
83
+ "type" : "STRUCTURE",
84
+ "id" : 67303,
85
+ "nom" : {
86
+ "libelleFr" : "Chemin de Fer Touristique du Haut Rhône"
87
+ },
88
+ "identifier" : "38AASOR100337_struct",
89
+ "state" : "PUBLISHED",
90
+ "adresse" : {
91
+ "adresse1" : "Rue des carrières",
92
+ "codePostal" : "38390",
93
+ "commune" : {
94
+ "id" : 14939,
95
+ "code" : "38247",
96
+ "nom" : "Montalieu-Vercieu",
97
+ "pays" : {
98
+ "elementReferenceType" : "Pays",
99
+ "id" : 532,
100
+ "libelleFr" : "France",
101
+ "ordre" : 78
102
+ },
103
+ "codePostal" : "38390"
104
+ }
105
+ },
106
+ "geolocalisation" : {
107
+ "altitude" : 245,
108
+ "valide" : true,
109
+ "geoJson" : {
110
+ "type" : "Point",
111
+ "coordinates" : [ 5.417759, 45.825920 ]
112
+ }
113
+ }
114
+ }
115
+ },
116
+ "presentation" : {
117
+ "descriptifCourt" : {
118
+ "libelleFr" : "A bord d'une véritable locomotive à vapeur, voyagez dans le temps et dans un paysage le long du Rhône, des falaises du Bugey, et à travers le bois de Corniolay."
119
+ },
120
+ "descriptifDetaille" : {
121
+ "libelleFr" : "Cette ligne de 4km"
122
+ },
123
+ "typologiesPromoSitra" : [ {
124
+ "elementReferenceType" : "TypologiePromoSitra",
125
+ "id" : 1595,
126
+ "libelleFr" : "Viarhona",
127
+ "ordre" : 240,
128
+ "description" : "Concerne les prestataires et prestations sur l'itinéraire ou à proximité immédiate (5 km maximum)",
129
+ "familleCritere" : {
130
+ "elementReferenceType" : "FamilleCritere",
131
+ "id" : 116,
132
+ "libelleFr" : "Régional",
133
+ "ordre" : 109
134
+ }
135
+ }, {
136
+ "elementReferenceType" : "TypologiePromoSitra",
137
+ "id" : 1603,
138
+ "libelleFr" : "Circuits de France_POI",
139
+ "ordre" : 282,
140
+ "description" : "permet d'identifier les curiosités à proximité de vos itinéraires à faire remonter sur le site www.cirkwi.com",
141
+ "familleCritere" : {
142
+ "elementReferenceType" : "FamilleCritere",
143
+ "id" : 34,
144
+ "libelleFr" : "Sélections pour les diffuseurs",
145
+ "ordre" : 116
146
+ }
147
+ } ]
148
+ },
149
+ "localisation" : {
150
+ "adresse" : {
151
+ "adresse1" : "Base de loisirs de la Vallée Bleue",
152
+ "adresse2" : "Rue des carrières",
153
+ "codePostal" : "38390",
154
+ "commune" : {
155
+ "id" : 14939,
156
+ "code" : "38247",
157
+ "nom" : "Montalieu-Vercieu",
158
+ "pays" : {
159
+ "elementReferenceType" : "Pays",
160
+ "id" : 532,
161
+ "libelleFr" : "France",
162
+ "ordre" : 78
163
+ },
164
+ "codePostal" : "38390"
165
+ }
166
+ },
167
+ "geolocalisation" : {
168
+ "complement" : {
169
+ "libelleFr" : "Au rond point dit de la Locomotive, faites les 3/4 et à gauche. La gare se trouve en bord de route."
170
+ },
171
+ "valide" : true,
172
+ "geoJson" : {
173
+ "type" : "Point",
174
+ "coordinates" : [ 5.417759, 45.825920 ]
175
+ }
176
+ },
177
+ "perimetreGeographique" : [ {
178
+ "id" : 14939,
179
+ "code" : "38247",
180
+ "nom" : "Montalieu-Vercieu",
181
+ "pays" : {
182
+ "elementReferenceType" : "Pays",
183
+ "id" : 532,
184
+ "libelleFr" : "France",
185
+ "ordre" : 78
186
+ },
187
+ "codePostal" : "38390"
188
+ } ],
189
+ "environnements" : [ {
190
+ "elementReferenceType" : "Environnement",
191
+ "id" : 135,
192
+ "libelleFr" : "A la campagne",
193
+ "ordre" : 1
194
+ }, {
195
+ "elementReferenceType" : "Environnement",
196
+ "id" : 141,
197
+ "libelleFr" : "Sortie d’Autoroute à moins de 5 km",
198
+ "ordre" : 47,
199
+ "description" : "5 km maxi d'une entrée ou sortie d'autoroute"
200
+ }, {
201
+ "elementReferenceType" : "Environnement",
202
+ "id" : 147,
203
+ "libelleFr" : "Lac ou plan d'eau à moins de 300 m",
204
+ "ordre" : 17,
205
+ "description" : "300 m maxi"
206
+ }, {
207
+ "elementReferenceType" : "Environnement",
208
+ "id" : 191,
209
+ "libelleFr" : "Port de plaisance à moins de 500 m",
210
+ "ordre" : 45,
211
+ "description" : "500 m maxi"
212
+ }, {
213
+ "elementReferenceType" : "Environnement",
214
+ "id" : 195,
215
+ "libelleFr" : "Village à -2 km",
216
+ "ordre" : 57
217
+ } ]
218
+ },
219
+ "liens" : {
220
+ "liensObjetsTouristiquesTypes" : [ {
221
+ "type" : "SUR_PLACE",
222
+ "objetTouristique" : {
223
+ "type" : "EQUIPEMENT",
224
+ "id" : 185796,
225
+ "nom" : {
226
+ "libelleFr" : "Vélorail, cyclo-draisine de la Vallée Bleue"
227
+ },
228
+ "identifier" : "sitraLOI659476",
229
+ "state" : "PUBLISHED",
230
+ "adresse" : {
231
+ "adresse1" : "Base de loisirs de la Vallée Bleue",
232
+ "codePostal" : "38390",
233
+ "commune" : {
234
+ "id" : 14939,
235
+ "code" : "38247",
236
+ "nom" : "Montalieu-Vercieu",
237
+ "pays" : {
238
+ "elementReferenceType" : "Pays",
239
+ "id" : 532,
240
+ "libelleFr" : "France",
241
+ "ordre" : 78
242
+ },
243
+ "codePostal" : "38390"
244
+ }
245
+ },
246
+ "geolocalisation" : {
247
+ "valide" : true,
248
+ "geoJson" : {
249
+ "type" : "Point",
250
+ "coordinates" : [ 5.417719, 45.825861 ]
251
+ }
252
+ }
253
+ }
254
+ }, {
255
+ "type" : "SUR_PLACE",
256
+ "objetTouristique" : {
257
+ "type" : "FETE_ET_MANIFESTATION",
258
+ "id" : 5270038,
259
+ "nom" : {
260
+ "libelleFr" : "Balade en petit train à vapeur"
261
+ },
262
+ "identifier" : "SITRA2_EVE_5270038",
263
+ "state" : "HIDDEN",
264
+ "adresse" : {
265
+ "nomDuLieu" : "Base de Loisirs de la Vallée Bleue",
266
+ "codePostal" : "38390",
267
+ "commune" : {
268
+ "id" : 14939,
269
+ "code" : "38247",
270
+ "nom" : "Montalieu-Vercieu",
271
+ "pays" : {
272
+ "elementReferenceType" : "Pays",
273
+ "id" : 532,
274
+ "libelleFr" : "France",
275
+ "ordre" : 78
276
+ },
277
+ "codePostal" : "38390"
278
+ }
279
+ },
280
+ "geolocalisation" : {
281
+ "altitude" : 205,
282
+ "valide" : true,
283
+ "geoJson" : {
284
+ "type" : "Point",
285
+ "coordinates" : [ 5.420868, 45.824262 ]
286
+ }
287
+ }
288
+ }
289
+ }, {
290
+ "type" : "DEFAUT",
291
+ "objetTouristique" : {
292
+ "type" : "EQUIPEMENT",
293
+ "id" : 76030,
294
+ "nom" : {
295
+ "libelleFr" : "Base de Loisirs de la Vallée Bleue"
296
+ },
297
+ "identifier" : "38AASOR100081",
298
+ "state" : "PUBLISHED",
299
+ "adresse" : {
300
+ "codePostal" : "38390",
301
+ "commune" : {
302
+ "id" : 14939,
303
+ "code" : "38247",
304
+ "nom" : "Montalieu-Vercieu",
305
+ "pays" : {
306
+ "elementReferenceType" : "Pays",
307
+ "id" : 532,
308
+ "libelleFr" : "France",
309
+ "ordre" : 78
310
+ },
311
+ "codePostal" : "38390"
312
+ }
313
+ },
314
+ "geolocalisation" : {
315
+ "altitude" : 205,
316
+ "valide" : true,
317
+ "geoJson" : {
318
+ "type" : "Point",
319
+ "coordinates" : [ 5.420868, 45.824262 ]
320
+ }
321
+ }
322
+ }
323
+ } ]
324
+ },
325
+ "prestations" : {
326
+ "equipements" : [ {
327
+ "elementReferenceType" : "PrestationEquipement",
328
+ "id" : 613,
329
+ "libelleFr" : "Aire de pique-nique",
330
+ "ordre" : 30,
331
+ "familleCritere" : {
332
+ "elementReferenceType" : "FamilleCritere",
333
+ "id" : 122,
334
+ "libelleFr" : "Equipements de loisirs",
335
+ "ordre" : 51
336
+ }
337
+ }, {
338
+ "elementReferenceType" : "PrestationEquipement",
339
+ "id" : 741,
340
+ "libelleFr" : "Toilettes",
341
+ "ordre" : 143,
342
+ "familleCritere" : {
343
+ "elementReferenceType" : "FamilleCritere",
344
+ "id" : 125,
345
+ "libelleFr" : "Equipements intérieurs",
346
+ "ordre" : 54
347
+ }
348
+ }, {
349
+ "elementReferenceType" : "PrestationEquipement",
350
+ "id" : 972,
351
+ "libelleFr" : "Parking",
352
+ "ordre" : 204,
353
+ "familleCritere" : {
354
+ "elementReferenceType" : "FamilleCritere",
355
+ "id" : 126,
356
+ "libelleFr" : "Stationnement",
357
+ "ordre" : 142
358
+ }
359
+ }, {
360
+ "elementReferenceType" : "PrestationEquipement",
361
+ "id" : 1321,
362
+ "libelleFr" : "Parking à proximité",
363
+ "ordre" : 212,
364
+ "description" : "A 500 m maxi\r\nNe concerne que les parkings publics, sinon utiliser \"parking privé\"",
365
+ "familleCritere" : {
366
+ "elementReferenceType" : "FamilleCritere",
367
+ "id" : 126,
368
+ "libelleFr" : "Stationnement",
369
+ "ordre" : 142
370
+ }
371
+ }, {
372
+ "elementReferenceType" : "PrestationEquipement",
373
+ "id" : 1322,
374
+ "libelleFr" : "Parking autocar",
375
+ "ordre" : 211,
376
+ "familleCritere" : {
377
+ "elementReferenceType" : "FamilleCritere",
378
+ "id" : 126,
379
+ "libelleFr" : "Stationnement",
380
+ "ordre" : 142
381
+ },
382
+ "parent" : {
383
+ "elementReferenceType" : "PrestationEquipement",
384
+ "id" : 972,
385
+ "libelleFr" : "Parking",
386
+ "ordre" : 204
387
+ }
388
+ }, {
389
+ "elementReferenceType" : "PrestationEquipement",
390
+ "id" : 5592,
391
+ "libelleFr" : "Parking gratuit",
392
+ "ordre" : 208,
393
+ "familleCritere" : {
394
+ "elementReferenceType" : "FamilleCritere",
395
+ "id" : 126,
396
+ "libelleFr" : "Stationnement",
397
+ "ordre" : 142
398
+ },
399
+ "parent" : {
400
+ "elementReferenceType" : "PrestationEquipement",
401
+ "id" : 972,
402
+ "libelleFr" : "Parking",
403
+ "ordre" : 204
404
+ }
405
+ } ],
406
+ "services" : [ {
407
+ "elementReferenceType" : "PrestationService",
408
+ "id" : 687,
409
+ "libelleFr" : "Animaux acceptés",
410
+ "ordre" : 294
411
+ }, {
412
+ "elementReferenceType" : "PrestationService",
413
+ "id" : 781,
414
+ "libelleFr" : "Accès autocar",
415
+ "ordre" : 69,
416
+ "description" : "Concerne tous les objets accessibles aux bus (route praticable...)",
417
+ "familleCritere" : {
418
+ "elementReferenceType" : "FamilleCritere",
419
+ "id" : 80,
420
+ "libelleFr" : "Aide au client / transport",
421
+ "ordre" : 8
422
+ }
423
+ }, {
424
+ "elementReferenceType" : "PrestationService",
425
+ "id" : 785,
426
+ "libelleFr" : "Camping-cars autorisés",
427
+ "ordre" : 353
428
+ }, {
429
+ "elementReferenceType" : "PrestationService",
430
+ "id" : 1130,
431
+ "libelleFr" : "Documentation Touristique",
432
+ "ordre" : 30,
433
+ "description" : "Documentations diverses et gratuites à disposition des clients",
434
+ "familleCritere" : {
435
+ "elementReferenceType" : "FamilleCritere",
436
+ "id" : 78,
437
+ "libelleFr" : "Aide au client / pratique",
438
+ "ordre" : 6
439
+ }
440
+ } ],
441
+ "animauxAcceptes" : "ACCEPTES",
442
+ "animauxAcceptesSupplement" : "SANS_SUPPLEMENT",
443
+ "descriptifAnimauxAcceptes" : {
444
+ "libelleFr" : "Tenus en laisse uniquement"
445
+ },
446
+ "languesParlees" : [ {
447
+ "elementReferenceType" : "Langue",
448
+ "id" : 1192,
449
+ "libelleFr" : "Anglais",
450
+ "ordre" : 4
451
+ }, {
452
+ "elementReferenceType" : "Langue",
453
+ "id" : 1197,
454
+ "libelleFr" : "Français",
455
+ "ordre" : 13
456
+ } ],
457
+ "languesDocumentation" : [ {
458
+ "elementReferenceType" : "Langue",
459
+ "id" : 1197,
460
+ "libelleFr" : "Français",
461
+ "ordre" : 13
462
+ } ],
463
+ "tourismesAdaptes" : [ {
464
+ "elementReferenceType" : "TourismeAdapte",
465
+ "id" : 3652,
466
+ "libelleFr" : "Accessible en fauteuil roulant avec aide",
467
+ "ordre" : 11,
468
+ "description" : "Certaines contraintes matérielles, rendent impossible le déplacement d'une personne en fauteuil roulant sans l'aide de quelqu'un.",
469
+ "familleCritere" : {
470
+ "elementReferenceType" : "FamilleCritere",
471
+ "id" : 3650,
472
+ "libelleFr" : "Critères d'accessibilité pour personnes à mobilité réduite",
473
+ "ordre" : 28,
474
+ "description" : "Conditions à remplir pour qu'un site soit considéré comme accessible en fauteuil roulant."
475
+ }
476
+ }, {
477
+ "elementReferenceType" : "TourismeAdapte",
478
+ "id" : 4219,
479
+ "libelleFr" : "Personnel d’accueil sensibilisé à l’accueil des personnes en situation de handicap",
480
+ "ordre" : 7,
481
+ "description" : "Au moins une personne du personnel a reçu une formation sur l'accueil des publics handicapés et est en mesure d'adopter un comportement adapté."
482
+ } ],
483
+ "nombrePersonnesEnFauteuilRoulantAccueilliesSimultanement" : 2,
484
+ "typesClientele" : [ {
485
+ "elementReferenceType" : "TypeClientele",
486
+ "id" : 513,
487
+ "libelleFr" : "Spécial famille avec enfants",
488
+ "ordre" : 46,
489
+ "description" : "Permet de caractériser une offre accessible et attractive pour des familles avec enfants de moins de 12 ou 14 ans, et remplissant au moins une des deux conditions suivantes :\r\n\r\n- permettre une pratique que l’on recommanderait pour une famille (enfants, parents…,) \r\n- proposer un contenu et/ou des services particulièrement adaptés (ex : hébergements et restaurants avec jeux, services – Animations, spectacles, événements pour les enfants – Musées, sites de visites avec prestations adaptées.\r\n\r\nRenseigner le bon plan dans les types objets suivants HOT, HCO, CAM, PCU, RES., pour bien valoriser les services et équipements offerts.",
490
+ "familleCritere" : {
491
+ "elementReferenceType" : "FamilleCritere",
492
+ "id" : 2,
493
+ "libelleFr" : "Offres adaptées à des clientèles spécifiques",
494
+ "ordre" : 169,
495
+ "description" : "Les critères suivants doivent être utilisés uniquement pour identifier une offre ou un service adapté ou réservé à une clientèle particulière. Sans sélection de l’un ou l’autre de ces critères, l’objet est considéré concernant tous les publics au sens large.\r\n \r\nLes grands principes :\r\n\r\n- Par défaut, la majeure partie de l’offre concerne une clientèle touristique, grand public et adulte.\r\n- Il faut réserver l’utilisation des critères à la qualification d’une offre qui présente des spécificités pour un public particulier :\r\n -> Soit pour répondre à une organisation marketing de l’offre relative à la nature du client.\r\n-> Soit parce que pour répondre aux exigences des différentes pratiques."
496
+ }
497
+ }, {
498
+ "elementReferenceType" : "TypeClientele",
499
+ "id" : 593,
500
+ "libelleFr" : "Accueil groupes",
501
+ "ordre" : 25,
502
+ "description" : "Permet d’identifier les prestataires susceptibles d’accueillir en plus une clientèle groupe.\r\n\r\nSont retenus par ailleurs les critères « Accueil groupes affaire/incentive » et « Accueil groupes scolaires/enfants » qui doivent être réservés aux offres proposant des prestations, tarifs et services adaptés.\r\n\r\nIl y a nécessité d’avoir une politique tarifaire pour les groupes, quelle que soit leur taille. Les tarifs groupes devront être renseignés en précisant la taille des groupes pour bénéficier des tarifs indiqués.",
503
+ "familleCritere" : {
504
+ "elementReferenceType" : "FamilleCritere",
505
+ "id" : 5,
506
+ "libelleFr" : "Public ciblé : groupes et professionnels",
507
+ "ordre" : 170
508
+ }
509
+ }, {
510
+ "elementReferenceType" : "TypeClientele",
511
+ "id" : 596,
512
+ "libelleFr" : "Accueil de groupes scolaires",
513
+ "ordre" : 29,
514
+ "description" : "Permet d’identifier \r\n- les hébergements collectifs qui accueillent les groupes scolaires. L’accueil de ce type de public nécessite pour la structure d’être répertoriée auprès de la DDCS (Direction Départementale de la Cohésion Sociale) pour l’accueil collectif de mineurs. \r\nPour accueillir des maternels, l’hébergement doit avoir reçu en plus l’avis favorable de la Protection Maternelle Infantile.\r\nPour accueillir des enfants d’écoles élémentaires, l’hébergement doit en plus être inscrit au répertoire de l’Education Nationale. \r\n\r\n- les prestataires qui accueillent des groupes scolaires et qui proposent des offres, tarifs et services adaptés. \r\n\r\nSi vous utilisez ce critère, merci de renseigner les autres critères dessous pour permettre une meilleure segmentation du public visé.\r\n\r\nPensez à renseigner la taille des groupes, les tarifs spécifiques consentis.\r\nÉventuellement renseigner l'aspect \"Groupes\" si nécessaire.",
515
+ "familleCritere" : {
516
+ "elementReferenceType" : "FamilleCritere",
517
+ "id" : 5,
518
+ "libelleFr" : "Public ciblé : groupes et professionnels",
519
+ "ordre" : 170
520
+ }
521
+ }, {
522
+ "elementReferenceType" : "TypeClientele",
523
+ "id" : 597,
524
+ "libelleFr" : "Accueil groupes affaire/incentive",
525
+ "ordre" : 26,
526
+ "description" : "Pensez à renseigner la taille des groupes, les tarifs spécifiques consentis.\r\nÉventuellement renseigner l'aspect \"Groupes\" si nécessaire.",
527
+ "familleCritere" : {
528
+ "elementReferenceType" : "FamilleCritere",
529
+ "id" : 5,
530
+ "libelleFr" : "Public ciblé : groupes et professionnels",
531
+ "ordre" : 170
532
+ },
533
+ "parent" : {
534
+ "elementReferenceType" : "TypeClientele",
535
+ "id" : 593,
536
+ "libelleFr" : "Accueil groupes",
537
+ "ordre" : 25,
538
+ "description" : "Permet d’identifier les prestataires susceptibles d’accueillir en plus une clientèle groupe.\r\n\r\nSont retenus par ailleurs les critères « Accueil groupes affaire/incentive » et « Accueil groupes scolaires/enfants » qui doivent être réservés aux offres proposant des prestations, tarifs et services adaptés.\r\n\r\nIl y a nécessité d’avoir une politique tarifaire pour les groupes, quelle que soit leur taille. Les tarifs groupes devront être renseignés en précisant la taille des groupes pour bénéficier des tarifs indiqués."
539
+ }
540
+ }, {
541
+ "elementReferenceType" : "TypeClientele",
542
+ "id" : 4547,
543
+ "libelleFr" : "Accueil de colonies de vacances",
544
+ "ordre" : 31,
545
+ "description" : "Permet d’identifier :\r\n- les hébergements collectifs qui accueillent des colonies de vacances. L’accueil de ce type de public nécessite pour la structure d’être répertoriée auprès de la DDCS pour l’accueil collectif de mineurs.\r\nPour accueillir des enfants de moins de 6 ans, l’hébergement doit avoir reçu en plus l’avis favorable de la Protection Maternelle Infantile.\r\n\r\n- les prestataires qui accueillent des colonies de vacances et qui proposent des offres, tarifs et services adaptés. \r\n\r\nSi vous utilisez ce critère, merci de renseigner les autres critères dessous pour permettre une meilleure segmentation du public visé.\r\n\r\nPensez à renseigner la taille des groupes, les tarifs spécifiques consentis.\r\nÉventuellement renseigner l'aspect \"Groupes\" si nécessaire.",
546
+ "familleCritere" : {
547
+ "elementReferenceType" : "FamilleCritere",
548
+ "id" : 5,
549
+ "libelleFr" : "Public ciblé : groupes et professionnels",
550
+ "ordre" : 170
551
+ }
552
+ } ],
553
+ "tailleGroupeMax" : 72
554
+ },
555
+ "ouverture" : {
556
+ "periodeEnClair" : {
557
+ "libelleFr" : "Du 01/05 au 30/06, tous les dimanches à 15h30.\nOuvertures exceptionnelles les 01/05, 08/05, 21/05 et 01/06.\n\nDu 01/07 au 31/08, tous les dimanches à 16h30.\nOuvertures exceptionnelles les 14/07 et 15/08.\n\nDu 01/09 au 30/09, tous les dimanches à 15h30.\n\nSous réserve de conditions météo favorables."
558
+ },
559
+ "periodeEnClairGenerationMode" : "AUTOMATIQUE",
560
+ "indicationsPeriode" : [ {
561
+ "elementReferenceType" : "IndicationPeriode",
562
+ "id" : 416,
563
+ "libelleFr" : "Automne",
564
+ "ordre" : 4,
565
+ "description" : "Permet de trouver des objets en fonction de la saison automnale - 21 septembre au 20 décembre",
566
+ "familleCritere" : {
567
+ "elementReferenceType" : "FamilleCritere",
568
+ "id" : 114,
569
+ "libelleFr" : "Période",
570
+ "ordre" : 104
571
+ }
572
+ }, {
573
+ "elementReferenceType" : "IndicationPeriode",
574
+ "id" : 418,
575
+ "libelleFr" : "Eté",
576
+ "ordre" : 3,
577
+ "description" : "Permet de trouver des objets en fonction de la saison estivale - 21 juin au 20 septembre",
578
+ "familleCritere" : {
579
+ "elementReferenceType" : "FamilleCritere",
580
+ "id" : 114,
581
+ "libelleFr" : "Période",
582
+ "ordre" : 104
583
+ }
584
+ }, {
585
+ "elementReferenceType" : "IndicationPeriode",
586
+ "id" : 436,
587
+ "libelleFr" : "Printemps",
588
+ "ordre" : 2,
589
+ "description" : "Permet de trouver des objets en fonction de la saison printanière - 21 mars au 20 juin",
590
+ "familleCritere" : {
591
+ "elementReferenceType" : "FamilleCritere",
592
+ "id" : 114,
593
+ "libelleFr" : "Période",
594
+ "ordre" : 104
595
+ }
596
+ } ],
597
+ "periodesOuvertures" : [ {
598
+ "identifiant" : 17994901,
599
+ "dateDebut" : "2020-05-01",
600
+ "dateFin" : "2020-06-30",
601
+ "complementHoraire" : { },
602
+ "horaireOuverture" : "15:30:00",
603
+ "type" : "OUVERTURE_SEMAINE",
604
+ "tousLesAns" : true,
605
+ "ouverturesExceptionnelles" : [ {
606
+ "dateOuverture" : "2020-05-01"
607
+ }, {
608
+ "dateOuverture" : "2020-05-08"
609
+ }, {
610
+ "dateOuverture" : "2020-05-21"
611
+ }, {
612
+ "dateOuverture" : "2020-06-01"
613
+ } ],
614
+ "ouverturesJournalieres" : [ {
615
+ "jour" : "DIMANCHE"
616
+ } ],
617
+ "identifiantTechnique" : 18183551
618
+ }, {
619
+ "identifiant" : 9577872,
620
+ "dateDebut" : "2019-07-01",
621
+ "dateFin" : "2019-08-31",
622
+ "horaireOuverture" : "16:30:00",
623
+ "type" : "OUVERTURE_SEMAINE",
624
+ "tousLesAns" : true,
625
+ "ouverturesExceptionnelles" : [ {
626
+ "dateOuverture" : "2019-07-14"
627
+ }, {
628
+ "dateOuverture" : "2019-08-15"
629
+ } ],
630
+ "ouverturesJournalieres" : [ {
631
+ "jour" : "DIMANCHE"
632
+ } ],
633
+ "identifiantTechnique" : 18183552
634
+ }, {
635
+ "identifiant" : 9577873,
636
+ "dateDebut" : "2019-09-01",
637
+ "dateFin" : "2019-09-30",
638
+ "horaireOuverture" : "15:30:00",
639
+ "type" : "OUVERTURE_SEMAINE",
640
+ "tousLesAns" : true,
641
+ "ouverturesJournalieres" : [ {
642
+ "jour" : "DIMANCHE"
643
+ } ],
644
+ "identifiantTechnique" : 18183553
645
+ } ],
646
+ "ouverturesComplementaires" : [ {
647
+ "elementReferenceType" : "OuvertureComplementaire",
648
+ "id" : 4188,
649
+ "libelleFr" : "Sous réserve de conditions météo favorables",
650
+ "ordre" : 3
651
+ } ]
652
+ },
653
+ "descriptionTarif" : {
654
+ "indicationTarif" : "PAYANT",
655
+ "gratuit" : false,
656
+ "tarifsEnClair" : {
657
+ "libelleFr" : "Adulte : 10 € (à partir de 12 ans)\nEnfant (4-12 ans) : 6 €.\n\n Gratuit pour les moins de 4 ans.\n\nTarifs groupes et scolaires en téléchargement (fichiers ci-dessous)."
658
+ },
659
+ "tarifsEnClairGenerationMode" : "AUTOMATIQUE",
660
+ "complement" : {
661
+ "libelleFr" : "Tarifs groupes et scolaires en téléchargement (fichiers ci-dessous)"
662
+ },
663
+ "periodes" : [ {
664
+ "identifiant" : 5287221,
665
+ "dateDebut" : "2020-05-01",
666
+ "dateFin" : "2020-09-30",
667
+ "tarifs" : [ {
668
+ "devise" : "EUR",
669
+ "minimum" : 10.00,
670
+ "maximum" : 10.00,
671
+ "precisionTarif" : {
672
+ "libelleFr" : "à partir de 12 ans"
673
+ },
674
+ "type" : {
675
+ "elementReferenceType" : "TarifType",
676
+ "id" : 1717,
677
+ "libelleFr" : "Adulte",
678
+ "ordre" : 20
679
+ }
680
+ }, {
681
+ "devise" : "EUR",
682
+ "minimum" : 6.00,
683
+ "maximum" : 6.00,
684
+ "precisionTarif" : { },
685
+ "type" : {
686
+ "elementReferenceType" : "TarifType",
687
+ "id" : 1718,
688
+ "libelleFr" : "Enfant",
689
+ "ordre" : 21
690
+ }
691
+ } ],
692
+ "type" : {
693
+ "elementReferenceType" : "TarifTypePeriode",
694
+ "id" : 1304,
695
+ "libelleFr" : "A l'année",
696
+ "ordre" : 1
697
+ }
698
+ } ],
699
+ "modesPaiement" : [ {
700
+ "elementReferenceType" : "ModePaiement",
701
+ "id" : 1268,
702
+ "libelleFr" : "Carte bancaire/crédit",
703
+ "ordre" : 4
704
+ }, {
705
+ "elementReferenceType" : "ModePaiement",
706
+ "id" : 1271,
707
+ "libelleFr" : "Chèque",
708
+ "ordre" : 10
709
+ }, {
710
+ "elementReferenceType" : "ModePaiement",
711
+ "id" : 1277,
712
+ "libelleFr" : "Espèces",
713
+ "ordre" : 20
714
+ }, {
715
+ "elementReferenceType" : "ModePaiement",
716
+ "id" : 1281,
717
+ "libelleFr" : "Virement",
718
+ "ordre" : 30
719
+ } ],
720
+ "devise" : "EUR",
721
+ "conditions" : {
722
+ "gratuitPourLesMoinsDe" : 4,
723
+ "conditionEnfantAgeMin" : 4,
724
+ "conditionEnfantAgeMax" : 12
725
+ }
726
+ },
727
+ "reservation" : {
728
+ "organismes" : [ {
729
+ "identifiant" : 1154312,
730
+ "structureReference" : {
731
+ "type" : "STRUCTURE",
732
+ "id" : 67303,
733
+ "nom" : {
734
+ "libelleFr" : "Chemin de Fer Touristique du Haut Rhône"
735
+ },
736
+ "identifier" : "38AASOR100337_struct",
737
+ "state" : "PUBLISHED",
738
+ "adresse" : {
739
+ "adresse1" : "Rue des carrières",
740
+ "codePostal" : "38390",
741
+ "commune" : {
742
+ "id" : 14939,
743
+ "code" : "38247",
744
+ "nom" : "Montalieu-Vercieu",
745
+ "pays" : {
746
+ "elementReferenceType" : "Pays",
747
+ "id" : 532,
748
+ "libelleFr" : "France",
749
+ "ordre" : 78
750
+ },
751
+ "codePostal" : "38390"
752
+ }
753
+ },
754
+ "geolocalisation" : {
755
+ "altitude" : 245,
756
+ "valide" : true,
757
+ "geoJson" : {
758
+ "type" : "Point",
759
+ "coordinates" : [ 5.417759, 45.825920 ]
760
+ }
761
+ }
762
+ },
763
+ "nom" : "Chemin de Fer Touristique du Haut Rhône",
764
+ "type" : {
765
+ "elementReferenceType" : "ReservationType",
766
+ "id" : 475,
767
+ "libelleFr" : "Directe",
768
+ "ordre" : 2
769
+ },
770
+ "moyensCommunication" : [ {
771
+ "identifiant" : 5673160,
772
+ "type" : {
773
+ "elementReferenceType" : "MoyenCommunicationType",
774
+ "id" : 204,
775
+ "libelleFr" : "Mél",
776
+ "ordre" : 2
777
+ },
778
+ "coordonnees" : {
779
+ "fr" : "haut.rhone@aol.fr"
780
+ }
781
+ }, {
782
+ "identifiant" : 5673161,
783
+ "type" : {
784
+ "elementReferenceType" : "MoyenCommunicationType",
785
+ "id" : 205,
786
+ "libelleFr" : "Site web (URL)",
787
+ "ordre" : 3
788
+ },
789
+ "coordonnees" : {
790
+ "fr" : "http://www.cft-hr.com"
791
+ }
792
+ } ],
793
+ "locked" : false
794
+ }, {
795
+ "identifiant" : 4457490,
796
+ "structureReference" : {
797
+ "type" : "STRUCTURE",
798
+ "id" : 67303,
799
+ "nom" : {
800
+ "libelleFr" : "Chemin de Fer Touristique du Haut Rhône"
801
+ },
802
+ "identifier" : "38AASOR100337_struct",
803
+ "state" : "PUBLISHED",
804
+ "adresse" : {
805
+ "adresse1" : "Rue des carrières",
806
+ "codePostal" : "38390",
807
+ "commune" : {
808
+ "id" : 14939,
809
+ "code" : "38247",
810
+ "nom" : "Montalieu-Vercieu",
811
+ "pays" : {
812
+ "elementReferenceType" : "Pays",
813
+ "id" : 532,
814
+ "libelleFr" : "France",
815
+ "ordre" : 78
816
+ },
817
+ "codePostal" : "38390"
818
+ }
819
+ },
820
+ "geolocalisation" : {
821
+ "altitude" : 245,
822
+ "valide" : true,
823
+ "geoJson" : {
824
+ "type" : "Point",
825
+ "coordinates" : [ 5.417759, 45.825920 ]
826
+ }
827
+ }
828
+ },
829
+ "nom" : "Chemin de Fer Touristique du Haut Rhône",
830
+ "type" : {
831
+ "elementReferenceType" : "ReservationType",
832
+ "id" : 475,
833
+ "libelleFr" : "Directe",
834
+ "ordre" : 2
835
+ },
836
+ "moyensCommunication" : [ {
837
+ "identifiant" : 72276483,
838
+ "type" : {
839
+ "elementReferenceType" : "MoyenCommunicationType",
840
+ "id" : 201,
841
+ "libelleFr" : "Téléphone",
842
+ "ordre" : 1
843
+ },
844
+ "coordonnees" : {
845
+ "fr" : "07 83 78 46 70"
846
+ },
847
+ "observation" : {
848
+ "libelleFr" : "Service réservations"
849
+ }
850
+ } ],
851
+ "locked" : false
852
+ } ],
853
+ "complement" : { }
854
+ },
855
+ "contacts" : [ {
856
+ "identifiant" : 1441007,
857
+ "referent" : false,
858
+ "civilite" : {
859
+ "elementReferenceType" : "ContactCivilite",
860
+ "id" : 442,
861
+ "libelleFr" : "Madame",
862
+ "ordre" : 4
863
+ },
864
+ "nom" : "THOOS",
865
+ "prenom" : "Josette",
866
+ "titre" : {
867
+ "libelleFr" : "04 78 81 84 30"
868
+ },
869
+ "fonction" : {
870
+ "elementReferenceType" : "ContactFonction",
871
+ "id" : 470,
872
+ "libelleFr" : "Gérance",
873
+ "ordre" : 9
874
+ }
875
+ }, {
876
+ "identifiant" : 1441008,
877
+ "referent" : true,
878
+ "civilite" : {
879
+ "elementReferenceType" : "ContactCivilite",
880
+ "id" : 443,
881
+ "libelleFr" : "Monsieur",
882
+ "ordre" : 9
883
+ },
884
+ "nom" : "THOOS",
885
+ "prenom" : "Jean Claude",
886
+ "titre" : {
887
+ "libelleFr" : "04 78 81 84 30"
888
+ },
889
+ "fonction" : {
890
+ "elementReferenceType" : "ContactFonction",
891
+ "id" : 460,
892
+ "libelleFr" : "Présidence",
893
+ "ordre" : 15
894
+ }
895
+ } ],
896
+ "illustrations" : [ {
897
+ "identifiant" : 7443871,
898
+ "link" : false,
899
+ "type" : "IMAGE",
900
+ "nom" : {
901
+ "libelleFr" : "Train à vapeur du Haut Rhône - Vallée Bleue"
902
+ },
903
+ "legende" : {
904
+ "libelleFr" : "Train à vapeur du Haut Rhône - Vallée Bleue"
905
+ },
906
+ "copyright" : {
907
+ "libelleFr" : "Régie Vallée Bleue"
908
+ },
909
+ "traductionFichiers" : [ {
910
+ "locale" : "fr",
911
+ "url" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/153/143/7245721.jpg",
912
+ "urlListe" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/153/143/7245721-liste.jpg",
913
+ "urlFiche" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/153/143/7245721-fiche.jpg",
914
+ "urlDiaporama" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/153/143/7245721-diaporama.jpg",
915
+ "extension" : "jpg",
916
+ "fileName" : "DSC_1653",
917
+ "taille" : 2473805,
918
+ "hauteur" : 2592,
919
+ "largeur" : 3872,
920
+ "lastModifiedDate" : "2020-01-24T15:27:59.000+0000"
921
+ } ],
922
+ "locked" : false
923
+ }, {
924
+ "identifiant" : 7443850,
925
+ "link" : false,
926
+ "type" : "IMAGE",
927
+ "nom" : {
928
+ "libelleFr" : "Train à vapeur du Haut Rhône - Vallée Bleue"
929
+ },
930
+ "legende" : {
931
+ "libelleFr" : "Train à vapeur du Haut Rhône - Vallée Bleue"
932
+ },
933
+ "copyright" : {
934
+ "libelleFr" : "CFHR - M. THOOS"
935
+ },
936
+ "traductionFichiers" : [ {
937
+ "locale" : "fr",
938
+ "url" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/132/143/7245700.jpg",
939
+ "urlListe" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/132/143/7245700-liste.jpg",
940
+ "urlFiche" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/132/143/7245700-fiche.jpg",
941
+ "urlDiaporama" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/132/143/7245700-diaporama.jpg",
942
+ "extension" : "jpg",
943
+ "fileName" : "Locomotive à vapeur",
944
+ "taille" : 1654585,
945
+ "hauteur" : 1366,
946
+ "largeur" : 2048,
947
+ "lastModifiedDate" : "2020-01-24T15:27:55.000+0000"
948
+ } ],
949
+ "locked" : false
950
+ }, {
951
+ "identifiant" : 7443849,
952
+ "link" : false,
953
+ "type" : "IMAGE",
954
+ "nom" : {
955
+ "libelleFr" : "Train à vapeur du Haut Rhône - Vallée Bleue"
956
+ },
957
+ "legende" : {
958
+ "libelleFr" : "Train à vapeur du Haut Rhône - Vallée Bleue"
959
+ },
960
+ "copyright" : {
961
+ "libelleFr" : "CFHR - M. THOOS"
962
+ },
963
+ "traductionFichiers" : [ {
964
+ "locale" : "fr",
965
+ "url" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/131/143/7245699.jpg",
966
+ "urlListe" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/131/143/7245699-liste.jpg",
967
+ "urlFiche" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/131/143/7245699-fiche.jpg",
968
+ "urlDiaporama" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/131/143/7245699-diaporama.jpg",
969
+ "extension" : "jpg",
970
+ "fileName" : "l'intérieur d'une voiture",
971
+ "taille" : 3816504,
972
+ "hauteur" : 2592,
973
+ "largeur" : 3872,
974
+ "lastModifiedDate" : "2020-01-24T15:27:56.000+0000"
975
+ } ],
976
+ "locked" : false
977
+ } ],
978
+ "multimedias" : [ {
979
+ "identifiant" : 7441611,
980
+ "link" : false,
981
+ "type" : "DOCUMENT",
982
+ "nom" : {
983
+ "libelleFr" : "Tarifs groupes 2020"
984
+ },
985
+ "legende" : {
986
+ "libelleFr" : "Petit train Haut Rhône - Tarifs groupes 2020"
987
+ },
988
+ "copyright" : {
989
+ "libelleFr" : "M. et Mme Thoos (gérants)"
990
+ },
991
+ "traductionFichiers" : [ {
992
+ "locale" : "fr",
993
+ "url" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/documents/227/134/7243491.pdf",
994
+ "extension" : "pdf",
995
+ "fileName" : "tarif groupes 2020",
996
+ "taille" : 487184,
997
+ "lastModifiedDate" : "2020-01-24T09:04:56.000+0000"
998
+ } ],
999
+ "dateLimiteDePublication" : "2020-10-31T00:00:00.000+0000",
1000
+ "locked" : false
1001
+ }, {
1002
+ "identifiant" : 7441612,
1003
+ "link" : false,
1004
+ "type" : "DOCUMENT",
1005
+ "nom" : {
1006
+ "libelleFr" : "Tarifs groupes scolaires 2020"
1007
+ },
1008
+ "legende" : {
1009
+ "libelleFr" : "Petit train Haut Rhône - Tarifs groupes scolaires 2020"
1010
+ },
1011
+ "copyright" : {
1012
+ "libelleFr" : "M. et Mme Thoos (gérants)"
1013
+ },
1014
+ "traductionFichiers" : [ {
1015
+ "locale" : "fr",
1016
+ "url" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/documents/228/134/7243492.pdf",
1017
+ "extension" : "pdf",
1018
+ "fileName" : "tarif groupes enfants et scolaires 2020",
1019
+ "taille" : 490199,
1020
+ "lastModifiedDate" : "2020-01-24T09:04:56.000+0000"
1021
+ } ],
1022
+ "dateLimiteDePublication" : "2020-10-31T00:00:00.000+0000",
1023
+ "locked" : false
1024
+ } ],
1025
+ "visites" : {
1026
+ "languesVisite" : [ {
1027
+ "elementReferenceType" : "Langue",
1028
+ "id" : 1197,
1029
+ "libelleFr" : "Français",
1030
+ "ordre" : 13
1031
+ } ],
1032
+ "visitable" : false,
1033
+ "dureeMoyenneVisiteIndividuelle" : 50,
1034
+ "prestationsVisitesGroupees" : [ {
1035
+ "elementReferenceType" : "PrestationVisiteGroupee",
1036
+ "id" : 491,
1037
+ "libelleFr" : "Visites groupes guidées sur demande",
1038
+ "ordre" : 42
1039
+ } ]
1040
+ },
1041
+ "territoires" : [ {
1042
+ "type" : "TERRITOIRE",
1043
+ "id" : 326,
1044
+ "nom" : {
1045
+ "libelleFr" : "Isle Crémieu Pays des Couleurs - Pays des Couleurs"
1046
+ },
1047
+ "identifier" : "sitraGEO105656",
1048
+ "state" : "PUBLISHED"
1049
+ }, {
1050
+ "type" : "TERRITOIRE",
1051
+ "id" : 3028,
1052
+ "nom" : {
1053
+ "libelleFr" : "Isle Crémieu Pays des Couleurs"
1054
+ },
1055
+ "identifier" : "sitraGEO102849",
1056
+ "state" : "PUBLISHED"
1057
+ }, {
1058
+ "type" : "TERRITOIRE",
1059
+ "id" : 3119,
1060
+ "nom" : {
1061
+ "libelleFr" : "Isère - Plaine et Collines"
1062
+ },
1063
+ "identifier" : "sitraGEO165756",
1064
+ "state" : "PUBLISHED"
1065
+ }, {
1066
+ "type" : "TERRITOIRE",
1067
+ "id" : 3897,
1068
+ "nom" : {
1069
+ "libelleFr" : "Sur les bords du Rhône"
1070
+ },
1071
+ "identifier" : "sitraGEO240613",
1072
+ "state" : "PUBLISHED"
1073
+ }, {
1074
+ "type" : "TERRITOIRE",
1075
+ "id" : 60439,
1076
+ "nom" : {
1077
+ "libelleFr" : "Rhône-Alpes"
1078
+ },
1079
+ "identifier" : "sitraGEO127256",
1080
+ "state" : "PUBLISHED"
1081
+ }, {
1082
+ "type" : "TERRITOIRE",
1083
+ "id" : 67816,
1084
+ "nom" : {
1085
+ "libelleFr" : "ViaRhôna"
1086
+ },
1087
+ "identifier" : "sitraGEO661444",
1088
+ "state" : "PUBLISHED"
1089
+ }, {
1090
+ "type" : "TERRITOIRE",
1091
+ "id" : 75691,
1092
+ "nom" : {
1093
+ "libelleFr" : "Isère"
1094
+ },
1095
+ "identifier" : "sitraGEO102661",
1096
+ "state" : "PUBLISHED"
1097
+ }, {
1098
+ "type" : "TERRITOIRE",
1099
+ "id" : 78546,
1100
+ "nom" : {
1101
+ "libelleFr" : "Haut Rhône Dauphinois"
1102
+ },
1103
+ "identifier" : "sitraGEO697283",
1104
+ "state" : "PUBLISHED"
1105
+ }, {
1106
+ "type" : "TERRITOIRE",
1107
+ "id" : 324298,
1108
+ "nom" : {
1109
+ "libelleFr" : "ViaRhôna 5 : Groslée- La Balme"
1110
+ },
1111
+ "identifier" : "sitraGEO908525",
1112
+ "state" : "PUBLISHED"
1113
+ }, {
1114
+ "type" : "TERRITOIRE",
1115
+ "id" : 658199,
1116
+ "nom" : {
1117
+ "libelleFr" : "ViaRhôna - 5 km autour"
1118
+ },
1119
+ "identifier" : "SITRA2_GEO_658199",
1120
+ "state" : "PUBLISHED"
1121
+ }, {
1122
+ "type" : "TERRITOIRE",
1123
+ "id" : 718400,
1124
+ "nom" : {
1125
+ "libelleFr" : "Viarhôna Isère 5 km"
1126
+ },
1127
+ "identifier" : "SITRA2_GEO_718400",
1128
+ "state" : "PUBLISHED"
1129
+ }, {
1130
+ "type" : "TERRITOIRE",
1131
+ "id" : 745569,
1132
+ "nom" : {
1133
+ "libelleFr" : "Isle Crémieu - Pays des Couleurs - Saisie Montalieu"
1134
+ },
1135
+ "identifier" : "SITRA2_GEO_745569",
1136
+ "state" : "PUBLISHED"
1137
+ }, {
1138
+ "type" : "TERRITOIRE",
1139
+ "id" : 908439,
1140
+ "nom" : {
1141
+ "libelleFr" : "Auvergne - Rhône-Alpes"
1142
+ },
1143
+ "identifier" : "SITRA2_GEO_908439",
1144
+ "state" : "PUBLISHED"
1145
+ }, {
1146
+ "type" : "TERRITOIRE",
1147
+ "id" : 921669,
1148
+ "nom" : {
1149
+ "libelleFr" : "Les Balcons du Dauphiné"
1150
+ },
1151
+ "identifier" : "SITRA2_GEO_921669",
1152
+ "state" : "PUBLISHED"
1153
+ }, {
1154
+ "type" : "TERRITOIRE",
1155
+ "id" : 5173666,
1156
+ "nom" : {
1157
+ "libelleFr" : "Villes et Villages Fleuris – 1 Fleur – Auvergne Rhône-Alpes"
1158
+ },
1159
+ "identifier" : "SITRA2_GEO_5173666",
1160
+ "state" : "PUBLISHED"
1161
+ } ],
1162
+ "informationsEquipement" : {
1163
+ "rubrique" : {
1164
+ "elementReferenceType" : "EquipementRubrique",
1165
+ "id" : 2993,
1166
+ "libelleFr" : "Autres loisirs",
1167
+ "ordre" : 3,
1168
+ "description" : "A utiliser pour les \"Autres équipements de Loisirs\"."
1169
+ },
1170
+ "activites" : [ {
1171
+ "elementReferenceType" : "EquipementActivite",
1172
+ "id" : 3232,
1173
+ "libelleFr" : "Transports touristiques",
1174
+ "ordre" : 191,
1175
+ "description" : "Si le moyen de transport touristique ne fait pas partie de la liste ci-dessous,\r\ncocher uniquement Transports touristiques (par exemple pour les ulms montgolfières ou planeurs...\r\n\r\nAttention :\r\nLes navettes vtt, parapente ... sont à saisir en COS / services / navette (la navette n'est qu'un moyen de locomotion mais pas un but en soi)\r\nLes stages de pilotage d'hélicoptère, montgolfière, avion, ulm et planeur sont des ACT car le public est actif\r\nIdem pour le baptème de parapente, parachute ascensionnel, parachutisme, deltaplane, traîneaux à chiens ...",
1176
+ "familleCritere" : {
1177
+ "elementReferenceType" : "FamilleCritere",
1178
+ "id" : 44,
1179
+ "libelleFr" : "Transports touristiques",
1180
+ "ordre" : 147
1181
+ }
1182
+ }, {
1183
+ "elementReferenceType" : "EquipementActivite",
1184
+ "id" : 3415,
1185
+ "libelleFr" : "Trains touristiques",
1186
+ "ordre" : 197,
1187
+ "description" : "Concerne les funiculaires, les petits trains de ville, les autres trains touristiques (anciennes lignes réhabilitées, trains de montagne).",
1188
+ "familleCritere" : {
1189
+ "elementReferenceType" : "FamilleCritere",
1190
+ "id" : 44,
1191
+ "libelleFr" : "Transports touristiques",
1192
+ "ordre" : 147
1193
+ },
1194
+ "parent" : {
1195
+ "elementReferenceType" : "EquipementActivite",
1196
+ "id" : 3232,
1197
+ "libelleFr" : "Transports touristiques",
1198
+ "ordre" : 191,
1199
+ "description" : "Si le moyen de transport touristique ne fait pas partie de la liste ci-dessous,\r\ncocher uniquement Transports touristiques (par exemple pour les ulms montgolfières ou planeurs...\r\n\r\nAttention :\r\nLes navettes vtt, parapente ... sont à saisir en COS / services / navette (la navette n'est qu'un moyen de locomotion mais pas un but en soi)\r\nLes stages de pilotage d'hélicoptère, montgolfière, avion, ulm et planeur sont des ACT car le public est actif\r\nIdem pour le baptème de parapente, parachute ascensionnel, parachutisme, deltaplane, traîneaux à chiens ..."
1200
+ }
1201
+ } ],
1202
+ "itineraire" : { }
1203
+ },
1204
+ "formatVersion" : "v002",
1205
+ "informationsPrestataireActivites" : {
1206
+ "prestataireActivites" : true,
1207
+ "activitesCulturelles" : [ {
1208
+ "elementReferenceType" : "ActiviteCulturellePrestation",
1209
+ "id" : 1820,
1210
+ "libelleFr" : "Découverte",
1211
+ "ordre" : 45,
1212
+ "familleCritere" : {
1213
+ "elementReferenceType" : "FamilleCritere",
1214
+ "id" : 7,
1215
+ "libelleFr" : "Découvertes et connaissances",
1216
+ "ordre" : 32
1217
+ }
1218
+ }, {
1219
+ "elementReferenceType" : "ActiviteCulturellePrestation",
1220
+ "id" : 1826,
1221
+ "libelleFr" : "Industrie",
1222
+ "ordre" : 72,
1223
+ "description" : "Activités économiques qui produisent des biens matériels pour la transformation et la mise en oeuvre des matières premières.\r\nExemples : industrie automobile, industrie du vêtement...",
1224
+ "familleCritere" : {
1225
+ "elementReferenceType" : "FamilleCritere",
1226
+ "id" : 10,
1227
+ "libelleFr" : "Sciences",
1228
+ "ordre" : 113
1229
+ }
1230
+ }, {
1231
+ "elementReferenceType" : "ActiviteCulturellePrestation",
1232
+ "id" : 1844,
1233
+ "libelleFr" : "Technologie / Electronique",
1234
+ "ordre" : 77,
1235
+ "familleCritere" : {
1236
+ "elementReferenceType" : "FamilleCritere",
1237
+ "id" : 10,
1238
+ "libelleFr" : "Sciences",
1239
+ "ordre" : 113
1240
+ }
1241
+ } ]
1242
+ },
1243
+ "aspects" : [ {
1244
+ "aspect" : "GROUPES",
1245
+ "champsAspect" : [ "illustrations", "descriptionTarif.indicationTarif", "descriptionTarif.periodes", "descriptionTarif.tarifsEnClairAutomatique", "ouverture.periodeEnClair", "descriptionTarif.conditions.gratuitPourLesMoinsDe", "descriptionTarif.complement", "multimedias", "presentation.descriptifDetaille", "informations.moyensCommunication", "descriptionTarif.tarifsEnClair", "prestations.tailleGroupeMax", "ouverture.periodeEnClairAutomatique", "presentation.descriptifCourt", "reservation.complement", "ouverture.periodesOuvertures" ],
1246
+ "informations" : {
1247
+ "moyensCommunication" : [ {
1248
+ "identifiant" : 72276483,
1249
+ "type" : {
1250
+ "elementReferenceType" : "MoyenCommunicationType",
1251
+ "id" : 201,
1252
+ "libelleFr" : "Téléphone",
1253
+ "ordre" : 1
1254
+ },
1255
+ "coordonnees" : {
1256
+ "fr" : "07 83 78 46 70"
1257
+ },
1258
+ "observation" : {
1259
+ "libelleFr" : "Service réservations"
1260
+ }
1261
+ }, {
1262
+ "identifiant" : 5673160,
1263
+ "type" : {
1264
+ "elementReferenceType" : "MoyenCommunicationType",
1265
+ "id" : 204,
1266
+ "libelleFr" : "Mél",
1267
+ "ordre" : 2
1268
+ },
1269
+ "coordonnees" : {
1270
+ "fr" : "haut.rhone@aol.fr"
1271
+ }
1272
+ }, {
1273
+ "identifiant" : 5673161,
1274
+ "type" : {
1275
+ "elementReferenceType" : "MoyenCommunicationType",
1276
+ "id" : 205,
1277
+ "libelleFr" : "Site web (URL)",
1278
+ "ordre" : 3
1279
+ },
1280
+ "coordonnees" : {
1281
+ "fr" : "http://www.cft-hr.com"
1282
+ }
1283
+ } ]
1284
+ },
1285
+ "presentation" : {
1286
+ "descriptifCourt" : {
1287
+ "libelleFr" : "Voyagez dans le temps depuis la Vallée Bleue, à bord d'une véritable locomotive à vapeur pour une promenade le long du Rhône, des falaises du Bugey, à travers le bois de Corniolay. En fin de balade, visite privative du dépôt\r\nDurée de visite : 1h30 à 1h45"
1288
+ }
1289
+ },
1290
+ "prestations" : {
1291
+ "tailleGroupeMax" : 72
1292
+ },
1293
+ "ouverture" : {
1294
+ "periodeEnClair" : {
1295
+ "libelleFr" : "Du 01/05 au 31/10.\nÀ partir de 10h30, uniquement sur réservation.\n\nSous réserve de conditions météo favorables."
1296
+ },
1297
+ "periodeEnClairGenerationMode" : "AUTOMATIQUE",
1298
+ "periodesOuvertures" : [ {
1299
+ "identifiant" : 18024471,
1300
+ "dateDebut" : "2020-05-01",
1301
+ "dateFin" : "2020-10-31",
1302
+ "complementHoraire" : {
1303
+ "libelleFr" : "à partir de 10h30, uniquement sur réservation"
1304
+ },
1305
+ "type" : "OUVERTURE_TOUS_LES_JOURS",
1306
+ "tousLesAns" : true,
1307
+ "identifiantTechnique" : 18183554
1308
+ } ]
1309
+ },
1310
+ "descriptionTarif" : {
1311
+ "indicationTarif" : "PAYANT",
1312
+ "gratuit" : false,
1313
+ "tarifsEnClair" : {
1314
+ "libelleFr" : "Forfait groupe adultes : 450 € (Groupe de 40 participants ou moins supplément de 10 € par participant supplémentaire à partir du 41ème voyageur)\nForfait groupe enfants (4-12 ans) : 380 € (Groupe de 40 enfants ou moins supplément de 6 € par participant supplémentaire à partir du 41ème voyageur).\n\n\nGroupes : Gratuité pour le chauffeur du car et 1 accompagnateur\r\nScolaires : Gratuité pour le chauffeur du car et pour 1 accompagnateur pour 10 enfants."
1315
+ },
1316
+ "tarifsEnClairGenerationMode" : "AUTOMATIQUE",
1317
+ "complement" : {
1318
+ "libelleFr" : "Groupes : Gratuité pour le chauffeur du car et 1 accompagnateur\r\nScolaires : Gratuité pour le chauffeur du car et pour 1 accompagnateur pour 10 enfants"
1319
+ },
1320
+ "periodes" : [ {
1321
+ "identifiant" : 10815968,
1322
+ "dateDebut" : "2020-05-01",
1323
+ "dateFin" : "2020-10-31",
1324
+ "tarifs" : [ {
1325
+ "devise" : "EUR",
1326
+ "minimum" : 450.00,
1327
+ "maximum" : 450.00,
1328
+ "precisionTarif" : {
1329
+ "libelleFr" : "Groupe de 40 participants ou moins supplément de 10 € par participant supplémentaire à partir du 41ème voyageur"
1330
+ },
1331
+ "type" : {
1332
+ "elementReferenceType" : "TarifType",
1333
+ "id" : 1719,
1334
+ "libelleFr" : "Forfait groupe adultes",
1335
+ "ordre" : 312,
1336
+ "description" : "Tarif déterminé pour l'ensemble du groupe."
1337
+ }
1338
+ }, {
1339
+ "devise" : "EUR",
1340
+ "minimum" : 380.00,
1341
+ "maximum" : 380.00,
1342
+ "precisionTarif" : {
1343
+ "libelleFr" : "Groupe de 40 enfants ou moins supplément de 6 € par participant supplémentaire à partir du 41ème voyageur"
1344
+ },
1345
+ "type" : {
1346
+ "elementReferenceType" : "TarifType",
1347
+ "id" : 1720,
1348
+ "libelleFr" : "Forfait groupe enfants",
1349
+ "ordre" : 313,
1350
+ "description" : "Tarif déterminé pour l'ensemble du groupe."
1351
+ }
1352
+ } ],
1353
+ "type" : {
1354
+ "elementReferenceType" : "TarifTypePeriode",
1355
+ "id" : 1304,
1356
+ "libelleFr" : "A l'année",
1357
+ "ordre" : 1
1358
+ }
1359
+ } ],
1360
+ "devise" : "EUR",
1361
+ "conditions" : { }
1362
+ },
1363
+ "reservation" : {
1364
+ "complement" : {
1365
+ "libelleFr" : "Arrhes demandés pour les groupes"
1366
+ }
1367
+ },
1368
+ "illustrations" : [ {
1369
+ "identifiant" : 7558355,
1370
+ "link" : false,
1371
+ "type" : "IMAGE",
1372
+ "nom" : {
1373
+ "libelleFr" : "Train à vapeur du Haut Rhône"
1374
+ },
1375
+ "legende" : {
1376
+ "libelleFr" : "Train à vapeur du Haut Rhône"
1377
+ },
1378
+ "copyright" : {
1379
+ "libelleFr" : "CFHR - M. THOOS"
1380
+ },
1381
+ "traductionFichiers" : [ {
1382
+ "locale" : "fr",
1383
+ "url" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/248/59/7355384.jpg",
1384
+ "urlListe" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/248/59/7355384-liste.jpg",
1385
+ "urlFiche" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/248/59/7355384-fiche.jpg",
1386
+ "urlDiaporama" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/248/59/7355384-diaporama.jpg",
1387
+ "extension" : "jpg",
1388
+ "fileName" : "Train",
1389
+ "taille" : 8499216,
1390
+ "hauteur" : 2336,
1391
+ "largeur" : 4160,
1392
+ "lastModifiedDate" : "2020-02-20T13:54:36.000+0000"
1393
+ } ],
1394
+ "locked" : false
1395
+ }, {
1396
+ "identifiant" : 7558383,
1397
+ "link" : false,
1398
+ "type" : "IMAGE",
1399
+ "nom" : {
1400
+ "libelleFr" : "Train à vapeur du Haut Rhône"
1401
+ },
1402
+ "legende" : {
1403
+ "libelleFr" : "Train à vapeur du Haut Rhône"
1404
+ },
1405
+ "copyright" : {
1406
+ "libelleFr" : "Régie Vallée Bleue"
1407
+ },
1408
+ "traductionFichiers" : [ {
1409
+ "locale" : "fr",
1410
+ "url" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/20/60/7355412.jpg",
1411
+ "urlListe" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/20/60/7355412-liste.jpg",
1412
+ "urlFiche" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/20/60/7355412-fiche.jpg",
1413
+ "urlDiaporama" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/20/60/7355412-diaporama.jpg",
1414
+ "extension" : "jpg",
1415
+ "fileName" : "7245721",
1416
+ "taille" : 2473805,
1417
+ "hauteur" : 2592,
1418
+ "largeur" : 3872,
1419
+ "lastModifiedDate" : "2020-02-20T13:54:33.000+0000"
1420
+ } ],
1421
+ "locked" : false
1422
+ }, {
1423
+ "identifiant" : 7558354,
1424
+ "link" : false,
1425
+ "type" : "IMAGE",
1426
+ "nom" : {
1427
+ "libelleFr" : "Train à vapeur du Haut Rhône"
1428
+ },
1429
+ "legende" : {
1430
+ "libelleFr" : "Train à vapeur du Haut Rhône"
1431
+ },
1432
+ "copyright" : {
1433
+ "libelleFr" : "CFHR - M. THOOS"
1434
+ },
1435
+ "traductionFichiers" : [ {
1436
+ "locale" : "fr",
1437
+ "url" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/247/59/7355383.jpg",
1438
+ "urlListe" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/247/59/7355383-liste.jpg",
1439
+ "urlFiche" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/247/59/7355383-fiche.jpg",
1440
+ "urlDiaporama" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/images/247/59/7355383-diaporama.jpg",
1441
+ "extension" : "jpg",
1442
+ "fileName" : "l'intérieur d'une voiture",
1443
+ "taille" : 3816504,
1444
+ "hauteur" : 2592,
1445
+ "largeur" : 3872,
1446
+ "lastModifiedDate" : "2020-02-20T13:54:30.000+0000"
1447
+ } ],
1448
+ "locked" : false
1449
+ } ],
1450
+ "multimedias" : [ {
1451
+ "identifiant" : 7440828,
1452
+ "link" : false,
1453
+ "type" : "DOCUMENT",
1454
+ "nom" : {
1455
+ "libelleFr" : "Tarifs Groupes 2020"
1456
+ },
1457
+ "legende" : {
1458
+ "libelleFr" : "Train à vapeur du Haut Rhône"
1459
+ },
1460
+ "copyright" : {
1461
+ "libelleFr" : "M. et Mme THOOS (gérants)"
1462
+ },
1463
+ "traductionFichiers" : [ {
1464
+ "locale" : "fr",
1465
+ "url" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/documents/213/131/7242709.pdf",
1466
+ "extension" : "pdf",
1467
+ "fileName" : "tarif groupes 2020",
1468
+ "taille" : 487184,
1469
+ "lastModifiedDate" : "2020-01-24T08:38:55.000+0000"
1470
+ } ],
1471
+ "dateLimiteDePublication" : "2020-10-31T00:00:00.000+0000",
1472
+ "locked" : false
1473
+ }, {
1474
+ "identifiant" : 7440829,
1475
+ "link" : false,
1476
+ "type" : "DOCUMENT",
1477
+ "nom" : {
1478
+ "libelleFr" : "Tarifs Groupes Scolaires 2020"
1479
+ },
1480
+ "legende" : {
1481
+ "libelleFr" : "Train à vapeur du Haut Rhône"
1482
+ },
1483
+ "copyright" : {
1484
+ "libelleFr" : "M. et Mme THOOS (gérants)"
1485
+ },
1486
+ "traductionFichiers" : [ {
1487
+ "locale" : "fr",
1488
+ "url" : "http://static.apidae-tourisme.com/filestore/objets-touristiques/documents/214/131/7242710.pdf",
1489
+ "extension" : "pdf",
1490
+ "fileName" : "tarif groupes enfants et scolaires 2020",
1491
+ "taille" : 490199,
1492
+ "lastModifiedDate" : "2020-01-24T08:38:55.000+0000"
1493
+ } ],
1494
+ "dateLimiteDePublication" : "2020-10-31T00:00:00.000+0000",
1495
+ "locked" : false
1496
+ } ]
1497
+ } ]
1498
+ }]