effective_polls 0.5.6 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2de40c717cb2296f4a0a7aed128811bd1991899d579c26e538f68c9ad70fee4a
4
- data.tar.gz: a2815292003805d8174c9e7ff7996b311162157b92b07fa164b7087dee9082d2
3
+ metadata.gz: 1544136785e983f59fec3e24eb2b5f84e2c62bc23afc117c07c79e48707a46bd
4
+ data.tar.gz: 37ba582d1fab4f48d064f276b9b4e16dc7a3282fe59d654634cde177185ff9a8
5
5
  SHA512:
6
- metadata.gz: 3601f0b8098f681b375e6982f594893c12d49ff7cec643ab6d7f286bcbf15a3dda38b808d76ac977a53a66207b83f07dce74a3b4d4f075d8f63389d424677794
7
- data.tar.gz: e69034e422902663ef2607bca59378aef46233b9df1486feb0566e50f6c80a9a810e98559d1b4044231fd53cfb78029a2c21afcede2867ad0c7224ba2ed0e080
6
+ metadata.gz: 489b7a8ee1acb43014e2fd76386a97bb643b8c4607a3bff709f1e90db3626ffc9369eddd591057f757087eccba86c2dae1a0825f8e35835b92048c2758f3b531
7
+ data.tar.gz: e0ed04e867e31649852e68e80fb2fbc1348ca45c852246582258c7627ecd6f5adfa8deb332e3f9f1ce629ccd08f12f0e6695d4202ab5a215e338f4d3976486ce
@@ -21,6 +21,9 @@ class Admin::EffectivePollsDatatable < Effective::Datatable
21
21
  col :poll_notifications
22
22
  col :poll_questions, visible: false
23
23
 
24
+ col :hide_results, visible: false
25
+ col :skip_logging, visible: false
26
+
24
27
  actions_col
25
28
  end
26
29
 
@@ -60,6 +60,12 @@ module Effective
60
60
  model_name.human
61
61
  end
62
62
 
63
+ # Disable effective_logging log_changes for this resource
64
+ def log_changes?
65
+ return false if poll&.skip_logging?
66
+ true
67
+ end
68
+
63
69
  # Find or build
64
70
  def ballot_response(poll_question)
65
71
  ballot_response = ballot_responses.find { |br| br.poll_question_id == poll_question.id }
@@ -37,6 +37,9 @@ module Effective
37
37
  start_at :datetime
38
38
  end_at :datetime
39
39
 
40
+ hide_results :boolean, default: false
41
+ skip_logging :boolean, default: false
42
+
40
43
  audience :string
41
44
  audience_class_name :string
42
45
  audience_scope :text # An Array of user_ids or named scopes on the User model
@@ -9,6 +9,14 @@
9
9
  .alert.alert-info
10
10
  Please be aware of the existing #{ets(f.object.poll_notifications)} when changing the start or end availability date.
11
11
 
12
+ = f.check_box :hide_results,
13
+ label: 'Hide results until the poll has ended',
14
+ hint: 'If checked, admin users will be unable to view the poll results until the poll has ended.'
15
+
16
+ = f.check_box :skip_logging,
17
+ label: 'Skip logging of ballots',
18
+ hint: 'If checked, no logs of who has submitted or completed ballots will be kept.'
19
+
12
20
  -# Audience
13
21
  - f.object.audience_class_name ||= current_user.class.name
14
22
 
@@ -1,5 +1,8 @@
1
1
  = render 'effective/poll_results/results', poll: @poll
2
2
 
3
3
  = card('Raw Data') do
4
- - datatable = Admin::EffectivePollResultsDatatable.new(poll: @poll)
5
- = render_datatable(datatable)
4
+ - if poll.hide_results? && !poll.ended?
5
+ %p The raw data for this poll will be displayed once it has ended.
6
+ - else
7
+ - datatable = Admin::EffectivePollResultsDatatable.new(poll: @poll)
8
+ = render_datatable(datatable)
@@ -20,23 +20,26 @@
20
20
  .card-body
21
21
  %h5.card-title Question Results
22
22
 
23
- .effective-ballot
24
- %table.table.table-hover
25
- %thead
26
- %tr
27
- %th Question
28
- %th Results
23
+ - if poll.hide_results? && !poll.ended?
24
+ %p The results of this poll will be displayed once it has ended.
25
+ - else
26
+ .effective-ballot
27
+ %table.table.table-hover
28
+ %thead
29
+ %tr
30
+ %th Question
31
+ %th Results
29
32
 
30
- %tbody
31
- - ballots = poll.ballots
33
+ %tbody
34
+ - ballots = poll.ballots
32
35
 
33
- - poll.poll_questions.each_with_index do |poll_question, index|
34
- - ballot_responses = poll.poll_results(poll_question: poll_question)
36
+ - poll.poll_questions.each_with_index do |poll_question, index|
37
+ - ballot_responses = poll.poll_results(poll_question: poll_question)
35
38
 
36
- %tr
37
- %td
38
- #{poll_question.position + 1}. #{poll_question}
39
- %br
40
- %small.text-muted= poll_question.category
39
+ %tr
40
+ %td
41
+ #{poll_question.position + 1}. #{poll_question}
42
+ %br
43
+ %small.text-muted= poll_question.category
41
44
 
42
- %td= render('effective/poll_results/poll_result', poll_question: poll_question, ballot_responses: ballot_responses)
45
+ %td= render('effective/poll_results/poll_result', poll_question: poll_question, ballot_responses: ballot_responses)
@@ -12,6 +12,9 @@ class CreateEffectivePolls < ActiveRecord::Migration[6.0]
12
12
  t.string :audience_class_name
13
13
  t.text :audience_scope
14
14
 
15
+ t.boolean :hide_results, default: false
16
+ t.boolean :skip_logging, default: false
17
+
15
18
  t.datetime :updated_at
16
19
  t.datetime :created_at
17
20
  end
@@ -1,3 +1,3 @@
1
1
  module EffectivePolls
2
- VERSION = '0.5.6'
2
+ VERSION = '0.6.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_polls
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.6
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-26 00:00:00.000000000 Z
11
+ date: 2024-02-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails