The administrative discovery interface for Stanford's Digital Object Registry
A place to organize style guides, best practices, tools, and techniques for Stanford University's Digital Library Systems & Services group
IIIF Content Search API implementation for OCR in DOR
sul-dlss/blacklight-hierarchy 10
gem: Hierarchical Facet Plugin for Blacklight
sul-dlss/blacklight_heatmaps 8
Heatmaps for Blacklight
a Lucene/Solr filter and filter factory to fold certain CJK characters to improve recall. For example, it converts some modern Japanese Kanji characters to their traditional equivalents (when the modern Kanji doesn't map to the simplified Han character). Used by SearchWorks at index and query time
OEmbed media views for Blacklight
Public demo instance of ArcLight
[DISCOURAGED] Generate or verify checksums for a set of files (used by SMPL)
Pull request review commentsul-dlss/dor-services-app
datacite mappings: cocina event -> DataCite dates with unit tests
def embargo? cocina_dro_access&.embargo&.releaseDate.presence end - def deposit_event_publication_date- deposit_event&.date&.find { |date| date&.type == 'publication' }&.value+ # If embargo,+ # Cocina event type deposit, date type deposit maps to DataCite date type Submitted+ # If no embargo+ # Cocina event type deposit, date type publication maps to DataCite date type Submitted+ # If no embargo and no deposit event with date type publication,+ # Cocina event type publication, date type publication maps to DataCite date type Submitted+ def submitted_date+ @submitted_date ||= begin+ submitted_date = {}++ if embargo? && deposit_event_deposit_date_value.present?+ submitted_date[:date] = deposit_event_deposit_date_value+ elsif deposit_event_publication_date_value.present? # no embargo+ submitted_date[:date] = deposit_event_publication_date_value+ elsif publication_event_publication_date_value.present? # no embargo+ submitted_date[:date] = publication_event_publication_date_value+ end+ submitted_date[:dateType] = 'Submitted' if submitted_date.present?+ submitted_date+ end+ end++ # from Arcadia:+ # Cocina event type release, date type publication maps to DataCite date type Available+ # In actuality:+ # embargo release date is in DROAccess, not in an event+ def available_date+ return unless embargo?++ @available_date ||=+ {+ date: cocina_dro_access&.embargo&.releaseDate,
definitely - embargo might not exist
comment created time in a few seconds
PR closed sul-dlss/dlme-transform
Why was this change made?
Some Bodleian records were missing titles and title extraction macros were missing test coverage
How was this change tested?
Local transform
Which documentation and/or configurations were updated?
n/a
pr closed time in 2 hours
PR opened sul-dlss/dlme-transform
Why was this change made?
Some Bodleian records didn't have a title in the raw record
How was this change tested?
Local transform
Which documentation and/or configurations were updated?
n/a
pr created time in 2 hours
issue openedsul-dlss/happy-heron
Add two new links from home page to library website
We would like to insert two links on the home page. Both will go to https://library.stanford.edu/research/stanford-digital-repository.
Here's the mockup: https://projects.invisionapp.com/share/EQXC9CLKCR2#/screens/455998487_home
The additions are:
- On the top right, add link text "SDR Services"
- Below the list under "The process is simple" add a button that says "Learn more about SDR Services"
created time in 2 hours
PR opened sul-dlss/dlme-transform
Why was this change made?
Some Bodleian records were missing titles and title extraction macros were missing test coverage
How was this change tested?
Local transform
Which documentation and/or configurations were updated?
n/a
pr created time in 2 hours
issue commentsul-dlss/happy-heron
Email messages are not linking to images correctly
The second person has confirmed Windows, and she uses both the Webmail with Chrome and the Outlook desktop client.
comment created time in 4 hours
push eventsul-dlss/dlme-transform
commit sha bdb9d9d18efb99d093e4d3cee25ca99a2664d080
revise title extraction bodleian arabic
push time in 5 hours
push eventsul-dlss/dlme-transform
commit sha e64572b05a4da6b3801e7061edb32d32f3847f3f
add missing bodleian lang keys
push time in 5 hours
push eventsul-dlss/dlme-metadata
commit sha ff376f865f71eb0fe9af6b2ce75a31869112c8e5
refresh bnf records
commit sha 56d092fba38b0ee925e38fa2979b0672a4cc338b
Merge pull request #221 from sul-dlss/bnf refresh bnf records
push time in 6 hours
push eventsul-dlss/dlme-harvest
commit sha 65d1183d8720a87902af3e4be4277f09aa03e67a
revise old bnf harvest script, add tests and logging
commit sha 86bde7012c8fd104da7d872e7ddff551c2890308
Merge pull request #91 from sul-dlss/bnf revise old bnf harvest script, add tests and logging
push time in 6 hours
Pull request review commentsul-dlss/happy-heron
</div> </div> -<div class="mb-5 row work-types" data-controller="more-types">- <% if other_type? %>- <div class="col-sm-2">- <div class="col-form-label">- <%= form.label :subtype, 'Specify "Other" type' %> <%= render PopoverComponent.new key: 'work.subtypes.other' %>- </div>- </div>-- <div class="col-sm-10">- <%= form.text_field :subtype, class: 'form-control', required: true, multiple: true %>- <div class="invalid-feedback">You must provide a subtype for works of type 'Other'</div>- </div>- <% else %>- <% if music_type? %>- <h6>Select at least one term below:</h6>- <% elsif mixed_material_type? %>- <h6>Select at least two terms below:</h6>- <% end %>-- <% subtypes.each do |subtype| %>- <div class="col-sm-4">- <div class="form-check">- <%= form.check_box :subtype, { multiple: true, class: 'form-check-input' }, subtype, nil %>- <%= form.label "subtype_#{sanitized_value(subtype)}", subtype, class: 'form-check-label' %>+<fieldset>
L8-9 and 54 were the only changes in this PR.
comment created time in 6 hours
push eventsul-dlss/happy-heron
commit sha 857d72af8c4d6000f197cee206b688a5d1ec3265
Group and label work types. closes #1828
push time in 6 hours
PR opened sul-dlss/happy-heron
closes #1828
Why was this change made?
Accessability
How was this change tested?
Local
Which documentation and/or configurations were updated?
NA
pr created time in 6 hours
create barnchsul-dlss/happy-heron
branch : t1828-work_type_accessability
created branch time in 6 hours
Pull request review commentsul-dlss/dor-services-app
datacite mappings: cocina event -> DataCite dates with unit tests
def embargo? cocina_dro_access&.embargo&.releaseDate.presence end - def deposit_event_publication_date- deposit_event&.date&.find { |date| date&.type == 'publication' }&.value+ # If embargo,+ # Cocina event type deposit, date type deposit maps to DataCite date type Submitted+ # If no embargo+ # Cocina event type deposit, date type publication maps to DataCite date type Submitted+ # If no embargo and no deposit event with date type publication,+ # Cocina event type publication, date type publication maps to DataCite date type Submitted+ def submitted_date+ @submitted_date ||= begin+ submitted_date = {}++ if embargo? && deposit_event_deposit_date_value.present?+ submitted_date[:date] = deposit_event_deposit_date_value+ elsif deposit_event_publication_date_value.present? # no embargo+ submitted_date[:date] = deposit_event_publication_date_value+ elsif publication_event_publication_date_value.present? # no embargo+ submitted_date[:date] = publication_event_publication_date_value+ end+ submitted_date[:dateType] = 'Submitted' if submitted_date.present?+ submitted_date+ end+ end++ # from Arcadia:+ # Cocina event type release, date type publication maps to DataCite date type Available+ # In actuality:+ # embargo release date is in DROAccess, not in an event+ def available_date+ return unless embargo?++ @available_date ||=+ {+ date: cocina_dro_access&.embargo&.releaseDate,
Are the & checks necessary?
comment created time in 7 hours
Pull request review commentsul-dlss/dor-services-app
datacite mappings: cocina event -> DataCite dates with unit tests
def embargo? cocina_dro_access&.embargo&.releaseDate.presence end - def deposit_event_publication_date- deposit_event&.date&.find { |date| date&.type == 'publication' }&.value+ # If embargo,+ # Cocina event type deposit, date type deposit maps to DataCite date type Submitted+ # If no embargo+ # Cocina event type deposit, date type publication maps to DataCite date type Submitted+ # If no embargo and no deposit event with date type publication,+ # Cocina event type publication, date type publication maps to DataCite date type Submitted+ def submitted_date+ @submitted_date ||= begin+ submitted_date = {}++ if embargo? && deposit_event_deposit_date_value.present?+ submitted_date[:date] = deposit_event_deposit_date_value+ elsif deposit_event_publication_date_value.present? # no embargo+ submitted_date[:date] = deposit_event_publication_date_value+ elsif publication_event_publication_date_value.present? # no embargo+ submitted_date[:date] = publication_event_publication_date_value+ end+ submitted_date[:dateType] = 'Submitted' if submitted_date.present?+ submitted_date+ end+ end++ # from Arcadia:+ # Cocina event type release, date type publication maps to DataCite date type Available+ # In actuality:+ # embargo release date is in DROAccess, not in an event+ def available_date+ return unless embargo?++ @available_date ||=+ {+ date: cocina_dro_access&.embargo&.releaseDate,+ dateType: 'Available'+ }+ end++ # Cocina event type publication, date type publication maps to DataCite date type Issued+ def issued_date+ return if publication_event_publication_date_value.blank?++ @issued_date ||=+ {+ date: publication_event_publication_date_value,+ dateType: 'Issued'+ }+ end++ # Cocina event type creation, date type creation maps to DataCite date type Created+ def created_date+ return if creation_event_creation_date.blank?++ @created_date ||= begin+ created_date = {+ dateType: 'Created'+ }+ if creation_event_creation_date.value+ created_date[:date] = creation_event_creation_date.value+ created_date[:dateInformation] = creation_event_creation_date.qualifier if creation_event_creation_date.qualifier.present?+ else+ created_date.merge!(structured_date_result(creation_event_creation_date))+ end++ created_date+ end+ end++ def deposit_event_deposit_date_value+ @deposit_event_deposit_date_value ||= deposit_event&.date&.find { |date| date&.type == 'deposit' }&.value+ end++ def deposit_event_publication_date_value+ @deposit_event_publication_date_value ||= deposit_event&.date&.find { |date| date&.type == 'publication' }&.value end def deposit_event- cocina_events&.find { |event| event&.type == 'deposit' }+ @deposit_event ||= cocina_events&.find { |event| event&.type == 'deposit' }+ end++ def publication_event_publication_date_value+ @publication_event_publication_date_value ||= publication_event&.date&.find { |date| date&.type == 'publication' }&.value+ end++ def publication_event+ @publication_event ||= cocina_events&.find { |event| event&.type == 'publication' }+ end++ def creation_event_creation_date+ @creation_event_creation_date ||= creation_event&.date&.find { |date| date&.type == 'creation' }+ end++ def creation_event+ @creation_event ||= cocina_events&.find { |event| event&.type == 'creation' }+ end++ def structured_date_result(date)+ return unless date.structuredValue++ start_date, end_date, = ''+ info = date.qualifier if date.qualifier.present?+ date.structuredValue.each do |structured_val|+ start_date = structured_val.value if structured_val.type == 'start'+ end_date = structured_val.value if structured_val.type == 'end'+ info = structured_val.qualifier if structured_val.qualifier+ end++ result_date = if start_date.present? && end_date.present?+ "#{start_date}/#{end_date}"+ elsif start_date.present?+ start_date+ elsif end_date.present?+ end_date+ end++ {+ date: result_date+ }.tap do |attributes|+ attributes[:dateInformation] = info if info.present?+ end.compact
Does the .compact do anything here?
comment created time in 7 hours
Pull request review commentsul-dlss/dor-services-app
datacite mappings: cocina event -> DataCite dates with unit tests
def embargo? cocina_dro_access&.embargo&.releaseDate.presence end - def deposit_event_publication_date- deposit_event&.date&.find { |date| date&.type == 'publication' }&.value+ # If embargo,+ # Cocina event type deposit, date type deposit maps to DataCite date type Submitted+ # If no embargo+ # Cocina event type deposit, date type publication maps to DataCite date type Submitted+ # If no embargo and no deposit event with date type publication,+ # Cocina event type publication, date type publication maps to DataCite date type Submitted+ def submitted_date+ @submitted_date ||= begin+ submitted_date = {}++ if embargo? && deposit_event_deposit_date_value.present?+ submitted_date[:date] = deposit_event_deposit_date_value+ elsif deposit_event_publication_date_value.present? # no embargo+ submitted_date[:date] = deposit_event_publication_date_value+ elsif publication_event_publication_date_value.present? # no embargo+ submitted_date[:date] = publication_event_publication_date_value+ end+ submitted_date[:dateType] = 'Submitted' if submitted_date.present?+ submitted_date+ end+ end++ # from Arcadia:+ # Cocina event type release, date type publication maps to DataCite date type Available+ # In actuality:+ # embargo release date is in DROAccess, not in an event+ def available_date+ return unless embargo?
Does having the return outside the ||= defeat the purposes of the ||=?
comment created time in 7 hours
Pull request review commentsul-dlss/dor-services-app
datacite mappings: cocina event -> DataCite dates with unit tests
def embargo? cocina_dro_access&.embargo&.releaseDate.presence end - def deposit_event_publication_date- deposit_event&.date&.find { |date| date&.type == 'publication' }&.value+ # If embargo,+ # Cocina event type deposit, date type deposit maps to DataCite date type Submitted+ # If no embargo+ # Cocina event type deposit, date type publication maps to DataCite date type Submitted+ # If no embargo and no deposit event with date type publication,+ # Cocina event type publication, date type publication maps to DataCite date type Submitted+ def submitted_date+ @submitted_date ||= begin+ submitted_date = {}
Could be {}.tap which would avoid begin and end.
comment created time in 7 hours
Pull request review commentsul-dlss/dor-services-app
datacite mappings: cocina event -> DataCite dates with unit tests
def pub_year if embargo? embargo_release_date = cocina_dro_access&.embargo&.releaseDate embargo_release_date&.year&.to_s- elsif deposit_event_publication_date- DateTime.parse(deposit_event_publication_date).year&.to_s+ elsif deposit_event_publication_date_value+ DateTime.parse(deposit_event_publication_date_value).year&.to_s end end + # H2 publisher role > same cocina event as publication date > see DataCite contributor mappings # Add Stanford Digital Repository as publisher to cocina release event if present, otherwise deposit event+ #+ # sdr is the publisher for the event where the content becomes public via purl -- deposit if no embargo, release if embargo present.+ # if it's not public via purl, sdr should not be the publisher;+ # the user may enter someone with the publisher role in h2, referring to publication in another venue, regardless of the purl status. def publisher # TODO: implement this end - # For DataCite dates- # H2 publication date > cocina event/date type publication > DataCite date type Issued- # H2 deposit date > cocina event type deposit > DataCite date type Submitted- ## If no embargo, > cocina date type publication- ## If embargo, > cocina date type deposit- # H2 embargo end date > cocina event type release and date type publication > DataCite date type Available+ # DataCite date (YYYY-MM-DD) is repeatable and each DataCite data has an associated type attribute+ # @return [Array<Hash>] DataCite date hashs, conforming to the expectations of HTTP PUT request to DataCite def dates- # TODO: implement this+ dates = []
Could be a [].tap.
comment created time in 7 hours
Pull request review commentsul-dlss/dor-services-app
datacite mappings: cocina event -> DataCite dates with unit tests
def embargo? cocina_dro_access&.embargo&.releaseDate.presence end - def deposit_event_publication_date- deposit_event&.date&.find { |date| date&.type == 'publication' }&.value+ # If embargo,+ # Cocina event type deposit, date type deposit maps to DataCite date type Submitted+ # If no embargo+ # Cocina event type deposit, date type publication maps to DataCite date type Submitted+ # If no embargo and no deposit event with date type publication,+ # Cocina event type publication, date type publication maps to DataCite date type Submitted+ def submitted_date+ @submitted_date ||= begin+ submitted_date = {}++ if embargo? && deposit_event_deposit_date_value.present?
Could be submitted_date[:date] = if embargo? && deposit_event_deposit_date_value.present? ...
comment created time in 7 hours