decidim-meetings 0.0.5 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. checksums.yaml +4 -4
  2. data/app/commands/decidim/meetings/admin/create_meeting.rb +6 -17
  3. data/app/commands/decidim/meetings/admin/update_meeting.rb +6 -7
  4. data/app/controllers/decidim/meetings/application_controller.rb +1 -0
  5. data/app/controllers/decidim/meetings/meetings_controller.rb +14 -9
  6. data/app/forms/decidim/meetings/admin/meeting_form.rb +12 -1
  7. data/app/helpers/decidim/meetings/admin/application_helper.rb +1 -1
  8. data/app/helpers/decidim/meetings/application_helper.rb +2 -1
  9. data/app/helpers/decidim/meetings/map_helper.rb +10 -32
  10. data/app/models/decidim/meetings/meeting.rb +2 -1
  11. data/app/services/decidim/meetings/meeting_search.rb +0 -5
  12. data/app/views/decidim/meetings/admin/meetings/_form.html.erb +5 -3
  13. data/app/views/decidim/meetings/meetings/_filters.html.erb +5 -3
  14. data/app/views/decidim/meetings/meetings/_filters_small_view.html.erb +1 -1
  15. data/app/views/decidim/meetings/meetings/_meetings.html.erb +11 -1
  16. data/app/views/decidim/meetings/meetings/_tags.html.erb +1 -1
  17. data/app/views/decidim/meetings/meetings/index.html.erb +27 -32
  18. data/app/views/decidim/meetings/meetings/index.js.erb +2 -2
  19. data/app/views/decidim/meetings/meetings/show.html.erb +2 -15
  20. data/config/i18n-tasks.yml +1 -1
  21. data/config/locales/ca.yml +18 -3
  22. data/config/locales/en.yml +20 -3
  23. data/config/locales/es.yml +18 -3
  24. data/config/locales/eu.yml +75 -1
  25. data/config/locales/fi.yml +98 -0
  26. data/db/migrate/20170215132546_add_reference_to_meetings.rb +7 -0
  27. data/lib/decidim/meetings/admin_engine.rb +0 -26
  28. data/lib/decidim/meetings/list_engine.rb +1 -9
  29. metadata +14 -45
  30. data/app/assets/config/decidim_meetings_manifest.js +0 -2
  31. data/app/assets/javascripts/decidim/meetings/map.js.es6.erb +0 -97
  32. data/app/assets/stylesheets/decidim/meetings/map.css +0 -3
  33. data/app/services/decidim/meetings/static_map_generator.rb +0 -50
  34. data/app/views/decidim/meetings/meetings/_address_details.html.erb +0 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8042c1ee86056372caec282e1b3e663492cfa664
4
- data.tar.gz: 76a12945a27cc259cec4131655c7630fed8bb142
3
+ metadata.gz: 9d6c1f40dbb0175a5cd5c11bc88557d06d66b89c
4
+ data.tar.gz: f2da758bcd9b1737ab28eecce25eff1b37fc8f97
5
5
  SHA512:
6
- metadata.gz: 46eb80f168fe576614772d45ed418e0301ede6628e60dc7ec7c874b3191c60ba8aeb0681fad4820a79036713fd65088a2db87c5c9a6a027d095120bcd2a80e75
7
- data.tar.gz: 193d415e8a9a3cb445ee1392c4fb4d4c509aad59255ddf8d0e865ea7195f3eb31d8ae57fc422fc54f835e43bd74fe5cfcff0544d4c2f59d1ca08a7133d0fab4d
6
+ metadata.gz: 7079774eb36091ab6fe3efed02111e85e32673449eb6565cbb43aae81555658af56c817bc44d2d559da164358c1a75a3d48ab31efff19b97424e3591e1be16af
7
+ data.tar.gz: 55329e0fbf37991eb434095e4ae2c6facbf37d8cf41b20cfc676aefb58967de57884b5db87cb94a6dfcc9652846f004594ec0846a9c6410b85f641e97fc8c294
@@ -15,17 +15,14 @@ module Decidim
15
15
  def call
16
16
  return broadcast(:invalid) if @form.invalid?
17
17
 
18
- build_meeting
19
- return broadcast(:invalid) if Decidim.geocoder.present? && !geocode_meeting
20
- create_meeting
21
-
22
- broadcast(:ok)
18
+ create_meeting!
19
+ broadcast(:ok, @meeting)
23
20
  end
24
21
 
25
22
  private
26
23
 
