Commit a014bdb712478c9809d997519df72a6e583eabf6
Committed by
Arthur Esposte
1 parent
f4efbd44
Exists in
master
and in
5 other branches
Remove institution from software communites.
Signed-off-by: Gabriela Navarro <navarro1703@gmail.com> Signed-off-by: Thiago Ribeiro <thiagitosouza@hotmail.com>
Showing
30 changed files
with
30 additions
and
1308 deletions
Show diff stats
controllers/software_communities_plugin_controller.rb
| ... | ... | @@ -20,6 +20,27 @@ class SoftwareCommunitiesPluginController < ApplicationController |
| 20 | 20 | render 'box_organizer/_download_list_template', :layout => false |
| 21 | 21 | end |
| 22 | 22 | |
| 23 | + def get_field_data | |
| 24 | + condition = !request.xhr? || params[:query].nil? || params[:field].nil? | |
| 25 | + return render :json=>{} if condition | |
| 26 | + | |
| 27 | + model = get_model_by_params_field | |
| 28 | + | |
| 29 | + data = model.where("name ILIKE ?", "%#{params[:query]}%").select("id, name") | |
| 30 | + .collect { |db| | |
| 31 | + {:id=>db.id, :label=>db.name} | |
| 32 | + } | |
| 33 | + | |
| 34 | + other = [model.select("id, name").last].collect { |db| | |
| 35 | + {:id=>db.id, :label=>db.name} | |
| 36 | + } | |
| 37 | + | |
| 38 | + # Always has other in the list | |
| 39 | + data |= other | |
| 40 | + | |
| 41 | + render :json=> data | |
| 42 | + end | |
| 43 | + | |
| 23 | 44 | protected |
| 24 | 45 | |
| 25 | 46 | def get_model_by_params_field | ... | ... |
features/institution_registration.feature
| ... | ... | @@ -1,32 +0,0 @@ |
| 1 | -Feature: Institution Field | |
| 2 | - As a user | |
| 3 | - I want to sign up resgistring my institution | |
| 4 | - So others users can use it | |
| 5 | - | |
| 6 | - Background: | |
| 7 | - Given "SoftwareCommunitiesPlugin" plugin is enabled | |
| 8 | - And I am logged in as mpog_admin | |
| 9 | - And I go to /admin/plugins | |
| 10 | - And I check "SoftwareCommunitiesPlugin" | |
| 11 | - And I press "Save changes" | |
| 12 | - And Institutions has initial default values on database | |
| 13 | - And I am logged in as mpog_admin | |
| 14 | - | |
| 15 | - @selenium | |
| 16 | - Scenario: Show new institution fields when clicked in create new institution | |
| 17 | - Given I follow "Edit Profile" | |
| 18 | - When I follow "Create new institution" | |
| 19 | - And I should see "New Institution" | |
| 20 | - And I should see "Public Institution" | |
| 21 | - And I should see "Private Institution" | |
| 22 | - And I should see "Corporate Name" | |
| 23 | - And I should see "Name" | |
| 24 | - And I should see "State" | |
| 25 | - And I should see "City" | |
| 26 | - And I should see "Country" | |
| 27 | - And I should see "CNPJ" | |
| 28 | - And I should see "Acronym" | |
| 29 | - And I choose "Public Institution" | |
| 30 | - Then I should see "Governmental Sphere:" | |
| 31 | - And I should see "Governmental Power:" | |
| 32 | - And I should see "Juridical Nature:" | |
| 33 | 0 | \ No newline at end of file |
features/public_software_validation.feature
features/step_definitions/software_communities_steps.rb
| ... | ... | @@ -18,28 +18,6 @@ Given /^SoftwareInfo has initial default values on database$/ do |
| 18 | 18 | OperatingSystemName.create(:name=>"CentOS") |
| 19 | 19 | end |
| 20 | 20 | |
| 21 | -Given /^Institutions has initial default values on database$/ do | |
| 22 | - GovernmentalPower.create(:name => "Executivo") | |
| 23 | - GovernmentalPower.create(:name => "Legislativo") | |
| 24 | - GovernmentalPower.create(:name => "Judiciario") | |
| 25 | - | |
| 26 | - GovernmentalSphere.create(:name => "Federal") | |
| 27 | - | |
| 28 | - JuridicalNature.create(:name => "Autarquia") | |
| 29 | - JuridicalNature.create(:name => "Administracao Direta") | |
| 30 | - JuridicalNature.create(:name => "Empresa Publica") | |
| 31 | - JuridicalNature.create(:name => "Fundacao") | |
| 32 | - JuridicalNature.create(:name => "Orgao Autonomo") | |
| 33 | - JuridicalNature.create(:name => "Sociedade") | |
| 34 | - JuridicalNature.create(:name => "Sociedade Civil") | |
| 35 | - JuridicalNature.create(:name => "Sociedade de Economia Mista") | |
| 36 | - | |
| 37 | - national_region = NationalRegion.new | |
| 38 | - national_region.name = "Distrito Federal" | |
| 39 | - national_region.national_region_code = '35' | |
| 40 | - national_region.national_region_type_id = NationalRegionType::STATE | |
| 41 | - national_region.save | |
| 42 | -end | |
| 43 | 21 | |
| 44 | 22 | Given /^I type in "([^"]*)" in autocomplete list "([^"]*)" and I choose "([^"]*)"$/ do |typed, input_field_selector, should_select| |
| 45 | 23 | # Wait the page javascript load |
| ... | ... | @@ -64,27 +42,6 @@ Given /^I type in "([^"]*)" in autocomplete list "([^"]*)" and I choose "([^"]*) |
| 64 | 42 | sleep 1 |
| 65 | 43 | end |
| 66 | 44 | |
| 67 | -Given /^the following public institutions?$/ do |table| | |
| 68 | - # table is a Cucumber::Ast::Table | |
| 69 | - table.hashes.each do |item| | |
| 70 | - community = Community.new | |
| 71 | - community.name = item[:name] | |
| 72 | - community.country = item[:country] | |
| 73 | - community.state = item[:state] | |
| 74 | - community.city = item[:city] | |
| 75 | - community.save! | |
| 76 | - | |
| 77 | - governmental_power = GovernmentalPower.where(:name => item[:governmental_power]).first | |
| 78 | - governmental_sphere = GovernmentalSphere.where(:name => item[:governmental_sphere]).first | |
| 79 | - | |
| 80 | - juridical_nature = JuridicalNature.create(:name => item[:juridical_nature]) | |
| 81 | - | |
| 82 | - institution = PublicInstitution.new(:name => item[:name], :type => "PublicInstitution", :acronym => item[:acronym], :cnpj => item[:cnpj], :juridical_nature => juridical_nature, :governmental_power => governmental_power, :governmental_sphere => governmental_sphere) | |
| 83 | - institution.community = community | |
| 84 | - institution.corporate_name = item[:corporate_name] | |
| 85 | - institution.save! | |
| 86 | - end | |
| 87 | -end | |
| 88 | 45 | |
| 89 | 46 | Given /^the following software language$/ do |table| |
| 90 | 47 | table.hashes.each do |item| | ... | ... |
features/user_profile_edition.feature
| ... | ... | @@ -1,53 +0,0 @@ |
| 1 | -Feature: Institution Field | |
| 2 | - As a user | |
| 3 | - I want to update my update my user data | |
| 4 | - So I can maintain my personal data updated | |
| 5 | - | |
| 6 | - Background: | |
| 7 | - Given "SoftwareCommunitiesPlugin" plugin is enabled | |
| 8 | - And I am logged in as mpog_admin | |
| 9 | - And I go to /admin/plugins | |
| 10 | - And I check "SoftwareCommunitiesPlugin" | |
| 11 | - And I press "Save changes" | |
| 12 | - And feature "skip_new_user_email_confirmation" is enabled on environment | |
| 13 | - And I go to /admin/features/manage_fields | |
| 14 | - And I check "person_fields_country_active" | |
| 15 | - And I check "person_fields_state_active" | |
| 16 | - And I check "person_fields_city_active" | |
| 17 | - And I press "Save changes" | |
| 18 | - And Institutions has initial default values on database | |
| 19 | - And the following public institutions | |
| 20 | - | name | acronym | country | state | city | cnpj | juridical_nature | governmental_power | governmental_sphere | corporate_name | | |
| 21 | - | Ministerio das Cidades | MC | BR | DF | Gama | 58.745.189/0001-21 | Autarquia | Executivo | Federal | Ministerio das Cidades | | |
| 22 | - | Governo do DF | GDF | BR | DF | Taguatinga | 12.645.166/0001-44 | Autarquia | Legislativo | Federal | Governo do DF | | |
| 23 | - | Ministerio do Planejamento | MP | BR | DF | Brasilia | 41.769.591/0001-43 | Autarquia | Judiciario | Federal | Ministerio do Planejamento | | |
| 24 | - And I am logged in as mpog_admin | |
| 25 | - | |
| 26 | - @selenium | |
| 27 | - Scenario: Add more then one instituion on profile editor | |
| 28 | - Given I follow "Edit Profile" | |
| 29 | - And I follow "Add new institution" | |
| 30 | - And I type in "Minis" in autocomplete list "#input_institution" and I choose "Ministerio do Planejamento" | |
| 31 | - And I follow "Add new institution" | |
| 32 | - And I type in "Gover" in autocomplete list "#input_institution" and I choose "Governo do DF" | |
| 33 | - And I follow "Add new institution" | |
| 34 | - Then I should see "Ministerio do Planejamento" within ".institutions_added" | |
| 35 | - And I should see "Governo do DF" within ".institutions_added" | |
| 36 | - | |
| 37 | - @selenium | |
| 38 | - Scenario: Verify if field 'city' is shown when Brazil is selected | |
| 39 | - Given I follow "Edit Profile" | |
| 40 | - Then I should see "City" | |
| 41 | - | |
| 42 | - @selenium | |
| 43 | - Scenario: Verify if field 'city' does not appear when Brazil is not selected as country | |
| 44 | - Given I follow "Edit Profile" | |
| 45 | - When I select "United States" from "profile_data_country" | |
| 46 | - Then I should not see "City" within ".type-text" | |
| 47 | - | |
| 48 | - @selenium | |
| 49 | - Scenario: Show message of institution not found | |
| 50 | - Given I follow "Edit Profile" | |
| 51 | - And I fill in "input_institution" with "Some Nonexistent Institution" | |
| 52 | - And I sleep for 1 seconds | |
| 53 | - Then I should see "No institution found" |
lib/software_communities_plugin.rb
| ... | ... | @@ -73,14 +73,12 @@ class SoftwareCommunitiesPlugin < Noosfero::Plugin |
| 73 | 73 | vendor/jquery.js |
| 74 | 74 | lib/noosfero-root.js |
| 75 | 75 | lib/select-element.js |
| 76 | - lib/select-field-choices | |
| 76 | + lib/select-field-choices.js | |
| 77 | 77 | lib/auto-complete.js |
| 78 | 78 | lib/software-catalog-component.js |
| 79 | 79 | views/control-panel.js |
| 80 | 80 | views/edit-software.js |
| 81 | 81 | views/new-software.js |
| 82 | - views/user-edit-profile.js | |
| 83 | - views/create-institution.js | |
| 84 | 82 | views/search-software-catalog.js |
| 85 | 83 | views/profile-tabs-software.js |
| 86 | 84 | views/new-community.js | ... | ... |
public/initializer.js
public/static/governmental_powers.txt
public/static/governmental_sphere.txt
public/static/juridical_nature.txt
public/views/control-panel.js
| ... | ... | @@ -9,22 +9,11 @@ modulejs.define('ControlPanel', ['jquery'], function($) { |
| 9 | 9 | } |
| 10 | 10 | } |
| 11 | 11 | |
| 12 | - | |
| 13 | - function add_institution_on_control_panel(control_panel) { | |
| 14 | - var institution_link = $(".control-panel-instituton-link").remove(); | |
| 15 | - | |
| 16 | - if( institution_link.size() > 0 ) { | |
| 17 | - control_panel.prepend(institution_link); | |
| 18 | - } | |
| 19 | - } | |
| 20 | - | |
| 21 | - | |
| 22 | 12 | function add_itens_on_controla_panel() { |
| 23 | 13 | var control_panel = $(".control-panel"); |
| 24 | 14 | |
| 25 | 15 | if( control_panel.size() > 0 ) { |
| 26 | 16 | add_software_on_control_panel(control_panel); |
| 27 | - add_institution_on_control_panel(control_panel); | |
| 28 | 17 | } |
| 29 | 18 | } |
| 30 | 19 | ... | ... |
public/views/create-institution.js
| ... | ... | @@ -1,312 +0,0 @@ |
| 1 | -modulejs.define('CreateInstitution', ['jquery', 'NoosferoRoot', 'SelectElement'], function($, NoosferoRoot, SelectElement) { | |
| 2 | - 'use strict'; | |
| 3 | - | |
| 4 | - var AJAX_URL = { | |
| 5 | - create_institution_modal: | |
| 6 | - NoosferoRoot.urlWithSubDirectory("/plugin/software_communities/create_institution"), | |
| 7 | - new_institution: | |
| 8 | - NoosferoRoot.urlWithSubDirectory("/plugin/software_communities/new_institution"), | |
| 9 | - institution_already_exists: | |
| 10 | - NoosferoRoot.urlWithSubDirectory("/plugin/software_communities/institution_already_exists"), | |
| 11 | - get_institutions: | |
| 12 | - NoosferoRoot.urlWithSubDirectory("/plugin/software_communities/get_institutions") | |
| 13 | - }; | |
| 14 | - | |
| 15 | - | |
| 16 | - function open_create_institution_modal(evt) { | |
| 17 | - evt.preventDefault(); | |
| 18 | - | |
| 19 | - $.get(AJAX_URL.create_institution_modal, function(response){ | |
| 20 | - $("#institution_dialog").html(response); | |
| 21 | - | |
| 22 | - set_form_count_custom_data(); | |
| 23 | - set_events(); | |
| 24 | - | |
| 25 | - $("#institution_dialog").dialog({ | |
| 26 | - modal: true, | |
| 27 | - width: 500, | |
| 28 | - height: 530, | |
| 29 | - position: 'center', | |
| 30 | - close: function() { | |
| 31 | - $("#institution_dialog").html(""); | |
| 32 | - $('#institution_empty_ajax_message').switchClass("show-field", "hide-field"); | |
| 33 | - } | |
| 34 | - }); | |
| 35 | - }); | |
| 36 | - } | |
| 37 | - | |
| 38 | - | |
| 39 | - function show_public_institutions_fields() { | |
| 40 | - $(".public-institutions-fields").show(); | |
| 41 | - } | |
| 42 | - | |
| 43 | - | |
| 44 | - function show_private_institutions_fields() { | |
| 45 | - $(".public-institutions-fields").hide(); | |
| 46 | - | |
| 47 | - $("#institutions_governmental_power option").selected(0); | |
| 48 | - $("#institutions_governmental_sphere option").selected(0); | |
| 49 | - } | |
| 50 | - | |
| 51 | - | |
| 52 | - function get_comunity_post_data() { | |
| 53 | - return { | |
| 54 | - name : $("#community_name").val(), | |
| 55 | - country : $("#community_country").val(), | |
| 56 | - state : $("#community_state").val(), | |
| 57 | - city : $("#community_city").val() | |
| 58 | - } | |
| 59 | - } | |
| 60 | - | |
| 61 | - | |
| 62 | - function get_institution_post_data() { | |
| 63 | - return { | |
| 64 | - cnpj: $("#institutions_cnpj").val(), | |
| 65 | - type: $("input[name='institutions[type]']:checked").val(), | |
| 66 | - acronym : $("#institutions_acronym").val(), | |
| 67 | - governmental_power: $("#institutions_governmental_power").selected().val(), | |
| 68 | - governmental_sphere: $("#institutions_governmental_sphere").selected().val(), | |
| 69 | - juridical_nature: $("#institutions_juridical_nature").selected().val(), | |
| 70 | - corporate_name: $("#institutions_corporate_name").val() | |
| 71 | - } | |
| 72 | - } | |
| 73 | - | |
| 74 | - | |
| 75 | - function get_post_data() { | |
| 76 | - var post_data = {}; | |
| 77 | - | |
| 78 | - post_data.community = get_comunity_post_data(); | |
| 79 | - post_data.institutions = get_institution_post_data(); | |
| 80 | - | |
| 81 | - return post_data; | |
| 82 | - } | |
| 83 | - | |
| 84 | - | |
| 85 | - function success_ajax_response(response) { | |
| 86 | - close_loading(); | |
| 87 | - | |
| 88 | - if(response.success){ | |
| 89 | - var institution_name = response.institution_data.name; | |
| 90 | - var institution_id = response.institution_data.id; | |
| 91 | - | |
| 92 | - $("#institution_dialog").html("<div class='errorExplanation'><h2>"+response.message+"</h2></div>"); | |
| 93 | - $("#create_institution_errors").switchClass("show-field", "hide-field"); | |
| 94 | - | |
| 95 | - $(".institution_container").append(get_clone_institution_data(institution_id)); | |
| 96 | - add_selected_institution_to_list(institution_id, institution_name); | |
| 97 | - | |
| 98 | - $(".remove-institution").click(remove_institution); | |
| 99 | - } else { | |
| 100 | - var errors = "<ul>"; | |
| 101 | - | |
| 102 | - for(var i = 0; i < response.errors.length; i++) { | |
| 103 | - errors += "<li>"+response.errors[i]+"</li>"; | |
| 104 | - } | |
| 105 | - errors += "</ul>"; | |
| 106 | - | |
| 107 | - $("#create_institution_errors").switchClass("hide-field", "show-field").html("<h2>"+response.message+"</h2>"+errors); | |
| 108 | - } | |
| 109 | - } | |
| 110 | - | |
| 111 | - | |
| 112 | - function save_institution(evt) { | |
| 113 | - evt.preventDefault(); | |
| 114 | - | |
| 115 | - open_loading($("#loading_message").val()); | |
| 116 | - $.ajax({ | |
| 117 | - url: AJAX_URL.new_institution, | |
| 118 | - data : get_post_data(), | |
| 119 | - type: "POST", | |
| 120 | - success: success_ajax_response, | |
| 121 | - error: function() { | |
| 122 | - close_loading(); | |
| 123 | - var error_message = $("#institution_error_message").val(); | |
| 124 | - $("#create_institution_errors").switchClass("hide-field", "show-field").html("<h2>"+error_message+"</h2>"); | |
| 125 | - } | |
| 126 | - }); | |
| 127 | - } | |
| 128 | - | |
| 129 | - | |
| 130 | - function institution_already_exists(){ | |
| 131 | - if( this.value.length >= 3 ) { | |
| 132 | - $.get(AJAX_URL.institution_already_exists, {name:this.value}, function(response){ | |
| 133 | - if( response === true ) { | |
| 134 | - $("#already_exists_text").switchClass("hide-field", "show-field"); | |
| 135 | - } else { | |
| 136 | - $("#already_exists_text").switchClass("show-field", "hide-field"); | |
| 137 | - } | |
| 138 | - }); | |
| 139 | - } | |
| 140 | - } | |
| 141 | - | |
| 142 | - | |
| 143 | - function get_clone_institution_data(value) { | |
| 144 | - var user_institutions = $(".user_institutions").first().clone(); | |
| 145 | - user_institutions.val(value); | |
| 146 | - | |
| 147 | - return user_institutions; | |
| 148 | - } | |
| 149 | - | |
| 150 | - | |
| 151 | - function institution_autocomplete() { | |
| 152 | - $("#input_institution").autocomplete({ | |
| 153 | - source : function(request, response){ | |
| 154 | - $.ajax({ | |
| 155 | - type: "GET", | |
| 156 | - url: AJAX_URL.get_institutions, | |
| 157 | - data: {query: request.term}, | |
| 158 | - success: function(result){ | |
| 159 | - response(result); | |
| 160 | - | |
| 161 | - if( result.length === 0 ) { | |
| 162 | - $('#institution_empty_ajax_message').switchClass("hide-field", "show-field"); | |
| 163 | - } else { | |
| 164 | - $('#institution_empty_ajax_message').switchClass("show-field", "hide-field"); | |
| 165 | - } | |
| 166 | - }, | |
| 167 | - error: function(ajax, stat, errorThrown) { | |
| 168 | - console.log('Link not found : ' + errorThrown); | |
| 169 | - } | |
| 170 | - }); | |
| 171 | - }, | |
| 172 | - | |
| 173 | - minLength: 2, | |
| 174 | - | |
| 175 | - select : function (event, selected) { | |
| 176 | - $("#institution_selected").val(selected.item.id).attr("data-name", selected.item.label); | |
| 177 | - } | |
| 178 | - }); | |
| 179 | - } | |
| 180 | - | |
| 181 | - | |
| 182 | - function add_selected_institution_to_list(id, name) { | |
| 183 | - var selected_institution = "<li data-institution='"+id+"'>"+name; | |
| 184 | - selected_institution += "<a href='#' class='button without-text icon-remove remove-institution'></a></li>"; | |
| 185 | - | |
| 186 | - $(".institutions_added").append(selected_institution); | |
| 187 | - } | |
| 188 | - | |
| 189 | - | |
| 190 | - function add_new_institution(evt) { | |
| 191 | - evt.preventDefault(); | |
| 192 | - var selected = $("#institution_selected"); | |
| 193 | - var institution_already_added = $(".institutions_added li[data-institution='"+selected.val()+"']").length; | |
| 194 | - | |
| 195 | - if(selected.val().length > 0 && institution_already_added === 0) { | |
| 196 | - //field that send the institutions to the server | |
| 197 | - $(".institution_container").append(get_clone_institution_data(selected.val())); | |
| 198 | - | |
| 199 | - // Visualy add the selected institution to the list | |
| 200 | - add_selected_institution_to_list(selected.val(), selected.attr("data-name")); | |
| 201 | - | |
| 202 | - // clean the institution flag | |
| 203 | - selected.val("").attr("data-name", ""); | |
| 204 | - $("#input_institution").val(""); | |
| 205 | - | |
| 206 | - $(".remove-institution").click(remove_institution); | |
| 207 | - } | |
| 208 | - } | |
| 209 | - | |
| 210 | - | |
| 211 | - function remove_institution(evt) { | |
| 212 | - evt.preventDefault(); | |
| 213 | - var code = $(this).parent().attr("data-institution"); | |
| 214 | - | |
| 215 | - $(".user_institutions[value="+code+"]").remove(); | |
| 216 | - $(this).parent().remove(); | |
| 217 | - } | |
| 218 | - | |
| 219 | - | |
| 220 | - function add_mask_to_form_items() { | |
| 221 | - $(".intitution_cnpj_field").mask("99.999.999/9999-99"); | |
| 222 | - } | |
| 223 | - | |
| 224 | - | |
| 225 | - function show_hide_cnpj_city(country) { | |
| 226 | - var cnpj = $("#institutions_cnpj").parent().parent(); | |
| 227 | - var city = $("#community_city").parent().parent(); | |
| 228 | - var state = $("#community_state").parent().parent(); | |
| 229 | - | |
| 230 | - if( country === "-1" ) $("#community_country").val("BR"); | |
| 231 | - | |
| 232 | - if( country !== "BR" ) { | |
| 233 | - cnpj.hide(); | |
| 234 | - city.hide(); | |
| 235 | - state.hide(); | |
| 236 | - } else { | |
| 237 | - cnpj.show(); | |
| 238 | - city.show(); | |
| 239 | - state.show(); | |
| 240 | - } | |
| 241 | - } | |
| 242 | - | |
| 243 | - | |
| 244 | - function institution_type_actions(type) { | |
| 245 | - if( type === "PublicInstitution" ) { | |
| 246 | - show_public_institutions_fields(); | |
| 247 | - } else { | |
| 248 | - show_private_institutions_fields(); | |
| 249 | - } | |
| 250 | - } | |
| 251 | - | |
| 252 | - | |
| 253 | - function set_form_count_custom_data() { | |
| 254 | - var divisor_option = SelectElement.generateOption("-1", "--------------------------------"); | |
| 255 | - var default_option = SelectElement.generateOption("BR", "Brazil"); | |
| 256 | - | |
| 257 | - var inst_type = $("input[name='institutions[type]']:checked").val(); | |
| 258 | - var country = $("#community_country").val(); | |
| 259 | - | |
| 260 | - institution_type_actions(inst_type); | |
| 261 | - show_hide_cnpj_city(country); | |
| 262 | - | |
| 263 | - if( $('#community_country').find("option[value='']").length === 1 ) { | |
| 264 | - $('#community_country').find("option[value='']").remove(); | |
| 265 | - $('#community_country').prepend(divisor_option); | |
| 266 | - $('#community_country').prepend(default_option); | |
| 267 | - | |
| 268 | - if($("#edit_institution_page").val() === "false") { | |
| 269 | - $('#community_country').val("BR"); | |
| 270 | - show_hide_cnpj_city($('#community_country').val()); | |
| 271 | - } | |
| 272 | - } | |
| 273 | - } | |
| 274 | - | |
| 275 | - | |
| 276 | - function set_events() { | |
| 277 | - $("#create_institution_link").click(open_create_institution_modal); | |
| 278 | - | |
| 279 | - $("input[name='institutions[type]']").click(function(){ | |
| 280 | - institution_type_actions(this.value); | |
| 281 | - }); | |
| 282 | - | |
| 283 | - $('#save_institution_button').click(save_institution); | |
| 284 | - | |
| 285 | - $("#community_name").keyup(institution_already_exists); | |
| 286 | - | |
| 287 | - $("#add_new_institution").click(add_new_institution); | |
| 288 | - | |
| 289 | - $(".remove-institution").click(remove_institution); | |
| 290 | - | |
| 291 | - $("#community_country").change(function(){ | |
| 292 | - show_hide_cnpj_city(this.value); | |
| 293 | - }); | |
| 294 | - | |
| 295 | - add_mask_to_form_items(); | |
| 296 | - | |
| 297 | - institution_autocomplete(); | |
| 298 | - } | |
| 299 | - | |
| 300 | - | |
| 301 | - return { | |
| 302 | - isCurrentPage: function() { | |
| 303 | - return $("#institution_form").length === 1; | |
| 304 | - }, | |
| 305 | - | |
| 306 | - | |
| 307 | - init: function() { | |
| 308 | - set_form_count_custom_data(); | |
| 309 | - set_events(); | |
| 310 | - } | |
| 311 | - } | |
| 312 | -}); |
public/views/user-edit-profile.js
| ... | ... | @@ -1,216 +0,0 @@ |
| 1 | -modulejs.define('UserEditProfile', ['jquery', 'SelectElement', 'SelectFieldChoices', 'CreateInstitution'], function($, SelectElement, SelectFieldChoices, CreateInstitution) { | |
| 2 | - 'use strict'; | |
| 3 | - | |
| 4 | - function set_form_count_custom_data() { | |
| 5 | - var divisor_option = SelectElement.generateOption("-1", "--------------------------------"); | |
| 6 | - var default_option = SelectElement.generateOption("BR", "Brazil"); | |
| 7 | - | |
| 8 | - $('#profile_data_country').find("option[value='']").remove(); | |
| 9 | - $('#profile_data_country').prepend(divisor_option); | |
| 10 | - $('#profile_data_country').prepend(default_option); | |
| 11 | - $('#profile_data_country').val("BR"); | |
| 12 | - } | |
| 13 | - | |
| 14 | - | |
| 15 | - function set_initial_form_custom_data(selectFieldChoices) { | |
| 16 | - set_form_count_custom_data(); | |
| 17 | - | |
| 18 | - $("#password-balloon").html($("#user_password_menssage").val()); | |
| 19 | - $("#profile_data_email").parent().append($("#email_public_message").remove()); | |
| 20 | - | |
| 21 | - if( $("#state_field").length !== 0 ) selectFieldChoices.replaceStateWithSelectElement(); | |
| 22 | - } | |
| 23 | - | |
| 24 | - | |
| 25 | - function show_state_if_country_is_brazil() { | |
| 26 | - var selectFieldChoices = new SelectFieldChoices("#state_field", "#city_field", "/plugin/software_communities/get_brazil_states"); | |
| 27 | - set_initial_form_custom_data(selectFieldChoices); | |
| 28 | - | |
| 29 | - $("#profile_data_country").change(function(){ | |
| 30 | - if( this.value === "-1" ) $(this).val("BR"); | |
| 31 | - | |
| 32 | - if( this.value === "BR" && selectFieldChoices.actualFieldIsInput() ) { | |
| 33 | - selectFieldChoices.replaceStateWithSelectElement(); | |
| 34 | - selectFieldChoices.showCity(); | |
| 35 | - } else if( this.value !== "BR" && !selectFieldChoices.actualFieldIsInput() ) { | |
| 36 | - selectFieldChoices.replaceStateWithInputElement(); | |
| 37 | - selectFieldChoices.hideCity(); | |
| 38 | - } | |
| 39 | - }); | |
| 40 | - } | |
| 41 | - | |
| 42 | - | |
| 43 | - function show_or_hide_phone_mask() { | |
| 44 | - if($("#profile_data_country").val() === "BR") { | |
| 45 | - if( (typeof $("#profile_data_cell_phone").data("rawMaskFn") === 'undefined') ) { | |
| 46 | - $("#profile_data_cell_phone").mask("(99) 9999?9-9999"); | |
| 47 | - $("#profile_data_comercial_phone").mask("(99) 9999?9-9999"); | |
| 48 | - $("#profile_data_contact_phone").mask("(99) 9999?9-9999"); | |
| 49 | - } | |
| 50 | - } else { | |
| 51 | - $("#profile_data_cell_phone").unmask(); | |
| 52 | - $("#profile_data_comercial_phone").unmask(); | |
| 53 | - $("#profile_data_contact_phone").unmask(); | |
| 54 | - } | |
| 55 | - } | |
| 56 | - | |
| 57 | - | |
| 58 | - function fix_phone_mask_format(id) { | |
| 59 | - $(id).blur(function() { | |
| 60 | - var last = $(this).val().substr( $(this).val().indexOf("-") + 1 ); | |
| 61 | - | |
| 62 | - if( last.length === 3 ) { | |
| 63 | - var move = $(this).val().substr( $(this).val().indexOf("-") - 1, 1 ); | |
| 64 | - var lastfour = move + last; | |
| 65 | - var first = $(this).val().substr( 0, 9 ); | |
| 66 | - | |
| 67 | - $(this).val( first + '-' + lastfour ); | |
| 68 | - } | |
| 69 | - }); | |
| 70 | - } | |
| 71 | - | |
| 72 | - | |
| 73 | - function show_plugin_error_message(field_selector, hidden_message_id ) { | |
| 74 | - var field = $(field_selector); | |
| 75 | - | |
| 76 | - field.removeClass("validated").addClass("invalid"); | |
| 77 | - | |
| 78 | - if(!$("." + hidden_message_id)[0]) { | |
| 79 | - var message = $("#" + hidden_message_id).val(); | |
| 80 | - field.parent().append("<div class='" + hidden_message_id + " errorExplanation'>"+message+"</span>"); | |
| 81 | - } else { | |
| 82 | - $("." + hidden_message_id).show(); | |
| 83 | - } | |
| 84 | - } | |
| 85 | - | |
| 86 | - | |
| 87 | - function hide_plugin_error_message(field_selector, hidden_message_id) { | |
| 88 | - $(field_selector).removeClass("invalid").addClass("validated"); | |
| 89 | - $("." + hidden_message_id).hide(); | |
| 90 | - } | |
| 91 | - | |
| 92 | - | |
| 93 | - function add_blur_fields(field_selector, hidden_message_id, validation_function, allow_blank) { | |
| 94 | - $(field_selector).blur(function(){ | |
| 95 | - $(this).attr("class", ""); | |
| 96 | - | |
| 97 | - if( validation_function(this.value, !!allow_blank) ) { | |
| 98 | - show_plugin_error_message(field_selector, hidden_message_id); | |
| 99 | - } else { | |
| 100 | - hide_plugin_error_message(field_selector, hidden_message_id); | |
| 101 | - } | |
| 102 | - }); | |
| 103 | - } | |
| 104 | - | |
| 105 | - | |
| 106 | - function invalid_email_validation(value, allow_blank) { | |
| 107 | - if( allow_blank && value.trim().length === 0 ) { | |
| 108 | - return false; | |
| 109 | - } | |
| 110 | - | |
| 111 | - var correct_format_regex = new RegExp(/^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/); | |
| 112 | - | |
| 113 | - return !correct_format_regex.test(value); | |
| 114 | - } | |
| 115 | - | |
| 116 | - | |
| 117 | - function invalid_site_validation(value) { | |
| 118 | - var correct_format_regex = new RegExp(/(^|)(http[s]{0,1})\:\/\/(\w+[.])\w+/g); | |
| 119 | - | |
| 120 | - return !correct_format_regex.test(value); | |
| 121 | - } | |
| 122 | - | |
| 123 | - | |
| 124 | - function get_privacy_selector_parent_div(field_id, actual) { | |
| 125 | - if( actual === undefined ) actual = $(field_id); | |
| 126 | - | |
| 127 | - if( actual.is("form") || actual.length === 0 ) return null; // Not allow recursion over form | |
| 128 | - | |
| 129 | - if( actual.hasClass("field-with-privacy-selector") ) { | |
| 130 | - return actual; | |
| 131 | - } else { | |
| 132 | - return get_privacy_selector_parent_div(field_id, actual.parent()); | |
| 133 | - } | |
| 134 | - } | |
| 135 | - | |
| 136 | - | |
| 137 | - function try_to_remove(list, field) { | |
| 138 | - try { | |
| 139 | - list.push(field.remove()); | |
| 140 | - } catch(e) { | |
| 141 | - console.log("Cound not remove field"); | |
| 142 | - } | |
| 143 | - } | |
| 144 | - | |
| 145 | - | |
| 146 | - function get_edit_fields_in_insertion_order() { | |
| 147 | - var containers = []; | |
| 148 | - | |
| 149 | - try_to_remove(containers, get_privacy_selector_parent_div("#city_field")); | |
| 150 | - try_to_remove(containers, get_privacy_selector_parent_div("#state_field")); | |
| 151 | - try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_country")); | |
| 152 | - try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_birth_date")); | |
| 153 | - try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_organization_website")); | |
| 154 | - try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_personal_website")); | |
| 155 | - try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_comercial_phone")); | |
| 156 | - try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_contact_phone")); | |
| 157 | - try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_cell_phone")); | |
| 158 | - try_to_remove(containers, $("#select_institution")); | |
| 159 | - try_to_remove(containers, $("#user_secondary_email").parent().parent()); | |
| 160 | - try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_email")); | |
| 161 | - try_to_remove(containers, get_privacy_selector_parent_div("#profile_data_name")); | |
| 162 | - try_to_remove(containers, $(".pseudoformlabel").parent().parent()); | |
| 163 | - try_to_remove(containers, $("h2")[0]); | |
| 164 | - | |
| 165 | - return containers; | |
| 166 | - } | |
| 167 | - | |
| 168 | - | |
| 169 | - function change_edit_fields_order() { | |
| 170 | - var form = $("#profile-data"); | |
| 171 | - | |
| 172 | - if( form.length !== 0 ) { | |
| 173 | - var containers = get_edit_fields_in_insertion_order(); | |
| 174 | - | |
| 175 | - containers.forEach(function(container){ | |
| 176 | - form.prepend(container); | |
| 177 | - }); | |
| 178 | - } | |
| 179 | - } | |
| 180 | - | |
| 181 | - | |
| 182 | - function set_fields_validations() { | |
| 183 | - $("#profile_data_country").blur(show_or_hide_phone_mask); | |
| 184 | - | |
| 185 | - $("#profile_data_birth_date").mask("99/99/9999"); | |
| 186 | - | |
| 187 | - fix_phone_mask_format("#profile_data_cell_phone"); | |
| 188 | - fix_phone_mask_format("#profile_data_comercial_phone"); | |
| 189 | - fix_phone_mask_format("#profile_data_contact_phone"); | |
| 190 | - | |
| 191 | - add_blur_fields("#profile_data_email", "email_error", invalid_email_validation); | |
| 192 | - add_blur_fields("#user_secondary_email", "email_error", invalid_email_validation, true); | |
| 193 | - add_blur_fields("#profile_data_personal_website", "site_error", invalid_site_validation); | |
| 194 | - add_blur_fields("#profile_data_organization_website", "site_error", invalid_site_validation); | |
| 195 | - } | |
| 196 | - | |
| 197 | - | |
| 198 | - return { | |
| 199 | - isCurrentPage: function() { | |
| 200 | - return $('#profile_data_email').length === 1; | |
| 201 | - }, | |
| 202 | - | |
| 203 | - | |
| 204 | - init: function() { | |
| 205 | - change_edit_fields_order(); // To change the fields order, it MUST be the first function executed | |
| 206 | - | |
| 207 | - show_state_if_country_is_brazil(); | |
| 208 | - | |
| 209 | - show_or_hide_phone_mask(); | |
| 210 | - | |
| 211 | - set_fields_validations(); | |
| 212 | - | |
| 213 | - CreateInstitution.init(); | |
| 214 | - } | |
| 215 | - } | |
| 216 | -}); |
test/functional/profile_editor_controller_test.rb
test/functional/software_communities_plugin_controller_test.rb
| 1 | 1 | require File.dirname(__FILE__) + '/../../../../test/test_helper' |
| 2 | -require File.dirname(__FILE__) + '/../helpers/institution_test_helper' | |
| 3 | 2 | require File.dirname(__FILE__) + '/../../controllers/software_communities_plugin_controller' |
| 4 | 3 | |
| 5 | 4 | class SoftwareCommunitiesPluginController; def rescue_action(e) raise e end; end | ... | ... |
test/helpers/institution_test_helper.rb
| ... | ... | @@ -1,59 +0,0 @@ |
| 1 | -module InstitutionTestHelper | |
| 2 | - | |
| 3 | - def self.generate_form_fields name, country, state, city, cnpj, type | |
| 4 | - fields = { | |
| 5 | - :community => { | |
| 6 | - :name => name, | |
| 7 | - :country => country, | |
| 8 | - :state => state, | |
| 9 | - :city => city | |
| 10 | - }, | |
| 11 | - :institutions => { | |
| 12 | - :cnpj=> cnpj, | |
| 13 | - :type => type, | |
| 14 | - :acronym => "", | |
| 15 | - :governmental_power => "", | |
| 16 | - :governmental_sphere => "", | |
| 17 | - :juridical_nature => "", | |
| 18 | - :corporate_name => "coporate default" | |
| 19 | - } | |
| 20 | - } | |
| 21 | - fields | |
| 22 | - end | |
| 23 | - | |
| 24 | - def self.create_public_institution name, acronym, country, state, city, juridical_nature, gov_p, gov_s, cnpj | |
| 25 | - institution = PublicInstitution.new | |
| 26 | - institution.community = institution_community(name, country, state, city) | |
| 27 | - institution.name = name | |
| 28 | - institution.juridical_nature = juridical_nature | |
| 29 | - institution.acronym = acronym | |
| 30 | - institution.governmental_power = gov_p | |
| 31 | - institution.governmental_sphere = gov_s | |
| 32 | - institution.cnpj = cnpj | |
| 33 | - institution.corporate_name = "corporate default" | |
| 34 | - institution.save | |
| 35 | - institution | |
| 36 | - end | |
| 37 | - | |
| 38 | - def self.create_private_institution name, acronym, country, state, city, cnpj | |
| 39 | - institution = PrivateInstitution.new | |
| 40 | - institution.community = institution_community(name, country, state, city) | |
| 41 | - institution.name = name | |
| 42 | - institution.acronym = acronym | |
| 43 | - institution.cnpj = cnpj | |
| 44 | - institution.corporate_name = "corporate default" | |
| 45 | - institution.save | |
| 46 | - | |
| 47 | - institution | |
| 48 | - end | |
| 49 | - | |
| 50 | - def self.institution_community name, country, state, city | |
| 51 | - institution_community = Community::new | |
| 52 | - institution_community.name = name | |
| 53 | - institution_community.country = country | |
| 54 | - institution_community.state = state | |
| 55 | - institution_community.city = city | |
| 56 | - institution_community.save | |
| 57 | - institution_community | |
| 58 | - end | |
| 59 | -end | |
| 60 | 0 | \ No newline at end of file |
test/helpers/plugin_test_helper.rb
| 1 | -require File.dirname(__FILE__) + '/../helpers/institution_test_helper' | |
| 2 | - | |
| 3 | 1 | module PluginTestHelper |
| 4 | 2 | |
| 5 | - def create_public_institution *params | |
| 6 | - InstitutionTestHelper.create_public_institution *params | |
| 7 | - end | |
| 8 | - | |
| 9 | 3 | def create_community name |
| 10 | 4 | community = fast_create(Community) |
| 11 | 5 | community.name = name |
| ... | ... | @@ -25,27 +19,6 @@ module PluginTestHelper |
| 25 | 19 | software_info |
| 26 | 20 | end |
| 27 | 21 | |
| 28 | - def create_private_institution name, acronym, country, state, city, cnpj | |
| 29 | - InstitutionTestHelper.create_private_institution( | |
| 30 | - name, | |
| 31 | - acronym, | |
| 32 | - country, | |
| 33 | - state, | |
| 34 | - city, | |
| 35 | - cnpj | |
| 36 | - ) | |
| 37 | - end | |
| 38 | - | |
| 39 | - def create_community_institution name, country, state, city | |
| 40 | - community = fast_create(Community) | |
| 41 | - community.name = name | |
| 42 | - community.country = country | |
| 43 | - community.state = state | |
| 44 | - community.city = city | |
| 45 | - community.save | |
| 46 | - community | |
| 47 | - end | |
| 48 | - | |
| 49 | 22 | def create_person name, email, password, password_confirmation, state, city |
| 50 | 23 | user = create_user( |
| 51 | 24 | name.to_slug, | ... | ... |
test/unit/communities_block_test.rb
| 1 | 1 | require File.dirname(__FILE__) + '/../../../../test/test_helper' |
| 2 | -require File.dirname(__FILE__) + '/../helpers/institution_test_helper' | |
| 3 | 2 | require File.dirname(__FILE__) + '/../helpers/plugin_test_helper' |
| 4 | 3 | |
| 5 | 4 | class CommunitiesBlockTest < ActiveSupport::TestCase |
| ... | ... | @@ -7,13 +6,6 @@ class CommunitiesBlockTest < ActiveSupport::TestCase |
| 7 | 6 | def setup |
| 8 | 7 | @person = create_person("My Name", "user@email.com", "123456", "123456", "Any State", "Some City") |
| 9 | 8 | |
| 10 | - @gov_power = GovernmentalPower.create(:name=>"Some Gov Power") | |
| 11 | - @gov_sphere = GovernmentalSphere.create(:name=>"Some Gov Sphere") | |
| 12 | - @juridical_nature = JuridicalNature.create(:name => "Autarquia") | |
| 13 | - | |
| 14 | - @institution = InstitutionTestHelper.create_public_institution("Ministerio Publico da Uniao", "MPU", "BR", "DF", "Gama", @juridical_nature, @gov_power, @gov_sphere, "12.345.678/9012-45") | |
| 15 | - @institution.community.add_member(@person) | |
| 16 | - | |
| 17 | 9 | @software_info = create_software_info("Novo Software") |
| 18 | 10 | @software_info.community.add_member(@person) |
| 19 | 11 | |
| ... | ... | @@ -26,12 +18,8 @@ class CommunitiesBlockTest < ActiveSupport::TestCase |
| 26 | 18 | end |
| 27 | 19 | |
| 28 | 20 | def teardown |
| 29 | - GovernmentalPower.destroy_all | |
| 30 | - GovernmentalSphere.destroy_all | |
| 31 | - JuridicalNature.destroy_all | |
| 32 | 21 | CommunitiesBlock.destroy_all |
| 33 | 22 | @person = nil |
| 34 | - @institution = nil | |
| 35 | 23 | @community = nil |
| 36 | 24 | @software_info = nil |
| 37 | 25 | end | ... | ... |
test/unit/governmental_power_test.rb
| ... | ... | @@ -1,33 +0,0 @@ |
| 1 | -require File.dirname(__FILE__) + '/../../../../test/test_helper' | |
| 2 | -require File.dirname(__FILE__) + '/../helpers/institution_test_helper' | |
| 3 | - | |
| 4 | -class GovernmentalPowerTest < ActiveSupport::TestCase | |
| 5 | - | |
| 6 | - def setup | |
| 7 | - @gov_sphere = GovernmentalSphere.create(:name=>"Some Gov Sphere") | |
| 8 | - @juridical_nature = JuridicalNature.create(:name => "Autarquia") | |
| 9 | - end | |
| 10 | - | |
| 11 | - def teardown | |
| 12 | - Institution.destroy_all | |
| 13 | - end | |
| 14 | - | |
| 15 | - should "get public institutions" do | |
| 16 | - inst_name = "Ministerio Publico da Uniao" | |
| 17 | - inst_cnpj = "12.345.678/9012-45" | |
| 18 | - gov_power = GovernmentalPower.create(:name=>"Some gov power") | |
| 19 | - InstitutionTestHelper.create_public_institution( | |
| 20 | - inst_name, | |
| 21 | - "MPU", | |
| 22 | - "BR", | |
| 23 | - "DF", | |
| 24 | - "Gama", | |
| 25 | - @juridical_nature, | |
| 26 | - gov_power, | |
| 27 | - @gov_sphere, | |
| 28 | - inst_cnpj | |
| 29 | - ) | |
| 30 | - | |
| 31 | - assert_equal gov_power.public_institutions.count, PublicInstitution.count | |
| 32 | - end | |
| 33 | -end | |
| 34 | 0 | \ No newline at end of file |
test/unit/institution_test.rb
| ... | ... | @@ -1,62 +0,0 @@ |
| 1 | -require File.dirname(__FILE__) + '/../../../../test/test_helper' | |
| 2 | -require File.dirname(__FILE__) + '/../helpers/plugin_test_helper' | |
| 3 | - | |
| 4 | -class InstitutionTest < ActiveSupport::TestCase | |
| 5 | - include PluginTestHelper | |
| 6 | - def setup | |
| 7 | - @gov_power = GovernmentalPower.create(:name=>"Some Gov Power") | |
| 8 | - @gov_sphere = GovernmentalSphere.create(:name=>"Some Gov Sphere") | |
| 9 | - @juridical_nature = JuridicalNature.create(:name => "Autarquia") | |
| 10 | - | |
| 11 | - @institution = create_public_institution( | |
| 12 | - "Ministerio Publico da Uniao", | |
| 13 | - "MPU", | |
| 14 | - "BR", | |
| 15 | - "DF", | |
| 16 | - "Gama", | |
| 17 | - @juridical_nature, | |
| 18 | - @gov_power, | |
| 19 | - @gov_sphere, | |
| 20 | - "11.222.333/4444-55" | |
| 21 | - ) | |
| 22 | - end | |
| 23 | - | |
| 24 | - def teardown | |
| 25 | - GovernmentalPower.destroy_all | |
| 26 | - GovernmentalSphere.destroy_all | |
| 27 | - JuridicalNature.destroy_all | |
| 28 | - @institution = nil | |
| 29 | - end | |
| 30 | - should "not save institutions without name" do | |
| 31 | - @institution.name = nil | |
| 32 | - assert !@institution.save | |
| 33 | - assert @institution.errors.full_messages.include? "Name can't be blank" | |
| 34 | - end | |
| 35 | - | |
| 36 | - should "not save if institution has invalid type" do | |
| 37 | - invalid_msg = "Type invalid, only public and private institutions are allowed." | |
| 38 | - @institution.type = "Other type" | |
| 39 | - assert !@institution.save, 'Invalid type' | |
| 40 | - assert @institution.errors.full_messages.include? invalid_msg | |
| 41 | - end | |
| 42 | - | |
| 43 | - should "not save without country" do | |
| 44 | - @institution.community.country = nil | |
| 45 | - assert !@institution.save, "Country can't be blank" | |
| 46 | - assert @institution.errors.full_messages.include? "Country can't be blank" | |
| 47 | - end | |
| 48 | - | |
| 49 | - should "not save without state" do | |
| 50 | - @institution.community.state = nil | |
| 51 | - | |
| 52 | - assert !@institution.save, "State can't be blank" | |
| 53 | - assert @institution.errors.full_messages.include? "State can't be blank" | |
| 54 | - end | |
| 55 | - | |
| 56 | - should "not save without city" do | |
| 57 | - @institution.community.city = nil | |
| 58 | - | |
| 59 | - assert !@institution.save, "City can't be blank" | |
| 60 | - assert @institution.errors.full_messages.include? "City can't be blank" | |
| 61 | - end | |
| 62 | -end |
test/unit/institutions_block_test.rb
| ... | ... | @@ -1,50 +0,0 @@ |
| 1 | -require File.dirname(__FILE__) + '/../../../../test/test_helper' | |
| 2 | -require File.dirname(__FILE__) + '/../helpers/plugin_test_helper' | |
| 3 | - | |
| 4 | -class InstitutionsBlockTest < ActiveSupport::TestCase | |
| 5 | - include PluginTestHelper | |
| 6 | - should 'inherit from Block' do | |
| 7 | - assert_kind_of Block, InstitutionsBlock.new | |
| 8 | - end | |
| 9 | - | |
| 10 | - should 'declare its default title' do | |
| 11 | - InstitutionsBlock.any_instance.stubs(:profile_count).returns(0) | |
| 12 | - assert_not_equal Block.new.default_title, InstitutionsBlock.new.default_title | |
| 13 | - end | |
| 14 | - | |
| 15 | - should 'describe itself' do | |
| 16 | - assert_not_equal Block.description, InstitutionsBlock.description | |
| 17 | - end | |
| 18 | - | |
| 19 | - should 'give empty footer on unsupported owner type' do | |
| 20 | - block = InstitutionsBlock.new | |
| 21 | - block.expects(:owner).returns(1) | |
| 22 | - assert_equal '', block.footer | |
| 23 | - end | |
| 24 | - | |
| 25 | - should 'list institutions' do | |
| 26 | - user = create_person("Jose_Augusto", | |
| 27 | - "jose_augusto@email.com", | |
| 28 | - "aaaaaaa", | |
| 29 | - "aaaaaaa", | |
| 30 | - "DF", | |
| 31 | - "Gama" | |
| 32 | - ) | |
| 33 | - | |
| 34 | - institution = create_private_institution( | |
| 35 | - "inst name", | |
| 36 | - "IN", | |
| 37 | - "country", | |
| 38 | - "state", | |
| 39 | - "city", | |
| 40 | - "00.111.222/3333-44" | |
| 41 | - ) | |
| 42 | - institution.community.add_member(user) | |
| 43 | - | |
| 44 | - block = InstitutionsBlock.new | |
| 45 | - block.expects(:owner).at_least_once.returns(user) | |
| 46 | - | |
| 47 | - assert_equivalent [institution.community], block.profiles | |
| 48 | - end | |
| 49 | - | |
| 50 | -end |
test/unit/juridical_nature_test.rb
| ... | ... | @@ -1,23 +0,0 @@ |
| 1 | -require File.dirname(__FILE__) + '/../../../../test/test_helper' | |
| 2 | -require File.dirname(__FILE__) + '/../helpers/plugin_test_helper' | |
| 3 | - | |
| 4 | -class JuridicalNatureTest < ActiveSupport::TestCase | |
| 5 | - | |
| 6 | - include PluginTestHelper | |
| 7 | - | |
| 8 | - def setup | |
| 9 | - @govPower = GovernmentalPower.create(:name=>"Some Gov Power") | |
| 10 | - @govSphere = GovernmentalSphere.create(:name=>"Some Gov Sphere") | |
| 11 | - end | |
| 12 | - | |
| 13 | - def teardown | |
| 14 | - Institution.destroy_all | |
| 15 | - end | |
| 16 | - | |
| 17 | - should "get public institutions" do | |
| 18 | - juridical_nature = JuridicalNature.create(:name => "Autarquia") | |
| 19 | - create_public_institution("Ministerio Publico da Uniao", "MPU", "BR", "DF", "Gama", juridical_nature, @govPower, @govSphere, "22.333.444/5555-66") | |
| 20 | - create_public_institution("Tribunal Regional da Uniao", "TRU", "BR", "DF", "Brasilia", juridical_nature, @govPower, @govSphere, "22.333.444/5555-77") | |
| 21 | - assert juridical_nature.public_institutions.count == PublicInstitution.count | |
| 22 | - end | |
| 23 | -end |
test/unit/private_institution_test.rb
| ... | ... | @@ -1,50 +0,0 @@ |
| 1 | -require File.dirname(__FILE__) + '/../../../../test/test_helper' | |
| 2 | -require File.dirname(__FILE__) + '/../helpers/plugin_test_helper' | |
| 3 | - | |
| 4 | -class PrivateInstitutionTest < ActiveSupport::TestCase | |
| 5 | - include PluginTestHelper | |
| 6 | - def setup | |
| 7 | - @institution = create_private_institution( | |
| 8 | - "Simple Private Institution", | |
| 9 | - "SPI", | |
| 10 | - "BR", | |
| 11 | - "DF", | |
| 12 | - "Gama", | |
| 13 | - "00.000.000/0001-00" | |
| 14 | - ) | |
| 15 | - end | |
| 16 | - | |
| 17 | - def teardown | |
| 18 | - @institution = nil | |
| 19 | - Institution.destroy_all | |
| 20 | - end | |
| 21 | - | |
| 22 | - should "not save without a cnpj" do | |
| 23 | - @institution.cnpj = nil | |
| 24 | - | |
| 25 | - assert !@institution.save | |
| 26 | - assert @institution.errors.full_messages.include? "Cnpj can't be blank" | |
| 27 | - end | |
| 28 | - | |
| 29 | - should "not save with a repeated cnpj" do | |
| 30 | - msg = "Cnpj has already been taken" | |
| 31 | - assert @institution.save | |
| 32 | - sec_institution = create_private_institution( | |
| 33 | - "Another Private Institution", | |
| 34 | - "API", | |
| 35 | - "BR", | |
| 36 | - "DF", | |
| 37 | - "Gama", | |
| 38 | - "00.000.000/0001-00" | |
| 39 | - ) | |
| 40 | - | |
| 41 | - assert sec_institution.errors.full_messages.include? msg | |
| 42 | - end | |
| 43 | - | |
| 44 | - should "save without fantasy name" do | |
| 45 | - @institution.acronym = nil | |
| 46 | - @institution.community.save | |
| 47 | - | |
| 48 | - assert @institution.save | |
| 49 | - end | |
| 50 | -end |
test/unit/public_institution_test.rb
| ... | ... | @@ -1,68 +0,0 @@ |
| 1 | -require File.dirname(__FILE__) + '/../../../../test/test_helper' | |
| 2 | -require File.dirname(__FILE__) + '/../helpers/plugin_test_helper' | |
| 3 | - | |
| 4 | -class PublicInstitutionTest < ActiveSupport::TestCase | |
| 5 | - include PluginTestHelper | |
| 6 | - def setup | |
| 7 | - @gov_power = GovernmentalPower.create(:name=>"Some Gov Power") | |
| 8 | - @gov_sphere = GovernmentalSphere.create(:name=>"Some Gov Sphere") | |
| 9 | - @juridical_nature = JuridicalNature.create(:name => "Autarquia") | |
| 10 | - | |
| 11 | - @institution = create_public_institution( | |
| 12 | - "Ministerio Publico da Uniao", | |
| 13 | - "MPU", | |
| 14 | - "BR", | |
| 15 | - "DF", | |
| 16 | - "Gama", | |
| 17 | - @juridical_nature, | |
| 18 | - @gov_power, | |
| 19 | - @gov_sphere, | |
| 20 | - "11.222.333/4444-55" | |
| 21 | - ) | |
| 22 | - end | |
| 23 | - | |
| 24 | - def teardown | |
| 25 | - GovernmentalPower.destroy_all | |
| 26 | - GovernmentalSphere.destroy_all | |
| 27 | - JuridicalNature.destroy_all | |
| 28 | - Institution.destroy_all | |
| 29 | - @gov_power = nil | |
| 30 | - @gov_sphere = nil | |
| 31 | - @juridical_nature = nil | |
| 32 | - @institution = nil | |
| 33 | - end | |
| 34 | - | |
| 35 | - should "not save without a cnpj" do | |
| 36 | - @institution.cnpj = nil | |
| 37 | - assert !@institution.save | |
| 38 | - end | |
| 39 | - | |
| 40 | - should "save institution without an acronym" do | |
| 41 | - @institution.acronym = nil | |
| 42 | - assert @institution.save | |
| 43 | - end | |
| 44 | - | |
| 45 | - should "Not save institution without a governmental_power" do | |
| 46 | - invalid_msg = "Governmental power can't be blank" | |
| 47 | - @institution.governmental_power = nil | |
| 48 | - | |
| 49 | - assert !@institution.save | |
| 50 | - assert @institution.errors.full_messages.include? invalid_msg | |
| 51 | - end | |
| 52 | - | |
| 53 | - should "Not save institution without a governmental_sphere" do | |
| 54 | - invalid_msg = "Governmental sphere can't be blank" | |
| 55 | - @institution.governmental_sphere = nil | |
| 56 | - | |
| 57 | - assert !@institution.save | |
| 58 | - assert @institution.errors.full_messages.include? invalid_msg | |
| 59 | - end | |
| 60 | - | |
| 61 | - should "not save institution without juridical nature" do | |
| 62 | - invalid_msg = "Juridical nature can't be blank" | |
| 63 | - @institution.juridical_nature = nil | |
| 64 | - | |
| 65 | - assert !@institution.save | |
| 66 | - assert @institution.errors.full_messages.include? invalid_msg | |
| 67 | - end | |
| 68 | -end |
test/unit/software_communities_person_test.rb
| ... | ... | @@ -3,7 +3,7 @@ |
| 3 | 3 | require File.dirname(__FILE__) + '/../../../../test/test_helper' |
| 4 | 4 | require File.dirname(__FILE__) + '/../helpers/plugin_test_helper' |
| 5 | 5 | |
| 6 | -class SoftwareCommunitiesPluginPersonTest < ActiveSupport::TestCase | |
| 6 | +class GovUserPluginPersonTest < ActiveSupport::TestCase | |
| 7 | 7 | include PluginTestHelper |
| 8 | 8 | |
| 9 | 9 | def setup |
| ... | ... | @@ -11,50 +11,19 @@ class SoftwareCommunitiesPluginPersonTest < ActiveSupport::TestCase |
| 11 | 11 | |
| 12 | 12 | @user = fast_create(User) |
| 13 | 13 | @person = create_person( |
| 14 | - "My Name", | |
| 15 | - "user@email.com", | |
| 16 | - "123456", | |
| 17 | - "123456", | |
| 18 | - "Any State", | |
| 19 | - "Some City" | |
| 20 | - ) | |
| 14 | + "My Name", | |
| 15 | + "user@email.com", | |
| 16 | + "123456", | |
| 17 | + "123456", | |
| 18 | + "Any State", | |
| 19 | + "Some City" | |
| 20 | + ) | |
| 21 | 21 | end |
| 22 | 22 | |
| 23 | 23 | def teardown |
| 24 | 24 | @plugin = nil |
| 25 | 25 | end |
| 26 | 26 | |
| 27 | - should 'be a noosfero plugin' do | |
| 28 | - assert_kind_of Noosfero::Plugin, @plugin | |
| 29 | - end | |
| 30 | - | |
| 31 | - should 'save person with a valid full name' do | |
| 32 | - p = Person::new :name=>"S1mpl3 0f N4m3", :identifier=>"simple-name" | |
| 33 | - p.user = fast_create(:user) | |
| 34 | - | |
| 35 | - assert_equal true, p.save | |
| 36 | - end | |
| 37 | - | |
| 38 | - should 'save person with a valid full name with accents' do | |
| 39 | - name = 'Jônatàs dâ Sîlvã Jösé' | |
| 40 | - identifier = "jonatas-jose-da-silva" | |
| 41 | - p = Person::new :name=>name, :identifier=>identifier | |
| 42 | - p.user = fast_create(:user) | |
| 43 | - | |
| 44 | - assert_equal true, p.save | |
| 45 | - end | |
| 46 | - | |
| 47 | - should 'not save person whose name has not capital letter' do | |
| 48 | - p = Person::new :name=>"simple name" | |
| 49 | - assert !p.save, _("Name Should begin with a capital letter and no special characters") | |
| 50 | - end | |
| 51 | - | |
| 52 | - should 'not save person whose name has special characters' do | |
| 53 | - p = Person::new :name=>"Simple N@me" | |
| 54 | - | |
| 55 | - assert !p.save , _("Name Should begin with a capital letter and no special characters") | |
| 56 | - end | |
| 57 | - | |
| 58 | 27 | should 'get a list of softwares of a person' do |
| 59 | 28 | software1 = create_software_info "noosfero" |
| 60 | 29 | software2 = create_software_info "colab" | ... | ... |
views/person_editor_extras.html.erb
| ... | ... | @@ -1,33 +0,0 @@ |
| 1 | -<div class="formfieldline" id="select_institution"> | |
| 2 | - <%= label_tag "user[institution_ids]", _('Institutions'), :class=>"formlabel" %> | |
| 3 | - | |
| 4 | - <div class="institution_container"> | |
| 5 | - <%= text_field_tag(:institution, "", :id=>"input_institution") %> | |
| 6 | - | |
| 7 | - <% context.profile.user.institutions.each do |institution| %> | |
| 8 | - <%= hidden_field_tag("user[institution_ids][]", institution.id, :class => 'user_institutions') %> | |
| 9 | - <% end %> | |
| 10 | - </div> | |
| 11 | - | |
| 12 | - <%= content_tag(:div, _("No institution found"), :id=>"institution_empty_ajax_message", :class=>"errorExplanation hide-field") %> | |
| 13 | - <%= link_to(_("Add new institution"), "#", :class=>'button with-text icon-add', :id => 'add_new_institution') %> | |
| 14 | - <%= link_to(_("Create new institution"), "#", :id=>"create_institution_link", :class=>'button with-text icon-add') %> | |
| 15 | - <%= content_tag(:div, "", :id=>"institution_dialog") %> | |
| 16 | - | |
| 17 | - <%= hidden_field_tag("user[institution_ids][]", "", :class => 'user_institutions') %> | |
| 18 | - <%= hidden_field_tag("institution_selected", "") %> | |
| 19 | - | |
| 20 | - <ul class="institutions_added"> | |
| 21 | - <% context.profile.user.institutions.each do |institution| %> | |
| 22 | - <li data-institution="<%= institution.id %>"> | |
| 23 | - <%= institution.name %> | |
| 24 | - <%= link_to("", "#", :class => "button without-text icon-remove remove-institution") %> | |
| 25 | - </li> | |
| 26 | - <% end %> | |
| 27 | - </ul> | |
| 28 | -</div> | |
| 29 | - | |
| 30 | -<%= hidden_field_tag("full_name_error", _("Should begin with a capital letter and no special characters")) %> | |
| 31 | -<%= hidden_field_tag("email_error", _("Email should have the following format: name@host.br")) %> | |
| 32 | -<%= hidden_field_tag("site_error", _("Site should have a valid format: http://name.hosts")) %> | |
| 33 | -<div id="email_public_message"><%= _("If you work in a public agency use your government e-Mail") %> </div> |
views/profile/_institution_tab.html.erb
| ... | ... | @@ -1,21 +0,0 @@ |
| 1 | -<table> | |
| 2 | - <tr> | |
| 3 | - <th colspan='2'><%= _('Institution Information')%></th> | |
| 4 | - </tr> | |
| 5 | - | |
| 6 | - <%= display_mpog_field(_('Type:'), profile.institution, :type, true) %> | |
| 7 | - <%= display_mpog_field(_('CNPJ:'), profile.institution, :cnpj, true) %> | |
| 8 | - <%= display_mpog_field(_('Last modification:'), profile.institution, :date_modification, true) %> | |
| 9 | - <%= display_mpog_field(_('Country:'), profile.institution.community, :country, true) %> | |
| 10 | - <%= display_mpog_field(_('State:'), profile.institution.community, :state, true) %> | |
| 11 | - <%= display_mpog_field(_('City:'), profile.institution.community, :city, true) %> | |
| 12 | - <% if profile.institution.type == "PrivateInstitution"%> | |
| 13 | - <%= display_mpog_field(_('Fantasy Name:'), profile.institution, :acronym, true) %> | |
| 14 | - <% else %> | |
| 15 | - <%= display_mpog_field(_('Acronym:'), profile.institution, :acronym, true) %> | |
| 16 | - <%= display_mpog_field(_('Governmental Power:'), profile.institution.governmental_power, :name, true) %> | |
| 17 | - <%= display_mpog_field(_('Governmental Sphere:'), profile.institution.governmental_sphere, :name, true) %> | |
| 18 | - <%= display_mpog_field(_('Juridical Nature:'), profile.institution.juridical_nature, :name, true) %> | |
| 19 | - <%= content_tag('tr', content_tag('td', _("SISP:")) + content_tag('td', profile.institution.sisp ? _("Yes") : _("No"))) %> | |
| 20 | - <% end %> | |
| 21 | -</table> |
views/profile/_profile_tab.html.erb
views/search/institutions.html.erb
| ... | ... | @@ -1,16 +0,0 @@ |
| 1 | -<%= search_page_title( @titles[@asset], @category ) %> | |
| 2 | - | |
| 3 | -<%= render :partial => 'search_form', :locals => { :hint => _("Type words about the %s you're looking for") % @asset.to_s.singularize } %> | |
| 4 | - | |
| 5 | -<%= display_results(@searches, @asset) %> | |
| 6 | -<% if params[:display] != 'map' %> | |
| 7 | - <%= pagination_links @searches[@asset][:results] %> | |
| 8 | -<% end %> | |
| 9 | - | |
| 10 | -<div style="clear: both"></div> | |
| 11 | - | |
| 12 | -<% if @asset == :product %> | |
| 13 | - <%= javascript_tag do %> | |
| 14 | - jQuery('.search-product-price-details').altBeautify(); | |
| 15 | - <% end %> | |
| 16 | -<% end %> |
views/software_communities_plugin_myprofile/edit_institution.html.erb
| ... | ... | @@ -1,119 +0,0 @@ |
| 1 | -<h1><%= _('Edit Institution') %></h1> | |
| 2 | - | |
| 3 | -<% if environment.enabled?('admin_must_approve_new_communities') %> | |
| 4 | - <div class='explanation'> | |
| 5 | - <%= _("Note that the creation of communities in this environment is restricted. Your request to create this new community will be sent to %{environment} administrators and will be approved or rejected according to their methods and criteria.") % { :environment => environment.name }%> | |
| 6 | - </div> | |
| 7 | -<%end %> | |
| 8 | - | |
| 9 | -<% unless flash[:errors].nil? %> | |
| 10 | -<div class="errorExplanation" id="errorExplanation"> | |
| 11 | - <h2> <%= _("Can`t create new Institution: #{flash[:errors].length} errors") %> </h2> | |
| 12 | - <ul> | |
| 13 | - <% flash[:errors].each do |error| %> | |
| 14 | - <li> <%= error %> </li> | |
| 15 | - <% end %> | |
| 16 | - </ul> | |
| 17 | -</div> | |
| 18 | -<% end %> | |
| 19 | - | |
| 20 | -<div id = 'create_institution_errors' class='errorExplanation hide-field'></div> | |
| 21 | - | |
| 22 | -<div> | |
| 23 | - <div class="fields-required"> | |
| 24 | - <span class="errorExplanation"><%= _("All fields with (*) are mandatory") %></span> | |
| 25 | - </div> | |
| 26 | - <br/> | |
| 27 | - <%= labelled_form_for :community,:html => { :multipart => true, :id=>"institution_form" } do |f| %> | |
| 28 | - <%= hidden_field_tag "edit_institution_page", true %> | |
| 29 | - <%= fields_for :institutions do |inst| %> | |
| 30 | - <span class=''> | |
| 31 | - <div class='formfield type-radio'> | |
| 32 | - <label> <%= _("Public Institution") %> | |
| 33 | - <%= radio_button_tag("institutions[type]", "PublicInstitution", (@institution.type == "PublicInstitution" ? true : false)) %> | |
| 34 | - </label> | |
| 35 | - | |
| 36 | - <label> | |
| 37 | - <%= _("Private Institution") %> | |
| 38 | - <%= radio_button_tag("institutions[type]" ,"PrivateInstitution", (@institution.type == "PrivateInstitution" ? true : false))%> | |
| 39 | - </label> | |
| 40 | - </div> | |
| 41 | - </span> | |
| 42 | - | |
| 43 | - <%= required f.text_field(:name, :value => @institution.community.name) %> | |
| 44 | - <%= content_tag :span, _("Institution name already exists"), :id=>"already_exists_text", :class=>"errorExplanation hide-field" %> | |
| 45 | - | |
| 46 | - <span class='required-field'> | |
| 47 | - <div class="formfield type-text"> | |
| 48 | - <%= inst.label "corporate_name", _("Corporate Name"), :class=>"formlabel" %> | |
| 49 | - <%= required inst.text_field(:corporate_name, :value => @institution.corporate_name) %> | |
| 50 | - </div> | |
| 51 | - </span> | |
| 52 | - | |
| 53 | - <%= required select_country(_('Country'), 'community', 'country', {:class => 'type-select', :id => "community_country"}, :selected => @institution.community.country) %> | |
| 54 | - | |
| 55 | - <span class='required-field'> | |
| 56 | - <div class="formfield"> | |
| 57 | - <label for="community_state" class="formlabel"><%= _("State") %></label> | |
| 58 | - <%= f.select(:state, @state_list.collect {|state| [state.name, state.name]}, :selected => @institution.community.state) %> | |
| 59 | - </div> | |
| 60 | - </span> | |
| 61 | - | |
| 62 | - <%= required f.text_field(:city, :value => @institution.community.city) %> | |
| 63 | - | |
| 64 | - | |
| 65 | - <span class='required-field'> | |
| 66 | - <div class="formfield type-text"> | |
| 67 | - <%= inst.label("cnpj" ,_("CNPJ"), :class=>"formlabel") %> | |
| 68 | - <%= required inst.text_field(:cnpj, :placeholder=>"99.999.999/9999-99", :class=>"intitution_cnpj_field", :value => @institution.cnpj) %> | |
| 69 | - </div> | |
| 70 | - </span> | |
| 71 | - | |
| 72 | - <span class='optional-field'> | |
| 73 | - <div class="formfield type-text"> | |
| 74 | - <%= hidden_field_tag "acronym_translate", _("Acronym") %> | |
| 75 | - <%= hidden_field_tag "fantasy_name_translate", _("Fantasy name") %> | |
| 76 | - <%= inst.label("acronym" ,_("Acronym"), :class=>"formlabel") %> | |
| 77 | - <%= inst.text_field(:acronym, :value => @institution.acronym) %> | |
| 78 | - </div> | |
| 79 | - </span> | |
| 80 | - | |
| 81 | - <span class='required-field public-institutions-fields'> | |
| 82 | - <div class="formfield type-text"> | |
| 83 | - <%= inst.label("governmental_sphere_id" ,_("Governmental Sphere:"), :class=>"formlabel") %> | |
| 84 | - <%= inst.select(:governmental_sphere, [[_("Select a Governmental Sphere"), 0]]|GovernmentalSphere.all.map {|s| [s.name, s.id]}, {:selected=>@institution.governmental_power_id})%> | |
| 85 | - </div> | |
| 86 | - </span> | |
| 87 | - | |
| 88 | - <span class='required-field public-institutions-fields'> | |
| 89 | - <div class="formfield type-text"> | |
| 90 | - <%= inst.label("governmental_power_id" ,_("Governmental Power:"), :class=>"formlabel") %> | |
| 91 | - <%= inst.select(:governmental_power, [[_("Select a Governmental Power"), 0]]|GovernmentalPower.all.map {|g| [g.name, g.id]}, {:selected=> @institution.governmental_sphere_id})%> | |
| 92 | - </div> | |
| 93 | - </span> | |
| 94 | - <span class='required-field public-institutions-fields'> | |
| 95 | - <div class="formfield type-text"> | |
| 96 | - <%= inst.label("juridical_nature_id" ,_("Juridical Nature:"), :class=>"formlabel") %> | |
| 97 | - <%= inst.select(:juridical_nature, [[_("Select a Juridical Nature"), 0]]|JuridicalNature.all.map {|j| [j.name, j.id]}, {:selected=> @institution.juridical_nature_id})%> | |
| 98 | - </div> | |
| 99 | - </span> | |
| 100 | - | |
| 101 | - <span class='required-field public-institutions-fields'> | |
| 102 | - <div class="formfield type-text"> | |
| 103 | - <%= _("SISP?") %> | |
| 104 | - <% if @show_sisp_field %> | |
| 105 | - <%= inst.label("sisp" ,_("Yes")) %> | |
| 106 | - <%= inst.radio_button(:sisp, true, :checked=>(@institution.sisp ? true : false)) %> | |
| 107 | - <%= inst.label("sisp" ,_("No")) %> | |
| 108 | - <%= inst.radio_button(:sisp, false, :checked=>(@institution.sisp ? false : true)) %> | |
| 109 | - <% else %> | |
| 110 | - <%= inst.label("sisp", _("No")) %> | |
| 111 | - <% end %> | |
| 112 | - </div> | |
| 113 | - </span> | |
| 114 | - <br /> | |
| 115 | - | |
| 116 | - <%= submit_button :save, _('Save') %> | |
| 117 | - <% end %> | |
| 118 | -<% end %> | |
| 119 | - |