dog_biscuits 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.circleci/config.yml +115 -0
- data/.codeclimate.yml +52 -0
- data/.gitignore +24 -0
- data/.rspec +3 -0
- data/.rubocop.yml +45 -0
- data/.rubocop_todo.yml +92 -0
- data/.travis.yml +18 -0
- data/CODE_OF_CONDUCT.md +36 -0
- data/CONTRIBUTING.md +161 -0
- data/Gemfile +40 -0
- data/LICENSE +14 -0
- data/README.md +98 -0
- data/Rakefile +35 -0
- data/SUPPORT.md +5 -0
- data/bin/console +15 -0
- data/bin/setup +7 -0
- data/dog_biscuits.gemspec +38 -0
- data/lib/dog_biscuits.rb +352 -0
- data/lib/dog_biscuits/actors/apply_authorities.rb +32 -0
- data/lib/dog_biscuits/actors/singular_attributes.rb +17 -0
- data/lib/dog_biscuits/blacklight/commands.rb +118 -0
- data/lib/dog_biscuits/configuration.rb +506 -0
- data/lib/dog_biscuits/importers/authority.rb +65 -0
- data/lib/dog_biscuits/indexers/collection_indexer.rb +10 -0
- data/lib/dog_biscuits/indexers/concerns/indexes_common.rb +58 -0
- data/lib/dog_biscuits/indexers/conference_item_indexer.rb +17 -0
- data/lib/dog_biscuits/indexers/dataset_indexer.rb +25 -0
- data/lib/dog_biscuits/indexers/digital_archival_object_indexer.rb +19 -0
- data/lib/dog_biscuits/indexers/exam_paper_indexer.rb +10 -0
- data/lib/dog_biscuits/indexers/journal_article_indexer.rb +15 -0
- data/lib/dog_biscuits/indexers/package_indexer.rb +19 -0
- data/lib/dog_biscuits/indexers/published_work_indexer.rb +16 -0
- data/lib/dog_biscuits/indexers/thesis_indexer.rb +16 -0
- data/lib/dog_biscuits/models/authorities/agent.rb +78 -0
- data/lib/dog_biscuits/models/authorities/agents/group.rb +59 -0
- data/lib/dog_biscuits/models/authorities/agents/historic_person.rb +55 -0
- data/lib/dog_biscuits/models/authorities/agents/organisation.rb +56 -0
- data/lib/dog_biscuits/models/authorities/agents/person.rb +75 -0
- data/lib/dog_biscuits/models/authorities/concept.rb +91 -0
- data/lib/dog_biscuits/models/authorities/concept_scheme.rb +65 -0
- data/lib/dog_biscuits/models/authorities/event.rb +74 -0
- data/lib/dog_biscuits/models/authorities/place.rb +86 -0
- data/lib/dog_biscuits/models/authorities/project.rb +60 -0
- data/lib/dog_biscuits/models/authority.rb +42 -0
- data/lib/dog_biscuits/models/collections/collection.rb +32 -0
- data/lib/dog_biscuits/models/concerns/behaviours/pure_specific_behaviour.rb +17 -0
- data/lib/dog_biscuits/models/concerns/behaviours/validate_concept_related.rb +12 -0
- data/lib/dog_biscuits/models/concerns/behaviours/validate_concept_scheme.rb +16 -0
- data/lib/dog_biscuits/models/concerns/behaviours/validate_label.rb +12 -0
- data/lib/dog_biscuits/models/concerns/behaviours/validate_place.rb +12 -0
- data/lib/dog_biscuits/models/concerns/behaviours/work_behaviour.rb +21 -0
- data/lib/dog_biscuits/models/concerns/extended_solr_document.rb +147 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/archivematica/archivematica.rb +73 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/archives_hub/access_provided_by.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/archives_hub/country_code.rb +15 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/archives_hub/hub_dates.rb +17 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/archives_hub/maintenance_agency_code.rb +15 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/awarding_institution.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/edition.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/identified_by.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/part.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/part_of.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/series.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibframe/subtitle.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibo/presented_at.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/bibo/publication_status.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/datacite/resource_type_general.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/abstract.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/access_rights.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/bibliographic_citation.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/contributor.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/creator.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date_accepted.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date_available.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date_copyrighted.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date_created.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/date_issued.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/description.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/extent.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/format.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/identifier.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/language.rb +17 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/publisher.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/resource_type.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/rights.rb +17 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/rights_holder.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/simple_versions.rb +18 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/source.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dc/subject.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/dwc/event_date.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/edm/edm_rights.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/fabio/date_collected.rb +15 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/foaf/based_near.rb +12 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/foaf/foaf_name.rb +16 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/frapo/output_of.rb +18 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/geo/geo.rb +27 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/geonames/country_code.rb +15 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/geonames/place_properties.rb +66 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/lc_identifiers/doi.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/lc_identifiers/isbn.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/lc_identifiers/official_url.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/lc_identifiers/orcid.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/for_indexing.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/former_identifier.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/generic_authority_terms.rb +22 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/generic_qualifier.rb +16 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/last_access.rb +15 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/main_file.rb +24 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/module_code.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/number_of_downloads.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/packaged_by.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/readme_file.rb +26 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/local/requestor_email.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/mads/related_authority.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/marc_relators/advisor.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/marc_relators/editor.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/marc_relators/funder.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/marc_relators/place_of_publication.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/mods/date_valid.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/owl/owl_same_as.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/premis/has_restriction.rb +15 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/property_sets/person_properties.rb +92 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/pure/managing_organisation.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/pure/pure.rb +28 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/rdf/rdf_type.rb +12 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/rdf/rdfs_label.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/rdf/related_url.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/alternate_name.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/content_version.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/date_published.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/date_updated.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/department.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/end_date.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/issue_number.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/keyword.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/location.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/pagination.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/start_date.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/schema/volume_number.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/skos/skos_labels.rb +18 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/skos/skos_note.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/skos/skos_related.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/uketd/date_of_award.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/uketd/qualification.rb +17 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/ulcc/date_submitted.rb +14 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/ulcc/official_url.rb +13 -0
- data/lib/dog_biscuits/models/concerns/metadata_properties/ulcc/refereed.rb +13 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/common/common_labels.rb +9 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/common/common_metadata.rb +64 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/common/common_rights.rb +10 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/conference_item_metadata.rb +24 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/dataset_metadata.rb +36 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/digital_archival_object_metadata.rb +13 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/exam_paper_metadata.rb +14 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/journal_article_metadata.rb +24 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/package_metadata.rb +13 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/published_work_metadata.rb +26 -0
- data/lib/dog_biscuits/models/concerns/model_property_sets/thesis_metadata.rb +17 -0
- data/lib/dog_biscuits/models/filesets/file_set.rb +30 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/canvas.rb +15 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/contained_file.rb +13 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_date_certainty.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_editorial_note.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_entry.rb +19 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_entry_date.rb +10 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_entry_type.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_is_referenced_by.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_language.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_marginalium.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_note.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_as_written.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_descriptor.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_descriptor_as_written.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_note.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_related_person.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_related_place.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_person_role.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_place_as_written.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_place_note.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_place_role.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_place_type.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_related_agent.rb +20 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_related_place.rb +13 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_section_type.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_single_date.rb +10 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/db/db_subject.rb +5 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/entry.rb +59 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/entry/entry_date.rb +17 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/entry/related_agent.rb +62 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/entry/related_place.rb +28 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/entry/single_date.rb +19 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/folio.rb +42 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/image.rb +25 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/manifest.rb +15 -0
- data/lib/dog_biscuits/models/to_refactor_or_remove/register.rb +21 -0
- data/lib/dog_biscuits/models/work.rb +37 -0
- data/lib/dog_biscuits/models/works/conference_item.rb +37 -0
- data/lib/dog_biscuits/models/works/dataset.rb +42 -0
- data/lib/dog_biscuits/models/works/digital_archival_object.rb +28 -0
- data/lib/dog_biscuits/models/works/exam_paper.rb +33 -0
- data/lib/dog_biscuits/models/works/journal_article.rb +37 -0
- data/lib/dog_biscuits/models/works/package.rb +47 -0
- data/lib/dog_biscuits/models/works/published_work.rb +38 -0
- data/lib/dog_biscuits/models/works/thesis.rb +34 -0
- data/lib/dog_biscuits/property_mappings/property_mappings.rb +585 -0
- data/lib/dog_biscuits/railtie.rb +13 -0
- data/lib/dog_biscuits/services/table_based_authority_extended.rb +10 -0
- data/lib/dog_biscuits/services/terms.rb +57 -0
- data/lib/dog_biscuits/services/terms_service.rb +162 -0
- data/lib/dog_biscuits/solr/index_types.rb +33 -0
- data/lib/dog_biscuits/validators/concept_related_validator.rb +13 -0
- data/lib/dog_biscuits/validators/concept_scheme_member_validator.rb +10 -0
- data/lib/dog_biscuits/validators/label_validator.rb +55 -0
- data/lib/dog_biscuits/validators/place_validator.rb +10 -0
- data/lib/dog_biscuits/version.rb +5 -0
- data/lib/dog_biscuits/vocab/borthwick_registers.rb +321 -0
- data/lib/dog_biscuits/vocab/generic.rb +204 -0
- data/lib/dog_biscuits/vocab/oais_archivematica.rb +116 -0
- data/lib/dog_biscuits/vocab/pure_terms.rb +65 -0
- data/lib/dog_biscuits/vocab/uketd.rb +45 -0
- data/lib/dog_biscuits/vocab/ulcc_terms.rb +55 -0
- data/lib/generators/dog_biscuits/USAGE +50 -0
- data/lib/generators/dog_biscuits/authority_generator.rb +55 -0
- data/lib/generators/dog_biscuits/catalog_generator.rb +18 -0
- data/lib/generators/dog_biscuits/dates_generator.rb +98 -0
- data/lib/generators/dog_biscuits/generate_all_generator.rb +29 -0
- data/lib/generators/dog_biscuits/imagify_generator.rb +67 -0
- data/lib/generators/dog_biscuits/install_generator.rb +82 -0
- data/lib/generators/dog_biscuits/locales_generator.rb +20 -0
- data/lib/generators/dog_biscuits/schema_org_generator.rb +20 -0
- data/lib/generators/dog_biscuits/templates/_date_template.html.erb +7 -0
- data/lib/generators/dog_biscuits/templates/app/controllers/catalog_controller.rb +133 -0
- data/lib/generators/dog_biscuits/templates/app/helpers/dog_biscuits_helper.rb +43 -0
- data/lib/generators/dog_biscuits/templates/app/renderers/package_ids_renderer.rb +13 -0
- data/lib/generators/dog_biscuits/templates/app/renderers/packaged_by_ids_renderer.rb +11 -0
- data/lib/generators/dog_biscuits/templates/app/renderers/publication_status_renderer.rb +16 -0
- data/lib/generators/dog_biscuits/templates/app/services/concerns/file_authority_concern.rb +14 -0
- data/lib/generators/dog_biscuits/templates/app/services/concerns/local_authority_concern.rb +18 -0
- data/lib/generators/dog_biscuits/templates/app/services/local_form_metadata_service.rb +15 -0
- data/lib/generators/dog_biscuits/templates/app/views/hyrax/base/_form_metadata.html.erb +23 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_abstract.html.erb +5 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_default.html.erb +6 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_funder.html.erb +8 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_note.html.erb +5 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_part_of.html.erb +17 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_publication_status.html.erb +6 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_refereed.html.erb +5 -0
- data/lib/generators/dog_biscuits/templates/app/views/records/edit_fields/_resource_type_general.html.erb +2 -0
- data/lib/generators/dog_biscuits/templates/authority_service.rb.erb +25 -0
- data/lib/generators/dog_biscuits/templates/config/authorities/content_versions.yml +25 -0
- data/lib/generators/dog_biscuits/templates/config/authorities/publication_statuses.yml +19 -0
- data/lib/generators/dog_biscuits/templates/config/authorities/qualification_levels.yml +13 -0
- data/lib/generators/dog_biscuits/templates/config/authorities/qualification_names.yml +31 -0
- data/lib/generators/dog_biscuits/templates/config/authorities/resource_type_generals.yml +47 -0
- data/lib/generators/dog_biscuits/templates/config/dog_biscuits.yml +3 -0
- data/lib/generators/dog_biscuits/templates/config/initializers/catalog_search_builder_overrides.rb +18 -0
- data/lib/generators/dog_biscuits/templates/config/initializers/dog_biscuits.rb +144 -0
- data/lib/generators/dog_biscuits/templates/dog_biscuits.en.yml.erb +11 -0
- data/lib/generators/dog_biscuits/templates/schema_org.yml.erb +4 -0
- data/lib/generators/dog_biscuits/work/USAGE +35 -0
- data/lib/generators/dog_biscuits/work/templates/README +31 -0
- data/lib/generators/dog_biscuits/work/templates/_attribute_rows.html.erb +22 -0
- data/lib/generators/dog_biscuits/work/templates/actor.rb.erb +25 -0
- data/lib/generators/dog_biscuits/work/templates/form.rb.erb +18 -0
- data/lib/generators/dog_biscuits/work/templates/indexer.rb.erb +23 -0
- data/lib/generators/dog_biscuits/work/templates/model.rb.erb +16 -0
- data/lib/generators/dog_biscuits/work/templates/presenter.rb.erb +20 -0
- data/lib/generators/dog_biscuits/work/work_generator.rb +102 -0
- data/lib/tasks/authorities.rake +22 -0
- metadata +476 -0
@@ -0,0 +1,7 @@
|
|
1
|
+
<% # use date picker %>
|
2
|
+
|
3
|
+
<% if f.object.class.multiple? key %>
|
4
|
+
<%= f.input key, as: :multi_value, input_html: { data: { provide: 'datepicker', 'date-force-parse': 'false', 'date-autoclose': 'true' } }, required: f.object.required?(key) %>
|
5
|
+
<% else %>
|
6
|
+
<%= f.input key, input_html: { value: f.object.model[key].first, data: { provide: 'datepicker', 'date-force-parse': 'false', 'date-autoclose': 'true' } }, required: f.object.required?(key) %>
|
7
|
+
<% end %>
|
@@ -0,0 +1,133 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# Override of default CatalogController, generated by DogBiscuits
|
3
|
+
# Based on code from JiscRDSS/rdss-samvera
|
4
|
+
# https://github.com/JiscRDSS/rdss-samvera/blob/master/willow/app/controllers/catalog_controller.rb
|
5
|
+
# Copyright Jisc
|
6
|
+
class CatalogController < ApplicationController
|
7
|
+
include Hydra::Catalog
|
8
|
+
include Hydra::Controller::ControllerBehavior
|
9
|
+
include DogBiscuits::Blacklight::Commands
|
10
|
+
|
11
|
+
# This filter applies the hydra access controls
|
12
|
+
before_action :enforce_show_permissions, only: :show
|
13
|
+
|
14
|
+
def self.uploaded_field
|
15
|
+
solr_name('system_create', :stored_sortable, type: :date)
|
16
|
+
end
|
17
|
+
|
18
|
+
def self.modified_field
|
19
|
+
solr_name('system_modified', :stored_sortable, type: :date)
|
20
|
+
end
|
21
|
+
|
22
|
+
configure_blacklight do |config|
|
23
|
+
config.search_builder_class = Hyrax::CatalogSearchBuilder
|
24
|
+
|
25
|
+
# Show gallery view
|
26
|
+
config.view.gallery.partials = [:index_header, :index]
|
27
|
+
config.view.slideshow.partials = [:index]
|
28
|
+
|
29
|
+
## Default parameters to send to solr for all search-like requests. See also SolrHelper#solr_search_params
|
30
|
+
config.default_solr_params = {
|
31
|
+
qt: 'search',
|
32
|
+
rows: 10,
|
33
|
+
qf: to_searchable_names_field_list([:title,
|
34
|
+
:description,
|
35
|
+
:creator,
|
36
|
+
:keyword])
|
37
|
+
}
|
38
|
+
|
39
|
+
# solr field configuration for document/show views
|
40
|
+
config.index.title_field = solr_name(:title, :stored_searchable)
|
41
|
+
config.index.display_type_field = solr_name(:has_model, :symbol)
|
42
|
+
config.index.thumbnail_field = 'thumbnail_path_ss'
|
43
|
+
|
44
|
+
# solr fields that will be treated as facets by the blacklight application
|
45
|
+
# The ordering of the field names is the order of the display
|
46
|
+
facet_props = DogBiscuits.config.facet_properties
|
47
|
+
add_facet_field config, facet_props
|
48
|
+
|
49
|
+
# Add the date_range facet if configured
|
50
|
+
if DogBiscuits.config.date_range == true
|
51
|
+
config.add_facet_field solr_name('date_range', :facetable), label: default_label(:date_range), range: true
|
52
|
+
end
|
53
|
+
|
54
|
+
# The generic_type isn't displayed on the facet list
|
55
|
+
# It's used to give a label to the filter that comes from the user profile
|
56
|
+
config.add_facet_field solr_name("generic_type", :facetable), if: false
|
57
|
+
|
58
|
+
# Have BL send all facet field names to Solr, which has been the default
|
59
|
+
# previously. Simply remove these lines if you'd rather use Solr request
|
60
|
+
# handler defaults, or have no facets.
|
61
|
+
config.add_facet_fields_to_solr_request!
|
62
|
+
|
63
|
+
# solr fields to be displayed in the index (search results) view
|
64
|
+
# The ordering of the field names is the order of the display
|
65
|
+
|
66
|
+
index_props = DogBiscuits.config.index_properties.collect do |prop|
|
67
|
+
{ prop => index_options(prop, DogBiscuits.config.property_mappings[prop]) }
|
68
|
+
end
|
69
|
+
add_index_field config, index_props
|
70
|
+
|
71
|
+
# solr fields to be displayed in the show (single result) view
|
72
|
+
# The ordering of the field names is the order of the display
|
73
|
+
show_props = DogBiscuits.config.all_properties
|
74
|
+
add_show_field config, show_props
|
75
|
+
|
76
|
+
# "fielded" search configuration. Used by pulldown among other places.
|
77
|
+
# For supported keys in hash, see rdoc for Blacklight::SearchFields
|
78
|
+
#
|
79
|
+
# Search fields will inherit the :qt solr request handler from
|
80
|
+
# config[:default_solr_parameters], OR can specify a different one
|
81
|
+
# with a :qt key/value. Below examples inherit, except for subject
|
82
|
+
# that specifies the same :qt as default for our own internal
|
83
|
+
# testing purposes.
|
84
|
+
#
|
85
|
+
# The :key is what will be used to identify this BL search field internally,
|
86
|
+
# as well as in URLs -- so changing it after deployment may break bookmarked
|
87
|
+
# urls. A display label will be automatically calculated from the :key,
|
88
|
+
# or can be specified manually to be different.
|
89
|
+
#
|
90
|
+
# This one uses all the defaults set by the solr request handler. Which
|
91
|
+
# solr request handler? The one set in config[:default_solr_parameters][:qt],
|
92
|
+
# since we aren't specifying it otherwise.
|
93
|
+
config.add_search_field('all_fields', label: 'All Fields') do |field|
|
94
|
+
all_names = config.show_fields.values.reject do |v|
|
95
|
+
DogBiscuits.config.exclude_from_search_properties.include?(v)
|
96
|
+
end.map(&:field).join(" ")
|
97
|
+
title_name = solr_name(:title, :stored_searchable)
|
98
|
+
field.solr_parameters = {
|
99
|
+
qf: "#{all_names} file_format_tesim all_text_timv",
|
100
|
+
pf: title_name.to_s
|
101
|
+
}
|
102
|
+
end
|
103
|
+
|
104
|
+
# Now we see how to over-ride Solr request handler defaults, in this
|
105
|
+
# case for a BL "search field", which is really a dismax aggregate
|
106
|
+
# of Solr search fields.
|
107
|
+
add_search_field config, DogBiscuits.config.all_properties.reject { |v|
|
108
|
+
DogBiscuits.config.exclude_from_search_properties.include?(v)
|
109
|
+
}
|
110
|
+
|
111
|
+
# "sort results by" select (pulldown)
|
112
|
+
# label in pulldown is followed by the name of the SOLR field to sort by and
|
113
|
+
# whether the sort is ascending or descending (it must be asc or desc
|
114
|
+
# except in the relevancy case).
|
115
|
+
# label is key, solr field is value
|
116
|
+
config.add_sort_field "score desc, #{uploaded_field} desc", label: "relevance"
|
117
|
+
config.add_sort_field "#{uploaded_field} desc", label: "date uploaded \u25BC"
|
118
|
+
config.add_sort_field "#{uploaded_field} asc", label: "date uploaded \u25B2"
|
119
|
+
config.add_sort_field "#{modified_field} desc", label: "date modified \u25BC"
|
120
|
+
config.add_sort_field "#{modified_field} asc", label: "date modified \u25B2"
|
121
|
+
|
122
|
+
# If there are more than this many search results, no spelling ("did you
|
123
|
+
# mean") suggestion is offered.
|
124
|
+
config.spell_max = 5
|
125
|
+
end
|
126
|
+
|
127
|
+
# disable the bookmark control from displaying in gallery view
|
128
|
+
# Hyrax doesn't show any of the default controls on the list view, so
|
129
|
+
# this method is not called in that context.
|
130
|
+
def render_bookmarks_control?
|
131
|
+
false
|
132
|
+
end
|
133
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
module DogBiscuitsHelper
|
3
|
+
# Return the label for publication status
|
4
|
+
#
|
5
|
+
# @param value [String]
|
6
|
+
# @return [String]
|
7
|
+
def publication_status(value)
|
8
|
+
if value.is_a? String
|
9
|
+
publication_status_label(status)
|
10
|
+
elsif value.is_a? Hash
|
11
|
+
value[:value].map { |status| publication_status_label(status) }
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def publication_status_label(value)
|
16
|
+
service = AuthorityService::PublicationStatusesService.new
|
17
|
+
service.label(value)
|
18
|
+
rescue KeyError
|
19
|
+
value
|
20
|
+
end
|
21
|
+
|
22
|
+
def truncate_text_and_iconify_link(value)
|
23
|
+
if value.is_a? String
|
24
|
+
iconify_auto_link(truncate_text(value).to_s)
|
25
|
+
elsif value.is_a? Hash
|
26
|
+
value[:value] = value[:value].map { |text| truncate_text(text).to_s }
|
27
|
+
iconify_auto_link(value)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def truncate_text(text)
|
32
|
+
text.truncate_words(50, omission: ' ...')
|
33
|
+
end
|
34
|
+
|
35
|
+
def restricted?(term)
|
36
|
+
return false if DogBiscuits.config.restricted_properties_enabled == false
|
37
|
+
# evaluate restriction
|
38
|
+
(
|
39
|
+
DogBiscuits.config.restricted_properties.include?(term) &&
|
40
|
+
current_user.send("#{DogBiscuits.config.restricted_role}?") == true
|
41
|
+
) || !DogBiscuits.config.restricted_properties.include?(term)
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class PackageIdsRenderer < Hyrax::Renderers::AttributeRenderer
|
4
|
+
# Render the bibilionumber as a link to the King's Fund Library Catalogue record
|
5
|
+
def attribute_value_to_html(value)
|
6
|
+
object = ActiveFedora::Base.find(value)
|
7
|
+
|
8
|
+
link_to(
|
9
|
+
"<span class='glyphicon'></span>#{object.first_title}".html_safe,
|
10
|
+
"/concern/#{object.class.to_s.pluralize.underscore}/#{value}"
|
11
|
+
)
|
12
|
+
end
|
13
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class PackagedByIdsRenderer < Hyrax::Renderers::AttributeRenderer
|
4
|
+
# Render the bibilionumber as a link to the King's Fund Library Catalogue record
|
5
|
+
def attribute_value_to_html(value)
|
6
|
+
link_to(
|
7
|
+
"<span class='glyphicon'></span>#{Package.find(value).first_title}".html_safe,
|
8
|
+
"/concern/packages/#{value}"
|
9
|
+
)
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
class PublicationStatusRenderer < Hyrax::Renderers::AttributeRenderer
|
3
|
+
include DogBiscuitsHelper
|
4
|
+
|
5
|
+
private
|
6
|
+
|
7
|
+
def li_value(value)
|
8
|
+
link_to(ERB::Util.h(publication_status_label(value)), search_path(value))
|
9
|
+
end
|
10
|
+
|
11
|
+
def search_path(value)
|
12
|
+
Rails.application.routes.url_helpers.search_catalog_path(
|
13
|
+
'f([publication_status_sim[]])': ERB::Util.h(value), locale: I18n.locale
|
14
|
+
)
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module FileAuthorityConcern
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
included do
|
6
|
+
def include_current_value(value, _index, render_options, html_options)
|
7
|
+
unless value.blank? || active?(value)
|
8
|
+
html_options[:class] << ' force-select'
|
9
|
+
render_options += [[label(value), value]]
|
10
|
+
end
|
11
|
+
[render_options, html_options]
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module LocalAuthorityConcern
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
included do
|
6
|
+
def initialize
|
7
|
+
super
|
8
|
+
end
|
9
|
+
|
10
|
+
def include_current_label(value, _index, render_options, html_options)
|
11
|
+
if value.present?
|
12
|
+
html_options[:class] << ' force-select'
|
13
|
+
render_options += [[find_label_string(value).join, value]]
|
14
|
+
end
|
15
|
+
[render_options, html_options]
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
# Answers queries about the cardinality of each field on the form.
|
3
|
+
class LocalFormMetadataService < Hyrax::FormMetadataService
|
4
|
+
# @param [Class] model_class the class of the object
|
5
|
+
# @param [Symbol] field the field we want to know about
|
6
|
+
# @return [Boolean] true if the passed in field is a multivalued field
|
7
|
+
def self.multiple?(model_class, field)
|
8
|
+
if DogBiscuits.config.singular_properties.include? field
|
9
|
+
false
|
10
|
+
else
|
11
|
+
# Inquire at the model level
|
12
|
+
super
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<div class="base-terms">
|
2
|
+
<% f.object.primary_terms.each do |term| %>
|
3
|
+
<%= render_edit_field_partial(term, f: f) %>
|
4
|
+
<% end %>
|
5
|
+
</div>
|
6
|
+
<% if f.object.display_additional_fields? %>
|
7
|
+
<%= link_to t('hyrax.works.form.additional_fields'),
|
8
|
+
'#extended-terms',
|
9
|
+
class: 'btn btn-default additional-fields',
|
10
|
+
data: { toggle: 'collapse' },
|
11
|
+
role: "button",
|
12
|
+
'aria-expanded'=> "false",
|
13
|
+
'aria-controls'=> "extended-terms" %>
|
14
|
+
<div id="extended-terms" class='collapse'>
|
15
|
+
<%= render 'form_media', f: f %>
|
16
|
+
<% f.object.secondary_terms.each do |term| %>
|
17
|
+
<%# override partial from Hyrax, restricted_properties control %>
|
18
|
+
<% if restricted?(term) %>
|
19
|
+
<%= render_edit_field_partial(term, f: f) %>
|
20
|
+
<% end %>
|
21
|
+
<% end %>
|
22
|
+
</div>
|
23
|
+
<% end %>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<% if f.object.multiple? key %>
|
2
|
+
<%= f.input :abstract, as: :multi_value, input_html: { rows: '14', type: 'textarea'}, required: f.object.required?(key) %>
|
3
|
+
<% else %>
|
4
|
+
<%= f.input :abstract, as: :text, input_html: { rows: '14' }, required: f.object.required?(key) %>
|
5
|
+
<% end %>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<% # the hyrax version of this file messes singular field display %>
|
2
|
+
<% if f.object.class.multiple? key %>
|
3
|
+
<%= f.input key, as: :multi_value, input_html: { class: 'form-control' }, required: f.object.required?(key) %>
|
4
|
+
<% else %>
|
5
|
+
<%= f.input key, required: f.object.required?(key), input_html: { value: f.object.model[key].first } %>
|
6
|
+
<% end %>
|
@@ -0,0 +1,5 @@
|
|
1
|
+
<% if f.object.multiple? key %>
|
2
|
+
<%= f.input :note, as: :multi_value, input_html: { rows: '14', type: 'textarea'}, required: f.object.required?(key) %>
|
3
|
+
<% else %>
|
4
|
+
<%= f.input :note, as: :text, input_html: { rows: '14' }, required: f.object.required?(key) %>
|
5
|
+
<% end %>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<% if f.object.class.to_s.include? 'JournalArticle' %>
|
2
|
+
<%= f.input key,
|
3
|
+
as: :multi_value,
|
4
|
+
input_html: {
|
5
|
+
class: 'form-control',
|
6
|
+
data: {'autocomplete-url' => "/authorities/search/crossref/journals",
|
7
|
+
'autocomplete' => key},
|
8
|
+
},
|
9
|
+
required: f.object.required?(key)
|
10
|
+
%>
|
11
|
+
<% else %>
|
12
|
+
<% if f.object.multiple? key %>
|
13
|
+
<%= f.input key, as: :multi_value, input_html: { class: 'form-control' }, required: f.object.required?(key) %>
|
14
|
+
<% else %>
|
15
|
+
<%= f.input key, required: f.object.required?(key) %>
|
16
|
+
<% end %>
|
17
|
+
<% end %>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<% ps_service = AuthorityService::PublicationStatusesService.new %>
|
2
|
+
<%= f.input :publication_status,
|
3
|
+
collection: ps_service.select_active_options,
|
4
|
+
include_blank: true,
|
5
|
+
item_helper: ps_service.method(:include_current_value),
|
6
|
+
input_html: {class: 'form-control', multiple: false} %>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module AuthorityService
|
4
|
+
# Object based
|
5
|
+
<% ::DogBiscuits::Terms.constants.each do |term| %>
|
6
|
+
class <%=term.to_s.gsub('Terms', '')%>Service < DogBiscuits::Terms::<%=term.to_s%>
|
7
|
+
include ::LocalAuthorityConcern
|
8
|
+
end
|
9
|
+
<% end %>
|
10
|
+
# File based
|
11
|
+
<% Dir.entries('config/authorities').each do |file|
|
12
|
+
next unless file.end_with?('.yml') %>
|
13
|
+
class <%=file.gsub('.yml', '').camelize%>Service < Hyrax::QaSelectService
|
14
|
+
include ::FileAuthorityConcern
|
15
|
+
|
16
|
+
def initialize
|
17
|
+
super('<%=file.gsub('.yml', '')%>')
|
18
|
+
end
|
19
|
+
end
|
20
|
+
<% end %>
|
21
|
+
|
22
|
+
# Table based
|
23
|
+
class TableBasedAuthorityService < DogBiscuits::TableBasedAuthorityExtended
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
terms:
|
2
|
+
- id: AO
|
3
|
+
term: Author's Original
|
4
|
+
active: true
|
5
|
+
- id: SMUR
|
6
|
+
term: Submitted Manuscript Under Review
|
7
|
+
active: true
|
8
|
+
- id: AM
|
9
|
+
term: Accepted Manuscript
|
10
|
+
active: true
|
11
|
+
- id: P
|
12
|
+
term: Proof
|
13
|
+
active: true
|
14
|
+
- id: VoR
|
15
|
+
term: Version of Record
|
16
|
+
active: true
|
17
|
+
- id: CVoR
|
18
|
+
term: Corrected Version of Record
|
19
|
+
active: true
|
20
|
+
- id: EVoR
|
21
|
+
term: Enhanced Version of Record
|
22
|
+
active: true
|
23
|
+
- id: NA
|
24
|
+
term: Not Applicable (or Unknown)
|
25
|
+
active: true
|
@@ -0,0 +1,19 @@
|
|
1
|
+
terms:
|
2
|
+
- id: published
|
3
|
+
term: Published
|
4
|
+
active: true
|
5
|
+
- id: earlyonline
|
6
|
+
term: E-Pub ahead of publication
|
7
|
+
active: true
|
8
|
+
- id: accepted
|
9
|
+
term: Accepted
|
10
|
+
active: true
|
11
|
+
- id: submitted
|
12
|
+
term: Submitted
|
13
|
+
active: true
|
14
|
+
- id: inpress
|
15
|
+
term: In Press
|
16
|
+
active: true
|
17
|
+
- id: unpublished
|
18
|
+
term: Unpublished
|
19
|
+
active: true
|