diff --git a/plugins/lattes_curriculum/lib/ext/person.rb b/plugins/lattes_curriculum/lib/ext/person.rb index 0d6b565..b5aac79 100755 --- a/plugins/lattes_curriculum/lib/ext/person.rb +++ b/plugins/lattes_curriculum/lib/ext/person.rb @@ -4,16 +4,28 @@ class Person attr_accessible :lattes_url, :academic_info_attributes - has_one :academic_info, :dependent=>:delete + has_one :academic_info + + after_destroy do |person| + if !person.environment.nil? && +person.environment.plugin_enabled?(LattesCurriculumPlugin) && +!person.academic_info.nil? + person.academic_info.destroy + end + end accepts_nested_attributes_for :academic_info def lattes_url - self.academic_info.nil? ? nil : self.academic_info.lattes_url + if self.environment && self.environment.plugin_enabled?(LattesCurriculumPlugin) + self.academic_info.nil? ? nil : self.academic_info.lattes_url + end end def lattes_url= value - self.academic_info.lattes_url = value unless self.academic_info.nil? + if self.environment && self.environment.plugin_enabled?(LattesCurriculumPlugin) + self.academic_info.lattes_url = value unless self.academic_info.nil? + end end FIELDS << "lattes_url" diff --git a/plugins/lattes_curriculum/test/unit/person_test.rb b/plugins/lattes_curriculum/test/unit/person_test.rb new file mode 100644 index 0000000..287ae4c --- /dev/null +++ b/plugins/lattes_curriculum/test/unit/person_test.rb @@ -0,0 +1,26 @@ +require "test_helper" + +class PersonTest < ActiveSupport::TestCase + + def setup + @environment = Environment.default + @environment.enable_plugin(LattesCurriculumPlugin) + end + + attr_reader :environment + + should 'destroy academic info if person is removed' do + person = fast_create(Person) + academic_info = fast_create(AcademicInfo, :person_id => person.id, +:lattes_url => 'http://lattes.cnpq.br/2193972715230') + + assert_difference 'AcademicInfo.count', -1 do + person.destroy + end + end + + should 'add lattes_url field to Person' do + assert_includes Person.fields, 'lattes_url' + end + +end -- libgit2 0.21.2