Sha256: c9be66e177fcb3128d6c5138c8e14bc03626aae8cf2c1934590e8abeea65acd0
Contents?: true
Size: 1.54 KB
Versions: 6
Compression:
Stored size: 1.54 KB
Contents
# frozen_string_literal: true module Decidim module ReportingProposals class AssignProposalValuatorsJob < ApplicationJob queue_as :default attr_reader :resource def perform(data) @resource = data[:resource] return if valuator_roles.blank? unless data[:event_class] == "Decidim::Proposals::Admin::UpdateProposalCategoryEvent" return unless data[:extra][:participatory_space] return if data[:extra][:type] == "admin" end valuator_roles.each do |valuator_role| Decidim::Proposals::Admin::AssignProposalsToValuator.call(form(valuator_role)) do on(:ok) do Rails.logger.info("Automatically assigned valuator #{valuator_role.user.name} to proposal ##{resource.id}") end on(:invalid) do Rails.logger.warn("Couldn't automatically assign valuator #{valuator_role.user.name} to proposal ##{resource.id}") end end end end def form(valuator_role) Decidim::Proposals::Admin::ValuationAssignmentForm.from_params( id: valuator_role.id, proposal_ids: [resource.id] ).with_context( current_component: resource.component, current_user: resource.organization.users.first # first admin for the traceability ) end # get valuators from categories def valuator_roles @valuator_roles ||= category.valuator_roles end def category @category ||= resource.category end end end end
Version data entries
6 entries across 6 versions & 1 rubygems