Skip to content
Extraits de code Groupes Projets
posts_controller.rb 1,81 ko
Newer Older
maxwell's avatar
maxwell a validé
#   Copyright (c) 2010, Diaspora Inc.  This file is
#   licensed under the Affero General Public License version 3 or later.  See
#   the COPYRIGHT file.

class PostsController < ApplicationController
  skip_before_filter :count_requests
  skip_before_filter :set_invites
  skip_before_filter :which_action_and_user
  skip_before_filter :set_grammatical_gender
  def index
    if current_user
Raphael Sofaer's avatar
Raphael Sofaer a validé
      @posts = StatusMessage.joins(:aspects).where(:pending => false
               ).where(Aspect.arel_table[:user_id].eq(current_user.id).or(StatusMessage.arel_table[:public].eq(true))
               ).select('DISTINCT `posts`.*')
    else
Raphael Sofaer's avatar
Raphael Sofaer a validé
      @posts = StatusMessage.where(:public => true, :pending => false)
danielgrippi's avatar
danielgrippi a validé
    params[:tag] ||= 'partytimeexcellent'
danielgrippi's avatar
danielgrippi a validé
    @posts = @posts.tagged_with(params[:tag])
    @posts = @posts.includes(:comments, :photos).paginate(:page => params[:page], :per_page => 15, :order => 'created_at DESC')
    profiles = Profile.tagged_with(params[:tag]).where(:searchable => true).select('profiles.id, profiles.person_id')
    @people = Person.where(:id => profiles.map{|p| p.person_id}).limit(15)
    @people_count = Person.where(:id => profiles.map{|p| p.person_id}).count
    @fakes = PostsFake.new(@posts)
    @commenting_disabled = true
    @pod_url = AppConfig[:pod_uri].host
  end

maxwell's avatar
maxwell a validé
  def show
    @post = Post.where(:id => params[:id], :public => true).includes(:author, :comments => :author).first
maxwell's avatar
maxwell a validé

maxwell's avatar
maxwell a validé
    if @post
maxwell's avatar
maxwell a validé
      @landing_page = true
      @person = @post.author
maxwell's avatar
maxwell a validé
      if @person.owner_id
        I18n.locale = @person.owner.language
        render "posts/#{@post.class.to_s.underscore}", :layout => true
      else
        flash[:error] = "that post does not exist!"
maxwell's avatar
maxwell a validé
        redirect_to root_url
      end
maxwell's avatar
maxwell a validé
    else
      flash[:error] = "that post does not exist!"
maxwell's avatar
maxwell a validé
      redirect_to root_url
Raphael's avatar
Raphael a validé
    end
maxwell's avatar
maxwell a validé
  end
end