@@ -9,35 +9,27 @@ def index
99 authorize :wrangling , :full_access? if logged_in_as_admin?
1010
1111 @wranglers = Role . find_by ( name : "tag_wrangler" ) . users . alphabetical
12- conditions = [ "canonical = 1" ]
13- joins = "LEFT JOIN wrangling_assignments ON (wrangling_assignments.fandom_id = tags.id)
14- LEFT JOIN users ON (users.id = wrangling_assignments.user_id)"
15- unless params [ :fandom_string ] . blank?
16- conditions . first << " AND name LIKE ?"
17- conditions << params [ :fandom_string ] + "%"
18- end
19- unless params [ :wrangler_id ] . blank?
12+
13+ @assignments = Fandom . in_use . joins ( "LEFT JOIN wrangling_assignments ON (wrangling_assignments.fandom_id = tags.id)
14+ LEFT JOIN users ON (users.id = wrangling_assignments.user_id)" ) . where ( canonical : true )
15+
16+ @assignments = @assignments . where ( "name LIKE ?" , "#{ Fandom . sanitize_sql_like ( params [ :fandom_string ] ) } %" ) if params [ :fandom_string ] . present?
17+
18+ if params [ :wrangler_id ] . present?
2019 if params [ :wrangler_id ] == "No Wrangler"
21- conditions . first << " AND users.id IS NULL"
20+ @assignments = @assignments . where ( users : { id : nil } )
2221 else
2322 @wrangler = User . find_by ( login : params [ :wrangler_id ] )
24- if @wrangler
25- conditions . first << " AND users.id = #{ @wrangler . id } "
26- end
23+ @assignments = @assignments . where ( users : { id : @wrangler . id } ) if @wrangler
2724 end
2825 end
29- unless params [ :media_id ] . blank?
26+
27+ if params [ :media_id ] . present?
3028 @media = Media . find_by_name ( params [ :media_id ] )
31- if @media
32- joins << " INNER JOIN common_taggings ON (tags.id = common_taggings.common_tag_id)"
33- conditions . first << " AND common_taggings.filterable_id = #{ @media . id } AND common_taggings.filterable_type = 'Tag'"
34- end
29+ @assignments = @assignments . joins ( :common_taggings ) . where ( common_taggings : { filterable : @media } ) if @media
3530 end
36- @assignments = Fandom . in_use . joins ( joins )
37- . select ( 'tags.*, users.login AS wrangler' )
38- . where ( conditions )
39- . order ( :name )
40- . paginate ( page : params [ :page ] , per_page : 50 )
31+
32+ @assignments = @assignments . select ( "tags.*, users.login AS wrangler" ) . order ( :name ) . paginate ( page : params [ :page ] , per_page : 50 )
4133 end
4234
4335 def show
0 commit comments