diff --git a/app/controllers/contexts_controller.rb b/app/controllers/contexts_controller.rb index b1ff4c1b..c6510c40 100644 --- a/app/controllers/contexts_controller.rb +++ b/app/controllers/contexts_controller.rb @@ -83,7 +83,7 @@ class ContextsController < ApplicationController end format.xml do if @context.new_record? - render_failure @context.errors.to_xml.html_safe, 409 + render_failure @context.errors.full_messages.to_xml(root: "errors", skip_types: true).html_safe, 409 else head :created, :location => context_url(@context) end diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index e116bb08..5d75d7c9 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -186,7 +186,7 @@ class ProjectsController < ApplicationController end format.xml do if @project.new_record? - render_failure @project.errors.to_xml.html_safe, 409 + render_failure @project.errors.full_messages.to_xml(root: "errors", skip_types: true).html_safe, 409 else head :created, :location => project_url(@project), :text => @project.id end diff --git a/app/controllers/todos_controller.rb b/app/controllers/todos_controller.rb index 9c98c88d..1c852420 100644 --- a/app/controllers/todos_controller.rb +++ b/app/controllers/todos_controller.rb @@ -154,7 +154,7 @@ class TodosController < ApplicationController if @saved head :created, :location => todo_url(@todo) else - render_failure @todo.errors.to_xml.html_safe, 409 + render_failure @todo.errors.full_messages.to_xml(root: "errors", skip_types: true).html_safe, 409 end end end @@ -438,7 +438,7 @@ class TodosController < ApplicationController rescue ActiveRecord::RecordInvalid => exception record = exception.record if record.is_a?(Dependency) - record.errors.each { |key, value| @todo.errors[key] << value } + record.errors.each { |key, value| @todo.errors.add(key, value) } end @saved = false end @@ -1192,7 +1192,7 @@ end begin parse_date_per_user_prefs(date) rescue - @todo.errors[:base] << error_msg + @todo.errors.add(:base, error_msg) end end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 8198025a..30b63172 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -125,7 +125,7 @@ class UsersController < ApplicationController unless user.new_record? render :body => t('users.user_created'), :status => 200 else - render_failure user.errors.to_xml, 409 + render_failure user.errors.full_messages.to_xml(root: "errors", skip_types: true), 409 end return end diff --git a/app/models/recurring_todos/abstract_recurrence_pattern.rb b/app/models/recurring_todos/abstract_recurrence_pattern.rb index 91276f2e..2ad33b34 100644 --- a/app/models/recurring_todos/abstract_recurrence_pattern.rb +++ b/app/models/recurring_todos/abstract_recurrence_pattern.rb @@ -80,11 +80,11 @@ module RecurringTodos end def validate_not_blank(object, msg) - errors[:base] << msg if object.blank? + errors.add(:base, msg) if object.blank? end def validate_not_nil(object, msg) - errors[:base] << msg if object.nil? + errors.add(:base, msg) if object.nil? end def validate @@ -100,7 +100,7 @@ module RecurringTodos when "ends_on_end_date" validate_not_blank(end_date, "The end date needs to be filled in for 'Ends on'") else - errors[:base] << "The end of the recurrence is not selected" unless ends_on == "no_end_date" + errors.add(:base, "The end of the recurrence is not selected") unless ends_on == "no_end_date" end end @@ -113,7 +113,7 @@ module RecurringTodos validate_not_nil(show_always?, "Please select when to show the action") validate_not_blank(show_from_delta, "Please fill in the number of days to show the todo before the due date") unless show_always? else - errors[:base] << "Unexpected value of recurrence target selector '#{target}'" + errors.add(:base, "Unexpected value of recurrence target selector '#{target}'") end end diff --git a/app/models/recurring_todos/daily_recurrence_pattern.rb b/app/models/recurring_todos/daily_recurrence_pattern.rb index 35a0ea16..8caaa716 100644 --- a/app/models/recurring_todos/daily_recurrence_pattern.rb +++ b/app/models/recurring_todos/daily_recurrence_pattern.rb @@ -24,7 +24,7 @@ module RecurringTodos def validate super - errors[:base] << "Every other nth day may not be empty for this daily recurrence setting" if (!only_work_days?) && every_x_days.blank? + errors.add(:base, "Every other nth day may not be empty for this daily recurrence setting") if (!only_work_days?) && every_x_days.blank? end def get_next_date(previous) diff --git a/app/models/recurring_todos/weekly_recurrence_pattern.rb b/app/models/recurring_todos/weekly_recurrence_pattern.rb index 5ba3a13f..c554b016 100644 --- a/app/models/recurring_todos/weekly_recurrence_pattern.rb +++ b/app/models/recurring_todos/weekly_recurrence_pattern.rb @@ -30,7 +30,7 @@ module RecurringTodos super validate_not_blank(every_x_week, "Every other nth week may not be empty for weekly recurrence setting") something_set = %w{ sunday monday tuesday wednesday thursday friday saturday }.inject(false) { |set, day| set || send("on_#{day}") } - errors[:base] << "You must specify at least one day on which the todo recurs" unless something_set + errors.add(:base, "You must specify at least one day on which the todo recurs") unless something_set end def get_next_date(previous) diff --git a/db/migrate/038_projects_contexts_remove_not_null_from_position.rb b/db/migrate/038_projects_contexts_remove_not_null_from_position.rb index af167857..45ea7c26 100644 --- a/db/migrate/038_projects_contexts_remove_not_null_from_position.rb +++ b/db/migrate/038_projects_contexts_remove_not_null_from_position.rb @@ -1,7 +1,7 @@ class ProjectsContextsRemoveNotNullFromPosition < ActiveRecord::Migration[5.2] def self.up - change_column :projects, :position, :integer, {:null => true, :default => nil} - change_column :contexts, :position, :integer, {:null => true, :default => nil} + change_column :projects, :position, :integer, :null => true, :default => nil + change_column :contexts, :position, :integer, :null => true, :default => nil end def self.down @@ -10,13 +10,13 @@ class ProjectsContextsRemoveNotNullFromPosition < ActiveRecord::Migration[5.2] project.position = 0 if !project.position? project.save end - change_column :projects, :position, :integer, {:null => false, :default => nil} + change_column :projects, :position, :integer, :null => false, :default => nil @contexts = Context.find(:all) @contexts.each do |context| context.position = 0 if !context.position? context.save end - change_column :contexts, :position, :integer, {:null => false, :default => nil} + change_column :contexts, :position, :integer, :null => false, :default => nil end end diff --git a/test/models/todo_test.rb b/test/models/todo_test.rb index c257c0fe..dd1e084b 100644 --- a/test/models/todo_test.rb +++ b/test/models/todo_test.rb @@ -102,7 +102,7 @@ class TodoTest < ActiveSupport::TestCase @not_completed2 assert_equal :active, @not_completed2.aasm.current_state @not_completed2.show_from = Time.zone.now + 1.week - assert @not_completed2.save, "should have saved successfully" + @not_completed2.errors.to_xml + assert @not_completed2.save, "should have saved successfully " + @not_completed2.errors.full_messages.to_s assert_equal :deferred, @not_completed2.aasm.current_state end @@ -112,14 +112,14 @@ class TodoTest < ActiveSupport::TestCase todo.show_from = next_week todo.context_id = 1 todo.description = 'foo' - assert todo.save, "should have saved successfully" + todo.errors.to_xml + assert todo.save, "should have saved successfully" + todo.errors.full_messages.to_s assert_equal :deferred, todo.aasm.current_state end def test_create_a_new_deferred_todo_by_passing_attributes user = users(:other_user) todo = user.todos.build(:show_from => next_week, :context_id => 1, :description => 'foo') - assert todo.save, "should have saved successfully" + todo.errors.to_xml + assert todo.save, "should have saved successfully " + todo.errors.full_messages.to_s assert_equal :deferred, todo.aasm.current_state end @@ -551,7 +551,7 @@ class TodoTest < ActiveSupport::TestCase new_path = attachment.file.path # then the attachment should be there - assert File.exists?(new_path), "attachment should be on file system" + assert File.exist?(new_path), "attachment should be on file system" assert_equal 1, todo.attachments.reload.count, "should have one attachment" # When I destroy the todo @@ -559,7 +559,7 @@ class TodoTest < ActiveSupport::TestCase # Then the attachement and file should nogt be there anymore assert_equal 0, todo.user.attachments.reload.count - assert !File.exists?(new_path), "attachment should not be on file system" + assert !File.exist?(new_path), "attachment should not be on file system" end def test_destroying_action_activates_successors