@@ -24,6 +24,7 @@ App.Map =
|
||||
longitudeInputSelector = $(element).data('longitude-input-selector')
|
||||
zoomInputSelector = $(element).data('zoom-input-selector')
|
||||
removeMarkerSelector = $(element).data('marker-remove-selector')
|
||||
addMarkerInvestments = $(element).data('marker-investments-coordinates')
|
||||
editable = $(element).data('marker-editable')
|
||||
marker = null;
|
||||
markerIcon = L.divIcon(
|
||||
@@ -69,11 +70,15 @@ App.Map =
|
||||
$(zoomInputSelector).val ''
|
||||
return
|
||||
|
||||
contentPopup = (title,investment,budget) ->
|
||||
content = "<a href='/budgets/#{budget}/investments/#{investment}'>#{title}</a>"
|
||||
return content
|
||||
|
||||
mapCenterLatLng = new (L.LatLng)(mapCenterLatitude, mapCenterLongitude)
|
||||
map = L.map(element.id).setView(mapCenterLatLng, zoom)
|
||||
L.tileLayer(mapTilesProvider, attribution: mapAttribution).addTo map
|
||||
|
||||
if markerLatitude && markerLongitude
|
||||
if markerLatitude && markerLongitude && !addMarkerInvestments
|
||||
marker = createMarker(markerLatitude, markerLongitude)
|
||||
|
||||
if editable
|
||||
@@ -81,6 +86,11 @@ App.Map =
|
||||
map.on 'zoomend', updateFormfields
|
||||
map.on 'click', moveOrPlaceMarker
|
||||
|
||||
if addMarkerInvestments
|
||||
for i in addMarkerInvestments
|
||||
add_marker=createMarker(i.lat , i.long)
|
||||
add_marker.bindPopup(contentPopup(i.investment_title, i.investment_id, i.budget_id))
|
||||
|
||||
toogleMap: ->
|
||||
$('.map').toggle()
|
||||
$('.js-location-map-remove-marker').toggle()
|
||||
$('.js-location-map-remove-marker').toggle()
|
||||
|
||||
@@ -16,6 +16,7 @@ class BudgetsController < ApplicationController
|
||||
def index
|
||||
@budgets = @budgets.order(:created_at)
|
||||
@budget = current_budget
|
||||
@budgets_coordinates = current_budget_map_locations
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -53,4 +53,16 @@ module BudgetsHelper
|
||||
!budget.drafting? || current_user&.administrator?
|
||||
end
|
||||
|
||||
def current_budget_map_locations
|
||||
current_budget.investments.map do |investment|
|
||||
next unless investment.map_location.present?
|
||||
{
|
||||
lat: investment.map_location.latitude,
|
||||
long: investment.map_location.longitude,
|
||||
investment_title: investment.title,
|
||||
investment_id: investment.id,
|
||||
budget_id: current_budget.id
|
||||
}
|
||||
end.flatten.compact
|
||||
end
|
||||
end
|
||||
|
||||
@@ -24,11 +24,12 @@ module MapLocationsHelper
|
||||
"remove-marker-link-#{dom_id(map_location)}"
|
||||
end
|
||||
|
||||
def render_map(map_location, parent_class, editable, remove_marker_label)
|
||||
def render_map(map_location, parent_class, editable, remove_marker_label, investments_coordinates=nil)
|
||||
map_location = MapLocation.new if map_location.nil?
|
||||
map = content_tag_for :div,
|
||||
map_location,
|
||||
class: "map",
|
||||
data: prepare_map_settings(map_location, editable, parent_class)
|
||||
data: prepare_map_settings(map_location, editable, parent_class, investments_coordinates)
|
||||
map += map_location_remove_marker(map_location, remove_marker_label) if editable
|
||||
map
|
||||
end
|
||||
@@ -46,7 +47,7 @@ module MapLocationsHelper
|
||||
|
||||
private
|
||||
|
||||
def prepare_map_settings(map_location, editable, parent_class)
|
||||
def prepare_map_settings(map_location, editable, parent_class, investments_coordinates=nil)
|
||||
options = {
|
||||
map: "",
|
||||
map_center_latitude: map_location_latitude(map_location),
|
||||
@@ -55,13 +56,15 @@ module MapLocationsHelper
|
||||
map_tiles_provider: Rails.application.secrets.map_tiles_provider,
|
||||
map_tiles_provider_attribution: Rails.application.secrets.map_tiles_provider_attribution,
|
||||
marker_editable: editable,
|
||||
marker_latitude: map_location.latitude,
|
||||
marker_longitude: map_location.longitude,
|
||||
marker_remove_selector: "##{map_location_remove_marker_link_id(map_location)}",
|
||||
latitude_input_selector: "##{map_location_input_id(parent_class, 'latitude')}",
|
||||
longitude_input_selector: "##{map_location_input_id(parent_class, 'longitude')}",
|
||||
zoom_input_selector: "##{map_location_input_id(parent_class, 'zoom')}"
|
||||
zoom_input_selector: "##{map_location_input_id(parent_class, 'zoom')}",
|
||||
marker_investments_coordinates: investments_coordinates
|
||||
}
|
||||
options[:marker_latitude] = map_location.latitude if map_location.latitude.present?
|
||||
options[:marker_longitude] = map_location.longitude if map_location.longitude.present?
|
||||
options
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -79,10 +79,7 @@
|
||||
|
||||
<div id="map">
|
||||
<h3><%= t("budgets.index.map") %></h3>
|
||||
<!--
|
||||
Pending to include here the map from
|
||||
https://github.com/consul/consul/issues/2300
|
||||
-->
|
||||
<%= render_map(nil, "budgets", false, nil, @budgets_coordinates) %>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
|
||||
@@ -64,8 +64,8 @@ section "Creating Settings" do
|
||||
Setting.create(key: 'verification_offices_url', value: 'http://oficinas-atencion-ciudadano.url/')
|
||||
Setting.create(key: 'min_age_to_participate', value: '16')
|
||||
Setting.create(key: 'proposal_improvement_path', value: nil)
|
||||
Setting.create(key: 'map_latitude', value: 51.48)
|
||||
Setting.create(key: 'map_longitude', value: 0.0)
|
||||
Setting.create(key: 'map_latitude', value: 40.41)
|
||||
Setting.create(key: 'map_longitude', value: -3.7)
|
||||
Setting.create(key: 'map_zoom', value: 10)
|
||||
Setting.create(key: 'related_content_score_threshold', value: -0.3)
|
||||
end
|
||||
@@ -451,6 +451,17 @@ section "Creating Investments" do
|
||||
end
|
||||
end
|
||||
|
||||
section "Geolocating Investments" do
|
||||
Budget.all.each do |budget|
|
||||
budget.investments.each do |investment|
|
||||
MapLocation.create(latitude: 40.4167278 + rand(-10..10)/100.to_f,
|
||||
longitude: -3.7055274 + rand(-10..10)/100.to_f,
|
||||
zoom: 10,
|
||||
investment_id: investment.id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
section "Balloting Investments" do
|
||||
Budget.balloting.last.investments.each do |investment|
|
||||
investment.update(selected: true, feasibility: "feasible")
|
||||
|
||||
Reference in New Issue
Block a user