diff options
author | francis <francis> | 2008-05-18 21:53:15 +0000 |
---|---|---|
committer | francis <francis> | 2008-05-18 21:53:15 +0000 |
commit | c048302b287baf8ea8dc0c6bf080af61fb054f1c (patch) | |
tree | f65235b7946926fabe6dbbe0ed4ebe597fef4e4d /app/controllers/request_controller.rb | |
parent | fb056ea565edc94f5e1b81148c98e58b94f080c6 (diff) |
Show more similar requests.
Remove display of requests to same person / authority as overlaps too much anyway.
Diffstat (limited to 'app/controllers/request_controller.rb')
-rw-r--r-- | app/controllers/request_controller.rb | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/app/controllers/request_controller.rb b/app/controllers/request_controller.rb index 4e2e8703c..063e2fd01 100644 --- a/app/controllers/request_controller.rb +++ b/app/controllers/request_controller.rb @@ -4,7 +4,7 @@ # Copyright (c) 2007 UK Citizens Online Democracy. All rights reserved. # Email: francis@mysociety.org; WWW: http://www.mysociety.org/ # -# $Id: request_controller.rb,v 1.87 2008-05-18 03:47:01 francis Exp $ +# $Id: request_controller.rb,v 1.88 2008-05-18 21:53:15 francis Exp $ class RequestController < ApplicationController @@ -30,24 +30,25 @@ class RequestController < ApplicationController @new_responses_count = @events_needing_description.select {|i| i.event_type == 'response'}.size # Sidebar stuff - limit = 3 + 1 - # ... requests made by same person to same authority - @info_requests_same_user_same_body = InfoRequest.find(:all, :order => "created_at desc", - :conditions => ["prominence = 'normal' and user_id = ? and public_body_id = ? and id <> ?", @info_request.user_id, @info_request.public_body_id, @info_request.id], - :limit => limit) - @info_requests_same_user_same_body_more = false - if @info_requests_same_user_same_body.size == limit - @info_requests_same_user_same_body = @info_requests_same_user_same_body[0, limit - 1] - @info_requests_same_user_same_body_more = true - end + limit = 3 # ... requests that have similar imporant terms @xapian_similar = ::ActsAsXapian::Similar.new([InfoRequestEvent], @info_request.info_request_events, - :limit => limit - 1, :collapse_by_prefix => 'request_collapse') - + :limit => limit, :collapse_by_prefix => 'request_collapse') + @xapian_similar_more = (@xapian_similar.matches_estimated > limit) + # Track corresponding to this page @track_thing = TrackThing.create_track_for_request(@info_request) end + # Requests similar to this one + def similar + @per_page = 25 + @page = (params[:page] || "1").to_i + @info_request = InfoRequest.find_by_url_title(params[:url_title]) + @xapian_object = ::ActsAsXapian::Similar.new([InfoRequestEvent], @info_request.info_request_events, + :offset => (@page - 1) * @per_page, :limit => @per_page, :collapse_by_prefix => 'request_collapse') + end + def list @view = params[:view] |