From: Andy Allan Date: Wed, 22 Nov 2017 10:47:18 +0000 (+0000) Subject: Merge branch 'p' of https://github.com/jfirebaugh/openstreetmap-website into jfirebaugh-p X-Git-Tag: live~3213 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/15b104f4ff4614aa78c01180b6a9b89dd5a1400f?hp=6e612d953a555cabd24b49aa9e7d008c6b077086 Merge branch 'p' of https://github.com/jfirebaugh/openstreetmap-website into jfirebaugh-p Refs #139 --- diff --git a/app/controllers/api_controller.rb b/app/controllers/api_controller.rb index 9324a8ed5..c6cc3ba5f 100644 --- a/app/controllers/api_controller.rb +++ b/app/controllers/api_controller.rb @@ -193,7 +193,7 @@ class ApiController < ApplicationController # this "uniq" may be slightly inefficient; it may be better to first collect and output # all node-related relations, then find the *not yet covered* way-related ones etc. relations.uniq.each do |relation| - doc.root << relation.to_xml_node(nil, changeset_cache, user_display_name_cache) + doc.root << relation.to_xml_node(changeset_cache, user_display_name_cache) end response.headers["Content-Disposition"] = "attachment; filename=\"map.osm\"" diff --git a/app/controllers/relation_controller.rb b/app/controllers/relation_controller.rb index 80fd51997..25532a95c 100644 --- a/app/controllers/relation_controller.rb +++ b/app/controllers/relation_controller.rb @@ -91,7 +91,6 @@ class RelationController < ApplicationController # create XML. doc = OSM::API.new.get_xml_doc visible_nodes = {} - visible_members = { "Node" => {}, "Way" => {}, "Relation" => {} } changeset_cache = {} user_display_name_cache = {} @@ -100,25 +99,22 @@ class RelationController < ApplicationController doc.root << node.to_xml_node(changeset_cache, user_display_name_cache) visible_nodes[node.id] = node - visible_members["Node"][node.id] = true end ways.each do |way| next unless way.visible? # should be unnecessary if data is consistent. doc.root << way.to_xml_node(visible_nodes, changeset_cache, user_display_name_cache) - visible_members["Way"][way.id] = true end relations.each do |rel| next unless rel.visible? # should be unnecessary if data is consistent. - doc.root << rel.to_xml_node(nil, changeset_cache, user_display_name_cache) - visible_members["Relation"][rel.id] = true + doc.root << rel.to_xml_node(changeset_cache, user_display_name_cache) end # finally add self and output - doc.root << relation.to_xml_node(visible_members, changeset_cache, user_display_name_cache) + doc.root << relation.to_xml_node(changeset_cache, user_display_name_cache) render :xml => doc.to_s else diff --git a/app/controllers/search_controller.rb b/app/controllers/search_controller.rb index 4b8b2f402..0d40b6691 100644 --- a/app/controllers/search_controller.rb +++ b/app/controllers/search_controller.rb @@ -91,7 +91,7 @@ class SearchController < ApplicationController end relations.each do |rel| - doc.root << rel.to_xml_node(nil, changeset_cache, user_display_name_cache) + doc.root << rel.to_xml_node(changeset_cache, user_display_name_cache) end render :xml => doc.to_s diff --git a/app/models/relation.rb b/app/models/relation.rb index 275cafec2..157794cd6 100644 --- a/app/models/relation.rb +++ b/app/models/relation.rb @@ -122,25 +122,13 @@ class Relation < ActiveRecord::Base doc end - def to_xml_node(visible_members = nil, changeset_cache = {}, user_display_name_cache = {}) + def to_xml_node(changeset_cache = {}, user_display_name_cache = {}) el = XML::Node.new "relation" el["id"] = id.to_s add_metadata_to_xml_node(el, self, changeset_cache, user_display_name_cache) relation_members.each do |member| - p = 0 - - if visible_members - # if there is a list of visible members then use that to weed out deleted segments - p = 1 if visible_members[member.member_type][member.member_id] - else - # otherwise, manually go to the db to check things - p = 1 if member.member.visible? - end - - next unless p - member_el = XML::Node.new "member" member_el["type"] = member.member_type.downcase member_el["ref"] = member.member_id.to_s