effective_cpd 1.2.2 → 1.2.3

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: 1b7b747aec6776c9ea09dc1e36517084133694dca965f7d32ec8a20d66a9596d
4
- data.tar.gz: c21e47933d6026f612f79f0f63b52895d7319b2db744eb53b68e7881c280f497
3
+ metadata.gz: eed65d1a331a6a09e8f5435d1f200f646680773b271d0000358438c09122d29e
4
+ data.tar.gz: 117455812ab24c1d74a19ba95ca4eccfebc3d2085094c394b272c47464ca9907
5
5
  SHA512:
6
- metadata.gz: ec38bd12ba35145518b3285534b32e006a86fa6e29ed39da8fae6d6554ac554b0ffb676aaa32fc592920a3d4c2e8181c9138c9a5338edcfabd789d612af930be
7
- data.tar.gz: 6859e61d222b1fdcea05e91188f0b783de4ed76dd4f10dc8ce50dc0773ae4b4f5f39c90d2bb5ff188928bf2401ad7cd1e40b3ec4f1a2a2a7efd8e05063d0adb6
6
+ metadata.gz: fa0036e716e1c6b8871d4f149eb8e3f5c372d32888e8c4fd21c5bcda4763adb2eb069e4eaa77ff210172d4dcfff3c746fcc86c5e8720f83a133aa238a4481eb7
7
+ data.tar.gz: baca0a12db533c7f1fc5dbb1ba9f1ae180b44aa18f30aa0bd360cff51898a4d1e24028f5f30a763e1cd01448bcabff2c3a5a533f6410dbfd0b6eece12ab32f40
@@ -36,6 +36,10 @@ module EffectiveCpdAudit
36
36
  [:opened, :started, :conflicted_resolved, :exemption_denied, :extension_granted, :extension_denied]
37
37
  end
38
38
 
39
+ def chat_permissions
40
+ ['Can send messages until closed', 'Always send messages', 'Never send messages']
41
+ end
42
+
39
43
  end
40
44
 
41
45
  included do
@@ -150,6 +154,9 @@ module EffectiveCpdAudit
150
154
  reviewed_at :datetime, permitted: false
151
155
  closed_at :datetime, permitted: false
152
156
 
157
+ # To control permission of sending messages
158
+ chat_permission :string, permitted: false
159
+
153
160
  # Acts as tokyyened
154
161
  token :string, permitted: false
155
162
 
@@ -181,6 +188,7 @@ module EffectiveCpdAudit
181
188
  before_validation(if: -> { new_record? }) do
182
189
  self.notification_date ||= Time.zone.now
183
190
  self.due_date ||= deadline_to_submit()
191
+ self.chat_permission ||= self.class.chat_permissions.first
184
192
  end
185
193
 
186
194
  with_options(if: -> { cpd_audit_level&.anonymous? }) do
@@ -222,6 +230,12 @@ module EffectiveCpdAudit
222
230
  end
223
231
  end
224
232
 
233
+ validate(if: -> { chat_permission.present? }) do
234
+ unless self.class.chat_permissions.include?(chat_permission)
235
+ self.errors.add(:chat_permission, 'is invalid')
236
+ end
237
+ end
238
+
225
239
  # If we're submitted. Check if we can go into reviewed?
226
240
  before_save(if: -> { submitted? }) { try_complete! }
227
241
  before_save(if: -> { completed? }) { try_review! }
@@ -289,6 +303,14 @@ module EffectiveCpdAudit
289
303
  chat
290
304
  end
291
305
 
306
+ def chat_url(chat:, user:, root_url:)
307
+ resource = if user.try(:cpd_audit_reviewer?)
308
+ cpd_audit_reviews.find { |review| review.user == user } || raise('expected to find existing reviewer')
309
+ end || self
310
+
311
+ [root_url.chomp('/'), resource.class.table_name, resource.to_param, 'chat'].join('/')
312
+ end
313
+
292
314
  end
293
315
 
294
316
  def to_s
@@ -323,6 +345,18 @@ module EffectiveCpdAudit
323
345
  was_completed?
324
346
  end
325
347
 
348
+ def chat_until_closed?
349
+ chat_permission == 'Can send messages until closed'
350
+ end
351
+
352
+ def chat_always?
353
+ chat_permission == 'Always send messages'
354
+ end
355
+
356
+ def chat_never?
357
+ chat_permission == 'Never send messages'
358
+ end
359
+
326
360
  def status_label
327
361
  (status_was || status).to_s.gsub('_', ' ')
328
362
  end
@@ -1,3 +1,12 @@
1
+ = card('Chat Permission') do
2
+ = effective_form_with(model: [:admin, cpd_audit], engine: true) do |f|
3
+ %p By default, auditees and reviewers can send messages until the audit is closed.
4
+
5
+ .row
6
+ .col-sm-6
7
+ = f.select :chat_permission, cpd_audit.class.chat_permissions, label: false
8
+ = f.submit 'Save', center: true, border: false
9
+
1
10
  - if cpd_audit.chat.present?
2
11
  = render('effective/chats/chat', chat: cpd_audit.chat)
3
12
  - else
@@ -40,6 +40,10 @@
40
40
  %p You have completed these past statements:
41
41
  = render_datatable(completed, simple: true)
42
42
 
43
+ - unless current_user.try(:cpd_audit_reviewer?)
44
+ - if auditing.blank? && audited.blank? && available.blank? && completed.blank?
45
+ %p There are no activities available right now. When there are, we'll show them here.
46
+
43
47
  - if current_user.try(:cpd_audit_reviewer?)
44
48
  - # Auditor / Audit reviewer datatables (2)
45
49
  - reviewing = EffectiveCpdAvailableAuditReviewsDatatable.new(self)
@@ -2,7 +2,7 @@
2
2
  %table.table
3
3
  %tbody
4
4
  %tr
5
- %td{colspan: 2}
5
+ %td
6
6
  - if cpd_audit_review.feedback.present?
7
7
  = simple_format(cpd_audit_review.feedback)
8
8
  - else
@@ -75,4 +75,4 @@
75
75
  - if cpd_audit_review.comments.present?
76
76
  = simple_format(cpd_audit_review.comments)
77
77
  - else
78
- None
78
+ = '-'
@@ -227,6 +227,8 @@ class CreateEffectiveCpd < ActiveRecord::Migration[6.0]
227
227
 
228
228
  t.string :token
229
229
 
230
+ t.string :chat_permission
231
+
230
232
  t.datetime :updated_at
231
233
  t.datetime :created_at
232
234
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveCpd
2
- VERSION = '1.2.2'
2
+ VERSION = '1.2.3'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_cpd
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect