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

display photos correctly

parent 0c245106
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -26,8 +26,7 @@ class PhotosController < ApplicationController
@similar_people = similar_people @contact
end
@posts = current_user.raw_visible_posts.where(
:type => 'Photo',
@posts = current_user.visible_photos.where(
:person_id => @person.id
).paginate(:page => params[:page])
......@@ -136,7 +135,7 @@ class PhotosController < ApplicationController
end
def show
@photo = current_user.find_visible_post_by_id params[:id]
@photo = current_user.visible_photos.where(:id => params[:id]).first
if @photo
@parent = @photo.status_message
......
......@@ -27,6 +27,7 @@ class StatusMessagesController < ApplicationController
@status_message.photos += photos
for photo in photos
photo.public = public_flag
photo.pending = false
photo.save
current_user.add_to_streams(photo, aspects)
current_user.dispatch_post(photo)
......
......@@ -11,14 +11,20 @@ module Diaspora
end
def raw_visible_posts
Post.joins(:post_visibilities => :aspect).where(:pending => false,
Post.joins(:aspects).where(:pending => false,
:aspects => {:user_id => self.id}).select('DISTINCT `posts`.*')
end
def visible_photos
p = Post.arel_table
Post.joins(:aspects).where(p[:status_message_id].not_eq(nil).or(p[:pending].eq(false))
).where(:aspects => {:user_id => self.id}).select('DISTINCT `posts`.*').order("posts.updated_at DESC")
end
def visible_posts( opts = {} )
order = opts.delete(:order)
order ||= 'created_at DESC'
opts[:type] ||= ["StatusMessage","Photo"]
opts[:type] ||= ["StatusMessage", "Photo"]
if (aspect = opts[:by_members_of]) && opts[:by_members_of] != :all
raw_visible_posts.where(:aspects => {:id => aspect.id}).order(order)
......
......@@ -15,11 +15,12 @@ describe PhotosController do
let(:filename) { 'button.png' }
let(:fixture_name) { File.join(File.dirname(__FILE__), '..', 'fixtures', filename) }
let!(:photo1) { user1.post(:photo, :user_file => File.open(fixture_name), :to => aspect1.id) }
let!(:photo2) { user2.post(:photo, :user_file => File.open(fixture_name), :to => aspect2.id) }
let(:photo1) { user1.post(:photo, :user_file => File.open(fixture_name), :to => aspect1.id) }
let(:photo2) { user2.post(:photo, :user_file => File.open(fixture_name), :to => aspect2.id) }
before do
connect_users(user1, aspect1, user2, aspect2)
photo1; photo2
@controller.stub!(:current_user).and_return(user1)
sign_in :user, user1
end
......@@ -57,11 +58,11 @@ describe PhotosController do
assigns[:posts].should == [photo1]
end
it 'sets the person to a contact if person_id is set' do
it "displays another person's pictures" do
get :index, :person_id => user2.person.id.to_s
assigns[:person].should == user2.person
assigns[:posts].should be_empty
assigns[:posts].should == [photo2]
end
end
......
......@@ -60,21 +60,29 @@ describe StatusMessagesController do
old_status_message.reload.message.should == 'hello'
end
it "dispatches all referenced photos" do
fixture_filename = 'button.png'
fixture_name = File.join(File.dirname(__FILE__), '..', 'fixtures', fixture_filename)
photo1 = user1.build_post(:photo, :user_file=> File.open(fixture_name), :to => aspect1.id)
photo2 = user1.build_post(:photo, :user_file=> File.open(fixture_name), :to => aspect1.id)
photo1.save!
photo2.save!
hash = status_message_hash
hash[:photos] = [photo1.id.to_s, photo2.id.to_s]
user1.should_receive(:dispatch_post).exactly(3).times
post :create, hash
context 'with photos' do
before do
fixture_filename = 'button.png'
fixture_name = File.join(File.dirname(__FILE__), '..', 'fixtures', fixture_filename)
@photo1 = user1.build_post(:photo, :user_file=> File.open(fixture_name), :to => aspect1.id)
@photo2 = user1.build_post(:photo, :user_file=> File.open(fixture_name), :to => aspect1.id)
@photo1.save!
@photo2.save!
@hash = status_message_hash
@hash[:photos] = [@photo1.id.to_s, @photo2.id.to_s]
end
it "dispatches all referenced photos" do
user1.should_receive(:dispatch_post).exactly(3).times
post :create, @hash
end
it "sets the pending bit of referenced photos" do
post :create, @hash
@photo1.reload.pending.should be_false
@photo2.reload.pending.should be_false
end
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