From e3d21de1cb4e01d20307684476a359f312eecdc1 Mon Sep 17 00:00:00 2001 From: Stella Date: Sun, 4 May 2014 13:09:49 +0300 Subject: [PATCH 1/4] Fix cfp create and error display --- .../admin/callforpapers_controller.rb | 30 ++++++++++++------- app/models/call_for_papers.rb | 2 +- app/views/admin/callforpapers/index.html.haml | 2 +- config/routes.rb | 2 +- 4 files changed, 23 insertions(+), 13 deletions(-) diff --git a/app/controllers/admin/callforpapers_controller.rb b/app/controllers/admin/callforpapers_controller.rb index 3d8f8768..b6eea81b 100644 --- a/app/controllers/admin/callforpapers_controller.rb +++ b/app/controllers/admin/callforpapers_controller.rb @@ -5,28 +5,38 @@ class Admin::CallforpapersController < ApplicationController @cfp = @conference.call_for_papers if @cfp.nil? @cfp = CallForPapers.new + @url = admin_conference_callforpapers_path(@conference.short_title) + else + @url = admin_conference_callforpaper_path(@conference.short_title, @cfp) end end def update @cfp = @conference.call_for_papers - @cfp.update_attributes(params[:call_for_papers]) - redirect_to(admin_conference_callforpapers_path( - id: @conference.short_title), - notice: 'Call for Papers was successfully updated.') + if @cfp.update_attributes(params[:call_for_papers]) + redirect_to(admin_conference_callforpapers_path( + @conference.short_title), + notice: 'Call for Papers was successfully updated.') + else + flash.now[:error] = 'Call for Papers update failed. ' + @cfp.errors.full_messages.map {|e| e.humanize + "."}.join(" ") + + @url = admin_conference_callforpaper_path(@conference.short_title, @cfp) + render action: "index" + end end def create @cfp = CallForPapers.new(params[:call_for_papers]) - @conference.call_for_papers = @cfp + @cfp.conference_id = @conference.id if @cfp.save redirect_to(admin_conference_callforpapers_path( - id: @conference.short_title), - notice: 'Call for Papers was successfully updated.') + @conference.short_title), + notice: 'Call for Papers was successfully created.') else - redirect_to(admin_conference_callforpapers_path( - id: @conference.short_title), - error: 'Call for Papers failed.') + flash.now[:error] = 'Call for Papers creation failed. ' + @cfp.errors.full_messages.map {|e| e.humanize + "."}.join(" ") + + @url = admin_conference_callforpapers_path(@conference.short_title) + render action: "index" end end end diff --git a/app/models/call_for_papers.rb b/app/models/call_for_papers.rb index 10cb7f80..fbff8843 100644 --- a/app/models/call_for_papers.rb +++ b/app/models/call_for_papers.rb @@ -2,7 +2,7 @@ class CallForPapers < ActiveRecord::Base attr_accessible :start_date, :end_date, :hard_deadline, :description, :schedule_changes, :rating, :rating_desc, :schedule_public belongs_to :conference - validates_presence_of :start_date, :end_date, :hard_deadline + validates_presence_of :start_date, :end_date, :hard_deadline, :description validates :rating, :numericality => { :greater_than_or_equal_to => 0, :less_than_or_equal_to => 10 } end diff --git a/app/views/admin/callforpapers/index.html.haml b/app/views/admin/callforpapers/index.html.haml index 79ce99dc..d260943c 100644 --- a/app/views/admin/callforpapers/index.html.haml +++ b/app/views/admin/callforpapers/index.html.haml @@ -2,7 +2,7 @@ .col-md-3 = render 'admin/conference/sidebar' .col-md-9 - = semantic_form_for(@cfp, :url => admin_conference_callforpaper_path(@conference.short_title, @conference.call_for_papers),:html => {:multipart => true}) do |f| + = semantic_form_for(@cfp, url: @url,:html => {:multipart => true}) do |f| = f.input :start_date, :as => :string, :input_html => { :id => "conference-start-datepicker", :readonly => "readonly" } = f.input :end_date, :as => :string, :input_html => { :id => "conference-end-datepicker", :readonly => "readonly" } = f.input :hard_deadline, :as => :string, :input_html => { :id => "cfp-hard-datepicker", :readonly => "readonly" } diff --git a/config/routes.rb b/config/routes.rb index eb88be3a..a32427b5 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -31,7 +31,7 @@ Osem::Application.routes.draw do resources :social_events, only: [:show, :update, :index] resources :supporter_levels, only: [:show, :update, :index] resources :emails, only: [:show, :update, :index] - resources :callforpapers, only: [:show, :update, :index] + resources :callforpapers, only: [:create, :update, :index] put "/questions/update_conference" => "questions#update_conference" resources :questions resources :events do From 5479871a30615396ced6edfed8fa89cf62e8634f Mon Sep 17 00:00:00 2001 From: Stella Date: Sun, 4 May 2014 13:23:53 +0300 Subject: [PATCH 2/4] fixes according to houndci guidelines --- app/controllers/admin/callforpapers_controller.rb | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/controllers/admin/callforpapers_controller.rb b/app/controllers/admin/callforpapers_controller.rb index b6eea81b..64432aa7 100644 --- a/app/controllers/admin/callforpapers_controller.rb +++ b/app/controllers/admin/callforpapers_controller.rb @@ -18,10 +18,11 @@ class Admin::CallforpapersController < ApplicationController @conference.short_title), notice: 'Call for Papers was successfully updated.') else - flash.now[:error] = 'Call for Papers update failed. ' + @cfp.errors.full_messages.map {|e| e.humanize + "."}.join(" ") + flash.now[:error] = 'Call for Papers update failed. ' + + @cfp.errors.full_messages.map { |e| e.humanize + '.' }.join(' ') @url = admin_conference_callforpaper_path(@conference.short_title, @cfp) - render action: "index" + render action: 'index' end end @@ -33,7 +34,8 @@ class Admin::CallforpapersController < ApplicationController @conference.short_title), notice: 'Call for Papers was successfully created.') else - flash.now[:error] = 'Call for Papers creation failed. ' + @cfp.errors.full_messages.map {|e| e.humanize + "."}.join(" ") + flash.now[:error] = 'Call for Papers creation failed. ' + + @cfp.errors.full_messages.map { |e| e.humanize + '.' }.join(' ') @url = admin_conference_callforpapers_path(@conference.short_title) render action: "index" From 843030590e6a0a2173d32bba4edd99f8deb6c0ff Mon Sep 17 00:00:00 2001 From: Stella Date: Sun, 4 May 2014 13:30:32 +0300 Subject: [PATCH 3/4] fixes according to houndci guidelines --- app/controllers/admin/callforpapers_controller.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/admin/callforpapers_controller.rb b/app/controllers/admin/callforpapers_controller.rb index 64432aa7..95a9d416 100644 --- a/app/controllers/admin/callforpapers_controller.rb +++ b/app/controllers/admin/callforpapers_controller.rb @@ -19,7 +19,7 @@ class Admin::CallforpapersController < ApplicationController notice: 'Call for Papers was successfully updated.') else flash.now[:error] = 'Call for Papers update failed. ' + - @cfp.errors.full_messages.map { |e| e.humanize + '.' }.join(' ') + @cfp.errors.full_messages.map { |e| e.humanize + '.' }.join(' ') @url = admin_conference_callforpaper_path(@conference.short_title, @cfp) render action: 'index' @@ -34,8 +34,8 @@ class Admin::CallforpapersController < ApplicationController @conference.short_title), notice: 'Call for Papers was successfully created.') else - flash.now[:error] = 'Call for Papers creation failed. ' + - @cfp.errors.full_messages.map { |e| e.humanize + '.' }.join(' ') + flash.now[:error] = 'Call for Papers creation failed. ' + + @cfp.errors.full_messages.map { |e| e.humanize + '.' }.join(' ') @url = admin_conference_callforpapers_path(@conference.short_title) render action: "index" From f9c6471c184a2976143559d75c09299a477bf8aa Mon Sep 17 00:00:00 2001 From: Stella Date: Sun, 4 May 2014 13:44:56 +0300 Subject: [PATCH 4/4] fixes according to houndci guidelines --- app/controllers/admin/callforpapers_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/admin/callforpapers_controller.rb b/app/controllers/admin/callforpapers_controller.rb index 95a9d416..892bea76 100644 --- a/app/controllers/admin/callforpapers_controller.rb +++ b/app/controllers/admin/callforpapers_controller.rb @@ -19,7 +19,7 @@ class Admin::CallforpapersController < ApplicationController notice: 'Call for Papers was successfully updated.') else flash.now[:error] = 'Call for Papers update failed. ' + - @cfp.errors.full_messages.map { |e| e.humanize + '.' }.join(' ') + @cfp.errors.full_messages.map { |e| e.humanize + '.' }.join(' ') @url = admin_conference_callforpaper_path(@conference.short_title, @cfp) render action: 'index' @@ -35,7 +35,7 @@ class Admin::CallforpapersController < ApplicationController notice: 'Call for Papers was successfully created.') else flash.now[:error] = 'Call for Papers creation failed. ' + - @cfp.errors.full_messages.map { |e| e.humanize + '.' }.join(' ') + @cfp.errors.full_messages.map { |e| e.humanize + '.' }.join(' ') @url = admin_conference_callforpapers_path(@conference.short_title) render action: "index"