Skip to content

Commit aef305d

Browse files
K8SewelljpengstJP EngstromJP EngstromJP Engstrom
authored
Sensitive Materials Feature Branch (#1540)
* Sensitive Materials Dropdown (#1538) --------- Co-authored-by: JP Engstrom <[email protected]> * Sensitive Materials to Templates (#1541) Co-authored-by: JP Engstrom <[email protected]> * added sensitive_materials to params (#1546) * added sensitive_materials to params * rubocop --------- Co-authored-by: JP Engstrom <[email protected]> * Sensitive Materials Export BP (#1547) Co-authored-by: JP Engstrom <[email protected]> * adds sensitive_materials to create and update BP (#1542) Co-authored-by: JP Engstrom <[email protected]> * adds sensitive_materials to parent object datatable (#1548) Co-authored-by: JP Engstrom <[email protected]> * defaults sensitive materials dropdown to nil (#1550) Co-authored-by: JP Engstrom <[email protected]> * remove pre-selected option (#1552) Co-authored-by: JP Engstrom <[email protected]> * Placeholder thumbnail (#1551) Co-authored-by: JP Engstrom <[email protected]> Co-authored-by: JP Engstrom <[email protected]> * Fix spec --------- Co-authored-by: JP Engstrom <[email protected]> Co-authored-by: JP Engstrom <[email protected]> Co-authored-by: JP Engstrom <[email protected]> Co-authored-by: JP Engstrom <[email protected]>
1 parent 38c2e18 commit aef305d

22 files changed

+64
-14
lines changed

app/controllers/parent_objects_controller.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -293,7 +293,8 @@ def parent_object_params
293293
:viewing_direction,
294294
:permission_set_id,
295295
:display_layout, :representative_child_oid, :rights_statement, :extent_of_digitization,
296-
:digitization_note, :digitization_funding_source, :redirect_to, :preservica_uri, :digital_object_source, :preservica_representation_type,
296+
:digitization_note, :digitization_funding_source, :redirect_to, :preservica_uri, :digital_object_source,
297+
:preservica_representation_type, :sensitive_materials,
297298
:mms_id, :alma_holding, :alma_item)
298299
cur_params[:admin_set] = AdminSet.find_by(key: cur_params[:admin_set]) if cur_params[:admin_set]
299300
cur_params

app/datatables/parent_object_datatable.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ def view_columns
4242
last_id_update: { source: "ParentObject.last_id_update", orderable: true },
4343
visibility: { source: "ParentObject.visibility", cond: :string_eq, searchable: true, options: ["Public", "Yale Community Only", "Private", "Open with Permission"], orderable: true },
4444
permission_set: { source: "OpenWithPermission::PermissionSet.label", cond: :string_eq, options: @set_labels, searchable: true, orderable: true },
45+
sensitive_materials: { source: "ParentObject.sensitive_materials", cond: :string_eq, searchable: true, options: ["Yes", "No"], orderable: true },
4546
extent_of_digitization: { source: "ParentObject.extent_of_digitization", cond: :string_eq, searchable: true, options: ["Completely digitized", "Partially digitized"], orderable: true },
4647
digitization_note: { source: "ParentObject.digitization_note", cond: :like, searchable: true, orderable: true },
4748
digitization_funding_source: { source: "ParentObject.digitization_funding_source", cond: :like, searchable: true, orderable: true },
@@ -81,6 +82,7 @@ def data
8182
last_id_update: parent_object.last_id_update,
8283
visibility: parent_object.visibility,
8384
permission_set: parent_object&.permission_set&.label,
85+
sensitive_materials: parent_object&.sensitive_materials,
8486
extent_of_digitization: parent_object.extent_of_digitization,
8587
digitization_note: parent_object.digitization_note,
8688
digitization_funding_source: parent_object.digitization_funding_source,

app/models/concerns/create_parent_object.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ def create_new_parent_csv
7171
parent_object.digitization_note = row['digitization_note']
7272
parent_object.digitization_funding_source = row['digitization_funding_source']
7373
parent_object.rights_statement = row['rights_statement']
74+
parent_object.sensitive_materials = row['sensitive_materials']
7475

7576
if row['visibility'] == 'Open with Permission'
7677
permission_set = OpenWithPermission::PermissionSet.find_by(key: row['permission_set_key'])

app/models/concerns/csv_exportable.rb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ def parent_headers
1212
'container_grouping', 'mms_id', 'alma_holding', 'alma_item', 'bib', 'holding', 'item', 'barcode', 'aspace_uri',
1313
'digital_object_source', 'preservica_uri', 'preservica_representation_type', 'last_ladybird_update',
1414
'last_voyager_update', 'last_sierra_update', 'last_aspace_update', 'last_id_update', 'visibility', 'permission_set_key',
15-
'extent_of_digitization', 'digitization_note', 'digitization_funding_source', 'rights_statement', 'project_identifier', 'full_text']
15+
'sensitive_materials', 'extent_of_digitization', 'digitization_note', 'digitization_funding_source', 'rights_statement', 'project_identifier', 'full_text']
1616
end
1717

