Sha256: b7bdd6fc665480d164d1720235d719800d25fb6403bdaba7fef65e27eb24a777
Contents?: true
Size: 1.28 KB
Versions: 20
Compression:
Stored size: 1.28 KB
Contents
# frozen_string_literal: true module Decidim module Admin # This command gets called when a content block is updated from the admin # panel. class UpdateHelpSections < Decidim::Command def initialize(form, organization, user) @form = form @organization = organization @user = user end def call return broadcast(:invalid) unless @form.valid? ActiveRecord::Base.transaction do @form.sections.each do |section| next unless content_has_changed?(section) Decidim.traceability.perform_action!("update", ContextualHelpSection, @user, { "resource" => { "title" => section.id.humanize } }) do ContextualHelpSection.set_content(@organization, section.id, section.content) ContextualHelpSection.find_by(organization: @organization, section_id: section.id) end end end broadcast(:ok) end private def content_has_changed?(section) return if ContextualHelpSection.find_by(organization: @organization, section_id: section.id).nil? && section.content.compact_blank.blank? section.content != ContextualHelpSection.find_content(@organization, section.id).except("machine_translations") end end end end
Version data entries
20 entries across 20 versions & 1 rubygems