Commit d0ce2a13477406da2526aa87d0ef98f591b943c6

Authored by Gabriela Navarro
Committed by David Silva
1 parent b78b06e2
Exists in master and in 79 other branches add_sisp_to_chef, add_super_archives_plugin, api_for_colab, automates_core_packing, backup_not_prod, changes_in_buttons_on_content_panel, colab_automated_login, colab_spb_plugin_recipe, colab_widgets_settings, design_validation, dev_env_minimal, disable_email_dev, fix_breadcrumbs_position, fix_categories_software_link, fix_edit_institution, fix_edit_software_with_another_license, fix_get_license_info, fix_gitlab_assets_permission, fix_list_style_inside_article, fix_list_style_on_folder_elements, fix_members_pagination, fix_merge_request_url, fix_models_translations, fix_no_license, fix_software_api, fix_software_block_migration, fix_software_communities_translations, fix_software_communities_unit_test, fix_style_create_institution_admin_panel, fix_superarchives_imports, fix_sym_links_noosfero, focus_search_field_theme, gov-user-refactoring, gov-user-refactoring-rails4, header_fix, institution_modal_on_rating, kalibro-conf-refactoring, kalibro-processor-package, lxc_settings, margin_fix, mezuro_cookbook, prezento, refactor_download_block, refactor_software_communities, refactor_software_for_sisp, register_page, release-process, release-process-v2, remove-unused-images, remove_broken_theme, remove_secondary_email_from_user, remove_sisp_buttons, removing_super_archives_email, review_message, scope2method, signals_user_noosfero, sisp_catalog_header, sisp_colab_config, sisp_dev, sisp_dev_master, sisp_simple_version, software_as_organization, software_catalog_style_fix, software_communities_html_refactor, software_infos_api, spb_minimal_env, spb_to_rails4, spec_refactor, stable-4.1, stable-4.2, stable-4.x, temp_soft_comm_refactoring, theme_header, theme_javascript_refactory, thread_dropdown, thread_page, update_search_by_categories, update_software_api, update_softwares_boxes

Refactor mpog_software_plugin_controller

Signed-off-by: Gabriela Navarro <navarro1703@gmail.com>
Signed-off-by: Parley Martins <parley@outlook.com>
controllers/mpog_software_plugin_controller.rb
... ... @@ -7,8 +7,8 @@ class MpogSoftwarePluginController &lt; ApplicationController
7 7 result = ""
8 8 user = User.where(:email => params[:email])
9 9  
10   - if user.length == 1
11   - result = "<span id='forgot_link'><a href='/account/forgot_password'> Reactive account</a></span>" unless user[0].person.visible
  10 + if user.length == 1 && !user[0].person.visible
  11 + result = "<span id='forgot_link'><a href='/account/forgot_password'> Reactive account</a></span>"
12 12 end
13 13  
14 14 render :json => result.to_json
... ... @@ -28,7 +28,7 @@ class MpogSoftwarePluginController &lt; ApplicationController
28 28  
29 29 def create_institution
30 30 @show_sisp_field = environment.admins.include?(current_user.person)
31   - @estate_list = get_state_list()
  31 + @state_list = get_state_list()
32 32  
33 33 if request.xhr?
34 34 render :layout=>false
... ... @@ -46,7 +46,7 @@ class MpogSoftwarePluginController &lt; ApplicationController
46 46  
47 47 def create_institution_admin
48 48 @show_sisp_field = environment.admins.include?(current_user.person)
49   - @estate_list = get_state_list()
  49 + @state_list = get_state_list()
50 50  
51 51 @url_token = split_http_referer request.original_url()
52 52 end
... ... @@ -81,14 +81,6 @@ class MpogSoftwarePluginController &lt; ApplicationController
81 81 render :json=>already_exists.to_json
82 82 end
83 83  
84   - def download
85   - respond_to do |format|
86   - format.html
87   - format_xml_download format
88   - format_csv_download format
89   - end
90   - end
91   -
92 84 def get_institutions
93 85 redirect_to "/" if !request.xhr? || params[:query].blank?
94 86  
... ... @@ -119,20 +111,21 @@ class MpogSoftwarePluginController &lt; ApplicationController
119 111 end
120 112  
121 113 def get_field_data
122   - return render :json=>{} if !request.xhr? || params[:query].nil? || params[:field].nil?
  114 + condition = !request.xhr? || params[:query].nil? || params[:field].nil?
  115 + return render :json=>{} if condition
