Commit 673c1bceda0380d7c226ae648b0fb6e87e3d05a2
Committed by
Gabriela Navarro
1 parent
79b3cc89
Exists in
master
and in
5 other branches
fix_institution: Both admin's create and user's modal use the same action
Signed-off-by: Fabio Teixeira <fabio1079@gmail.com> Signed-off-by: Gabriela Navarro <navarro1703@gmail.com>
Showing
3 changed files
with
42 additions
and
65 deletions
Show diff stats
controllers/mpog_software_plugin_controller.rb
| ... | ... | @@ -48,19 +48,6 @@ class MpogSoftwarePluginController < ApplicationController |
| 48 | 48 | |
| 49 | 49 | def create_institution_admin |
| 50 | 50 | @url_token = split_http_referer request.original_url() |
| 51 | - | |
| 52 | - if request.post? | |
| 53 | - governmental = {} | |
| 54 | - juridical = {} | |
| 55 | - governmental[:power] = params[:institutions][:governmental_power] | |
| 56 | - governmental[:sphere] = params[:institutions][:governmental_sphere] | |
| 57 | - juridical[:nature] = params[:institutions][:juridical_nature] | |
| 58 | - params[:community][:country] = "BR" | |
| 59 | - params[:institutions].delete :governmental_power | |
| 60 | - params[:institutions].delete :governmental_sphere | |
| 61 | - params[:institutions].delete :juridical_nature | |
| 62 | - redirect_to :action => "new_institution", :community => params[:community], :institution => params[:institutions], :governmental => governmental, :juridical => juridical | |
| 63 | - end | |
| 64 | 51 | end |
| 65 | 52 | |
| 66 | 53 | def split_http_referer http_referer |
| ... | ... | @@ -70,24 +57,24 @@ class MpogSoftwarePluginController < ApplicationController |
| 70 | 57 | return @url_token |
| 71 | 58 | end |
| 72 | 59 | |
| 73 | - | |
| 74 | 60 | def new_institution |
| 75 | - if !params[:community].nil? and !params[:institution].nil? | |
| 61 | + if !params[:community].nil? and !params[:institutions].nil? | |
| 76 | 62 | response_message = {} |
| 77 | 63 | |
| 78 | 64 | institution = private_create_institution |
| 79 | 65 | |
| 80 | 66 | response_message = if institution.errors.full_messages.empty? and institution.valid? and institution.save |
| 81 | - {:success => true, :message => _("Institution successful created!"), :institution_data=>{:name=>institution.name, :id=>institution.id}} | |
| 82 | - else | |
| 83 | - {:success => false, :message => _("Institution could not be created!"), :errors => institution.errors.full_messages} | |
| 84 | - end | |
| 85 | - if request.xhr? and (split_http_referer(request.referer()) != "create_institution_admin") | |
| 86 | - render :json => response_message.to_json | |
| 87 | - else | |
| 88 | - session[:notice] = response_message[:message] # consume the notice | |
| 89 | - redirect_to :controller => "/admin_panel", :action => "index" | |
| 90 | - end | |
| 67 | + {:success => true, :message => _("Institution successful created!"), :institution_data=>{:name=>institution.name, :id=>institution.id}} | |
| 68 | + else | |
| 69 | + {:success => false, :message => _("Institution could not be created!"), :errors => institution.errors.full_messages} | |
| 70 | + end | |
| 71 | + | |
| 72 | + if request.xhr? | |
| 73 | + render :json => response_message.to_json | |
| 74 | + else | |
| 75 | + session[:notice] = response_message[:message] # consume the notice | |
| 76 | + redirect_to :controller => "/admin_panel", :action => "index" | |
| 77 | + end | |
| 91 | 78 | else |
| 92 | 79 | redirect_to "/" |
| 93 | 80 | end |
| ... | ... | @@ -182,10 +169,10 @@ class MpogSoftwarePluginController < ApplicationController |
| 182 | 169 | community = Community.new(params[:community]) |
| 183 | 170 | community.environment = environment |
| 184 | 171 | |
| 185 | - institution = if params[:institution][:type] == "PublicInstitution" | |
| 186 | - PublicInstitution::new params[:institution] | |
| 172 | + institution = if params[:institutions][:type] == "PublicInstitution" | |
| 173 | + PublicInstitution::new params[:institutions].except(:governmental_power, :governmental_sphere, :juridical_nature) | |
| 187 | 174 | else |
| 188 | - PrivateInstitution::new params[:institution] | |
| 175 | + PrivateInstitution::new params[:institutions].except(:governmental_power, :governmental_sphere, :juridical_nature) | |
| 189 | 176 | end |
| 190 | 177 | |
| 191 | 178 | institution.name = community[:name] |
| ... | ... | @@ -193,9 +180,9 @@ class MpogSoftwarePluginController < ApplicationController |
| 193 | 180 | |
| 194 | 181 | if institution.type == "PublicInstitution" |
| 195 | 182 | begin |
| 196 | - govPower = GovernmentalPower.find params[:governmental][:power] | |
| 197 | - govSphere = GovernmentalSphere.find params[:governmental][:sphere] | |
| 198 | - jur_nature = JuridicalNature.find params[:juridical][:nature] | |
| 183 | + govPower = GovernmentalPower.find params[:institutions][:governmental_power] | |
| 184 | + govSphere = GovernmentalSphere.find params[:institutions][:governmental_sphere] | |
| 185 | + jur_nature = JuridicalNature.find params[:institutions][:juridical_nature] | |
| 199 | 186 | |
| 200 | 187 | institution.juridical_nature = jur_nature |
| 201 | 188 | institution.governmental_power = govPower |
| ... | ... | @@ -211,7 +198,7 @@ class MpogSoftwarePluginController < ApplicationController |
| 211 | 198 | end |
| 212 | 199 | |
| 213 | 200 | InstitutionHelper.register_institution_modification institution |
| 214 | - | |
| 201 | + | |
| 215 | 202 | institution |
| 216 | 203 | end |
| 217 | 204 | ... | ... |
public/mpog-institution-validations.js
| ... | ... | @@ -32,38 +32,21 @@ |
| 32 | 32 | jQuery("#institutions_governmental_sphere option").selected(0); |
| 33 | 33 | } |
| 34 | 34 | |
| 35 | - function get_selected_institution_type() { | |
| 36 | - var radio_buttons = jQuery("input[type='radio'][name='type']"); | |
| 37 | - var type = ""; | |
| 38 | - | |
| 39 | - for( var i = 0; i < radio_buttons.length; i++ ) { | |
| 40 | - if( radio_buttons[i].checked ) { | |
| 41 | - type = radio_buttons[i].value; | |
| 42 | - break; | |
| 43 | - } | |
| 44 | - } | |
| 45 | - | |
| 46 | - return type; | |
| 47 | - } | |
| 48 | - | |
| 49 | 35 | function get_post_data() { |
| 50 | 36 | return { |
| 51 | - community : { name : jQuery("#community_name").val(), | |
| 37 | + community : { | |
| 38 | + name : jQuery("#community_name").val(), | |
| 52 | 39 | country : jQuery("#community_country").val(), |
| 53 | 40 | state : jQuery("#community_state").val(), |
| 54 | 41 | city : jQuery("#community_city").val() |
| 55 | 42 | }, |
| 56 | - governmental : { | |
| 57 | - power : jQuery("#institutions_governmental_power").selected().val(), | |
| 58 | - sphere : jQuery("#institutions_governmental_sphere").selected().val() | |
| 59 | - }, | |
| 60 | - juridical : { | |
| 61 | - nature : jQuery("#institutions_juridical_nature").selected().val() | |
| 62 | - }, | |
| 63 | - institution : { | |
| 43 | + institutions : { | |
| 64 | 44 | cnpj: jQuery("#institutions_cnpj").val(), |
| 65 | - type: get_selected_institution_type(), | |
| 45 | + type: jQuery("input[name='institutions[type]']:checked").val(), | |
| 66 | 46 | acronym : jQuery("#institutions_acronym").val(), |
| 47 | + governmental_power: jQuery("#institutions_governmental_power").selected().val(), | |
| 48 | + governmental_sphere: jQuery("#institutions_governmental_sphere").selected().val(), | |
| 49 | + juridical_nature: jQuery("#institutions_juridical_nature").selected().val() | |
| 67 | 50 | }, |
| 68 | 51 | } |
| 69 | 52 | } |
| ... | ... | @@ -204,9 +187,12 @@ |
| 204 | 187 | |
| 205 | 188 | jQuery("#create_institution_link").click(open_create_institution_modal); |
| 206 | 189 | |
| 207 | - jQuery("#type_PrivateInstitution").click(show_private_institutions_fields); | |
| 208 | - | |
| 209 | - jQuery("#type_PublicInstitution").click(show_public_institutions_fields); | |
| 190 | + jQuery("input[type='radio']").click(function(){ | |
| 191 | + if( this.value == "PublicInstitution" ) | |
| 192 | + show_public_institutions_fields(); | |
| 193 | + else | |
| 194 | + show_private_institutions_fields(); | |
| 195 | + }); | |
| 210 | 196 | |
| 211 | 197 | jQuery('#save_institution_button').click(save_institution); |
| 212 | 198 | ... | ... |
views/mpog_software_plugin/_institution.html.erb
| ... | ... | @@ -20,11 +20,11 @@ |
| 20 | 20 | <div id = 'create_institution_errors' class='errorExplanation hide-field'></div> |
| 21 | 21 | |
| 22 | 22 | <div> |
| 23 | - <%= labelled_form_for :community, :html => { :multipart => true, :id=>"institution_form" } do |f| %> | |
| 23 | + <%= labelled_form_for :community, :url => {:action=>"new_institution"}, :html => { :multipart => true, :id=>"institution_form" } do |f| %> | |
| 24 | 24 | <%= required f.text_field(:name) %> |
| 25 | 25 | <%= content_tag :span, _("Institution name already exists"), :id=>"already_exists_text", :class=>"errorExplanation hide-field" %> |
| 26 | 26 | |
| 27 | - <%= required select_country(_('Country'), f, 'country', {:class => 'type-select', :id => "community_country"}) %> | |
| 27 | + <%= required select_country(_('Country'), 'community', 'country', {:class => 'type-select', :id => "community_country"}) %> | |
| 28 | 28 | <%= required f.text_field(:state) %> |
| 29 | 29 | <%= required f.text_field(:city) %> |
| 30 | 30 | |
| ... | ... | @@ -39,10 +39,14 @@ |
| 39 | 39 | |
| 40 | 40 | <span class=''> |
| 41 | 41 | <div class='formfield type-radio'> |
| 42 | - <%= label_tag("type_PublicInstitution", _("Public Institution")) %> | |
| 43 | - <%= radio_button_tag(:type,"PublicInstitution", true)%> | |
| 44 | - <%= label_tag("type_PrivateInstitution", _("Private Institution")) %> | |
| 45 | - <%= radio_button_tag(:type,"PrivateInstitution")%> | |
| 42 | + <label> <%= _("Public Institution") %> | |
| 43 | + <%= radio_button_tag("institutions[type]", "PublicInstitution", true) %> | |
| 44 | + </label> | |
| 45 | + | |
| 46 | + <label> | |
| 47 | + <%= _("Private Institution") %> | |
| 48 | + <%= radio_button_tag("institutions[type]" ,"PrivateInstitution")%> | |
| 49 | + </label> | |
| 46 | 50 | </div> |
| 47 | 51 | </span> |
| 48 | 52 | ... | ... |