Sha256: 286e0512357f34fc51f41581bee310ea3d90300e0865ee3e5d7dea48d3a83947

Contents?: true

Size: 1.47 KB

Versions: 6

Compression:

Stored size: 1.47 KB

Contents

# frozen_string_literal: true

module Decidim
  module Admin
    module ParticipatorySpaceExport
      extend ActiveSupport::Concern

      included do
        helper_method :exportable_space

        def create
          enforce_permission_to :create, :export_space, participatory_space: exportable_space

          Decidim.traceability.perform_action!("export", exportable_space, current_user) do
            ExportParticipatorySpaceJob.perform_later(current_user, exportable_space, manifest_name, default_format)
          end

          flash[:notice] = t("decidim.admin.exports.notice")

          redirect_back(fallback_location: after_export_path)
        end

        # Public: To be implemented at the controller. You need to
        # return the space that will be exported.
        def exportable_space
          raise NotImplementedError
        end

        # Public: To be implemented at the controller. You need to
        # return the plural of the name of the space that will be exported.
        def manifest_name
          raise NotImplementedError
        end

        # Public: Returns a String or Object that will be passed to `redirect_to` after
        # exploring a space. By default it redirects to the root_path.
        #
        # It can be redefined at controller level if you need to redirect elsewhere.
        def after_export_path
          decidim.root_path
        end

        private

        def default_format
          "JSON"
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
decidim-admin-0.29.1 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.29.0 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.29.0.rc4 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.29.0.rc3 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.29.0.rc2 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.29.0.rc1 app/controllers/concerns/decidim/admin/participatory_space_export.rb