1818
# rubocop:disable Metrics/AbcSize
@@ -30,7 +30,7 @@ def parent_output_csv(*admin_set_id)
3030
po.child_object_count, po.authoritative_json&.[]('title')&.first, po.call_number, po.container_grouping, po.mms_id, po.alma_holding, po.alma_item, po.bib, po.holding, po.item,
3131
po.barcode, po.aspace_uri, po.digital_object_source, po.preservica_uri, po.preservica_representation_type,
3232
po.last_ladybird_update, po.last_voyager_update, po.last_sierra_update,
33-
po.last_aspace_update, po.last_id_update, po.visibility, po&.permission_set&.key, po.extent_of_digitization,
33+
po.last_aspace_update, po.last_id_update, po.visibility, po&.permission_set&.key, po&.sensitive_materials, po.extent_of_digitization,
3434
po.digitization_note, po.digitization_funding_source, po.rights_statement, po.project_identifier, extent_of_full_text(po)]
3535
else
3636
csv << [po[:id], po[:row2], '-', po[:csv_message], '', '']
@@ -134,7 +134,7 @@ def export_parent_metadata
134134
po.mms_id, po.alma_holding, po.alma_item, po.bib, po.holding, po.item,
135135
po.barcode, po.aspace_uri, po.digital_object_source, po.preservica_uri, po.preservica_representation_type,
136136
po.last_ladybird_update, po.last_voyager_update, po.last_sierra_update,
137-
po.last_aspace_update, po.last_id_update, po.visibility, po&.permission_set&.key, po.extent_of_digitization,
137+
po.last_aspace_update, po.last_id_update, po.visibility, po&.permission_set&.key, po.sensitive_materials, po.extent_of_digitization,
138138
po.digitization_note, po.digitization_funding_source, po.rights_statement, po.project_identifier, extent_of_full_text(po)]
139139
csv_rows << row
140140
end

app/models/concerns/solr_indexable.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ def to_solr(json_to_index = nil)
195195
rights_ssim: rights_statement,
196196
rights_tesim: rights_statement,
197197
scale_tesim: json_to_index["scale"],
198+
sensitive_materials_ssi: sensitive_materials.presence,
198199
series_ssi: json_to_index["series"],
199200
series_sort_ssi: series_sort(json_to_index),
200201
source_ssim: json_to_index["source"], # refers to source of metadata, e.g. Ladybird, Voyager, etc.

app/models/concerns/updatable.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ def remove_blanks(row, parent_object)
189189

190190
def validate_field(parent_object, row)
191191
fields = ['aspace_uri', 'barcode', 'bib', 'digital_object_source', 'digitization_funding_source', 'digitization_note', 'holding', 'item', 'mms_id', 'alma_holding', 'alma_item',
192-
'preservica_representation_type', 'preservica_uri', 'project_identifier', 'rights_statement', 'redirect_to']
192+
'preservica_representation_type', 'preservica_uri', 'project_identifier', 'rights_statement', 'redirect_to', 'sensitive_materials']
193193
validation_fields = { "display_layout" => 'viewing_hints', "extent_of_digitization" => 'extent_of_digitizations', "viewing_direction" => 'viewing_directions', "visibility" => 'visibilities' }
194194
row, blanks = remove_blanks(row, parent_object)
195195
processed_fields = {}

app/models/parent_object.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ class ParentObject < ApplicationRecord # rubocop:disable Metrics/ClassLength
4242
validates :preservica_representation_type, format: { with: /\A(Preservation|preservation|Access)/, message: "can't be None when Digital Object Source is Preservica" }, if: proc { digital_object_source == "Preservica" || digital_object_source == "preservica" }
4343
# rubocop:enable Layout/LineLength
4444
validate :validate_visibility
45+
validate :validate_sensitive_materials
4546
before_save :check_for_redirect
4647
before_save :check_permission_set
4748

@@ -772,4 +773,9 @@ def should_index?
772773
def should_create_manifest_and_pdf?
773774
!redirect_to.present?
774775
end
776+
777+
def validate_sensitive_materials
778+
return if sensitive_materials.blank? || sensitive_materials == 'Yes' || sensitive_materials == 'No'
779+
errors.add(:sensitive_materials, "must be 'Yes' or 'No'")
780+
end
775781
end

app/views/parent_objects/_form.html.erb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,14 @@
103103
</div>
104104
<br>
105105

106+
<div class="form-row">
107+
<div class="col-med-9">
108+
<%= form.label :sensitive_materials, "Sensitive Materials" %>
109+
<%= form.select :sensitive_materials, [[nil], ['Yes'], ['No']] %>
110+
</div>
111+
</div>
112+
<br>
113+
106114
<div class="form-row">
107115
<div class="col-med-9">
108116
<%= form.label :rights_statement %>

app/views/parent_objects/index.html.erb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
<th scope='col'>Last ID Update</th>
4646
<th scope='col'>Visibility</th>
4747
<th scope='col'>Permission Set Label</th>
48+
<th scope='col'>Sensitive Materials</th>
4849
<th scope='col'>Extent of Digitization</th>
4950
<th scope='col'>Digitization Note</th>
5051
<th scope='col'>Digitization Funding Source</th>

app/views/parent_objects/show.html.erb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,10 @@
9393
<td class="key">Permission Set:</td>
9494
<td><%= @parent_object&.permission_set&.label %></td>
9595
</tr>
96+
<tr class='table-row'>
97+
<td class="key">Sensitive Materials:</td>
98+
<td><%= @parent_object&.sensitive_materials %></td>
99+
</tr>
96100
<tr class='table-row'>
97101
<td class="key">Rights Statement:</td>
98102
<td><%= sanitize @parent_object.rights_statement, tags: %w(a), attributes: %w(href) %></td>

0 commit comments

Comments
 (0)