class ContestnotificationsController < ApplicationController # GET /contestnotifications # GET /contestnotifications.json layout 'base_contest' default_search_scope :contestnotification model_object Contestnotification before_filter :find_model_object_contest, :except => [:new, :create, :index] before_filter :find_contest_from_association, :except => [:new, :create, :index] before_filter :find_contest_by_contest_id, :only => [:new, :create] before_filter :authorize, :except => [:index] before_filter :find_optional_contest, :only => :index accept_rss_auth :index accept_api_auth :index def index # @contestnotifications = Contestnotification.all # # respond_to do |format| # format.html # index.html.erb # format.json { render json: @contestnotifications } # end ### begin ### case params[:format] when 'xml', 'json' @offset, @limit = api_offset_and_limit else @limit = 10 end scope = @contest ? @contest.contestnotification.visible : Contestnotification.visible @contestnotification_count = scope.count @contestnotification_pages = Paginator.new @contestnotification_count, @limit, params['page'] @offset ||= @contestnotification_pages.offset @contestnotifications = scope.all(:include => [:author, :contest], :order => "#{Contestnotification.table_name}.created_on DESC", :offset => @offset, :limit => @limit) respond_to do |format| format.html { @contestnotification = Contestnotification.new # for adding news inline render :layout => 'base_contest' } format.api format.atom { render_feed(@contestnotifications, :title => (@contest ? @contest.name : Setting.app_title) + ": #{l(:label_contest_notification)}") } end ### end ### end # GET /contestnotifications/1 # GET /contestnotifications/1.json def show # @contestnotification = Contestnotification.find(params[:id]) # # respond_to do |format| # format.html # show.html.erb # format.json { render json: @contestnotification } # end @comments = @contestnotification.comments @comments.reverse! if User.current.wants_comments_in_reverse_order? render :layout => 'base_contest' end # GET /contestnotifications/new # GET /contestnotifications/new.json def new # @contestnotification = Contestnotification.new # # respond_to do |format| # format.html # new.html.erb # format.json { render json: @contestnotification } # end @contestnotification = Contestnotification.new(:contest => @contest, :author => User.current) render :layout => 'base_contest' end # GET /contestnotifications/1/edit def edit # @contestnotification = Contestnotification.find(params[:id]) end # POST /contestnotifications # POST /contestnotifications.json def create # @contestnotification = Contestnotification.new(params[:contestnotification]) # # respond_to do |format| # if @contestnotification.save # format.html { redirect_to @contestnotification, notice: 'Contestnotification was successfully created.' } # format.json { render json: @contestnotification, status: :created, location: @contestnotification } # else # format.html { render action: "new" } # format.json { render json: @contestnotification.errors, status: :unprocessable_entity } # end # end @contestnotification = Contestnotification.new(:contest => @contest, :author => User.current) @contestnotification.safe_attributes = params[:contestnotification] @news.save_attachments(params[:attachments]) if @contestnotification.save render_attachment_warning_if_needed(@contestnotification) flash[:notice] = l(:notice_successful_create) redirect_to project_news_index_path(@contest) else layout_file = 'base_contest' render :action => 'new', :layout => layout_file end end # PUT /contestnotifications/1 # PUT /contestnotifications/1.json def update # @contestnotification = Contestnotification.find(params[:id]) # # respond_to do |format| # if @contestnotification.update_attributes(params[:contestnotification]) # format.html { redirect_to @contestnotification, notice: 'Contestnotification was successfully updated.' } # format.json { head :no_content } # else # format.html { render action: "edit" } # format.json { render json: @contestnotification.errors, status: :unprocessable_entity } # end # end @contestnotification.safe_attributes = params[:contestnotification] @contestnotification.save_attachments(params[:attachments]) if @contestnotification.save render_attachment_warning_if_needed(@contestnotification) flash[:notice] = l(:notice_successful_update) redirect_to contestnotification_path(@contestnotification) else render :action => 'edit' end end # DELETE /contestnotifications/1 # DELETE /contestnotifications/1.json def destroy # @contestnotification = Contestnotification.find(params[:id]) # @contestnotification.destroy # # respond_to do |format| # format.html { redirect_to contestnotifications_url } # format.json { head :no_content } # end @contestnotification.destroy redirect_to contest_contestnotification_index_path(@contest) end private def find_optional_contest return true unless params[:contest_id] @contest = Contest.find(params[:contest_id]) authorize rescue ActiveRecord::RecordNotFound render_404 end end