ddr-models 1.11.8 → 1.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/models/component.rb +1 -0
- data/app/models/item.rb +13 -2
- data/config/initializers/active_fedora_base.rb +9 -5
- data/config/initializers/subscriptions.rb +3 -0
- data/config/locales/groups.en.yml +0 -7
- data/lib/ddr/auth/remote_group_service.rb +2 -11
- data/lib/ddr/datastreams.rb +5 -4
- data/lib/ddr/datastreams/{admin_metadata_datastream.rb → administrative_metadata_datastream.rb} +2 -2
- data/lib/ddr/datastreams/descriptive_metadata_datastream.rb +4 -45
- data/lib/ddr/datastreams/metadata_datastream.rb +44 -0
- data/lib/ddr/datastreams/structural_metadata_datastream.rb +24 -0
- data/lib/ddr/events.rb +2 -2
- data/lib/ddr/events/deletion_event.rb +12 -0
- data/lib/ddr/events/event.rb +0 -15
- data/lib/ddr/events/preservation_event_behavior.rb +4 -2
- data/lib/ddr/index_fields.rb +32 -36
- data/lib/ddr/managers/permanent_id_manager.rb +2 -1
- data/lib/ddr/metadata.rb +0 -3
- data/lib/ddr/models.rb +1 -1
- data/lib/ddr/models/base.rb +4 -0
- data/lib/ddr/models/describable.rb +5 -5
- data/lib/ddr/models/has_admin_metadata.rb +1 -1
- data/lib/ddr/models/has_children.rb +1 -5
- data/lib/ddr/models/has_content.rb +10 -0
- data/lib/ddr/models/has_struct_metadata.rb +57 -0
- data/lib/ddr/models/indexing.rb +0 -10
- data/lib/ddr/models/solr_document.rb +1 -5
- data/lib/ddr/models/version.rb +1 -1
- data/lib/ddr/notifications.rb +2 -1
- data/lib/ddr/utils.rb +2 -2
- data/lib/ddr/vocab.rb +3 -0
- data/lib/ddr/vocab/asset.rb +3 -0
- data/lib/ddr/{metadata → vocab}/duke_terms.rb +2 -2
- data/lib/ddr/{metadata → vocab}/rdf_vocabulary_parser.rb +2 -2
- data/lib/ddr/{metadata → vocab}/sources/duketerms.rdf.xml +0 -0
- data/lib/ddr/{metadata → vocab}/vocabulary.rb +2 -2
- data/spec/dummy/log/development.log +0 -3829
- data/spec/dummy/log/test.log +0 -46079
- data/spec/factories/test_model_factories.rb +0 -57
- data/spec/models/collection_spec.rb +0 -5
- data/spec/models/descriptive_metadata_datastream_spec.rb +20 -4
- data/spec/models/events_spec.rb +8 -0
- data/spec/models/has_struct_metadata_spec.rb +34 -0
- data/spec/models/item_spec.rb +13 -1
- data/spec/support/shared_examples_for_ddr_models.rb +11 -1
- data/spec/support/shared_examples_for_describables.rb +5 -5
- data/spec/support/shared_examples_for_events.rb +4 -40
- metadata +13 -23
- data/lib/ddr/datastreams/content_metadata_datastream.rb +0 -147
- data/lib/ddr/datastreams/preservation_metadata_datastream.rb +0 -13
- data/lib/ddr/events/preservation_event_type.rb +0 -24
- data/lib/ddr/models/has_content_metadata.rb +0 -16
- data/spec/fixtures/contentMetadata.xml +0 -37
- data/spec/models/solr_document_spec.rb +0 -23
- data/spec/services/remote_group_service_spec.rb +0 -16
- data/spec/support/shared_examples_for_event_loggables.rb +0 -3
- data/spec/support/shared_examples_for_has_content_metadata.rb +0 -74
- data/spec/support/shared_examples_for_licensable.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e6a7d4a0eb5bff65cd422cdecc6c9a80a1676b13
|
4
|
+
data.tar.gz: 16e2b9cd1b296430fdae20b3de5c680acae7c2a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca20806ec02e8961c8463a0a2a56e52ae58a5c4e6bd53a32bcef760f54d9b6ebaa235621c9a278a8938c6d2889b43cd3f059526edc9167086011cf080f9e7079
|
7
|
+
data.tar.gz: d6b05541a63bccf94273ed2b536bd4af1c827d1f3f1c637e8e43ae55881fc455dfe9e2c07492b03c825e8a9081686c2f9296cb39a02b21a2cd29282445eb5573
|
data/app/models/component.rb
CHANGED
@@ -6,6 +6,7 @@
|
|
6
6
|
class Component < Ddr::Models::Base
|
7
7
|
|
8
8
|
include Ddr::Models::HasContent
|
9
|
+
include Ddr::Models::HasStructMetadata
|
9
10
|
|
10
11
|
belongs_to :parent, :property => :is_part_of, :class_name => 'Item'
|
11
12
|
belongs_to :target, :property => :has_external_target, :class_name => 'Target'
|
data/app/models/item.rb
CHANGED
@@ -5,7 +5,6 @@
|
|
5
5
|
#
|
6
6
|
class Item < Ddr::Models::Base
|
7
7
|
|
8
|
-
include Ddr::Models::HasContentMetadata
|
9
8
|
include Ddr::Models::HasChildren
|
10
9
|
|
11
10
|
has_many :children, property: :is_part_of, class_name: 'Component'
|
@@ -20,5 +19,17 @@ class Item < Ddr::Models::Base
|
|
20
19
|
alias_method :collection, :parent
|
21
20
|
alias_method :collection_id, :parent_id
|
22
21
|
alias_method :collection=, :parent=
|
23
|
-
|
22
|
+
|
23
|
+
def children_by_file_use
|
24
|
+
file_uses = {}
|
25
|
+
sort_key = "#{Ddr::IndexFields::FILE_USE} ASC, #{Ddr::IndexFields::ORDER} ASC"
|
26
|
+
results = ActiveFedora::SolrService.query(association_query(:children), rows: 999999, sort: sort_key)
|
27
|
+
objs = ActiveFedora::SolrService.lazy_reify_solr_results(results)
|
28
|
+
objs.each do |obj|
|
29
|
+
file_uses[obj.file_use] ||= []
|
30
|
+
file_uses[obj.file_use] << obj
|
31
|
+
end
|
32
|
+
file_uses
|
33
|
+
end
|
34
|
+
|
24
35
|
end
|
@@ -25,10 +25,6 @@ module ActiveFedora
|
|
25
25
|
can_have_content? && content.has_content?
|
26
26
|
end
|
27
27
|
|
28
|
-
def has_content_metadata?
|
29
|
-
self.is_a?(DulHydra::HasContentMetadata) && self.datastreams[Ddr::Datastreams::CONTENT_METADATA].has_content?
|
30
|
-
end
|
31
|
-
|
32
28
|
def describable?
|
33
29
|
self.is_a? Ddr::Models::Describable
|
34
30
|
end
|
@@ -45,7 +41,15 @@ module ActiveFedora
|
|
45
41
|
ds = self.datastreams[Ddr::Datastreams::RIGHTS_METADATA]
|
46
42
|
ds && ds.size && ds.size > 0
|
47
43
|
end
|
48
|
-
|
44
|
+
|
45
|
+
def can_have_struct_metadata?
|
46
|
+
datastreams.include? Ddr::Datastreams::STRUCT_METADATA
|
47
|
+
end
|
48
|
+
|
49
|
+
def has_struct_metadata?
|
50
|
+
can_have_struct_metadata? && structMetadata.has_content?
|
51
|
+
end
|
52
|
+
|
49
53
|
def can_have_thumbnail?
|
50
54
|
datastreams.include? "thumbnail"
|
51
55
|
end
|
@@ -13,3 +13,6 @@ ActiveSupport::Notifications.subscribe(Ddr::Notifications::CREATION, Ddr::Events
|
|
13
13
|
|
14
14
|
# Update
|
15
15
|
ActiveSupport::Notifications.subscribe(Ddr::Notifications::UPDATE, Ddr::Events::UpdateEvent)
|
16
|
+
|
17
|
+
# Deletion
|
18
|
+
ActiveSupport::Notifications.subscribe(Ddr::Notifications::DELETION, Ddr::Events::DeletionEvent)
|
@@ -2,12 +2,5 @@ en:
|
|
2
2
|
groups:
|
3
3
|
public: Public
|
4
4
|
registered: Duke Community
|
5
|
-
duke:
|
6
|
-
staff: Duke Staff
|
7
|
-
faculty: Duke Faculty
|
8
|
-
student: Duke Students
|
9
|
-
affiliate: Duke Affiliates
|
10
|
-
alumni: Duke Alumni
|
11
|
-
emeritus: Duke Emeritus Faculty
|
12
5
|
# Grouper group example:
|
13
6
|
# "duke:library:repository:ddr:archivists": Archivists
|
@@ -2,10 +2,6 @@ module Ddr
|
|
2
2
|
module Auth
|
3
3
|
class RemoteGroupService < GroupService
|
4
4
|
|
5
|
-
AFFILIATIONS = %w( faculty student staff affiliate alumni emeritus )
|
6
|
-
AFFILIATION_GROUP_MAP = AFFILIATIONS.map { |a| [a, "duke.#{a}"] }.to_h
|
7
|
-
AFFILIATION_RE = Regexp.new('(%{a})(?=@duke\.edu)' % {a: AFFILIATIONS.join("|")})
|
8
|
-
|
9
5
|
attr_reader :env
|
10
6
|
|
11
7
|
def initialize(env = nil)
|
@@ -13,12 +9,12 @@ module Ddr
|
|
13
9
|
end
|
14
10
|
|
15
11
|
def append_groups
|
16
|
-
GrouperService.repository_group_names
|
12
|
+
GrouperService.repository_group_names
|
17
13
|
end
|
18
14
|
|
19
15
|
def append_user_groups(user)
|
20
16
|
if env && env.key?(Ddr::Auth.remote_groups_env_key)
|
21
|
-
remote_groups
|
17
|
+
remote_groups
|
22
18
|
else
|
23
19
|
GrouperService.user_group_names(user)
|
24
20
|
end
|
@@ -34,11 +30,6 @@ module Ddr
|
|
34
30
|
groups
|
35
31
|
end
|
36
32
|
|
37
|
-
def affiliation_groups
|
38
|
-
affiliations = env["affiliation"] ? env["affiliation"].scan(AFFILIATION_RE).flatten : []
|
39
|
-
affiliations.map { |affiliation| AFFILIATION_GROUP_MAP[affiliation] }.compact
|
40
|
-
end
|
41
|
-
|
42
33
|
end
|
43
34
|
end
|
44
35
|
end
|
data/lib/ddr/datastreams.rb
CHANGED
@@ -4,14 +4,15 @@ module Ddr
|
|
4
4
|
module Datastreams
|
5
5
|
extend ActiveSupport::Autoload
|
6
6
|
|
7
|
+
ADMIN_METADATA = "adminMetadata"
|
7
8
|
CONTENT = "content"
|
8
|
-
CONTENT_METADATA = "contentMetadata"
|
9
9
|
DC = "DC"
|
10
10
|
DEFAULT_RIGHTS = "defaultRights"
|
11
11
|
DESC_METADATA = "descMetadata"
|
12
12
|
PROPERTIES = "properties"
|
13
13
|
RELS_EXT = "RELS-EXT"
|
14
14
|
RIGHTS_METADATA = "rightsMetadata"
|
15
|
+
STRUCT_METADATA = "structMetadata"
|
15
16
|
THUMBNAIL = "thumbnail"
|
16
17
|
|
17
18
|
CHECKSUM_TYPE_MD5 = "MD5"
|
@@ -22,11 +23,11 @@ module Ddr
|
|
22
23
|
|
23
24
|
CHECKSUM_TYPES = [ CHECKSUM_TYPE_MD5, CHECKSUM_TYPE_SHA1, CHECKSUM_TYPE_SHA256, CHECKSUM_TYPE_SHA384, CHECKSUM_TYPE_SHA512 ]
|
24
25
|
|
25
|
-
autoload :
|
26
|
-
autoload :
|
26
|
+
autoload :MetadataDatastream
|
27
|
+
autoload :AdministrativeMetadataDatastream
|
27
28
|
autoload :DescriptiveMetadataDatastream
|
28
|
-
#autoload :PreservationMetadataDatastream
|
29
29
|
autoload :PropertiesDatastream
|
30
|
+
autoload :StructuralMetadataDatastream
|
30
31
|
autoload :DatastreamBehavior
|
31
32
|
|
32
33
|
end
|
data/lib/ddr/datastreams/{admin_metadata_datastream.rb → administrative_metadata_datastream.rb}
RENAMED
@@ -2,7 +2,7 @@ require "rdf-vocab"
|
|
2
2
|
|
3
3
|
module Ddr
|
4
4
|
module Datastreams
|
5
|
-
class
|
5
|
+
class AdministrativeMetadataDatastream < MetadataDatastream
|
6
6
|
|
7
7
|
property :permanent_id, predicate: Ddr::Vocab::Asset.permanentId
|
8
8
|
|
@@ -15,7 +15,7 @@ module Ddr
|
|
15
15
|
property :workflow_state, predicate: Ddr::Vocab::Asset.workflowState
|
16
16
|
|
17
17
|
Ddr::Vocab::Roles.each do |term|
|
18
|
-
property Ddr::
|
18
|
+
property Ddr::Vocab::Vocabulary.term_name(Ddr::Vocab::Roles, term),
|
19
19
|
predicate: term do |index|
|
20
20
|
index.as :symbol
|
21
21
|
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
module Ddr
|
2
2
|
module Datastreams
|
3
|
-
class DescriptiveMetadataDatastream <
|
3
|
+
class DescriptiveMetadataDatastream < MetadataDatastream
|
4
4
|
|
5
5
|
class_attribute :vocabularies
|
6
|
-
self.vocabularies = [RDF::DC, Ddr::
|
6
|
+
self.vocabularies = [RDF::DC, Ddr::Vocab::DukeTerms].freeze
|
7
7
|
|
8
8
|
def self.default_attributes
|
9
9
|
super.merge(:mimeType => 'application/n-triples')
|
@@ -22,57 +22,16 @@ module Ddr
|
|
22
22
|
indexers.fetch(term_name, default_indexers)
|
23
23
|
end
|
24
24
|
|
25
|
-
def self.term_names
|
26
|
-
terms = []
|
27
|
-
vocabularies.each do |vocab|
|
28
|
-
terms |= Ddr::Metadata::Vocabulary.term_names(vocab)
|
29
|
-
end
|
30
|
-
terms.sort
|
31
|
-
end
|
32
|
-
|
33
25
|
# Add terms from the vocabularies as properties
|
34
26
|
vocabularies.each do |vocab|
|
35
|
-
Ddr::
|
36
|
-
term_name = Ddr::
|
27
|
+
Ddr::Vocab::Vocabulary.property_terms(vocab).each do |term|
|
28
|
+
term_name = Ddr::Vocab::Vocabulary.term_name(vocab, term)
|
37
29
|
property term_name, predicate: term do |index|
|
38
30
|
index.as *indexers_for(term_name)
|
39
31
|
end
|
40
32
|
end
|
41
33
|
end
|
42
34
|
|
43
|
-
# Returns ActiveFedora::Rdf::Term now that this is an RDF datastream
|
44
|
-
def values term
|
45
|
-
term == :format ? self.format : self.send(term)
|
46
|
-
end
|
47
|
-
|
48
|
-
# Update term with values
|
49
|
-
# Note that empty values (nil or "") are rejected from values array
|
50
|
-
def set_values term, values
|
51
|
-
if values.respond_to?(:reject!)
|
52
|
-
values.reject! { |v| v.blank? }
|
53
|
-
else
|
54
|
-
values = nil if values.blank?
|
55
|
-
end
|
56
|
-
begin
|
57
|
-
self.send("#{term}=", values)
|
58
|
-
rescue NoMethodError
|
59
|
-
raise ArgumentError, "No such term: #{term}"
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
# Add value to term
|
64
|
-
# Note that empty value (nil or "") is not added
|
65
|
-
def add_value term, value
|
66
|
-
begin
|
67
|
-
unless value.blank?
|
68
|
-
values = values(term).to_a << value
|
69
|
-
set_values term, values
|
70
|
-
end
|
71
|
-
rescue NoMethodError
|
72
|
-
raise ArgumentError, "No such term: #{term}"
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
35
|
# Override ActiveFedora::Rdf::Indexing#apply_prefix(name) to not
|
77
36
|
# prepend the index field name with a string based on the datastream id.
|
78
37
|
def apply_prefix(name)
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Ddr
|
2
|
+
module Datastreams
|
3
|
+
class MetadataDatastream < ActiveFedora::NtriplesRDFDatastream
|
4
|
+
|
5
|
+
def self.term_names
|
6
|
+
properties.keys.map(&:to_sym).sort
|
7
|
+
end
|
8
|
+
|
9
|
+
# Returns ActiveTriplesTerm now that this is an RDF datastream
|
10
|
+
def values term
|
11
|
+
term == :format ? self.format : self.send(term)
|
12
|
+
end
|
13
|
+
|
14
|
+
# Update term with values
|
15
|
+
# Note that empty values (nil or "") are rejected from values array
|
16
|
+
def set_values term, values
|
17
|
+
if values.respond_to?(:reject!)
|
18
|
+
values.reject! { |v| v.blank? }
|
19
|
+
else
|
20
|
+
values = nil if values.blank?
|
21
|
+
end
|
22
|
+
begin
|
23
|
+
self.send("#{term}=", values)
|
24
|
+
rescue NoMethodError
|
25
|
+
raise ArgumentError, "No such term: #{term}"
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
# Add value to term
|
30
|
+
# Note that empty value (nil or "") is not added
|
31
|
+
def add_value term, value
|
32
|
+
begin
|
33
|
+
unless value.blank?
|
34
|
+
values = values(term).to_a << value
|
35
|
+
set_values term, values
|
36
|
+
end
|
37
|
+
rescue NoMethodError
|
38
|
+
raise ArgumentError, "No such term: #{term}"
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require "rdf-vocab"
|
2
|
+
|
3
|
+
module Ddr
|
4
|
+
module Datastreams
|
5
|
+
class StructuralMetadataDatastream < MetadataDatastream
|
6
|
+
|
7
|
+
# analogous to METS fileSec "USE" attribute
|
8
|
+
property :file_use, predicate: Ddr::Vocab::Asset.fileUse do |index|
|
9
|
+
index.as :stored_sortable
|
10
|
+
end
|
11
|
+
|
12
|
+
# analogous to METS fileSec "SEQ" or structMap "ORDER" attribute
|
13
|
+
property :order, predicate: Ddr::Vocab::Asset.order do |index|
|
14
|
+
index.as :stored_sortable
|
15
|
+
end
|
16
|
+
|
17
|
+
# analogous to METS fileSec "GROUPID" attribute
|
18
|
+
property :file_group, predicate: Ddr::Vocab::Asset.fileGroup do |index|
|
19
|
+
index.as :stored_sortable
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/lib/ddr/events.rb
CHANGED
@@ -4,14 +4,14 @@ module Ddr
|
|
4
4
|
|
5
5
|
autoload :Event
|
6
6
|
autoload :CreationEvent
|
7
|
+
autoload :DeletionEvent
|
7
8
|
autoload :FixityCheckEvent
|
8
9
|
autoload :IngestionEvent
|
9
10
|
autoload :UpdateEvent
|
10
11
|
autoload :ValidationEvent
|
11
12
|
autoload :VirusCheckEvent
|
12
|
-
autoload :PreservationEventType
|
13
13
|
autoload :PreservationEventBehavior
|
14
14
|
autoload :ReindexObjectAfterSave
|
15
15
|
|
16
16
|
end
|
17
|
-
end
|
17
|
+
end
|
data/lib/ddr/events/event.rb
CHANGED
@@ -34,7 +34,6 @@ module Ddr
|
|
34
34
|
|
35
35
|
validates_presence_of :event_date_time, :pid
|
36
36
|
validates :outcome, inclusion: {in: OUTCOMES, message: "\"%{value}\" is not a valid event outcome"}
|
37
|
-
validate :object_exists # unless/until we have a deaccession-type of event
|
38
37
|
|
39
38
|
after_initialize :set_defaults
|
40
39
|
before_save { failure! if exception.present? }
|
@@ -126,13 +125,6 @@ module Ddr
|
|
126
125
|
event_date_time.utc.strftime DATE_TIME_FORMAT
|
127
126
|
end
|
128
127
|
|
129
|
-
# Return boolean indicator of object existence
|
130
|
-
def object_exists?
|
131
|
-
!object.nil?
|
132
|
-
rescue ActiveFedora::ObjectNotFoundError => e
|
133
|
-
false
|
134
|
-
end
|
135
|
-
|
136
128
|
protected
|
137
129
|
|
138
130
|
def set_defaults
|
@@ -147,13 +139,6 @@ module Ddr
|
|
147
139
|
}
|
148
140
|
end
|
149
141
|
|
150
|
-
# Validation method
|
151
|
-
def object_exists
|
152
|
-
unless object_exists?
|
153
|
-
errors.add(:pid, "Object \"#{pid}\" does not exist in the repository")
|
154
|
-
end
|
155
|
-
end
|
156
|
-
|
157
142
|
def default_software
|
158
143
|
DDR_SOFTWARE
|
159
144
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require "rdf-vocab"
|
2
|
+
|
1
3
|
module Ddr
|
2
4
|
module Events
|
3
5
|
module PreservationEventBehavior
|
@@ -16,7 +18,7 @@ module Ddr
|
|
16
18
|
|
17
19
|
def as_premis
|
18
20
|
Ddr::Metadata::PremisEvent.new.tap do |doc|
|
19
|
-
doc.event_type =
|
21
|
+
doc.event_type = RDF::Vocab::PremisEventType.label_for(preservation_event_type)
|
20
22
|
doc.event_id_type = EVENT_ID_TYPE
|
21
23
|
doc.event_id_value = id
|
22
24
|
doc.event_detail = summary
|
@@ -34,4 +36,4 @@ module Ddr
|
|
34
36
|
|
35
37
|
end
|
36
38
|
end
|
37
|
-
end
|
39
|
+
end
|
data/lib/ddr/index_fields.rb
CHANGED
@@ -5,42 +5,38 @@ module Ddr
|
|
5
5
|
ActiveFedora::SolrService.solr_name(*args)
|
6
6
|
end
|
7
7
|
|
8
|
-
ACTIVE_FEDORA_MODEL
|
9
|
-
COLLECTION_URI
|
10
|
-
CONTENT_CONTROL_GROUP
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
PERMANENT_ID = solr_name :permanent_id, :stored_sortable, type: :string
|
41
|
-
PERMANENT_URL = solr_name :permanent_url, :stored_sortable, type: :string
|
42
|
-
TITLE = solr_name :title, :stored_sortable
|
43
|
-
WORKFLOW_STATE = solr_name :workflow_state, :stored_sortable
|
8
|
+
ACTIVE_FEDORA_MODEL = solr_name :active_fedora_model, :stored_sortable
|
9
|
+
COLLECTION_URI = solr_name :collection_uri, :symbol
|
10
|
+
CONTENT_CONTROL_GROUP = solr_name :content_control_group, :searchable, type: :string
|
11
|
+
CONTENT_SIZE = solr_name :content_size, :stored_sortable, type: :integer
|
12
|
+
CONTENT_SIZE_HUMAN = solr_name :content_size_human, :symbol
|
13
|
+
FILE_GROUP = solr_name :struct_metadata__file_group, :stored_sortable
|
14
|
+
FILE_USE = solr_name :struct_metadata__file_use, :stored_sortable
|
15
|
+
HAS_MODEL = solr_name :has_model, :symbol
|
16
|
+
IDENTIFIER = solr_name :identifier, :stored_sortable
|
17
|
+
INTERNAL_URI = solr_name :internal_uri, :stored_sortable
|
18
|
+
IS_ATTACHED_TO = solr_name :is_attached_to, :symbol
|
19
|
+
IS_EXTERNAL_TARGET_FOR = solr_name :is_external_target_for, :symbol
|
20
|
+
IS_GOVERNED_BY = solr_name :is_governed_by, :symbol
|
21
|
+
IS_MEMBER_OF = solr_name :is_member_of, :symbol
|
22
|
+
IS_MEMBER_OF_COLLECTION = solr_name :is_member_of_collection, :symbol
|
23
|
+
IS_PART_OF = solr_name :is_part_of, :symbol
|
24
|
+
LAST_FIXITY_CHECK_ON = solr_name :last_fixity_check_on, :stored_sortable, type: :date
|
25
|
+
LAST_FIXITY_CHECK_OUTCOME = solr_name :last_fixity_check_outcome, :symbol
|
26
|
+
LAST_VIRUS_CHECK_ON = solr_name :last_virus_check_on, :stored_sortable, type: :date
|
27
|
+
LAST_VIRUS_CHECK_OUTCOME = solr_name :last_virus_check_outcome, :symbol
|
28
|
+
MEDIA_SUB_TYPE = solr_name :content_media_sub_type, :facetable
|
29
|
+
MEDIA_MAJOR_TYPE = solr_name :content_media_major_type, :facetable
|
30
|
+
MEDIA_TYPE = solr_name :content_media_type, :symbol
|
31
|
+
OBJECT_PROFILE = solr_name :object_profile, :displayable
|
32
|
+
OBJECT_STATE = solr_name :object_state, :stored_sortable
|
33
|
+
OBJECT_CREATE_DATE = solr_name :system_create, :stored_sortable, type: :date
|
34
|
+
OBJECT_MODIFIED_DATE = solr_name :system_modified, :stored_sortable, type: :date
|
35
|
+
ORDER = solr_name :struct_metadata__order, :stored_sortable, type: :integer
|
36
|
+
PERMANENT_ID = solr_name :permanent_id, :stored_sortable, type: :string
|
37
|
+
PERMANENT_URL = solr_name :permanent_url, :stored_sortable, type: :string
|
38
|
+
TITLE = solr_name :title, :stored_sortable
|
39
|
+
WORKFLOW_STATE = solr_name :workflow_state, :stored_sortable
|
44
40
|
|
45
41
|
end
|
46
42
|
end
|