Commit da233db6f1cc4bac72f918450abc70c7c90d8c76
Committed by
Gust
1 parent
11e22a9c
Exists in
master
and in
5 other branches
Add signup user with admin of new institution created in signup
(institution_fields) Signed-off-by: Arthur Del Esposte <arthurmde@gmail.com> Signed-off-by: Luciano Prestes Cavalcanti <lucianopcbr@gmail.com>
Showing
6 changed files
with
27 additions
and
16 deletions
Show diff stats
controllers/mpog_software_plugin_controller.rb
... | ... | @@ -77,8 +77,6 @@ class MpogSoftwarePluginController < ApplicationController |
77 | 77 | |
78 | 78 | response_message = if verify_recaptcha(:model=> institution, :message => _('Please type the word correctly')) |
79 | 79 | if institution.errors.full_messages.empty? and institution.valid? and institution.save |
80 | - institution.community.add_admin(environment.admins.first) unless environment.admins.empty? | |
81 | - | |
82 | 80 | {:success => true, :message => _("Institution successful created!"), :institution_data=>{:name=>institution.name, :id=>institution.id}} |
83 | 81 | else |
84 | 82 | {:success => false, :message => _("Institution could not be created!"), :errors => institution.errors.full_messages} | ... | ... |
features/step_definitions/mpog_steps.rb
... | ... | @@ -37,9 +37,20 @@ end |
37 | 37 | Given /^the following public institutions?$/ do |table| |
38 | 38 | # table is a Cucumber::Ast::Table |
39 | 39 | table.hashes.each do |item| |
40 | + community = Community.new | |
41 | + community.name = item[:name] | |
42 | + community.country = item[:country] | |
43 | + community.state = item[:state] | |
44 | + community.city = item[:city] | |
45 | + community.save! | |
46 | + | |
40 | 47 | governmental_power = GovernmentalPower.where(:name => item[:governmental_power]).first |
41 | 48 | governmental_sphere = GovernmentalSphere.where(:name => item[:governmental_sphere]).first |
42 | - institution = PublicInstitution.create!(:name => item[:name], :type => "PublicInstitution", :acronym => item[:acronym], :cnpj => item[:cnpj], :governmental_power => governmental_power, :governmental_sphere => governmental_sphere) | |
49 | + | |
50 | + juridical_nature = JuridicalNature.create(:name => item[:juridical_nature]) | |
51 | + | |
52 | + 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) | |
53 | + institution.community = community | |
43 | 54 | institution.save! |
44 | 55 | end |
45 | 56 | end | ... | ... |
features/user_profile_edition.feature
... | ... | @@ -13,10 +13,10 @@ Feature: Institution Field |
13 | 13 | And I go to /account/logout |
14 | 14 | And Institutions has initial default values on database |
15 | 15 | And the following public institutions |
16 | - | name | acronym | cnpj | governmental_power | governmental_sphere | | |
17 | - | Ministerio das Cidades | MC | 58.745.189/0001-21 | Executivo | Federal | | |
18 | - | Governo do DF | GDF | 12.645.166/0001-44 | Legislativo | Federal | | |
19 | - | Ministerio do Planejamento | MP | 41.769.591/0001-43 | Judiciario | Federal | | |
16 | + | name | acronym | country | state | city | cnpj | juridical_nature | governmental_power | governmental_sphere | | |
17 | + | Ministerio das Cidades | MC | BR | DF | Gama | 58.745.189/0001-21 | Autarquia | Executivo | Federal | | |
18 | + | Governo do DF | GDF | BR | DF | Taguatinga | 12.645.166/0001-44 | Autarquia | Legislativo | Federal | | |
19 | + | Ministerio do Planejamento | MP | BR | DF | Brasilia | 41.769.591/0001-43 | Autarquia | Judiciario | Federal | | |
20 | 20 | And I go to /account/signup |
21 | 21 | And Institutions has initial default values on database |
22 | 22 | And I fill in the following within ".no-boxes": | ... | ... |
features/user_registration.feature
... | ... | @@ -48,10 +48,10 @@ Feature: User Registration |
48 | 48 | Given I go to /account/signup |
49 | 49 | And Institutions has initial default values on database |
50 | 50 | And the following public institutions |
51 | - | name | acronym | cnpj | governmental_power | governmental_sphere | | |
52 | - | Ministerio das Cidades | MC | 58.745.189/0001-21 | Executivo | Federal | | |
53 | - | Governo do DF | GDF | 12.645.166/0001-44 | Legislativo | Federal | | |
54 | - | Ministerio do Planejamento | MP | 41.769.591/0001-43 | Judiciario | Federal | | |
51 | + | name | acronym | country | state | city | cnpj | juridical_nature | governmental_power | governmental_sphere | | |
52 | + | Ministerio das Cidades | MC | BR | DF | Gama | 58.745.189/0001-21 | Autarquia | Executivo | Federal | | |
53 | + | Governo do DF | GDF | BR | DF | Taguatinga | 12.645.166/0001-44 | Autarquia | Legislativo | Federal | | |
54 | + | Ministerio do Planejamento | MP | BR | DF | Brasilia | 41.769.591/0001-43 | Autarquia | Judiciario | Federal | | |
55 | 55 | And I fill in the following within ".no-boxes": |
56 | 56 | | e-Mail | josesilva@serpro.gov.br| |
57 | 57 | | Username | josesilva | |
... | ... | @@ -78,10 +78,10 @@ Feature: User Registration |
78 | 78 | Given I go to /account/signup |
79 | 79 | And Institutions has initial default values on database |
80 | 80 | And the following public institutions |
81 | - | name | acronym | cnpj | governmental_power | governmental_sphere | | |
82 | - | Ministerio das Cidades | MC | 58.745.189/0001-21 | Executivo | Federal | | |
83 | - | Governo do DF | GDF | 12.645.166/0001-44 | Legislativo | Federal | | |
84 | - | Ministerio do Planejamento | MP | 41.769.591/0001-43 | Judiciario | Federal | | |
81 | + | name | acronym | country | state | city | cnpj | juridical_nature | governmental_power | governmental_sphere | | |
82 | + | Ministerio das Cidades | MC | BR | DF | Gama | 58.745.189/0001-21 | Autarquia | Executivo | Federal | | |
83 | + | Governo do DF | GDF | BR | DF | Taguatinga | 12.645.166/0001-44 | Autarquia | Legislativo | Federal | | |
84 | + | Ministerio do Planejamento | MP | BR | DF | Brasilia | 41.769.591/0001-43 | Autarquia | Judiciario | Federal | | |
85 | 85 | And I fill in the following within ".no-boxes": |
86 | 86 | | e-Mail | josesilva@serpro.gov.br| |
87 | 87 | | Username | josesilva | |
... | ... | @@ -94,6 +94,7 @@ Feature: User Registration |
94 | 94 | And I select "Brazil" from "profile_data[country]" |
95 | 95 | And I type in "MP" into autocomplete list "input_institution" and I choose "Ministerio do Planejamento" |
96 | 96 | And wait for the captcha signup time |
97 | + And I follow "Add new institution" | |
97 | 98 | And I press "Create my account" |
98 | 99 | When José da Silva's account is activated |
99 | 100 | And I go to login page | ... | ... |
lib/mpog_software_plugin.rb
... | ... | @@ -196,6 +196,7 @@ class MpogSoftwarePlugin < Noosfero::Plugin |
196 | 196 | context.params[:user][:institution_ids].each do |institution_id| |
197 | 197 | institution = Institution.find institution_id |
198 | 198 | user.institutions << institution |
199 | + institution.community.add_admin(user.person) if institution.community.admins.blank? | |
199 | 200 | end |
200 | 201 | end |
201 | 202 | user.save unless user.institution_ids.empty? | ... | ... |
test/functional/profile_editor_controller_test.rb
... | ... | @@ -76,7 +76,7 @@ class ProfileEditorControllerTest < ActionController::TestCase |
76 | 76 | |
77 | 77 | private |
78 | 78 | |
79 | - def create_public_institution name, acronym, country, state, city, juridical_nature, gov_p, gov_s | |
79 | + def create_public_institution name, acronym, country, state, city, juridical_nature, gov_p, gov_s | |
80 | 80 | institution_community = fast_create(Community) |
81 | 81 | institution_community.name = name |
82 | 82 | institution_community.country = country | ... | ... |