[Git][noosfero/noosfero][master] 4 commits: Refactors query results viewing

Rodrigo Souto gitlab at mg.gitlab.com
Fri Jun 22 12:12:30 BRT 2018


Rodrigo Souto pushed to branch master at Noosfero / noosfero


Commits:
a6d4b195 by Matheus Richard at 2018-06-15T14:41:52Z
Refactors query results viewing

This allows admins viewing results even though the query is not finished

- - - - -
47d56765 by Matheus Richard at 2018-06-18T12:10:30Z
Fixes query results viewing

- - - - -
0c4be3c7 by Matheus Richard at 2018-06-22T00:59:26Z
Merge branch 'master' of https://gitlab.com/noosfero/noosfero into refactors-query-results-viewing

- - - - -
c260d441 by Rodrigo Souto at 2018-06-22T15:12:26Z
Merge branch 'refactors-query-results-viewing' into 'master'

Refactors query results viewing

See merge request noosfero/noosfero!1536
- - - - -


2 changed files:

- plugins/custom_forms/lib/custom_forms_plugin/form.rb
- plugins/custom_forms/test/unit/custom_forms_plugin/form_test.rb


Changes:

=====================================
plugins/custom_forms/lib/custom_forms_plugin/form.rb
=====================================
@@ -164,16 +164,21 @@ class CustomFormsPlugin::Form < ApplicationRecord
   alias_attribute :result_access, :access_result_options
 
   def show_results_for(person)
-    result_access.blank? ||
+    (result_access.blank?) ||
     (result_access == 'public') ||
-    ((result_access == 'public_after_ends') && ending.present? &&
-                                              (ending < DateTime.now)) ||
-    ((result_access == 'private') && (person == profile ||
-                                      person.in?(profile.admins) ||
-                                      person.in?(profile.environment.admins)))
+    (
+      result_access == 'public_after_ends' && 
+      ((ending.present? && (ending < DateTime.now)) || can_view?(person))
+    ) ||
+    ((result_access == 'private') && can_view?(person))
   end
 
   private
+  def can_view?(person)
+    (person == profile ||
+    person.in?(profile.admins) ||
+    person.in?(profile.environment.admins))
+  end
 
   def period_range
     errors.add(:base, _('The time range selected is invalid.')) if ending < begining


=====================================
plugins/custom_forms/test/unit/custom_forms_plugin/form_test.rb
=====================================
@@ -436,15 +436,20 @@ class CustomFormsPlugin::FormTest < ActiveSupport::TestCase
     form = CustomFormsPlugin::Form.new(profile: profile, name: 'Form 1')
 
     form.access_result_options = nil
+    form.save!
+
     assert form.show_results_for(nil)
 
     form.access_result_options = 'public'
+    form.save!
+
     assert form.show_results_for(nil)
   end
 
   should 'only show results if it is public and form is closed' do
     form = CustomFormsPlugin::Form.new(profile: profile, name: 'Form 1')
     form.access_result_options = 'public_after_ends'
+    form.save!
 
     form.ending = nil
     refute form.show_results_for(nil)
@@ -461,6 +466,7 @@ class CustomFormsPlugin::FormTest < ActiveSupport::TestCase
     random = create_user('random').person
     form = CustomFormsPlugin::Form.new(profile: person, name: 'Form 1')
     form.access_result_options = 'private'
+    form.save!
 
     assert form.show_results_for(person)
     refute form.show_results_for(random)
@@ -471,6 +477,7 @@ class CustomFormsPlugin::FormTest < ActiveSupport::TestCase
     person2 = create_user('admin').person
     form = CustomFormsPlugin::Form.new(profile: profile, name: 'Form 1')
     form.access_result_options = 'private'
+    form.save!
 
     refute form.show_results_for(person1)
     refute form.show_results_for(person2)
@@ -542,6 +549,4 @@ class CustomFormsPlugin::FormTest < ActiveSupport::TestCase
     assert_includes scope, f2
     assert_includes scope, f3
   end
-
-
 end



View it on GitLab: https://gitlab.com/noosfero/noosfero/compare/34c660cc4ac6378ed5a1a7ca0c3da0b4f1abfeb9...c260d44105f16b1dec79010ccb4bde9cf858032f

-- 
View it on GitLab: https://gitlab.com/noosfero/noosfero/compare/34c660cc4ac6378ed5a1a7ca0c3da0b4f1abfeb9...c260d44105f16b1dec79010ccb4bde9cf858032f
You're receiving this email because of your account on gitlab.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listas.softwarelivre.org/pipermail/noosfero-dev/attachments/20180622/e2cde883/attachment-0001.html>


More information about the Noosfero-dev mailing list