diff --git a/hyrax/app/indexers/complex_field/modality_indexer.rb b/hyrax/app/indexers/complex_field/modality_indexer.rb index 21e14c5f6bdd4081057884dc52d27f6e92d57538..c618bcfb34ec4f93b18c3824dbd69803af4662e9 100644 --- a/hyrax/app/indexers/complex_field/modality_indexer.rb +++ b/hyrax/app/indexers/complex_field/modality_indexer.rb @@ -13,7 +13,7 @@ module ComplexField solr_doc[Solrizer.solr_name('complex_modality', :displayable)] = complex_modalities.to_json complex_modalities.each do |c| # identifier - fld_name = Solrizer.solr_name('complex_modality_identifiers', :symbol) + fld_name = Solrizer.solr_name('modality_identifier', :symbol) vals = c.modality_identifier solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) solr_doc[fld_name] << vals @@ -21,22 +21,22 @@ module ComplexField # modality_titles vals = c.modality_title - fld_name = Solrizer.solr_name('complex_modality_titles', :stored_searchable) + fld_name = Solrizer.solr_name('modality_title', :stored_searchable) solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) solr_doc[fld_name] << vals solr_doc[fld_name] = solr_doc[fld_name].flatten.uniq - fld_name = Solrizer.solr_name('complex_modality_titles', :facetable) + fld_name = Solrizer.solr_name('modality_title', :facetable) solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) solr_doc[fld_name] << vals solr_doc[fld_name] = solr_doc[fld_name].flatten.uniq # modalities vals = c.modality - fld_name = Solrizer.solr_name('modalities', :stored_searchable) + fld_name = Solrizer.solr_name('modality', :stored_searchable) solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) solr_doc[fld_name] << vals solr_doc[fld_name] = solr_doc[fld_name].flatten.uniq - fld_name = Solrizer.solr_name('modalities', :facetable) + fld_name = Solrizer.solr_name('modality', :facetable) solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) solr_doc[fld_name] << vals solr_doc[fld_name] = solr_doc[fld_name].flatten.uniq @@ -46,17 +46,17 @@ module ComplexField def self.modality_facet_fields # solr fields that will be treated as facets fields = [] - fields << Solrizer.solr_name('complex_modality_titles', :facetable) - fields << Solrizer.solr_name('modalities', :facetable) + fields << Solrizer.solr_name('modality_title', :facetable) + fields << Solrizer.solr_name('modality', :facetable) fields end def self.modality_search_fields # solr fields that will be used for a search fields = [] - fields << Solrizer.solr_name('complex_modality_identifiers', :symbol) - fields << Solrizer.solr_name('complex_modality_titles', :stored_searchable) - fields << Solrizer.solr_name('modalities', :stored_searchable) + fields << Solrizer.solr_name('modality_identifier', :symbol) + fields << Solrizer.solr_name('modality_title', :stored_searchable) + fields << Solrizer.solr_name('modality', :stored_searchable) fields end diff --git a/hyrax/app/indexers/complex_field/session_indexer.rb b/hyrax/app/indexers/complex_field/session_indexer.rb index 0df087e12ef57a0ce7781a86f0e3dba5820071e4..44d01ad27087d1e54a46d082ee339a5dac81b90b 100644 --- a/hyrax/app/indexers/complex_field/session_indexer.rb +++ b/hyrax/app/indexers/complex_field/session_indexer.rb @@ -12,7 +12,7 @@ module ComplexField complex_sessions.each do |c| # identifier - fld_name = Solrizer.solr_name('complex_session_identifiers', :symbol) + fld_name = Solrizer.solr_name('session_identifier', :symbol) vals = c.session_identifier solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) solr_doc[fld_name] << vals @@ -20,42 +20,56 @@ module ComplexField # session_titles vals = c.session_title - fld_name = Solrizer.solr_name('complex_session_titles', :stored_searchable) + fld_name = Solrizer.solr_name('session', :stored_searchable) solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) solr_doc[fld_name] << vals solr_doc[fld_name] = solr_doc[fld_name].flatten.uniq - fld_name = Solrizer.solr_name('complex_session_titles', :facetable) + fld_name = Solrizer.solr_name('session', :facetable) solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) solr_doc[fld_name] << vals solr_doc[fld_name] = solr_doc[fld_name].flatten.uniq - # date_recorded - vals = c.session_date_recorded - fld_name = Solrizer.solr_name('complex_session_date_recorded', :stored_searchable) + # date_recorded as date + vals = c.session_date_recorded.reject(&:blank?) + fld_name = Solrizer.solr_name('date_recorded', :dateable) solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) - solr_doc[fld_name] << vals - solr_doc[fld_name] = solr_doc[fld_name].flatten.uniq - fld_name = Solrizer.solr_name('complex_session_date_recorded', :facetable) + begin + dates_utc = vals.map { |d| d.tr('0-9a-zA-Z', '0-9a-zA-Z') }.map { |d| d.length <= 4 ? DateTime.strptime(d, '%Y').utc.iso8601 : DateTime.parse(d).utc.iso8601 } unless dates.blank? + rescue ArgumentError + dates_utc = vals.map { |d| d.tr('0-9a-zA-Z', '0-9a-zA-Z') }.map { |d| DateTime.parse("#{d}-01").utc.iso8601 } unless dates.blank? + end + # as date + solr_doc[fld_name] << dates_utc unless dates_utc.blank? + solr_doc[fld_name].flatten! + # Add years + year_fld = Solrizer.solr_name("year_recorded", :facetable) + years = dates_utc.map { |d| DateTime.parse(d).strftime("%Y") } + solr_doc[year_fld] = [] unless solr_doc.include?(year_fld) + solr_doc[year_fld] << years unless years.blank? + solr_doc[year_fld].flatten! + # date as displayable + fld_name = Solrizer.solr_name("date_recorded", :displayable) solr_doc[fld_name] = [] unless solr_doc.include?(fld_name) solr_doc[fld_name] << vals - solr_doc[fld_name] = solr_doc[fld_name].flatten.uniq + solr_doc[fld_name].flatten! end end def self.session_facet_fields # solr fields that will be treated as facets fields = [] - fields << Solrizer.solr_name('complex_session_titles', :facetable) - fields << Solrizer.solr_name('complex_session_date_recorded', :facetable) + fields << Solrizer.solr_name('session', :facetable) + fields << Solrizer.solr_name('year_recorded', :facetable) + fields << Solrizer.solr_name('date_recorded', :dateable) fields end def self.session_search_fields # solr fields that will be used for a search fields = [] - fields << Solrizer.solr_name('complex_session_identifiers', :symbol) - fields << Solrizer.solr_name('complex_session_titles', :stored_searchable) - fields << Solrizer.solr_name('complex_session_date_recorded', :stored_searchable) + fields << Solrizer.solr_name('session_identifier', :symbol) + fields << Solrizer.solr_name('session', :stored_searchable) + fields << Solrizer.solr_name('date_recorded', :dateable) fields end diff --git a/hyrax/app/models/crc_dataset.rb b/hyrax/app/models/crc_dataset.rb index 2bdcd98e79777639894f5bf9e09eaee6272523b7..87b567ccb9757705815f538214046897b016e09d 100644 --- a/hyrax/app/models/crc_dataset.rb +++ b/hyrax/app/models/crc_dataset.rb @@ -62,8 +62,6 @@ class CrcDataset < ActiveFedora::Base # size and format to be obtained from the files attached - # label property in basic metadata can be used for version label - # description and abstract is in the basic metadata. Ignoring other descriptions for now. # Geolocation - would this be used? Ignoring for now. diff --git a/hyrax/app/models/dataset.rb b/hyrax/app/models/dataset.rb index e98552aa502d9bee1c0b3217ca6b2d325571cbb7..c9e0b72358ca29cc906191ec1793ce9c7c3ae502 100644 --- a/hyrax/app/models/dataset.rb +++ b/hyrax/app/models/dataset.rb @@ -77,8 +77,6 @@ class Dataset < ActiveFedora::Base # size and format to be obtained from the files attached - # label property in basic metadata can be used for version label - # description and abstract is in the basic metadata. Ignoring other descriptions for now. # Geolocation - would this be used? Ignoring for now. diff --git a/hyrax/app/views/hyrax/crc_datasets/_attribute_rows.html.erb b/hyrax/app/views/hyrax/crc_datasets/_attribute_rows.html.erb index 71c02b10932a520fdf204f137434af16181d985c..4fd21e09f7814acba09c7b67037f23186644b83c 100644 --- a/hyrax/app/views/hyrax/crc_datasets/_attribute_rows.html.erb +++ b/hyrax/app/views/hyrax/crc_datasets/_attribute_rows.html.erb @@ -32,6 +32,7 @@ <%= presenter.attribute_to_html(:description, render_as: :faceted, html_dl: true) %> <%= presenter.attribute_to_html(:keyword, render_as: :faceted, html_dl: true) %> <%= presenter.attribute_to_html(:resource_type, render_as: :faceted, html_dl: true) %> + <%= presenter.attribute_to_html(:license, render_as: :faceted, html_dl: true) %> <%= presenter.attribute_to_html(:doi, label: t('rdms.fields.doi'), html_dl: true) %> <%= presenter.attribute_to_html(:complex_relation, render_as: :nested_relation, label: t('rdms.fields.complex_relation'), html_dl: true) %> <%= presenter.attribute_to_html(:software_version, label: t('rdms.fields.software_version'), html_dl: true) %>