diff --git a/src/noosfero-spb/gov_user/lib/ext/organization_rating.rb b/src/noosfero-spb/gov_user/lib/ext/organization_rating.rb deleted file mode 100644 index 640a016..0000000 --- a/src/noosfero-spb/gov_user/lib/ext/organization_rating.rb +++ /dev/null @@ -1,20 +0,0 @@ -require_dependency "organization_rating" - -OrganizationRating.class_eval do - - belongs_to :institution, :class_name => 'GovUserPlugin::Institution' - - attr_accessible :institution, :institution_id - - validate :verify_institution - - private - - def verify_institution - if self.institution != nil - institution = GovUserPlugin::Institution.find_by_id self.institution.id - self.errors.add :institution, _("not found") unless institution - end - end - -end diff --git a/src/noosfero-spb/gov_user/lib/gov_user_plugin/institutions_organization_ratings.rb b/src/noosfero-spb/gov_user/lib/gov_user_plugin/institutions_organization_ratings.rb new file mode 100644 index 0000000..b7d4dbb --- /dev/null +++ b/src/noosfero-spb/gov_user/lib/gov_user_plugin/institutions_organization_ratings.rb @@ -0,0 +1,27 @@ +class GovUserPlugin::InstitutionsOrganizationRatings < Noosfero::Plugin::ActiveRecord + self.primary_key = :institution_id + + attr_accessible :institution, :organization_rating + + belongs_to :institution, :class_name => 'GovUserPlugin::Institution' + belongs_to :organization_rating, :class_name => 'OrganizationRating' + + validate :verify_institution + + def self.get_institution(rating) + find_by_organization_rating_id(rating.id) + end + + def self.get_rating(institution) + find_by_institution_id(rating.id) + end + + private + + def verify_institution + if self.institution != nil + institution = GovUserPlugin::Institution.find_by_id self.institution.id + self.errors.add :institution, _("not found") unless institution + end + end +end diff --git a/src/noosfero-spb/gov_user/test/unit/gov_user_plugin/institutions_organization_ratings_test.rb b/src/noosfero-spb/gov_user/test/unit/gov_user_plugin/institutions_organization_ratings_test.rb new file mode 100644 index 0000000..6af0ee9 --- /dev/null +++ b/src/noosfero-spb/gov_user/test/unit/gov_user_plugin/institutions_organization_ratings_test.rb @@ -0,0 +1,39 @@ +require_relative '../../../../../test/test_helper' +require_relative '../../helpers/plugin_test_helper' + +class GovUserPlugin::InstitutionsOrganizationRatingsTest < ActiveSupport::TestCase + include PluginTestHelper + + def setup + @environment = Environment.default + @environment.enabled_plugins = ['SoftwareCommunitiesPlugin', 'GovUserPlugin'] + @environment.save! + end + + should "validate institution if there is an institution_id" do + private_institution = build_private_institution "huehue", "hue", "11.222.333/4444-55" + relation = GovUserPlugin::InstitutionsOrganizationRatings.new(:institution => private_institution) + assert !relation.valid? + assert relation.errors[:institution].include?("not found") + + private_institution.save + relation.institution = private_institution + relation.valid? + assert !relation.errors[:institution].include?("not found") + end + + private + + def build_private_institution name, corporate_name, cnpj, country="AR" + community = Community.new :name => name + community.country = country + + institution = GovUserPlugin::PrivateInstitution.new :name=> name + institution.corporate_name = corporate_name + institution.cnpj = cnpj + institution.community = community + + institution + end +end + diff --git a/src/noosfero-spb/gov_user/test/unit/gov_user_plugin/organization_rating_test.rb b/src/noosfero-spb/gov_user/test/unit/gov_user_plugin/organization_rating_test.rb deleted file mode 100644 index 164291d..0000000 --- a/src/noosfero-spb/gov_user/test/unit/gov_user_plugin/organization_rating_test.rb +++ /dev/null @@ -1,44 +0,0 @@ -require File.dirname(__FILE__) + '/../../../../../test/test_helper' -require File.dirname(__FILE__) + '/../../helpers/plugin_test_helper' - -class GovUserPlugin::OrganizationRatingTest < ActiveSupport::TestCase - include PluginTestHelper - - def setup - @environment = Environment.default - @environment.enabled_plugins = ['SoftwareCommunitiesPlugin'] - @environment.save - end - - should "validate institution if there is an institution_id" do - person = fast_create(Person) - community = fast_create(Community) - private_institution = build_private_institution "huehue", "hue", "11.222.333/4444-55" - - community_rating = OrganizationRating.new(:person => person, :value => 3, :organization => community, :institution => private_institution) - assert_equal false, community_rating.valid? - - assert_equal true, community_rating.errors[:institution].include?("not found") - - private_institution.save - community_rating.institution = private_institution - - assert_equal true, community_rating.valid? - assert_equal false, community_rating.errors[:institution].include?("not found") - end - - private - - def build_private_institution name, corporate_name, cnpj, country="AR" - community = Community.new :name => name - community.country = country - - institution = GovUserPlugin::PrivateInstitution.new :name=> name - institution.corporate_name = corporate_name - institution.cnpj = cnpj - institution.community = community - - institution - end -end - diff --git a/src/noosfero-spb/gov_user/views/organization_ratings_extra_fields_show_institution.html.erb b/src/noosfero-spb/gov_user/views/organization_ratings_extra_fields_show_institution.html.erb index 137261b..6c80f73 100644 --- a/src/noosfero-spb/gov_user/views/organization_ratings_extra_fields_show_institution.html.erb +++ b/src/noosfero-spb/gov_user/views/organization_ratings_extra_fields_show_institution.html.erb @@ -1,8 +1,9 @@ -<% if user_rating.institution %> -
-
- <%=_("Institution")%> : <%= user_rating.institution.name unless user_rating.institution.nil? %> +<% institution = GovUserPlugin::InstitutionsOrganizationRatings.get_institution(user_rating) %> +<% if institution %> +
+
+ <%=_("Institution")%> : <%= institution.name unless institution.nil? %> +
-
<% end %> diff --git a/src/noosfero-spb/gov_user/views/ratings_extra_field.html.erb b/src/noosfero-spb/gov_user/views/ratings_extra_field.html.erb index 6f835d1..213bb91 100644 --- a/src/noosfero-spb/gov_user/views/ratings_extra_field.html.erb +++ b/src/noosfero-spb/gov_user/views/ratings_extra_field.html.erb @@ -1,3 +1,5 @@ +<% #FIXME Ajust this to work according to InstitutionsOrganizationRatings relation. %> +
<%= label_tag "input_institution", _("Organization name or Enterprise name")%> -- libgit2 0.21.2