123 116  
124 117 model = case params[:field]
125   - when "database"
126   - DatabaseDescription
127   - when "software_language"
128   - ProgrammingLanguage
129   - else
130   - DatabaseDescription
131   - end
132   -
133   - data = model.where("name ILIKE ?", "%#{params[:query]}%").select("id, name").collect { |db|
  118 + when "software_language"
  119 + ProgrammingLanguage
  120 + else
  121 + DatabaseDescription
  122 + end
  123 +
  124 + data = model.where("name ILIKE ?", "%#{params[:query]}%").select("id, name")
  125 + data.collect { |db|
134 126 {:id=>db.id, :label=>db.name}
135 127 }
  128 +
136 129 other = [model.select("id, name").last].collect { |db|
137 130 {:id=>db.id, :label=>db.name}
138 131 }
... ... @@ -148,34 +141,55 @@ class MpogSoftwarePluginController &lt; ApplicationController
148 141 def get_state_list
149 142 redirect_to "/" unless request.xhr?
150 143  
151   - NationalRegion.find(:all, :conditions=>["national_region_type_id = ?", 2], :order=>"name")
  144 + NationalRegion.find(
  145 + :all,
  146 + :conditions=>["national_region_type_id = ?", 2],
  147 + :order=>"name"
  148 + )
  149 + end
  150 +
  151 + def set_institution_type
  152 + institution_params = params[:institutions].except(
  153 + :governmental_power,
  154 + :governmental_sphere,
  155 + :juridical_nature
  156 + )
  157 + if params[:institutions][:type] == "PublicInstitution"
  158 + PublicInstitution::new institution_params
  159 + else
  160 + PrivateInstitution::new institution_params
  161 + end
  162 + end
  163 +
  164 + def set_public_institution_fields institution
  165 + inst_fields = params[:institutions]
  166 +
  167 + begin
  168 + gov_power = GovernmentalPower.find inst_fields[:governmental_power]
  169 + gov_sphere = GovernmentalSphere.find inst_fields[:governmental_sphere]
  170 + jur_nature = JuridicalNature.find inst_fields[:juridical_nature]
  171 +
  172 + institution.juridical_nature = jur_nature
  173 + institution.governmental_power = gov_power
  174 + institution.governmental_sphere = gov_sphere
  175 + rescue
  176 + institution.errors.add(
  177 + :governmental_fields,
  178 + _("Could not find Governmental Power or Governmental Sphere")
  179 + )
  180 + end
152 181 end
153 182  
154 183 def private_create_institution
155 184 community = Community.new(params[:community])
156 185 community.environment = environment
157   -
158   - institution = if params[:institutions][:type] == "PublicInstitution"
159   - PublicInstitution::new params[:institutions].except(:governmental_power, :governmental_sphere, :juridical_nature)
160   - else
161   - PrivateInstitution::new params[:institutions].except(:governmental_power, :governmental_sphere, :juridical_nature)
162   - end
  186 + institution = set_institution_type
163 187  
164 188 institution.name = community[:name]
165 189 institution.community = community
166 190  
167 191 if institution.type == "PublicInstitution"
168   - begin
169   - govPower = GovernmentalPower.find params[:institutions][:governmental_power]
170   - govSphere = GovernmentalSphere.find params[:institutions][:governmental_sphere]
171   - jur_nature = JuridicalNature.find params[:institutions][:juridical_nature]
172   -
173   - institution.juridical_nature = jur_nature
174   - institution.governmental_power = govPower
175   - institution.governmental_sphere = govSphere
176   - rescue
177   - institution.errors.add(:governmental_fields, _("Could not find Governmental Power or Governmental Sphere"))
178   - end
  192 + set_public_institution_fields institution
179 193 end
180 194  
181 195 InstitutionHelper.register_institution_modification institution
... ... @@ -183,41 +197,16 @@ class MpogSoftwarePluginController &lt; ApplicationController
183 197 institution
184 198 end
185 199  
186   - def software_list_to_correct_format software_list=[]
187   - if !software_list.empty?
188   - software_list.each do |software|
189   - software[:name] = Community.find(software.community_id).name
190   - software[:languages_list] = []
191   -
192   - software.software_languages.each do |sl|
193   - software[:languages_list] << {}
194   - index = software[:languages_list].count - 1
195   - software[:languages_list][index][:name] = ProgrammingLanguage.find(sl.programming_language_id).name
196   - software[:languages_list][index][:version] = sl.version
197   - software[:languages_list][index][:operating_system] = sl.operating_system
198   - end
199   -
200   - software[:database_list] = []
201   - software.software_databases.each do |dd|
202   - software[:database_list] << {}
203   - index = software[:database_list].count - 1
204   - software[:database_list][index][:name] = DatabaseDescription.find(dd.database_description_id).name
205   - software[:database_list][index][:version] = dd.version
206   - software[:database_list][index][:operating_system] = dd.operating_system
207   - end
208   - end
209   - end
210   - software_list
211   - end
212   -
213 200 def add_template_in_params institution_template
214   - if (!institution_template.blank? && institution_template.is_template)
215   - params[:community][:template_id] = institution_template.id unless params[:community].blank?
  201 + com_fields = params[:community]
  202 + if !institution_template.blank? && institution_template.is_template
  203 + com_fields[:template_id]= institution_template.id unless com_fields.blank?
216 204 end
217 205 end
218 206  
219 207 def add_environment_admins_to_institution institution
220   - if environment.admins.include?(current_user.person) && params[:edit_institution_page] == false
  208 + edit_page = params[:edit_institution_page] == false
  209 + if environment.admins.include?(current_user.person) && edit_page
221 210 environment.admins.each do |adm|
222 211 institution.community.add_admin(adm)
223 212 end
... ... @@ -225,10 +214,19 @@ class MpogSoftwarePluginController &lt; ApplicationController
225 214 end
226 215  
227 216 def save_institution institution
228   - if institution.errors.full_messages.empty? and institution.community.errors.full_messages.empty? and institution.valid? and institution.save
229   - {:success => true, :message => _("Institution successful created!"), :institution_data=>{:name=>institution.name, :id=>institution.id}}
  217 + inst_errors = institution.errors.full_messages
  218 + com_errors = institution.community.errors.full_messages
  219 +
  220 + if inst_errors.empty? && com_errors.empty? && institution.valid? && institution.save
  221 + { :success => true,
  222 + :message => _("Institution successful created!"),
  223 + :institution_data => {:name=>institution.name, :id=>institution.id}
  224 + }
230 225 else
231   - {:success => false, :message => _("Institution could not be created!"), :errors => institution.errors.full_messages << institution.community.errors.full_messages}
  226 + { :success => false,
  227 + :message => _("Institution could not be created!"),
  228 + :errors => inst_errors << com_errors
  229 + }
232 230 end
233 231 end
234 232  
... ... @@ -240,47 +238,4 @@ class MpogSoftwarePluginController &lt; ApplicationController
240 238 redirect_to :controller => "mpog_software_plugin", :action => "create_institution_admin"
241 239 end
242 240 end
243   -
244   - def format_xml_download format
245   - format.xml do
246   - softwares = software_list_to_correct_format(SoftwareInfo.all)
247   - send_data(
248   - softwares.to_xml(
249   - :skip_types => true,
250   - :only => %w[name acronym demonstration_url e_arq e_mag e_ping features icp_brasil objectives operating_platform languages_list database_list]
251   - ),
252   - :type => 'text/xml',
253   - :disposition => "attachment; filename=softwares.xml")
254   - end
255   - end
256   -
257   - def format_csv_download format
258   - format.csv do
259   - softwares = software_list_to_correct_format(SoftwareInfo.all)
260   - csv_content = ""
261   -
262   - softwares.each do |s|
263   - csv_content << "name;acronym;demonstration_url;e_arq;e_mag;e_ping;features;icp_brasil;objectives;operating_platform\n"
264   - csv_content << CSV.generate_line([s['name'], s['acronym'], s['demonstration_url'], s['e_arq'], s['e_mag'], s['e_ping'], s['features'], s['icp_brasil'], s['objectives'], s['operating_platform']], {:col_sep => ';'})
265   -
266   - csv_content << "\nlanguage_name;language_version;language_operating_system\n"
267   - s[:languages_list].each { |sl|
268   - csv_content << CSV.generate_line([sl[:name], sl[:version], sl[:operating_system]], {:col_sep => ';'})
269   - }
270   -
271   - csv_content << "\ndatabase_name;database_version;database_operating_system\n"
272   - s[:database_list].each { |dl|
273   - csv_content << CSV.generate_line([dl[:name], dl[:version], dl[:operating_system]], {:col_sep => ';'})
274   - }
275   -
276   - csv_content << "\n\n"
277   - end
278   -
279   - if csv_content.blank?
280   - csv_content = "name;acronym;demonstration_url;e_arq;e_mag;e_ping;features;icp_brasil;objectives;operating_platform\n"
281   - end
282   -
283   - render :text => csv_content, :content_type => 'text/csv', :layout => false
284   - end
285   - end
286 241 end
... ...
controllers/mpog_software_plugin_myprofile_controller.rb
... ... @@ -6,7 +6,7 @@ class MpogSoftwarePluginMyprofileController &lt; MyProfileController
6 6  
7 7 def edit_institution
8 8 @show_sisp_field = environment.admins.include?(current_user.person)
9   - @estate_list = NationalRegion.find(:all, :conditions=>["national_region_type_id = ?", 2], :order=>"name")
  9 + @state_list = NationalRegion.find(:all, :conditions=>["national_region_type_id = ?", 2], :order=>"name")
10 10  
11 11 @institution = @profile.institution
12 12  
... ...
views/mpog_software_plugin/_institution.html.erb
... ... @@ -55,7 +55,7 @@
55 55 <span class='required-field'>
56 56 <div class="formfield">
57 57 <label for="community_state" class="formlabel"><%= _("State") %></label>
58   - <%= f.select(:state, @estate_list.collect {|state| [state.name, state.name]}) %>
  58 + <%= f.select(:state, @state_list.collect {|state| [state.name, state.name]}) %>
59 59 </div>
60 60 </span>
61 61  
... ...
views/mpog_software_plugin_myprofile/edit_institution.html.erb
... ... @@ -55,7 +55,7 @@
55 55 <span class='required-field'>
56 56 <div class="formfield">
57 57 <label for="community_state" class="formlabel"><%= _("State") %></label>
58   - <%= f.select(:state, @estate_list.collect {|state| [state.name, state.name]}, :selected => @institution.community.state) %>
  58 + <%= f.select(:state, @state_list.collect {|state| [state.name, state.name]}, :selected => @institution.community.state) %>
59 59 </div>
60 60 </span>
61 61  
... ...