Commit ab84f010179a6a41004b9a2ff7059cb55a31fa80

Authored by Fabio Teixeira
1 parent 382d1404

incomplete_registration: Improving incomplete registration design.

Signed-off-by: David Carlos <ddavidcarlos1392@gmail.com>
Signed-off-by: Fabio Teixeira  <fabio1079@gmail.com>
lib/mpog_software_plugin.rb
... ... @@ -150,6 +150,13 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
150 150 person.has_permission_without_plugins?(permission, target)
151 151 end
152 152  
  153 + def create_url_to_edit_profile person
  154 + new_url = person.public_profile_url
  155 + new_url[:controller] = 'profile_editor'
  156 + new_url[:action] = 'edit'
  157 + new_url
  158 + end
  159 +
153 160 def incomplete_registration params
154 161 return if params.nil? or params[:user].nil?
155 162  
... ... @@ -159,21 +166,20 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
159 166 params[:user]
160 167 end
161 168  
  169 + @profile_edit_link = link_to _("Complete your registration"), "/myprofile/#{person.identifier}/profile_editor/edit"
  170 + @profile_empty_fields = profile_required_empty_list person
162 171 @percentege = calc_percentage_registration(person)
  172 +
163 173 if @percentege >= 0 and @percentege <= 100
164 174 expanded_template('mpog_software_plugin_myprofile/_incomplete_registration.html.erb')
165 175 end
166 176 end
167 177  
168 178 def calc_percentage_registration person
169   - empty_fields = 0
170   - required_list = ["cell_phone","contact_phone","institution","comercial_phone","country","city","state","organization_website","role","area_interest","image"]
171   - required_list.each do |field|
172   - if person.send(field).blank?
173   - empty_fields = empty_fields + 1
174   - end
175   - end
176   - percentege = (empty_fields*100)/required_list.count
  179 + required_list = profile_required_list
  180 + empty_fields = profile_required_empty_list person
  181 +
  182 + percentege = (empty_fields.count*100)/required_list.count
177 183 person.percentage_incomplete = percentege
178 184 person.save(validate: false)
179 185 percentege
... ... @@ -182,13 +188,10 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
182 188 def add_link_to_complete_registration person
183 189 #find a better way to do it
184 190 if context.session[:hide_incomplete_percentage] != true
185   - new_url = person.public_profile_url
186   - new_url[:controller] = 'profile_editor'
187   - new_url[:action] = 'edit'
188   -
  191 + _new_url = create_url_to_edit_profile(person)
189 192 Proc::new do
190 193 content_tag(:div,
191   - link_to( _("Percentage incomplete: #{person.percentage_incomplete.to_s} %" ), new_url) +
  194 + link_to( _("Percentage incomplete: #{person.percentage_incomplete.to_s} %" ), _new_url) +
192 195 link_to(image_tag("/images/icon_filter_exclude.png"), "#", :class => "hide-incomplete-percentage", :alt => "Hide Incomplete Percentage"), :class=>"mpog-incomplete-percentage"
193 196 )
194 197 end
... ... @@ -201,6 +204,22 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
201 204  
202 205 protected
203 206  
  207 + def profile_required_list
  208 + required_list = ["cell_phone","contact_phone","institution","comercial_phone","country","city","state","organization_website","role","area_interest","image"]
  209 + end
  210 +
  211 + def profile_required_empty_list person
  212 + empty_fields = []
  213 + required_list = profile_required_list
  214 +
  215 + required_list.each do |field|
  216 + if person.send(field).blank?
  217 + empty_fields << field.sub("_"," ")
  218 + end
  219 + end
  220 + empty_fields
  221 + end
  222 +
204 223 def operating_system_transaction
205 224 OperatingSystem.transaction do
206 225 list_operating = OperatingSystemHelper.list_operating_system(context.params[:operating_system])
... ...
views/mpog_software_plugin_myprofile/_incomplete_registration.html.erb
1 1 <div id='incomplete_registration'>
2   - <%= 'Teste' %>
  2 +<span> <%= _("Incomplete registration percentage") %>: <%= @percentege %>%</span>
  3 +
  4 +<div id="profile_empty_fields">
  5 + List with fields to be filled:
  6 + <ul>
  7 + <% @profile_empty_fields.each do |field|%>
  8 + <li>
  9 + <%= field %>
  10 + </li>
  11 + <% end %>
  12 + </ul>
  13 +</div>
  14 +
  15 +<%= @profile_edit_link %>
3 16 </div>
... ...