27
- def build_meeting
28
- @meeting = Meeting.new(
24
+ def create_meeting!
25
+ @meeting = Meeting.create!(
29
26
  scope: @form.scope,
30
27
  category: @form.category,
31
28
  title: @form.title,
@@ -33,21 +30,13 @@ module Decidim
33
30
  end_time: @form.end_time,
34
31
  start_time: @form.start_time,
35
32
  address: @form.address,
33
+ latitude: @form.latitude,
34
+ longitude: @form.longitude,
36
35
  location: @form.location,
37
36
  location_hints: @form.location_hints,
38
37
  feature: @form.current_feature
39
38
  )
40
39
  end
41
-
42
- def geocode_meeting
43
- result = @meeting.geocode
44
- @form.errors.add :address, :invalid unless result
45
- result
46
- end
47
-
48
- def create_meeting
49
- @meeting.save!
50
- end
51
40
  end
52
41
  end
53
42
  end
@@ -20,17 +20,14 @@ module Decidim
20
20
  def call
21
21
  return broadcast(:invalid) if @form.invalid?
22
22
 
23
- change_meeting
24
- return broadcast(:invalid) if Decidim.geocoder.present? && @meeting.address_changed? && !geocode_meeting
25
- update_meeting
26
-
27
- broadcast(:ok)
23
+ update_meeting!
24
+ broadcast(:ok, @meeting)
28
25
  end
29
26
 
30
27
  private
31
28
 
32
- def change_meeting
33
- @meeting.assign_attributes(
29
+ def update_meeting!
30
+ @meeting.update_attributes!(
34
31
  scope: @form.scope,
35
32
  category: @form.category,
36
33
  title: @form.title,
@@ -38,6 +35,8 @@ module Decidim
38
35
  end_time: @form.end_time,
39
36
  start_time: @form.start_time,
40
37
  address: @form.address,
38
+ latitude: @form.latitude,
39
+ longitude: @form.longitude,
41
40
  location: @form.location,
42
41
  location_hints: @form.location_hints
43
42
  )
@@ -8,6 +8,7 @@ module Decidim
8
8
  # Note that it inherits from `Decidim::Components::BaseController`, which
9
9
  # override its layout and provide all kinds of useful methods.
10
10
  class ApplicationController < Decidim::Features::BaseController
11
+ helper Decidim::Meetings::ApplicationHelper
11
12
  end
12
13
  end
13
14
  end
@@ -8,15 +8,24 @@ module Decidim
8
8
 
9
9
  helper_method :meetings, :geocoded_meetings, :meeting
10
10
 
11
- def index; end
12
-
13
- def static_map
14
- @meeting = Meeting.where(feature: current_feature).find(params[:id])
15
- send_data StaticMapGenerator.new(@meeting).data, type: "image/jpeg", disposition: "inline"
11
+ def index
12
+ if search.results.empty? && params.dig("filter", "date") != "past"
13
+ @past_meetings = search_klass.new(search_params.merge(date: "past"))
14
+ unless @past_meetings.results.empty?
15
+ params[:filter] ||= {}
16
+ params[:filter][:date] = "past"
17
+ @forced_past_meetings = true
18
+ @search = @past_meetings
19
+ end
20
+ end
16
21
  end
17
22
 
18
23
  private
19
24
 
25
+ def meeting
26
+ @meeting ||= Meeting.where(feature: current_feature).find(params[:id])
27
+ end
28
+
20
29
  def meetings
21
30
  @meetings ||= search.results.page(params[:page]).per(12)
22
31
  end
@@ -25,10 +34,6 @@ module Decidim
25
34
  @geocoded_meetings ||= search.results.select(&:geocoded?)
26
35
  end
27
36
 
28
- def meeting
29
- @meeting ||= Meeting.where(feature: current_feature).find(params[:id])
30
- end
31
-
32
37
  def search_klass
33
38
  MeetingSearch
34
39
  end
@@ -11,6 +11,8 @@ module Decidim
11
11
  translatable_attribute :location, String
12
12
  translatable_attribute :location_hints, String
13
13
  attribute :address, String
14
+ attribute :latitude, Float
15
+ attribute :longitude, Float
14
16
  attribute :start_time, Decidim::Attributes::TimeWithZone
15
17
  attribute :end_time, Decidim::Attributes::TimeWithZone
16
18
  attribute :decidim_scope_id, Integer
@@ -20,6 +22,7 @@ module Decidim
20
22
  validates :description, translatable_presence: true
21
23
  validates :location, translatable_presence: true
22
24
  validates :address, presence: true
25
+ validates :address, geocoding: true, if: -> { Decidim.geocoder.present? }
23
26
  validates :start_time, presence: true, date: { before: :end_time }
24
27
  validates :end_time, presence: true, date: { after: :start_time }
25
28
 
@@ -27,15 +30,23 @@ module Decidim
27
30
  validates :scope, presence: true, if: ->(form) { form.decidim_scope_id.present? }
28
31
  validates :category, presence: true, if: ->(form) { form.decidim_category_id.present? }
29
32
 
33
+ def process_scope
34
+ current_feature.participatory_process.scope
35
+ end
36
+
30
37
  def scope
31
38
  return unless current_feature
32
- @scope ||= current_feature.scopes.where(id: decidim_scope_id).first
39
+ @scope ||= process_scope || current_feature.scopes.where(id: decidim_scope_id).first
33
40
  end
34
41
 
35
42
  def category
36
43
  return unless current_feature
37
44
  @category ||= current_feature.categories.where(id: decidim_category_id).first
38
45
  end
46
+
47
+ def feature
48
+ current_feature
49
+ end
39
50
  end
40
51
  end
41
52
  end
@@ -5,7 +5,7 @@ module Decidim
5
5
  # Custom helpers, scoped to the meetings admin engine.
6
6
  #
7
7
  module ApplicationHelper
8
- include MapHelper
8
+ include Decidim::MapHelper
9
9
  end
10
10
  end
11
11
  end
@@ -5,7 +5,8 @@ module Decidim
5
5
  #
6
6
  module ApplicationHelper
7
7
  include PaginateHelper
8
- include MapHelper
8
+ include Decidim::MapHelper
9
+ include Decidim::Meetings::MapHelper
9
10
  end
10
11
  end
11
12
  end
@@ -1,45 +1,23 @@
1
1
  # frozen_string_literal: true
2
2
  module Decidim
3
3
  module Meetings
4
- # This helper include some methods for rendering meetings static and dynamic maps.
4
+ # This helper include some methods for rendering meetings dynamic maps.
5
5
  module MapHelper
6
- # Renders a link to openstreetmaps with the meeting latitude and longitude.
7
- # The link's content is a static map image.
8
- #
9
- # meeting - A Decidim::Meetings::Meeting object
10
- # options - An optional hash of options (default: { zoom: 17 })
11
- # * zoom: A number to represent the zoom value of the map
12
- def static_map_link(meeting, options = {})
13
- if meeting.geocoded?
14
- zoom = options[:zoom] || 17
15
- latitude = meeting.latitude
16
- longitude = meeting.longitude
17
-
18
- map_url = "https://www.openstreetmap.org/?mlat=#{latitude}&mlon=#{longitude}#map=#{zoom}/#{latitude}/#{longitude}"
19
-
20
- link_to map_url, target: "_blank" do
21
- image_tag decidim_meetings.static_map_meeting_path(feature_id: meeting.feature,
22
- participatory_process_id: meeting.feature.participatory_process,
23
- id: meeting)
24
- end
25
- end
26
- end
27
-
28
6
  # Serialize a collection of geocoded meetings to be used by the dynamic map component
29
7
  #
30
8
  # geocoded_meetings - A collection of geocoded meetings
31
9
  def meetings_data_for_map(geocoded_meetings)
32
10
  geocoded_meetings.map do |meeting|
33
11
  meeting.slice(:latitude, :longitude, :address).merge(title: translated_attribute(meeting.title),
34
- description: translated_attribute(meeting.description),
35
- startTimeDay: l(meeting.start_time, format: "%d"),
36
- startTimeMonth: l(meeting.start_time, format: "%B"),
37
- startTimeYear: l(meeting.start_time, format: "%Y"),
38
- startTime: "#{meeting.start_time.strftime("%H:%M")} - #{meeting.end_time.strftime("%H:%M")}",
39
- icon: icon("meetings", width: 40, height: 70, remove_icon_class: true),
40
- location: translated_attribute(meeting.location),
41
- locationHints: translated_attribute(meeting.location_hints),
42
- link: meeting_path(meeting))
12
+ description: translated_attribute(meeting.description),
13
+ startTimeDay: l(meeting.start_time, format: "%d"),
14
+ startTimeMonth: l(meeting.start_time, format: "%B"),
15
+ startTimeYear: l(meeting.start_time, format: "%Y"),
16
+ startTime: "#{meeting.start_time.strftime("%H:%M")} - #{meeting.end_time.strftime("%H:%M")}",
17
+ icon: icon("meetings", width: 40, height: 70, remove_icon_class: true),
18
+ location: translated_attribute(meeting.location),
19
+ locationHints: translated_attribute(meeting.location_hints),
20
+ link: meeting_path(meeting))
43
21
  end
44
22
  end
45
23
  end
@@ -8,6 +8,7 @@ module Decidim
8
8
  include Decidim::Resourceable
9
9
  include Decidim::HasAttachments
10
10
  include Decidim::HasFeature
11
+ include Decidim::HasReference
11
12
  include Decidim::HasScope
12
13
  include Decidim::HasCategory
13
14
 
@@ -15,7 +16,7 @@ module Decidim
15
16
 
16
17
  validates :title, presence: true
17
18
 
18
- geocoded_by :address
19
+ geocoded_by :address, http_headers: lambda { |proposal| { "Referer" => proposal.feature.organization.host } }
19
20
 
20
21
  def closed?
21
22
  closed_at.present?
@@ -29,11 +29,6 @@ module Decidim
29
29
  end
30
30
  end
31
31
 
32
- # Handle the scope_id filter
33
- def search_scope_id
34
- query.where(decidim_scope_id: scope_id)
35
- end
36
-
37
32
  private
38
33
 
39
34
  # Internal: builds the needed query to search for a text in the organization's
@@ -26,9 +26,11 @@
26
26
  <%= form.datetime_field :end_time %>
27
27
  </div>
28
28
 
29
- <div class="field" >
30
- <%= form.collection_select :decidim_scope_id, current_organization.scopes, :id, :name, include_blank: true %>
31
- </div>
29
+ <% if !@form.process_scope %>
30
+ <div class="field" >
31
+ <%= form.collection_select :decidim_scope_id, organization_scopes, :id, :name %>
32
+ </div>
33
+ <% end %>
32
34
 
33
35
  <div class="field" >
34
36
  <%= form.categories_select :decidim_category_id, current_participatory_process.categories, prompt: "", disable_parents: false %>
@@ -12,10 +12,12 @@
12
12
  </div>
13
13
  </div>
14
14
 
15
- <%= form.collection_radio_buttons :date, [["upcoming", t(".upcoming")], ["past", t(".past")]], :first, :last, legend_title: t(".date") %>
15
+ <% unless @forced_past_meetings %>
16
+ <%= form.collection_radio_buttons :date, [["upcoming", t(".upcoming")], ["past", t(".past")]], :first, :last, legend_title: t(".date") %>
17
+ <% end %>
16
18
 
17
- <% if current_organization.scopes.any? %>
18
- <%= form.collection_check_boxes :scope_id, current_organization.scopes, lambda {|scope| scope.id.to_s}, :name, legend_title: t(".scopes") %>
19
+ <% if !current_participatory_process.scope && current_organization.scopes.any? %>
20
+ <%= form.collection_check_boxes :scope_id, search_organization_scopes, lambda {|scope| scope.id.to_s}, :name, legend_title: t(".scopes") %>
19
21
  <% end %>
20
22
 
21
23
  <% if current_feature.categories.any? %>
@@ -7,7 +7,7 @@
7
7
 
8
8
  <div class="reveal" id="filter-box" data-reveal>
9
9
  <div class="reveal__header">
10
- <h3 class="reveal__title"><%= t ".filter_for" %>:</h3>
10
+ <h3 class="reveal__title"><%= t ".filter_by" %>:</h3>
11
11
  <button class="close-button" data-close aria-label="<%= t(".close_modal") %>" type="button">
12
12
  <span aria-hidden="true">&times;</span>
13
13
  </button>
@@ -1,3 +1,13 @@
1
+ <% if @forced_past_meetings %>
2
+ <div class="callout warning">
3
+ <%= t ".upcoming_meetings_warning" %>
4
+ </div>
5
+ <% elsif meetings.length == 0 %>
6
+ <div class="callout warning">
7
+ <%= t ".no_meetings_warning" %>
8
+ </div>
9
+ <% end %>
10
+
1
11
  <div class="row small-up-1 medium-up-2 card-grid">
2
12
  <% meetings.each do |meeting| %>
3
13
  <div class="column">
@@ -13,7 +23,7 @@
13
23
  <div class="address__icon">
14
24
  <%= icon "meetings", remove_icon_class: true, width: 40, height: 70 %>
15
25
  </div>
16
- <%= render partial: "address_details", locals: { meeting: meeting } %>
26
+ <%= render partial: "decidim/shared/address_details", locals: { icon_name: "meetings", geolocalizable: meeting } %>
17
27
  </div>
18
28
  </div>
19
29
  </article>
@@ -3,7 +3,7 @@
3
3
  <% if meeting.category.present? %>
4
4
  <li><%= link_to translated_attribute(meeting.category.name), decidim_meetings.meetings_path(filter: { category_id: meeting.category.id }) %></li>
5
5
  <% end %>
6
- <% if meeting.scope.present? %>
6
+ <% if !current_participatory_process.scope && meeting.scope.present? %>
7
7
  <li><%= link_to meeting.scope.name, decidim_meetings.meetings_path(filter: { scope_id: [meeting.scope.id] }) %></li>
8
8
  <% end %>
9
9
  </ul>
@@ -1,40 +1,35 @@
1
- <% if Decidim.geocoder.present? %>
2
- <div class="row column">
3
- <div class="google-map" id="meetings-map" data-meetings="<%= meetings_data_for_map(geocoded_meetings).to_json %>" data-here-app-id="<%= Decidim.geocoder[:here_app_id] %>" data-here-app-code="<%= Decidim.geocoder[:here_app_code] %>">
4
- </div>
5
-
6
- <template id="meeting-popup">
7
- <div class="map-info__content">
8
- <h3>${title}</h3>
9
- <div id="bodyContent">
10
- <p>{{html description}}</p>
11
- <div class="map__date-adress">
12
- <div class="card__datetime">
13
- <div class="card__datetime__date">
14
- ${startTimeDay} <span class="card__datetime__month">${startTimeMonth} ${startTimeYear}</span>
15
- </div>
16
- <div class="card__datetime__time">${starTime}</div>
17
- </div>
18
- <div class="address card__extra">
19
- <div class="address__icon">{{html icon}}</div>
20
- <div class="address__details">
21
- <strong>{{html location}}</strong><br />
22
- <span>${address}</span><br />
23
- <span>{{html locationHints}}</span>
24
- </div>
1
+ <%= dynamic_map_for meetings_data_for_map(geocoded_meetings) do %>
2
+ <template id="marker-popup">
3
+ <div class="map-info__content">
4
+ <h3>${title}</h3>
5
+ <div id="bodyContent">
6
+ <p>{{html description}}</p>
7
+ <div class="map__date-adress">
8
+ <div class="card__datetime">
9
+ <div class="card__datetime__date">
10
+ ${startTimeDay} <span class="card__datetime__month">${startTimeMonth} ${startTimeYear}</span>
25
11
  </div>
12
+ <div class="card__datetime__time">${starTime}</div>
26
13
  </div>
27
- <div class="map-info__button">
28
- <a href="${link}" class="button button--sc">
29
- <%= t('.view_meeting') %>
30
- </a>
14
+ <div class="address card__extra">
15
+ <div class="address__icon">{{html icon}}</div>
16
+ <div class="address__details">
17
+ <strong>{{html location}}</strong><br />
18
+ <span>${address}</span><br />
19
+ <span>{{html locationHints}}</span>
20
+ </div>
31
21
  </div>
32
22
  </div>
23
+ <div class="map-info__button">
24
+ <a href="${link}" class="button button--sc">
25
+ <%= t('.view_meeting') %>
26
+ </a>
27
+ </div>
33
28
  </div>
34
- </template>
35
- <%= stylesheet_link_tag "decidim/meetings/map" %>
36
- <%= javascript_include_tag "decidim/meetings/map" %>
37
- </div>
29
+ </div>
30
+ </template>
31
+ <%= stylesheet_link_tag "decidim/map" %>
32
+ <%= javascript_include_tag "decidim/map" %>
38
33
  <% end %>
39
34
 
40
35
  <div class="row">
@@ -2,7 +2,7 @@ var $meetings = $('#meetings');
2
2
 
3
3
  $meetings.html('<%= j(render partial: "meetings") %>');
4
4
 
5
- window.DecidimMeetings.currentMap = window.DecidimMeetings.loadMap(
6
- 'meetings-map',
5
+ window.Decidim.currentMap = window.Decidim.loadMap(
6
+ 'map',
7
7
  JSON.parse('<%= escape_javascript meetings_data_for_map(geocoded_meetings).to_json.html_safe %>')
8
8
  );
@@ -45,26 +45,13 @@
45
45
  </div>
46
46
  </div>
47
47
  <% end %>
48
+ <%= feature_reference(meeting) %>
48
49
  <%= render partial: "decidim/shared/share_modal" %>
49
50
  </div>
50
51
  <div class="columns mediumlarge-8 mediumlarge-pull-4">
51
52
  <div class="section">
52
53
  <p><%== translated_attribute meeting.description %></p>
53
- <div class="card card--secondary">
54
- <div class="card__content address">
55
- <div class="address__info">
56
- <div class="address__icon">
57
- <%= icon "meetings", width: 40, height: 70 %>
58
- </div>
59
- <%= render partial: "address_details", locals: { meeting: meeting } %>
60
- </div>
61
- <% if Decidim.geocoder.present? %>
62
- <div class="address__map">
63
- <%= static_map_link(meeting) %>
64
- </div>
65
- <% end %>
66
- </div>
67
- </div>
54
+ <%= render partial: "decidim/shared/static_map", locals: { icon_name: "meetings", geolocalizable: meeting } %>
68
55
  <%= render partial: "tags", locals: { meeting: meeting } %>
69
56
  </div>
70
57
  <% if meeting.closed? %>
@@ -2,5 +2,5 @@ base_locale: en
2
2
  locales: [en]
3
3
  ignore_unused:
4
4
  - "decidim.features.meetings.name"
5
- - "activemodel.attributes.close_meeting.*"
5
+ - "activemodel.attributes.*"
6
6
  - "decidim.resource_links.*"
@@ -7,6 +7,16 @@ ca:
7
7
  closing_report: Informe
8
8
  contributions_count: Nombre de contribucions
9
9
  proposal_ids: Propostes creades en una trobada
10
+ meeting:
11
+ adress: Adreça
12
+ decidim_category_id: Categoria
13
+ decidim_scope_id: Àmbit
14
+ description: Descripció
15
+ end_time: Hora de finalització
16
+ location: Ubicació
17
+ location_hints: Detalls d'ubicació
18
+ start_time: Hora d'inici
19
+ title: Editar trobada
10
20
  decidim:
11
21
  features:
12
22
  meetings:
@@ -59,10 +69,13 @@ ca:
59
69
  filters_small_view:
60
70
  close_modal: Tancar finestra
61
71
  filter: Filtra
62
- filter_for: Filtra per
72
+ filter_by: Filtra per
63
73
  unfold: Desplegar
64
74
  index:
65
75
  view_meeting: Veure trobada
76
+ meetings:
77
+ no_meetings_warning: No hi ha trobades que coincideixin amb el criteri de cerca o no hi ha cap trobada programada.
78
+ upcoming_meetings_warning: Actualment no hi ha trobades programades, però pots veure les anteriors trobades.
66
79
  show:
67
80
  attendees: Nombre d'assistents
68
81
  contributions: Nombre d'aportacions
@@ -78,6 +91,8 @@ ca:
78
91
  title: Títol
79
92
  resource_links:
80
93
  meetings_through_proposals:
81
- results: 'Resultats relacionats:'
94
+ meeting_results: 'Resultats relacionats:'
95
+ result_meetings: 'Trobades relacionades:'
82
96
  proposals_from_meeting:
83
- proposals: Propostes relacionades
97
+ meeting_proposals: 'Propostes relacionades:'
98
+ proposal_meetings: 'Trobades relacionades:'
@@ -8,6 +8,16 @@ en:
8
8
  closing_report: Report
9
9
  contributions_count: Number of contributions
10
10
  proposal_ids: Proposals created in the meeting
11
+ meeting:
12
+ adress: Adress
13
+ decidim_category_id: Category
14
+ decidim_scope_id: Scope
15
+ description: Description
16
+ end_time: End Time
17
+ location: Location
18
+ location_hints: Location hints
19
+ start_time: Start Time
20
+ title: Title
11
21
  decidim:
12
22
  features:
13
23
  meetings:
@@ -60,10 +70,15 @@ en:
60
70
  filters_small_view:
61
71
  close_modal: Close modal
62
72
  filter: Filter
63
- filter_for: Filter by
73
+ filter_by: Filter by
64
74
  unfold: Unfold
65
75
  index:
66
76
  view_meeting: View meeting
77
+ meetings:
78
+ no_meetings_warning: No meetings match your search criteria or there isn't
79
+ any meeting scheduled.
80
+ upcoming_meetings_warning: Currently, there are no scheduled meetings, but
81
+ here you can find all the past meetings listed.
67
82
  show:
68
83
  attendees: Attendees count
69
84
  contributions: Contributions count
@@ -79,6 +94,8 @@ en:
79
94
  title: Title
80
95
  resource_links:
81
96
  meetings_through_proposals:
82
- results: 'Related results:'
97
+ meeting_results: 'Related results:'
98
+ result_meetings: 'Related meetings:'
83
99
  proposals_from_meeting:
84
- proposals: Related proposals
100
+ meeting_proposals: 'Related proposals:'
101
+ proposal_meetings: 'Related meetings:'
@@ -7,6 +7,16 @@ es:
7
7
  closing_report: Informe
8
8
  contributions_count: Número de contribuciones
9
9
  proposal_ids: Propuestas creadas en el encuentro
10
+ meeting:
11
+ adress: Dirección
12
+ decidim_category_id: Categoría
13
+ decidim_scope_id: Ámbito
14
+ description: Descripción
15
+ end_time: Hora de finalización
16
+ location: Ubicación
17
+ location_hints: Pistas de ubicación
18
+ start_time: Hora de inicio
19
+ title: Título
10
20
  decidim:
11
21
  features:
12
22
  meetings:
@@ -59,10 +69,13 @@ es:
59
69
  filters_small_view:
60
70
  close_modal: Cerrar ventana
61
71
  filter: Filtrar
62
- filter_for: Filtrar por
72
+ filter_by: Filtrar por
63
73
  unfold: Desplegar
64
74
  index:
65
75
  view_meeting: Ver encuentro
76
+ meetings:
77
+ no_meetings_warning: No hay encuentros que coincidan con el criterio de búsqueda o no hay ningún encuentro programado.
78
+ upcoming_meetings_warning: Actualmente no hay encuentros programados, pero puedes ver los encuentros anteriores.
66
79
  show:
67
80
  attendees: Número de asistentes
68
81
  contributions: Número de contribuciones
@@ -78,6 +91,8 @@ es:
78
91
  title: Título
79
92
  resource_links:
80
93
  meetings_through_proposals:
81
- results: 'Resultados relacionados:'
94
+ meeting_results: 'Resultados relacionados:'
95
+ result_meetings: 'Encuentros relacionados:'
82
96
  proposals_from_meeting:
83
- proposals: Propuestas relacionadas
97
+ meeting_proposals: 'Propuestas relacionadas:'
98
+ proposal_meetings: 'Encuentros relacionados:'
@@ -1,5 +1,79 @@
1
1
  eu:
2
+ activemodel:
3
+ attributes:
4
+ close_meeting:
5
+ attendees_count: Bertaratuen kopurua
6
+ attending_organizations: 'Parte hartu duten erakundeen zerrenda:'
7
+ closing_report: Txostena
8
+ contributions_count: Ekarpen-kopurua
9
+ proposal_ids: Topaketan sortutako proposamenak
2
10
  decidim:
11
+ features:
12
+ meetings:
13
+ name: Topaketa-zerrenda
3
14
  meetings:
4
15
  actions:
5
- close: Itxi
16
+ attachments: Fitxategi erantsiak
17
+ close: Itxi
18
+ confirm_destroy: Ziur zaude topaketa hau ezabatu nahi duzula?
19
+ destroy: Garbitu
20
+ edit: Editatu
21
+ new: '%{name} berria'
22
+ title: Ekintzak
23
+ admin:
24
+ meeting_closes:
25
+ edit:
26
+ close: Itxi
27
+ title: Itxi topaketa
28
+ meetings:
29
+ close:
30
+ invalid: Arazo bat izan da topaketa hau ixtean.
31
+ success: Topaketa ongi itxi da
32
+ create:
33
+ invalid: Arazo bat izan da topaketa hau sortzean.
34
+ success: Topaketa ongi sortu da
35
+ destroy:
36
+ success: Topaketa zuzen ezabatu da.
37
+ edit:
38
+ title: Editatu topaketa
39
+ update: Eguneratu topaketa
40
+ index:
41
+ title: Topaketa-zerrenda
42
+ new:
43
+ create: Sortu topaketa
44
+ title: Topaketa berria
45
+ update:
46
+ invalid: Arazo bat izan da topaketa hau eguneratzean.
47
+ success: Topaketa zuzen eguneratu da.
48
+ models:
49
+ meeting:
50
+ name: Topaketa
51
+ meetings:
52
+ filters:
53
+ category: Kategoria
54
+ date: Jaioteguna
55
+ scopes: Esparruak
56
+ search: Bilatu
57
+ filters_small_view:
58
+ close_modal: Itxi leihoa
59
+ filter: Iragazi
60
+ filter_by: 'Iragazi honen arabera:'
61
+ unfold: Zabaldu
62
+ index:
63
+ view_meeting: Ikusi topaketa
64
+ show:
65
+ attendees: Bertaratuen kopurua
66
+ contributions: Ekarpen-kopurua
67
+ meeting_report: Topaketaren txostena
68
+ organizations: Bertaratutako erakundeak
69
+ models:
70
+ meeting:
71
+ fields:
72
+ closed: Itxita
73
+ end_time: Bukaera-data
74
+ map: Mapa
75
+ start_time: Hasiera-data
76
+ title: Izenburua
77
+ resource_links:
78
+ meetings_through_proposals:
79
+ meeting_results: 'Honekin lotutako emaitzak:'
@@ -0,0 +1,98 @@
1
+ fi:
2
+ activemodel:
3
+ attributes:
4
+ close_meeting:
5
+ attendees_count: Osallistujien määrä
6
+ attending_organizations: Osallistuvien organisaatioiden lista
7
+ closing_report: Raportti
8
+ contributions_count: Kontribuutioiden määrä
9
+ proposal_ids: Ehdotusta luotu tapaamisessa
10
+ meeting:
11
+ adress: Adressi
12
+ decidim_category_id: Kategoria
13
+ decidim_scope_id: Konteksti
14
+ description: Kuvaus
15
+ end_time: Lopetusaika
16
+ location: Paikka
17
+ location_hints: Paikan tarkemmat tiedot
18
+ start_time: Aloitusaika
19
+ title: Otsikko
20
+ decidim:
21
+ features:
22
+ meetings:
23
+ name: Tapaamiset
24
+ meetings:
25
+ actions:
26
+ attachments: Liitteet
27
+ close: Sulje
28
+ confirm_destroy: Haluatko varmasti poistaa tämän tapaamisen?
29
+ destroy: Poista
30
+ edit: Muokkaa
31
+ new: Uusi %{name}
32
+ title: Toiminnot
33
+ admin:
34
+ meeting_closes:
35
+ edit:
36
+ close: Lopeta
37
+ title: Lopeta tapaaminen
38
+ meetings:
39
+ close:
40
+ invalid: Tapaamisen lopettamisessa tapahtui virhe
41
+ success: Tapaaminen onnistuneesti lopetettu
42
+ create:
43
+ invalid: Tapaamisen luonnissa tapahtui virhe
44
+ success: Tapaaminen onnistuneesti luotu
45
+ destroy:
46
+ success: Tapaaminen onnistuneesti poistettu
47
+ edit:
48
+ title: Muokkaa tapaamista
49
+ update: Päivitä tapaaminen
50
+ index:
51
+ title: Tapaamiset
52
+ new:
53
+ create: Luo tapaaminen
54
+ title: Uusi tapaaminen
55
+ update:
56
+ invalid: Tapaamisen luonnissa tapahtui virhe
57
+ success: Tapaaminen luotu onnistuneesti
58
+ models:
59
+ meeting:
60
+ name: Tapaaminen
61
+ meetings:
62
+ filters:
63
+ category: Kategoria
64
+ date: Päivämäärä
65
+ past: Menneet
66
+ scopes: Kontekstit
67
+ search: Etsi
68
+ upcoming: Tulevat
69
+ filters_small_view:
70
+ close_modal: Sulje ikkuna
71
+ filter: Suodata
72
+ filter_by: Suodata
73
+ unfold: Avaa
74
+ index:
75
+ view_meeting: Näytä tapaaminen
76
+ meetings:
77
+ no_meetings_warning: Yksikään tapaaminen ei vastaa hakukriteerejäsi tai yhtään tapaamista ei ole määritelty
78
+ upcoming_meetings_warning: Tällä hetkellä tapaamisia ei ole määritelty, mutta täältä löydät kaikki aikaisemmat tapaamiset.
79
+ show:
80
+ attendees: Osallistujamäärä
81
+ contributions: Kontribuutioiden määrä
82
+ meeting_report: Tapaamisraportti
83
+ organizations: Osallistuneet organisaatiot
84
+ models:
85
+ meeting:
86
+ fields:
87
+ closed: Suljettu
88
+ end_time: Lopetusaika
89
+ map: Kartta
90
+ start_time: Aloitusaika
91
+ title: Otsikko
92
+ resource_links:
93
+ meetings_through_proposals:
94
+ meeting_results: 'Liittyvät tulokset:'
95
+ result_meetings: 'Liittyvät tapaamiset:'
96
+ proposals_from_meeting:
97
+ meeting_proposals: 'Liittyvät ehdotukset:'
98
+ proposal_meetings: 'Liittyvät tapaamiset:'
@@ -0,0 +1,7 @@
1
+ class AddReferenceToMeetings < ActiveRecord::Migration[5.0]
2
+ def change
3
+ add_column :decidim_meetings_meetings, :reference, :string
4
+ Decidim::Meetings::Meeting.find_each(&:save)
5
+ change_column_null :decidim_meetings_meetings, :reference, false
6
+ end
7
+ end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- require "geocoder"
3
2
 
4
3
  module Decidim
5
4
  module Meetings
@@ -22,31 +21,6 @@ module Decidim
22
21
  def load_seed
23
22
  nil
24
23
  end
25
-
26
- initializer "decidim_meetings.geocoder" do |_app|
27
- if Decidim.geocoder.present?
28
- Geocoder.configure(
29
- # geocoding service (see below for supported options):
30
- lookup: :here,
31
-
32
- # IP address geocoding service (see below for supported options):
33
- # :ip_lookup => :maxmind,
34
-
35
- # to use an API key:
36
- api_key: [Decidim.geocoder&.fetch(:here_app_id), Decidim.geocoder&.fetch(:here_app_code)]
37
-
38
- # geocoding service request timeout, in seconds (default 3):
39
- # :timeout => 5,
40
-
41
- # set default units to kilometers:
42
- # :units => :km,
43
-
44
- # caching (see below for details):
45
- # :cache => Redis.new,
46
- # :cache_prefix => "..."
47
- )
48
- end
49
- end
50
24
  end
51
25
  end
52
26
  end
@@ -12,17 +12,9 @@ module Decidim
12
12
  isolate_namespace Decidim::Meetings
13
13
 
14
14
  routes do
15
- resources :meetings, only: [:index, :show] do
16
- member do
17
- get :static_map
18
- end
19
- end
15
+ resources :meetings, only: [:index, :show]
20
16
  root to: "meetings#index"
21
17
  end
22
-
23
- initializer "decidim_meetings.assets" do |app|
24
- app.config.assets.precompile += %w(decidim_meetings_manifest.js)
25
- end
26
18
  end
27
19
  end
28
20
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: decidim-meetings
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josep Jaume Rey Peroy
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2017-02-17 00:00:00.000000000 Z
13
+ date: 2017-03-24 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: decidim-core
@@ -18,14 +18,14 @@ dependencies:
18
18
  requirements:
19
19
  - - '='
20
20
  - !ruby/object:Gem::Version
21
- version: 0.0.5
21
+ version: 0.0.6
22
22
  type: :runtime
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
25
  requirements:
26
26
  - - '='
27
27
  - !ruby/object:Gem::Version
28
- version: 0.0.5
28
+ version: 0.0.6
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: rectify
31
31
  requirement: !ruby/object:Gem::Requirement
@@ -82,20 +82,6 @@ dependencies:
82
82
  - - "~>"
83
83
  - !ruby/object:Gem::Version
84
84
  version: 1.0.1
85
- - !ruby/object:Gem::Dependency
86
- name: geocoder
87
- requirement: !ruby/object:Gem::Requirement
88
- requirements:
89
- - - "~>"
90
- - !ruby/object:Gem::Version
91
- version: 1.4.2
92
- type: :runtime
93
- prerelease: false
94
- version_requirements: !ruby/object:Gem::Requirement
95
- requirements:
96
- - - "~>"
97
- - !ruby/object:Gem::Version
98
- version: 1.4.2
99
85
  - !ruby/object:Gem::Dependency
100
86
  name: httparty
101
87
  requirement: !ruby/object:Gem::Requirement
@@ -130,70 +116,56 @@ dependencies:
130
116
  requirements:
131
117
  - - '='
132
118
  - !ruby/object:Gem::Version
133
- version: 0.0.5
119
+ version: 0.0.6
134
120
  type: :development
135
121
  prerelease: false
136
122
  version_requirements: !ruby/object:Gem::Requirement
137
123
  requirements:
138
124
  - - '='
139
125
  - !ruby/object:Gem::Version
140
- version: 0.0.5
126
+ version: 0.0.6
141
127
  - !ruby/object:Gem::Dependency
142
128
  name: decidim-proposals
143
129
  requirement: !ruby/object:Gem::Requirement
144
130
  requirements:
145
131
  - - '='
146
132
  - !ruby/object:Gem::Version
147
- version: 0.0.5
133
+ version: 0.0.6
148
134
  type: :development
149
135
  prerelease: false
150
136
  version_requirements: !ruby/object:Gem::Requirement
151
137
  requirements:
152
138
  - - '='
153
139
  - !ruby/object:Gem::Version
154
- version: 0.0.5
140
+ version: 0.0.6
155
141
  - !ruby/object:Gem::Dependency
156
142
  name: decidim-admin
157
143
  requirement: !ruby/object:Gem::Requirement
158
144
  requirements:
159
145
  - - '='
160
146
  - !ruby/object:Gem::Version
161
- version: 0.0.5
147
+ version: 0.0.6
162
148
  type: :development
163
149
  prerelease: false
164
150
  version_requirements: !ruby/object:Gem::Requirement
165
151
  requirements:
166
152
  - - '='
167
153
  - !ruby/object:Gem::Version
168
- version: 0.0.5
169
- - !ruby/object:Gem::Dependency
170
- name: webmock
171
- requirement: !ruby/object:Gem::Requirement
172
- requirements:
173
- - - "~>"
174
- - !ruby/object:Gem::Version
175
- version: 2.3.2
176
- type: :development
177
- prerelease: false
178
- version_requirements: !ruby/object:Gem::Requirement
179
- requirements:
180
- - - "~>"
181
- - !ruby/object:Gem::Version
182
- version: 2.3.2
154
+ version: 0.0.6
183
155
  - !ruby/object:Gem::Dependency
184
156
  name: decidim-results
185
157
  requirement: !ruby/object:Gem::Requirement
186
158
  requirements:
187
159
  - - '='
188
160
  - !ruby/object:Gem::Version
189
- version: 0.0.5
161
+ version: 0.0.6
190
162
  type: :development
191
163
  prerelease: false
192
164
  version_requirements: !ruby/object:Gem::Requirement
193
165
  requirements:
194
166
  - - '='
195
167
  - !ruby/object:Gem::Version
196
- version: 0.0.5
168
+ version: 0.0.6
197
169
  description: ''
198
170
  email:
199
171
  - josepjaume@gmail.com
@@ -205,10 +177,7 @@ extra_rdoc_files: []
205
177
  files:
206
178
  - README.md
207
179
  - Rakefile
208
- - app/assets/config/decidim_meetings_manifest.js
209
180
  - app/assets/images/decidim/meetings/icon.svg
210
- - app/assets/javascripts/decidim/meetings/map.js.es6.erb
211
- - app/assets/stylesheets/decidim/meetings/map.css
212
181
  - app/commands/decidim/meetings/admin/close_meeting.rb
213
182
  - app/commands/decidim/meetings/admin/create_meeting.rb
214
183
  - app/commands/decidim/meetings/admin/update_meeting.rb
@@ -226,14 +195,12 @@ files:
226
195
  - app/models/decidim/meetings/application_record.rb
227
196
  - app/models/decidim/meetings/meeting.rb
228
197
  - app/services/decidim/meetings/meeting_search.rb
229
- - app/services/decidim/meetings/static_map_generator.rb
230
198
  - app/views/decidim/meetings/admin/meeting_closes/_form.html.erb
231
199
  - app/views/decidim/meetings/admin/meeting_closes/edit.html.erb
232
200
  - app/views/decidim/meetings/admin/meetings/_form.html.erb
233
201
  - app/views/decidim/meetings/admin/meetings/edit.html.erb
234
202
  - app/views/decidim/meetings/admin/meetings/index.html.erb
235
203
  - app/views/decidim/meetings/admin/meetings/new.html.erb
236
- - app/views/decidim/meetings/meetings/_address_details.html.erb
237
204
  - app/views/decidim/meetings/meetings/_datetime.html.erb
238
205
  - app/views/decidim/meetings/meetings/_filters.html.erb
239
206
  - app/views/decidim/meetings/meetings/_filters_small_view.html.erb
@@ -248,10 +215,12 @@ files:
248
215
  - config/locales/en.yml
249
216
  - config/locales/es.yml
250
217
  - config/locales/eu.yml
218
+ - config/locales/fi.yml
251
219
  - db/migrate/20161130121354_create_meetings.rb
252
220
  - db/migrate/20170110142105_close_a_meeting.rb
253
221
  - db/migrate/20170123151650_add_latitude_and_longitude_to_meetings.rb
254
222
  - db/migrate/20170129153716_remove_short_description_from_meetings.rb
223
+ - db/migrate/20170215132546_add_reference_to_meetings.rb
255
224
  - lib/decidim/meetings.rb
256
225
  - lib/decidim/meetings/admin.rb
257
226
  - lib/decidim/meetings/admin_engine.rb
@@ -1,2 +0,0 @@
1
- //= link decidim/meetings/map.js
2
- //= link decidim/meetings/map.css
@@ -1,97 +0,0 @@
1
- // = require leaflet
2
- // = require leaflet-tilelayer-here
3
- // = require leaflet-svg-icon
4
- // = require leaflet.markercluster
5
- // = require jquery-tmpl
6
- // = require_self
7
-
8
- /* globals L */
9
-
10
- L.DivIcon.SVGIcon.DecidimIcon = L.DivIcon.SVGIcon.extend({
11
- options: {
12
- fillColor: '#ef604d',
13
- opacity: 0
14
- },
15
- _createPathDescription: function() {
16
- return 'M14 1.17a11.685 11.685 0 0 0-11.685 11.685c0 11.25 10.23 20.61 10.665 21a1.5 1.5 0 0 0 2.025 0c0.435-.435 10.665-9.81 10.665-21A11.685 11.685 0 0 0 14 1.17Zm0 17.415A5.085 5.085 0 1 1 19.085 13.5 5.085 5.085 0 0 1 14 18.585Z';
17
- },
18
- _createCircle: function() {
19
- return ""
20
- }
21
- });
22
-
23
- const popupTemplateId = 'meeting-popup';
24
- $.template('meeting-popup', $(`#${popupTemplateId}`).html());
25
-
26
- const addMarkers = (meetingsData, markerClusters, map) => {
27
- const bounds = new L.LatLngBounds(meetingsData.map((meeting) => [meeting.latitude, meeting.longitude]));
28
-
29
- meetingsData.forEach((meeting) => {
30
- let marker = L.marker([meeting.latitude, meeting.longitude], {
31
- icon: new L.DivIcon.SVGIcon.DecidimIcon()
32
- });
33
- let node = document.createElement('div');
34
-
35
- $.tmpl('meeting-popup', meeting).appendTo(node);
36
-
37
- marker.bindPopup(node, {
38
- maxwidth: 640,
39
- minWidth: 500,
40
- keepInView: true,
41
- className: 'map-info'
42
- }).openPopup();
43
-
44
- markerClusters.addLayer(marker);
45
- });
46
-
47
- map.addLayer(markerClusters);
48
- map.fitBounds(bounds, { padding: [100, 100] });
49
- };
50
-
51
- const loadMap = (mapId, meetingsData) => {
52
- let markerClusters = L.markerClusterGroup();
53
- const { hereAppId, hereAppCode } = window.DecidimMeetings.mapConfiguration;
54
-
55
- if (window.DecidimMeetings.currentMap) {
56
- window.DecidimMeetings.currentMap.remove();
57
- window.DecidimMeetings.currentMap = null;
58
- }
59
-
60
- const map = L.map(mapId);
61
-
62
- L.tileLayer.here({
63
- appId: hereAppId,
64
- appCode: hereAppCode,
65
- }).addTo(map);
66
-
67
- if (meetingsData.length > 0) {
68
- addMarkers(meetingsData, markerClusters, map);
69
- } else {
70
- map.fitWorld();
71
- }
72
-
73
- map.scrollWheelZoom.disable();
74
-
75
- return map;
76
- };
77
-
78
- window.DecidimMeetings = {
79
- loadMap,
80
- currentMap: null,
81
- mapConfiguration: {}
82
- };
83
-
84
- $(() => {
85
- const mapId = 'meetings-map';
86
- const $map = $(`#${mapId}`);
87
-
88
- const meetingsData = $map.data('meetings');
89
- const hereAppId = $map.data('here-app-id');
90
- const hereAppCode = $map.data('here-app-code');
91
-
92
- window.DecidimMeetings.mapConfiguration = { hereAppId, hereAppCode };
93
-
94
- if ($map.length > 0) {
95
- window.DecidimMeetings.currentMap = loadMap(mapId, meetingsData);
96
- }
97
- });
@@ -1,3 +0,0 @@
1
- /* = require leaflet */
2
- /* = require MarkerCluster */
3
- /* = require MarkerCluster.Default */
@@ -1,50 +0,0 @@
1
- # frozen_string_literal: true
2
- require "httparty"
3
-
4
- module Decidim
5
- module Meetings
6
- # This class generates a url to create a static map image for a geocoded meeting
7
- class StaticMapGenerator
8
- BASE_HOST = "image.maps.cit.api.here.com"
9
- BASE_PATH = "/mia/1.6/mapview"
10
-
11
- def initialize(meeting, options = {})
12
- @meeting = meeting
13
- @options = options
14
-
15
- @options[:zoom] ||= 15
16
- @options[:width] ||= 120
17
- @options[:height] ||= 120
18
- end
19
-
20
- def data
21
- return if Decidim.geocoder.nil?
22
-
23
- Rails.cache.fetch(@meeting.cache_key) do
24
- request = HTTParty.get(uri)
25
- request.body
26
- end
27
- end
28
-
29
- private
30
-
31
- def uri
32
- params = {
33
- c: "#{@meeting.latitude}, #{@meeting.longitude}",
34
- z: @options[:zoom],
35
- w: @options[:width],
36
- h: @options[:height],
37
- f: "1",
38
- app_id: Decidim.geocoder&.fetch(:here_app_id),
39
- app_code: Decidim.geocoder&.fetch(:here_app_code)
40
- }
41
-
42
- uri = URI.parse("https://#{BASE_HOST}#{BASE_PATH}").tap do |uri|
43
- uri.query = URI.encode_www_form params
44
- end
45
-
46
- uri
47
- end
48
- end
49
- end
50
- end
@@ -1,5 +0,0 @@
1
- <div class="address__details">
2
- <strong><%== translated_attribute meeting.location %></strong><br />
3
- <span><%= meeting.address %></span><br />
4
- <span><%== translated_attribute meeting.location_hints %></span>
5
- </div>