Sha256: 2fed4f140324a88c6a27440d747388c2dc2ed8d29ffd92339f4f352f23729408

Contents?: true

Size: 1.22 KB

Versions: 2

Compression:

Stored size: 1.22 KB

Contents

class EstimatesController < ApplicationController
  helper :tasks
  
  verify :method => :post, :redirect_to => '/'
  
  def create
    @success, flash[:notice] = do_create

    unless @success
      @task.errors.add :estimate, flash[:notice]
      render :file => "public/500.html", :layout => true, :status => 500
      return
    end

    redirect_to :controller => 'periods', :action => :show, :id => @task.root_task.period, :task_id => @task.id
  end
  
  def create_ajax
    @task = Task.find_by_id(params[:id])
    @success, flash[:notice] = do_create
    if @task.finished?
      render :template => '/tasks/finish', :layout => false
    end
  end
  
  private
  
  def do_create
    if params[:id]
      @task = Task.find(params[:id])
      if params[:estimate] && params[:estimate][:todo]
        begin
          Float(params[:estimate][:todo])
          @task.estimate(params[:estimate][:todo])
          @period = @task.period
          return true, 'Estimate updated'
          rescue ArgumentError => e
          return false, "Estimate was not numeric"
        end
      else
        return false, "Estimate is missing."
      end
    else
      @estimate = Estimate.new
      return false, 'Task id is missing.'
    end
  end
  
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
backlog-0.37.2 app/controllers/estimates_controller.rb
backlog-0.37.1 app/controllers/estimates_controller.rb