Sha256: a506b1ce3a3dc80afb9ca5ddda4485acf3d231e72b1c3625c95aa6dba2b446d4

Contents?: true

Size: 1.47 KB

Versions: 20

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
        # exporing 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

20 entries across 20 versions & 1 rubygems

Version Path
decidim-admin-0.28.5 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.28.4 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.27.9 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.28.3 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.27.8 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.28.2 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.27.7 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.28.1 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.27.6 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.28.0 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.27.5 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.28.0.rc5 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.28.0.rc4 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.27.4 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.27.3 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.27.2 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.27.1 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.27.0 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.27.0.rc2 app/controllers/concerns/decidim/admin/participatory_space_export.rb
decidim-admin-0.27.0.rc1 app/controllers/concerns/decidim/admin/participatory_space_export.rb