Skip to content
Extraits de code Groupes Projets
Valider f421f132 rédigé par Raphael's avatar Raphael
Parcourir les fichiers

Take nested queried out of aspects manage

parent d3483c1c
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -11,7 +11,7 @@ class AspectsController < ApplicationController
def index
@posts = current_user.visible_posts(:_type => "StatusMessage").paginate :page => params[:page], :per_page => 15, :order => 'created_at DESC'
@post_hashes = hashes_for_posts @posts
@aspect_hashes = hashes_for_aspects @aspects.all, @contacts
@aspect_hashes = hashes_for_aspects @aspects.all, @contacts, :limit => 8
@aspect = :all
@contact_hashes = hashes_for_contacts @contacts
......@@ -78,6 +78,7 @@ class AspectsController < ApplicationController
def manage
@aspect = :manage
@remote_requests = current_user.requests_for_me
@aspect_hashes = hashes_for_aspects @aspects, @contacts
end
def update
......@@ -148,14 +149,14 @@ class AspectsController < ApplicationController
contacts.map{|c| {:contact => c, :person => people_hash[c.person_id.to_id]}}
end
def hashes_for_aspects aspects, contacts
def hashes_for_aspects aspects, contacts, opts = {}
aspects.map do |a|
hash = {:aspect => a}
aspect_contacts = contacts.select{|c|
c.aspect_ids.include?(a.id)}
hash[:contact_count] = aspect_contacts.count
person_ids = aspect_contacts.map{|c| c.person_id}
hash[:people] = Person.all(:id.in => person_ids, :limit => 8)
hash[:people] = Person.all({:id.in => person_ids}.merge(opts))
hash
end
end
......
......@@ -33,30 +33,30 @@
= render 'shared/invitations', :invites => @invites
.span-19.last
- for aspect in @aspects
.aspect.span-9{:data=>{:guid=>aspect.id}}
- for hash in @aspect_hashes
.aspect.span-9{:data=>{:guid=>hash[:aspect].id}}
.aspect_name
%span.edit_name_field
%h3{:contenteditable=>true}
= aspect.name
= hash[:aspect].name
%span.tip click to edit
%ul.tools
%li= link_to t('.add_a_new_contact'), "#manage_aspect_contacts_pane_#{aspect.id}", :class => 'manage_aspect_contacts_button'
%li!= remove_link(aspect)
%li= link_to t('.add_a_new_contact'), "#manage_aspect_contacts_pane_#{hash[:aspect].id}", :class => 'manage_aspect_contacts_button'
%li!= remove_link(hash[:aspect])
%ul.dropzone{:data=>{:aspect_id=>aspect.id}}
-for contact in aspect.contacts
%li.person{:data=>{:guid=>contact.person.id, :aspect_id=>aspect.id}}
%ul.dropzone{:data=>{:aspect_id=>hash[:aspect].id}}
-for person in hash[:people]
%li.person{:data=>{:guid=>person.id, :aspect_id=>hash[:aspect].id}}
.delete
.x
X
.circle
= link_to person_image_tag(contact.person), contact.person
= link_to person_image_tag(person), person
.draggable_info
=t('.drag_to_add')
.fancybox_content
%div{:id => "manage_aspect_contacts_pane_#{aspect.id}"}
= render "requests/manage_aspect_contacts", :aspect_name => aspect.name, :aspect_id => aspect.id, :manage => true
%div{:id => "manage_aspect_contacts_pane_#{hash[:aspect].id}"}
= render "requests/manage_aspect_contacts", :aspect_name => hash[:aspect].name, :aspect_id => hash[:aspect].id, :manage => true
......@@ -179,7 +179,7 @@ describe AspectsController do
10.times {@people << Factory.create(:person)}
@people.each{|p| @user.reload.activate_contact(p, @user.aspects.first.reload)}
@user.reload
@hashes = @controller.send(:hashes_for_aspects, @user.aspects, @user.contacts)
@hashes = @controller.send(:hashes_for_aspects, @user.aspects, @user.contacts, :limit => 9)
@hash = @hashes.first
@aspect = @user.aspects.first
end
......@@ -195,8 +195,8 @@ describe AspectsController do
gotten_people = @hash[:people].map{|p| p.diaspora_handle}
gotten_people.each{|p| desired_people.should include p}
end
it 'has at most 8 people' do
@hash[:people].length.should == 8
it 'takes a limit on people returned' do
@hash[:people].length.should == 9
end
end
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter