Commit 829b6a0f1a00b2adcec64e113eeb8cf338752b80
Exists in
master
and in
29 other branches
Merge commit 'refs/merge-requests/263' of git://gitorious.org/noosfero/noosfero …
…into merge-requests/263
Showing
4 changed files
with
24 additions
and
2 deletions
Show diff stats
plugins/custom_forms/lib/custom_forms_plugin/field.rb
| @@ -4,7 +4,7 @@ class CustomFormsPlugin::Field < ActiveRecord::Base | @@ -4,7 +4,7 @@ class CustomFormsPlugin::Field < ActiveRecord::Base | ||
| 4 | validates_presence_of :form, :name | 4 | validates_presence_of :form, :name |
| 5 | validates_uniqueness_of :slug, :scope => :form_id | 5 | validates_uniqueness_of :slug, :scope => :form_id |
| 6 | 6 | ||
| 7 | - belongs_to :form, :class_name => 'CustomFormsPlugin::Form', :dependent => :destroy | 7 | + belongs_to :form, :class_name => 'CustomFormsPlugin::Form' |
| 8 | has_many :answers, :class_name => 'CustomFormsPlugin::Answer' | 8 | has_many :answers, :class_name => 'CustomFormsPlugin::Answer' |
| 9 | 9 | ||
| 10 | serialize :choices, Hash | 10 | serialize :choices, Hash |
plugins/custom_forms/lib/custom_forms_plugin/form.rb
| 1 | class CustomFormsPlugin::Form < Noosfero::Plugin::ActiveRecord | 1 | class CustomFormsPlugin::Form < Noosfero::Plugin::ActiveRecord |
| 2 | belongs_to :profile | 2 | belongs_to :profile |
| 3 | 3 | ||
| 4 | - has_many :fields, :class_name => 'CustomFormsPlugin::Field' | 4 | + has_many :fields, :class_name => 'CustomFormsPlugin::Field', :dependent => :destroy |
| 5 | has_many :submissions, :class_name => 'CustomFormsPlugin::Submission' | 5 | has_many :submissions, :class_name => 'CustomFormsPlugin::Submission' |
| 6 | 6 | ||
| 7 | serialize :access | 7 | serialize :access |
plugins/custom_forms/test/unit/custom_forms_plugin/field_test.rb
| @@ -60,5 +60,16 @@ class CustomFormsPlugin::FieldTest < ActiveSupport::TestCase | @@ -60,5 +60,16 @@ class CustomFormsPlugin::FieldTest < ActiveSupport::TestCase | ||
| 60 | assert_equal 2, field.choices['Second'] | 60 | assert_equal 2, field.choices['Second'] |
| 61 | assert_equal 3, field.choices['Third'] | 61 | assert_equal 3, field.choices['Third'] |
| 62 | end | 62 | end |
| 63 | + | ||
| 64 | + should 'not destroy form after removing a field' do | ||
| 65 | + form = CustomFormsPlugin::Form.create!(:name => 'Free Software', :profile => fast_create(Profile)) | ||
| 66 | + license_field = CustomFormsPlugin::Field.create!(:name => 'License', :form => form) | ||
| 67 | + url_field = CustomFormsPlugin::Field.create!(:name => 'URL', :form => form) | ||
| 68 | + | ||
| 69 | + assert_no_difference CustomFormsPlugin::Form, :count do | ||
| 70 | + url_field.destroy | ||
| 71 | + end | ||
| 72 | + assert_equal form.fields, [license_field] | ||
| 73 | + end | ||
| 63 | end | 74 | end |
| 64 | 75 |
plugins/custom_forms/test/unit/custom_forms_plugin/form_test.rb
| @@ -169,4 +169,15 @@ class CustomFormsPlugin::FormTest < ActiveSupport::TestCase | @@ -169,4 +169,15 @@ class CustomFormsPlugin::FormTest < ActiveSupport::TestCase | ||
| 169 | assert_includes scope, f2 | 169 | assert_includes scope, f2 |
| 170 | assert_not_includes scope, f3 | 170 | assert_not_includes scope, f3 |
| 171 | end | 171 | end |
| 172 | + | ||
| 173 | + should 'destroy fields after removing a form' do | ||
| 174 | + form = CustomFormsPlugin::Form.create!(:name => 'Free Software', :profile => fast_create(Profile)) | ||
| 175 | + license_field = CustomFormsPlugin::Field.create!(:name => 'License', :form => form) | ||
| 176 | + url_field = CustomFormsPlugin::Field.create!(:name => 'URL', :form => form) | ||
| 177 | + | ||
| 178 | + assert_difference CustomFormsPlugin::Field, :count, -2 do | ||
| 179 | + form.destroy | ||
| 180 | + end | ||
| 181 | + end | ||
| 182 | + | ||
| 172 | end | 183 | end |