module Admin class CpdAuditsController < ApplicationController before_action(:authenticate_user!) if defined?(Devise) before_action { EffectiveResources.authorize!(self, :admin, :effective_cpd) } include Effective::CrudController resource_scope -> { EffectiveCpd.CpdAudit.deep.all } datatable -> { EffectiveResources.best('Admin::EffectiveCpdAuditsDatatable').new } submit :resolve_conflict, 'Resolve Conflict of Interest', success: -> { [ "Successfully resolved #{resource}", ("and sent #{resource.user.email} a notification" unless resource.email_form_skip?) ].compact.join(' ') } submit :close, 'Close', success: -> { [ "Successfully closed #{resource}", ("and sent #{resource.user.email} a notification" unless resource.email_form_skip?) ].compact.join(' ') } submit :process_exemption, 'Process Exemption Request', success: -> { [ "Successfully #{resource.status.gsub('_', ' ')} #{resource}", ("and sent #{resource.user.email} a notification" unless resource.email_form_skip?) ].compact.join(' ') } submit :process_extension, 'Process Extension Request', success: -> { [ "Successfully #{resource.status.gsub('_', ' ')} #{resource}", ("and sent #{resource.user.email} a notification" unless resource.email_form_skip?) ].compact.join(' ') } submit :complete, 'Complete', success: -> { [ "Successfully completed #{resource}", ("and sent notifications" unless resource.email_form_skip) ].compact.join(' ') } submit :complete, 'Ready to Review', success: -> { [ "Successfully completed #{resource}", ("and sent notifications" unless resource.email_form_skip) ].compact.join(' ') } submit :missing, 'Missing Info', success: -> { [ "Successfully marked #{resource} as missing info", ("and sent #{resource.user.email} a notification" unless resource.email_form_skip) ].compact.join(' ') } private def permitted_params model = (params.key?(:effective_cpd_audit) ? :effective_cpd_audit : :cpd_audit) params.require(model).permit! end end end