Sha256: e0e896c850d06316db43c8fd68dcbccdf05165fe0e0cfebaea422048350c46af

Contents?: true

Size: 1.05 KB

Versions: 13

Compression:

Stored size: 1.05 KB

Contents

module Ddr
  module Models
    module HasAdminMetadata
      extend ActiveSupport::Concern

      included do
        has_metadata "adminMetadata",
                     type: Ddr::Datastreams::AdminMetadataDatastream,
                     versionable: true,
                     control_group: "M"

        has_attributes :permanent_id, :permanent_url, :workflow_state,
                       datastream: "adminMetadata", multiple: false

        delegate :principal_has_role?, to: :roles
        delegate :publish, :publish!, :unpublish, :unpublish!, :published?, to: :workflow

        after_create :assign_permanent_id!, if: "Ddr::Models.auto_assign_permanent_ids"
      end

      def permanent_id_manager
        @permanent_id_manager ||= Ddr::Managers::PermanentIdManager.new(self)
      end

      def roles
        @roles ||= Ddr::Managers::RoleManager.new(self)
      end

      def workflow
        @workflow ||= Ddr::Managers::WorkflowManager.new(self)
      end

      def assign_permanent_id!
        permanent_id_manager.assign_later
      end

    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
ddr-models-1.11.8 lib/ddr/models/has_admin_metadata.rb
ddr-models-1.11.7 lib/ddr/models/has_admin_metadata.rb
ddr-models-1.11.6 lib/ddr/models/has_admin_metadata.rb
ddr-models-1.11.5 lib/ddr/models/has_admin_metadata.rb
ddr-models-1.11.4 lib/ddr/models/has_admin_metadata.rb
ddr-models-1.11.3 lib/ddr/models/has_admin_metadata.rb
ddr-models-1.11.2 lib/ddr/models/has_admin_metadata.rb
ddr-models-1.11.1 lib/ddr/models/has_admin_metadata.rb
ddr-models-1.11.0 lib/ddr/models/has_admin_metadata.rb
ddr-models-1.10.0 lib/ddr/models/has_admin_metadata.rb
ddr-models-1.9.0 lib/ddr/models/has_admin_metadata.rb
ddr-models-1.8.1 lib/ddr/models/has_admin_metadata.rb
ddr-models-1.8.0 lib/ddr/models/has_admin_metadata.rb