dog_biscuits 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|