diff --git a/db/migrate/20150714123613_add_institution_to_comments.rb b/db/migrate/20150714123613_add_institution_to_comments.rb deleted file mode 100644 index 79b3bd0..0000000 --- a/db/migrate/20150714123613_add_institution_to_comments.rb +++ /dev/null @@ -1,11 +0,0 @@ -class AddInstitutionToComments < ActiveRecord::Migration - def up - change_table :comments do |t| - t.belongs_to :institution - end - end - - def down - remove_column :comments, :institution_id - end -end diff --git a/db/migrate/20150714123613_add_institution_to_organization_rating.rb b/db/migrate/20150714123613_add_institution_to_organization_rating.rb new file mode 100644 index 0000000..37453e8 --- /dev/null +++ b/db/migrate/20150714123613_add_institution_to_organization_rating.rb @@ -0,0 +1,11 @@ +class AddInstitutionToOrganizationRating < ActiveRecord::Migration + def up + change_table :organization_ratings do |t| + t.belongs_to :institution + end + end + + def down + remove_column :organization_ratings, :institution_id + end +end diff --git a/db/migrate/20150814192230_add_institution_id_to_create_community_rating.rb b/db/migrate/20150814192230_add_institution_id_to_create_community_rating.rb deleted file mode 100644 index 56532f2..0000000 --- a/db/migrate/20150814192230_add_institution_id_to_create_community_rating.rb +++ /dev/null @@ -1,11 +0,0 @@ -class AddInstitutionIdToCreateCommunityRating < ActiveRecord::Migration - def up - change_table :community_ratings do |t| - t.belongs_to :institution - end - end - - def down - remove_column :community_ratings, :institution_id - end -end diff --git a/lib/ext/community_rating.rb b/lib/ext/community_rating.rb deleted file mode 100644 index e1367d1..0000000 --- a/lib/ext/community_rating.rb +++ /dev/null @@ -1,19 +0,0 @@ -require_dependency "community_rating" - -CommunityRating.class_eval do - - belongs_to :institution - - attr_accessible :institution, :institution_id - - validate :verify_institution - - private - - def verify_institution - if self.institution != nil - institution = Institution.find_by_id self.institution.id - self.errors.add :institution, _("not found") unless institution - end - end -end diff --git a/lib/ext/organization_rating.rb b/lib/ext/organization_rating.rb new file mode 100644 index 0000000..fb2b59e --- /dev/null +++ b/lib/ext/organization_rating.rb @@ -0,0 +1,20 @@ +require_dependency "organization_rating" + +OrganizationRating.class_eval do + + belongs_to :institution + + attr_accessible :institution, :institution_id + + validate :verify_institution + + private + + def verify_institution + if self.institution != nil + institution = Institution.find_by_id self.institution.id + self.errors.add :institution, _("not found") unless institution + end + end + +end diff --git a/lib/gov_user_plugin.rb b/lib/gov_user_plugin.rb index 150842b..2ed8d99 100644 --- a/lib/gov_user_plugin.rb +++ b/lib/gov_user_plugin.rb @@ -231,18 +231,18 @@ class GovUserPlugin < Noosfero::Plugin end end - def communities_ratings_plugin_comments_extra_fields - Proc::new do render :file => 'comments_extra_field' end + def organization_ratings_plugin_comments_extra_fields + Proc::new do render :file => 'ratings_extra_field' end end - def communities_ratings_plugin_extra_fields_show_data user_rating + def organization_ratings_plugin_extra_fields_show_data user_rating if logged_in? is_admin = environment.admins.include?(current_user.person) - is_admin ||= user_rating.community.admins.include?(current_user.person) + is_admin ||= user_rating.organization.admins.include?(current_user.person) if is_admin and context.profile.software? Proc::new { - render :file => 'communities_ratings_extra_fields_show_institution', + render :file => 'organization_ratings_extra_fields_show_institution', :locals => {:user_rating => user_rating} } end diff --git a/test/unit/community_rating_test.rb b/test/unit/community_rating_test.rb deleted file mode 100644 index b2b7f2b..0000000 --- a/test/unit/community_rating_test.rb +++ /dev/null @@ -1,38 +0,0 @@ -require File.dirname(__FILE__) + '/../../../../test/test_helper' -require File.dirname(__FILE__) + '/../helpers/plugin_test_helper' - -class CommunityRatingTest < ActiveSupport::TestCase - include PluginTestHelper - - should "validate institution if there an institution_id" do - community = fast_create(Community) - private_institution = build_private_institution "huehue", "hue", "11.222.333/4444-55" - - community_rating = CommunityRating.new(:value => 3, :community => community, :institution => private_institution) - community_rating.valid? - - assert_equal true, community_rating.errors[:institution].include?("not found") - - private_institution.save - - community_rating.institution = private_institution - 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 = PrivateInstitution.new :name=> name - institution.corporate_name = corporate_name - institution.cnpj = cnpj - institution.community = community - - institution - end -end - diff --git a/test/unit/organization_rating_test.rb b/test/unit/organization_rating_test.rb new file mode 100644 index 0000000..748355f --- /dev/null +++ b/test/unit/organization_rating_test.rb @@ -0,0 +1,44 @@ +require File.expand_path(File.dirname(__FILE__)) + '/../../../../test/test_helper' +require File.expand_path(File.dirname(__FILE__)) + '/../helpers/plugin_test_helper' + +class 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 = PrivateInstitution.new :name=> name + institution.corporate_name = corporate_name + institution.cnpj = cnpj + institution.community = community + + institution + end +end + diff --git a/views/comments_extra_field.html.erb b/views/comments_extra_field.html.erb deleted file mode 100644 index a4d9849..0000000 --- a/views/comments_extra_field.html.erb +++ /dev/null @@ -1,10 +0,0 @@ -
- <%= label_tag "input_institution", _("Organization name or Enterprise name")%> - - - - <%= content_tag(:div, _("No institution found"), - :id=>"institution_empty_ajax_message", - :class=>"errorExplanation hide-field") %> - <%= hidden_field_tag "community_rating[institution_id]", "", id: "institution_selected" %> -
diff --git a/views/communities_ratings_extra_fields_show_institution.html.erb b/views/communities_ratings_extra_fields_show_institution.html.erb deleted file mode 100644 index 7cc4709..0000000 --- a/views/communities_ratings_extra_fields_show_institution.html.erb +++ /dev/null @@ -1,8 +0,0 @@ -<% if user_rating.institution %> -
-
- Institution : <%= user_rating.institution.name unless user_rating.institution.nil? %> -
-
-<% end %> - diff --git a/views/organization_ratings_extra_fields_show_institution.html.erb b/views/organization_ratings_extra_fields_show_institution.html.erb new file mode 100644 index 0000000..7cc4709 --- /dev/null +++ b/views/organization_ratings_extra_fields_show_institution.html.erb @@ -0,0 +1,8 @@ +<% if user_rating.institution %> +
+
+ Institution : <%= user_rating.institution.name unless user_rating.institution.nil? %> +
+
+<% end %> + diff --git a/views/ratings_extra_field.html.erb b/views/ratings_extra_field.html.erb new file mode 100644 index 0000000..6f835d1 --- /dev/null +++ b/views/ratings_extra_field.html.erb @@ -0,0 +1,10 @@ +
+ <%= label_tag "input_institution", _("Organization name or Enterprise name")%> + + + + <%= content_tag(:div, _("No institution found"), + :id=>"institution_empty_ajax_message", + :class=>"errorExplanation hide-field") %> + <%= hidden_field_tag "organization_rating[institution_id]", "", id: "institution_selected" %> +
-- libgit2 0.21.2