From 37794dc3fee27c4ada6f076f50289b40d03b3e58 Mon Sep 17 00:00:00 2001 From: Marcos Ronaldo Date: Thu, 19 May 2016 16:39:41 -0300 Subject: [PATCH] Add 'SIORG code' field and reorganize some fields on create institution forms --- src/noosfero-spb/gov_user/controllers/gov_user_plugin_controller.rb | 2 +- src/noosfero-spb/gov_user/controllers/gov_user_plugin_myprofile_controller.rb | 2 +- src/noosfero-spb/gov_user/db/migrate/20160525181858_change_siorg_column_type.rb | 9 +++++++++ src/noosfero-spb/gov_user/features/institution_registration.feature | 22 ++++++++++++++++++++++ src/noosfero-spb/gov_user/lib/institution.rb | 12 +++++++++++- src/noosfero-spb/gov_user/public/views/create-institution.js | 5 ++++- src/noosfero-spb/gov_user/views/gov_user_plugin/_institution.html.erb | 82 ++++++++++++++++++++++++++++++++++++++++++++++------------------------------------ src/noosfero-spb/gov_user/views/gov_user_plugin_myprofile/edit_institution.html.erb | 51 ++++++++++++++++++++++++++++++++++----------------- src/noosfero-spb/noosfero-spb-theme/css/administration-panel.css | 50 ++++++++++++++++++++++++++++++++++++++++---------- src/noosfero-spb/noosfero-spb-theme/css/modal.css | 19 +++++++++++-------- 10 files changed, 179 insertions(+), 75 deletions(-) create mode 100644 src/noosfero-spb/gov_user/db/migrate/20160525181858_change_siorg_column_type.rb diff --git a/src/noosfero-spb/gov_user/controllers/gov_user_plugin_controller.rb b/src/noosfero-spb/gov_user/controllers/gov_user_plugin_controller.rb index 2e6b477..fdbc0e7 100644 --- a/src/noosfero-spb/gov_user/controllers/gov_user_plugin_controller.rb +++ b/src/noosfero-spb/gov_user/controllers/gov_user_plugin_controller.rb @@ -120,7 +120,7 @@ class GovUserPluginController < ApplicationController params[:community] ||= {} params[:institutions] ||= {} - @show_sisp_field = user.is_admin? + @show_admin_fields = user.is_admin? @governmental_sphere = get_governmental_spheres() @governmental_power = get_governmental_powers() @juridical_nature = get_juridical_natures() diff --git a/src/noosfero-spb/gov_user/controllers/gov_user_plugin_myprofile_controller.rb b/src/noosfero-spb/gov_user/controllers/gov_user_plugin_myprofile_controller.rb index 84bd92b..9fab36c 100644 --- a/src/noosfero-spb/gov_user/controllers/gov_user_plugin_myprofile_controller.rb +++ b/src/noosfero-spb/gov_user/controllers/gov_user_plugin_myprofile_controller.rb @@ -7,7 +7,7 @@ class GovUserPluginMyprofileController < MyProfileController end def edit_institution - @show_sisp_field = user.is_admin? + @show_admin_fields = user.is_admin? @state_list = NationalRegion.find( :all, :conditions => { :national_region_type_id => 2 }, diff --git a/src/noosfero-spb/gov_user/db/migrate/20160525181858_change_siorg_column_type.rb b/src/noosfero-spb/gov_user/db/migrate/20160525181858_change_siorg_column_type.rb new file mode 100644 index 0000000..fdbd0ab --- /dev/null +++ b/src/noosfero-spb/gov_user/db/migrate/20160525181858_change_siorg_column_type.rb @@ -0,0 +1,9 @@ +class ChangeSiorgColumnType < ActiveRecord::Migration + def self.up + change_column :institutions, :siorg_code, :string + end + + def self.down + change_column :institutions, :siorg_code, :integer + end +end diff --git a/src/noosfero-spb/gov_user/features/institution_registration.feature b/src/noosfero-spb/gov_user/features/institution_registration.feature index 1778592..82a9181 100644 --- a/src/noosfero-spb/gov_user/features/institution_registration.feature +++ b/src/noosfero-spb/gov_user/features/institution_registration.feature @@ -47,3 +47,25 @@ Feature: Institution Field And I should not see "community_city" And I select "Brazil" from "community_country" Then I should not see "Gama" + + @selenium + Scenario: Show sisp and siorg field to admin on create new institution form + Given I follow "Control panel" + And I follow "Edit Profile" + When I follow "Create new institution" + And I choose "Public Institution" + Then I should see "SISP?" + And I should see "SIORG Code" + + @selenium + Scenario: Not show sisp and siorg field to regular user on create new institution form + Given the following users + | login | + | zombie | + And I am logged in as "zombie" + When I follow "Control panel" + And I follow "Edit Profile" + And I follow "Create new institution" + And I choose "Public Institution" + Then I should not see "SISP?" + And I should not see "SIORG Code" diff --git a/src/noosfero-spb/gov_user/lib/institution.rb b/src/noosfero-spb/gov_user/lib/institution.rb index 70ea0e1..a9fc63d 100644 --- a/src/noosfero-spb/gov_user/lib/institution.rb +++ b/src/noosfero-spb/gov_user/lib/institution.rb @@ -46,8 +46,18 @@ class Institution < ActiveRecord::Base } validate :validate_country, :validate_state, :validate_city, - :verify_institution_type + :verify_institution_type, :verify_siorg_code + def verify_siorg_code + if (self.siorg_code.present? && (self.siorg_code =~ /^[0-9]+$/).nil?) + self.errors.add( + :siorg_code, + _("invalid, only numbers are allowed.") + ) + return false + end + true + end def has_accepted_rating? user_rating rating_ids = OrganizationRating.where(institution_id: self.id, organization_id: user_rating.organization_id).map(&:id) diff --git a/src/noosfero-spb/gov_user/public/views/create-institution.js b/src/noosfero-spb/gov_user/public/views/create-institution.js index 1c7ea9f..96c08f1 100644 --- a/src/noosfero-spb/gov_user/public/views/create-institution.js +++ b/src/noosfero-spb/gov_user/public/views/create-institution.js @@ -45,6 +45,7 @@ modulejs.define('CreateInstitution', ['jquery', 'NoosferoRoot', 'SelectElement'] function get_institution_post_data() { + return { cnpj: $("#institutions_cnpj").val(), type: $("input[name='institutions[type]']:checked").val(), @@ -52,7 +53,9 @@ modulejs.define('CreateInstitution', ['jquery', 'NoosferoRoot', 'SelectElement'] governmental_power: $("#institutions_governmental_power").selected().val(), governmental_sphere: $("#institutions_governmental_sphere").selected().val(), juridical_nature: $("#institutions_juridical_nature").selected().val(), - corporate_name: $("#institutions_corporate_name").val() + corporate_name: $("#institutions_corporate_name").val(), + siorg_code: $("#institutions_siorg_code").val(), + sisp: $('input[name="institutions[sisp]"]:checked').val() }; } diff --git a/src/noosfero-spb/gov_user/views/gov_user_plugin/_institution.html.erb b/src/noosfero-spb/gov_user/views/gov_user_plugin/_institution.html.erb index 6901a38..f52d967 100644 --- a/src/noosfero-spb/gov_user/views/gov_user_plugin/_institution.html.erb +++ b/src/noosfero-spb/gov_user/views/gov_user_plugin/_institution.html.erb @@ -30,37 +30,48 @@ <%= hidden_field_tag "edit_institution_page", false %> <%= fields_for :institutions do |inst| %>
-
+
<%= labelled_radio_button _('Public Institution'), 'institutions[type]', 'PublicInstitution', true %>
-
+
<%= labelled_radio_button _('Private Institution'), 'institutions[type]', 'PrivateInstitution' %>
-
-
-
+
- <%= f.text_field(:name, :class => flash[:error_community_name], :value => params[:community][:name]) %> + <%= f.text_field(:name, :class => flash[:error_community_name], :maxlength => 250, :value => params[:community][:name]) %> <%= content_tag :span, _("Institution name already exists"), :id=>"already_exists_text", :class=>"errorExplanation hide-field" %>
-
+
+
+ <%= hidden_field_tag "acronym_translate", _("Acronym") %> + <%= hidden_field_tag "fantasy_name_translate", _("Fantasy name") %> + <%= inst.label("acronym" ,_("Acronym"), :class=>"formlabel", id: "institution_acronym_label") %> + <%= inst.text_field(:acronym, :value => params[:institutions][:acronym], :maxlength => 12) %> +
+
+ +
+ +
+
<%= inst.label "corporate_name", _("Fantasy name"), :class=>"formlabel" %> - <%= inst.text_field(:corporate_name, :value => params[:institutions][:corporate_name], :size => 55) %> + <%= inst.text_field(:corporate_name, :value => params[:institutions][:corporate_name], :size => 55, :maxlength => 250) %>
-
+ +
-
+
-
+
- <%= f.text_field(:city, :class => flash[:error_community_city], :value => params[:community][:city]) %> + <%= f.text_field(:city, :class => flash[:error_community_city], :value => params[:community][:city], :maxlength => 250) %>
@@ -99,14 +110,6 @@
-
-
- <%= hidden_field_tag "acronym_translate", _("Acronym") %> - <%= hidden_field_tag "fantasy_name_translate", _("Fantasy name") %> - <%= inst.label("acronym" ,_("Acronym"), :class=>"formlabel") %> - <%= inst.text_field(:acronym, :value => params[:institutions][:acronym]) %> -
-
@@ -141,28 +144,35 @@
-
-
-
- <% if @show_sisp_field %> + <% if @show_admin_fields %> +
+
+
-
- <%= _("SISP?") %> -
+
+ <%= _("SISP?") %> +
-
- <%= inst.radio_button(:sisp, true, :class => "#{flash[:error_institution_sisp]}" ) %> - <%= inst.label :sisp ,_("Yes"), :value => true %> -
+
+ <%= inst.radio_button(:sisp, true, :class => "#{flash[:error_institution_sisp]}" ) %> + <%= inst.label :sisp ,_("Yes"), :value => true %> +
-
- <%= inst.radio_button(:sisp, false, :checked=>"checked", :class => "#{flash[:error_institution_sisp]}") %> - <%= inst.label :sisp ,_("No"), :value => false %> +
+ <%= inst.radio_button(:sisp, false, :checked=>"checked", :class => "#{flash[:error_institution_sisp]}") %> + <%= inst.label :sisp ,_("No"), :value => false %> +
- <% end %>
-
+ +
+
+ <%= inst.label("siorg_code" ,_("SIORG Code"), :class=>"formlabel") %> + <%= inst.text_field(:siorg_code, :value => params[:institutions][:siorg_code]) %> +
+
+ <% end %> - -
- <%= inst.label("cnpj" ,_("CNPJ"), :class=>"formlabel") %> - <%= required inst.text_field(:cnpj, :placeholder=>"99.999.999/9999-99", :class=>"intitution_cnpj_field", :value => @institution.cnpj) %> -
-
- - -
- <%= hidden_field_tag "acronym_translate", _("Acronym") %> - <%= hidden_field_tag "fantasy_name_translate", _("Fantasy name") %> - <%= inst.label("acronym" ,_("Acronym"), :class=>"formlabel") %> - <%= inst.text_field(:acronym, :value => @institution.acronym) %> +
+
+ +
+ <%= inst.label("cnpj" ,_("CNPJ"), :class=>"formlabel") %> + <%= required inst.text_field(:cnpj, :placeholder=>"99.999.999/9999-99", :class=>"intitution_cnpj_field", :value => @institution.cnpj) %> +
+
- +
@@ -112,6 +118,17 @@
+
+
+ +
+ <%= inst.label("siorg_code" ,_("SIORG Code:"), :class=>"formlabel") %> + <%= inst.text_field(:siorg_code, :value => @institution.siorg_code) %> +
+
+
+
+
@@ -120,7 +137,7 @@
<%= _("SISP?") %>
- <% if @show_sisp_field %> + <% if @show_admin_fields %>
<%= inst.radio_button(:sisp, true, :checked=>(@institution.sisp ? true : false)) %> <%= inst.label("sisp" ,_("Yes")) %> diff --git a/src/noosfero-spb/noosfero-spb-theme/css/administration-panel.css b/src/noosfero-spb/noosfero-spb-theme/css/administration-panel.css index 4965969..69be3e0 100644 --- a/src/noosfero-spb/noosfero-spb-theme/css/administration-panel.css +++ b/src/noosfero-spb/noosfero-spb-theme/css/administration-panel.css @@ -346,22 +346,33 @@ margin-bottom: 10px; } +.action-gov_user_plugin_myprofile-edit_institution #content .main-content .formfieldline { + margin-top: 0; + padding: 0; +} + .action-gov_user_plugin_myprofile-edit_institution #community_name { color: black; - width: 220px + width: 402px; } .action-gov_user_plugin-create_institution_admin #community_name { - width: 200px; + width: 372px; } .action-gov_user_plugin_myprofile-edit_institution #institutions_corporate_name { - width: 287px; + width: 537px; color: black; } +.action-gov_user_plugin-create_institution_admin #institutions_cnpj, .action-gov_user_plugin-create_institution_admin #institutions_corporate_name { - width: 310px; + width: 508px; +} + +.action-gov_user_plugin_myprofile-edit_institution #institutions_cnpj { + width: 537px; + color: black; } .action-gov_user_plugin_myprofile-edit_institution #community_country { @@ -383,20 +394,18 @@ } .action-gov_user_plugin_myprofile-edit_institution #community_city { - width: 165px; + width: 171px; color: black; } .action-gov_user_plugin-create_institution_admin #community_city { - width: 222px; + width: 199px; } -.action-gov_user_plugin_myprofile-edit_institution #institutions_cnpj, .action-gov_user_plugin_myprofile-edit_institution #institutions_acronym, -.action-gov_user_plugin-create_institution_admin #institutions_cnpj, .action-gov_user_plugin-create_institution_admin #institutions_acronym { text-indent: 5px; - width: 530px; + width: 111px; } .action-gov_user_plugin_myprofile-edit_institution .modal-form-actions, @@ -409,7 +418,20 @@ margin-top: 15px; } -.action-gov_user_plugin_myprofile-edit_institution #content form input.button.with-text, +.action-gov_user_plugin_myprofile-edit_institution #content .main-content input.button.with-text.icon-save.submit { + background: #3E67B1 none; + color: #fff; + border-radius: 4px; + border: 1px solid #3E67B1; + font-size: 14px; + font-family: "open_sansregular", Arial; + line-height: 17px; + max-height: 32px; + height: 32px; + padding: 5px 15px; + margin-right: 5px; +} + .action-gov_user_plugin-create_institution_admin #content form input.button.with-text { background-color: #3E67B1; color: #fff; @@ -694,6 +716,14 @@ color: #585858; } +#noosfero_profile-content #content .main-content #profile-data #institutions_siorg_code, +.action-profile_editor-edit #content .main-content #profile-data #institutions_siorg_code, +.action-gov_user_plugin-create_institution_admin #content .main-content #institutions_siorg_code, +.action-gov_user_plugin_myprofile-edit_institution #content .main-content #institutions_siorg_code, +.action-organization_ratings_plugin_profile-new_rating #content .main-content #institutions_siorg_code { + width: 189px; +} + .action-users-send_mail #content .main-content{ font-family: Arial; } diff --git a/src/noosfero-spb/noosfero-spb-theme/css/modal.css b/src/noosfero-spb/noosfero-spb-theme/css/modal.css index 77ac0bd..0f2680c 100644 --- a/src/noosfero-spb/noosfero-spb-theme/css/modal.css +++ b/src/noosfero-spb/noosfero-spb-theme/css/modal.css @@ -30,7 +30,7 @@ .action-profile_editor-edit #content .main-content #profile-data .modal-dialog, .modal-dialog { - width: 45%; + width: 590px; margin: 15px auto; position: relative; } @@ -235,13 +235,18 @@ .action-profile_editor-edit #content .main-content #profile-data .modal #community_name, .modal #community_name { height: 16px; - width: 200px; + width: 392px; } +.action-profile_editor-edit #content .main-content #profile-data .modal #institutions_cnpj, +.modal #institutions_cnpj{ + height: 16px; + width: 115px; +} .action-profile_editor-edit #content .main-content #profile-data .modal #institutions_corporate_name, .modal #institutions_corporate_name { height: 16px; - width: 285px; + width: 533px; } .action-profile_editor-edit #content .main-content #profile-data .modal #community_country, @@ -251,22 +256,20 @@ .action-profile_editor-edit #content .main-content #profile-data .modal #community_state, .modal #community_state { - width: 80px; + width: 90px; } .action-profile_editor-edit #content .main-content #profile-data .modal #community_city, .modal #community_city { height: 16px; - width: 190px; + width: 205px; margin-top: 2px; } -.action-profile_editor-edit #content .main-content #profile-data .modal #institutions_cnpj, .action-profile_editor-edit #content .main-content #profile-data .modal #institutions_acronym, -.modal #institutions_cnpj, .modal #institutions_acronym { height: 16px; - width: 530px; + width: 111px; } .action-profile_editor-edit #content .main-content #profile-data .modal a.button.with-text.icon-add, -- libgit2 0.21.2