X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/cc311ff3012a4d8d829ff87ebb49a7512fa2a57a..22bef89d1a97bf8206a951cc777061792a868b02:/app/controllers/map_bugs_controller.rb diff --git a/app/controllers/map_bugs_controller.rb b/app/controllers/map_bugs_controller.rb index 2de11ba75..f4105929f 100644 --- a/app/controllers/map_bugs_controller.rb +++ b/app/controllers/map_bugs_controller.rb @@ -37,16 +37,16 @@ class MapBugsController < ApplicationController limit = getLimit conditions = closedCondition - check_boundaries(@min_lon, @min_lat, @max_lon, @max_lat, :false) + check_boundaries(@min_lon, @min_lat, @max_lon, @max_lat, MAX_BUG_REQUEST_AREA) - @bugs = MapBug.find_by_area_no_quadtile(@min_lat, @min_lon, @max_lat, @max_lon, :include => :map_bug_comment, :order => "last_changed DESC", :limit => limit, :conditions => conditions) + @bugs = MapBug.find_by_area(@min_lat, @min_lon, @max_lat, @max_lon, :include => :comments, :order => "last_changed DESC", :limit => limit, :conditions => conditions) respond_to do |format| format.html {render :template => 'map_bugs/get_bugs.js', :content_type => "text/javascript"} format.rss {render :template => 'map_bugs/get_bugs.rss'} format.js format.xml {render :template => 'map_bugs/get_bugs.xml'} - format.json { render :json => @bugs.to_json(:methods => [:lat, :lon], :only => [:id, :status, :date_created], :include => { :map_bug_comment => { :only => [:commenter_name, :date_created, :comment]}}) } + format.json { render :json => @bugs.to_json(:methods => [:lat, :lon], :only => [:id, :status, :date_created], :include => { :comments => { :only => [:commenter_name, :date_created, :comment]}}) } format.gpx {render :template => 'map_bugs/get_bugs.gpx'} end end @@ -127,36 +127,26 @@ class MapBugsController < ApplicationController render_ok end - def rss + limit = getLimit + conditions = closedCondition + # Figure out the bbox bbox = params['bbox'] if bbox and bbox.count(',') == 3 bbox = bbox.split(',') @min_lon, @min_lat, @max_lon, @max_lat = sanitise_boundaries(bbox) - else - @min_lon = -180.0 - @min_lat = -90.0 - @max_lon = 180.0 - @max_lat = 90.0 - end - limit = getLimit - conditions = closedCondition - conditions = cond_merge conditions, [OSM.sql_for_area_no_quadtile(@min_lat, @min_lon, @max_lat, @max_lon)] - - check_boundaries(@min_lon, @min_lat, @max_lon, @max_lat, :false) + check_boundaries(@min_lon, @min_lat, @max_lon, @max_lat, MAX_BUG_REQUEST_AREA) + + conditions = cond_merge conditions, [OSM.sql_for_area(@min_lat, @min_lon, @max_lat, @max_lon)] + end @comments = MapBugComment.find(:all, :limit => limit, :order => "date_created DESC", :joins => :map_bug, :include => :map_bug, :conditions => conditions) render :template => 'map_bugs/rss.rss' end - def gpx_bugs - request.format = :xml - get_bugs - end - def read @bug = MapBug.find(params['id']) raise OSM::APINotFoundError unless @bug @@ -165,7 +155,7 @@ class MapBugsController < ApplicationController respond_to do |format| format.rss format.xml - format.json { render :json => @bug.to_json(:methods => [:lat, :lon], :only => [:id, :status, :date_created], :include => { :map_bug_comment => { :only => [:commenter_name, :date_created, :comment]}}) } + format.json { render :json => @bug.to_json(:methods => [:lat, :lon], :only => [:id, :status, :date_created], :include => { :comments => { :only => [:commenter_name, :date_created, :comment]}}) } format.gpx end end @@ -192,7 +182,7 @@ class MapBugsController < ApplicationController #TODO: There should be a better way to do this. CloseConditions are ignored at the moment - bugs2 = MapBug.find(:all, :limit => limit, :order => "last_changed DESC", :joins => :map_bug_comment, :include => :map_bug_comment, + bugs2 = MapBug.find(:all, :limit => limit, :order => "last_changed DESC", :joins => :comments, :include => :comments, :conditions => conditions) @bugs = bugs2.uniq respond_to do |format| @@ -200,7 +190,7 @@ class MapBugsController < ApplicationController format.rss {render :template => 'map_bugs/get_bugs.rss'} format.js format.xml {render :template => 'map_bugs/get_bugs.xml'} - format.json { render :json => @bugs.to_json(:methods => [:lat, :lon], :only => [:id, :status, :date_created], :include => { :map_bug_comment => { :only => [:commenter_name, :date_created, :comment]}}) } + format.json { render :json => @bugs.to_json(:methods => [:lat, :lon], :only => [:id, :status, :date_created], :include => { :comments => { :only => [:commenter_name, :date_created, :comment]}}) } format.gpx {render :template => 'map_bugs/get_bugs.gpx'} end end @@ -235,8 +225,8 @@ class MapBugsController < ApplicationController @page_size = 10 @bugs = MapBug.find(:all, - :include => [:map_bug_comment, {:map_bug_comment => :user}], - :joins => :map_bug_comment, + :include => [:comments, {:comments => :user}], + :joins => :comments, :order => "last_changed DESC", :conditions => conditions, :offset => (@page - 1) * @page_size, @@ -298,7 +288,7 @@ private def add_comment(bug, comment, name,event) t = Time.now.getutc - bug_comment = bug.map_bug_comment.create(:date_created => t, :visible => true, :event => event) + bug_comment = bug.comments.create(:date_created => t, :visible => true, :event => event) bug_comment.comment = comment unless comment == :nil if @user bug_comment.commenter_id = @user.id @@ -312,7 +302,7 @@ private bug.save sent_to = Set.new - bug.map_bug_comment.each do | cmt | + bug.comments.each do | cmt | if cmt.user unless sent_to.include?(cmt.user) Notifier.deliver_bug_comment_notification(bug_comment, cmt.user) unless cmt.user == @user