Fix matt's code and add it to filters

This commit is contained in:
Christophe Vilayphiou 2012-05-19 03:19:55 +08:00
parent dc4116bc3d
commit 815e6a8361
2 changed files with 24 additions and 14 deletions

View File

@ -32,13 +32,7 @@ class OrbitBackendController< ApplicationController
end
def get_sorted_and_filtered(object_class, query=nil)
object_class = object_class.classify.constantize
if query
objects = object_class.all.where(query)
else
objects = object_class.all
end
objects = get_objects(object_class, query)
if !params[:sort].blank?
options = params[:sort_options]
options = [options] if !options.class.eql?(Array)
@ -157,5 +151,27 @@ class OrbitBackendController< ApplicationController
a = params[:direction].eql?('asc') ? (sorted_tmp + sorted_objects) : (sorted_objects + sorted_tmp)
a.flatten
end
def get_viewable(object_class)
objects = get_objects(object_class)
Kaminari.paginate_array(objects).page(params[:page]).per(10)
end
def get_objects(object_class, query=nil)
object_class = object_class.classify.constantize
if query
objects = object_class.all.where(query).entries
else
objects = object_class.all.entries
end
if(!is_admin? || !is_manager?)
objects.delete_if{ |object|
(object.is_pending == true) && ((!object.send("#{object.class.to_s.underscore}_category").authed_users('fact_check').include?(current_user) rescue nil) || object.create_user_id!=current_user.id)
}
end
objects
end
end

View File

@ -34,7 +34,7 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
# @bulletins = (params[:sort] || @filter) ? get_sorted_and_filtered_bulletins : Bulletin.all.page(params[:page]).per(10)
@bulletins = (params[:sort] || @filter) ? get_sorted_and_filtered("bulletin") : Bulletin.all.page(params[:page]).per(10)
@bulletins = (params[:sort] || @filter) ? get_sorted_and_filtered("bulletin") : get_viewable("bulletin")
@bulletin_categories = BulletinCategory.all
@bulletin_link = BulletinLink.new
@ -42,12 +42,6 @@ class Panel::Announcement::BackEnd::BulletinsController < OrbitBackendController
@bulletin_file = BulletinFile.new
@file_url = panel_announcement_back_end_bulletins_path
if(!is_admin? || !is_manager?)
@bulletins.delete_if{ |bulletin|
bulletin.is_pending == true && ((!bulletin.bulletin_category.authed_users('fact_check').include?(current_user) rescue nil) || bulletin.create_user_id!=current_user.id)
}
end
respond_to do |format|
format.html # index.html.erb