Commit b520bd1f540df9838a68aa68bfafd2fcbd1ce75f
1 parent
de765b0f
Exists in
master
and in
22 other branches
ActionItem16: requiring a explanation for rejecting an enterprise.
git-svn-id: https://svn.colivre.coop.br/svn/noosfero/trunk@868 3f533792-8f58-4932-b0fe-aaf55b0a4547
Showing
2 changed files
with
20 additions
and
1 deletions
Show diff stats
app/models/create_enterprise.rb
@@ -11,7 +11,7 @@ class CreateEnterprise < Task | @@ -11,7 +11,7 @@ class CreateEnterprise < Task | ||
11 | N_('CreateEnterprise|Economic activity') | 11 | N_('CreateEnterprise|Economic activity') |
12 | N_('CreateEnterprise|Management information') | 12 | N_('CreateEnterprise|Management information') |
13 | 13 | ||
14 | - DATA_FIELDS = %w[ name identifier address contact_phone contact_person acronym foundation_year legal_form economic_activity management_information region_id ] | 14 | + DATA_FIELDS = %w[ name identifier address contact_phone contact_person acronym foundation_year legal_form economic_activity management_information region_id reject_explanation ] |
15 | 15 | ||
16 | serialize :data, Hash | 16 | serialize :data, Hash |
17 | attr_protected :data | 17 | attr_protected :data |
@@ -37,6 +37,9 @@ class CreateEnterprise < Task | @@ -37,6 +37,9 @@ class CreateEnterprise < Task | ||
37 | # checks for actual attributes | 37 | # checks for actual attributes |
38 | validates_presence_of :requestor_id, :target_id | 38 | validates_presence_of :requestor_id, :target_id |
39 | 39 | ||
40 | + # check for explanation when rejecting | ||
41 | + validates_presence_of :reject_explanation, :if => (lambda { |record| record.status == Task::Status::CANCELLED } ) | ||
42 | + | ||
40 | def validate | 43 | def validate |
41 | if self.region && self.target | 44 | if self.region && self.target |
42 | unless self.region.validators.include?(self.target) | 45 | unless self.region.validators.include?(self.target) |
test/unit/create_enterprise_test.rb
@@ -69,6 +69,22 @@ class CreateEnterpriseTest < Test::Unit::TestCase | @@ -69,6 +69,22 @@ class CreateEnterpriseTest < Test::Unit::TestCase | ||
69 | task.reject | 69 | task.reject |
70 | end | 70 | end |
71 | 71 | ||
72 | + should 'require an explanation for rejecting enterprise creation' do | ||
73 | + task = CreateEnterprise.new | ||
74 | + task.reject_explanation = nil | ||
75 | + | ||
76 | + task.valid? | ||
77 | + assert !task.errors.invalid?(:reject_explanation) | ||
78 | + | ||
79 | + task.status = Task::Status::CANCELLED | ||
80 | + task.valid? | ||
81 | + assert task.errors.invalid?(:reject_explanation) | ||
82 | + | ||
83 | + task.reject_explanation = 'bla bla bla' | ||
84 | + task.valid? | ||
85 | + assert !task.errors.invalid?(:reject_explanation) | ||
86 | + end | ||
87 | + | ||
72 | should 'finish task when approved' do | 88 | should 'finish task when approved' do |
73 | task = CreateEnterprise.new | 89 | task = CreateEnterprise.new |
74 | task.expects(:finish) | 90 | task.expects(:finish) |