zizia 4.6.0.alpha.01 → 5.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +35 -40
- data/app/assets/stylesheets/zizia/_new.scss +44 -0
- data/app/assets/stylesheets/zizia/zizia.scss +1 -0
- data/app/config/zizia/usage.yml +1 -1
- data/app/views/zizia/csv_imports/_actions.html.erb +2 -2
- data/app/views/zizia/csv_imports/_collection_selection.html.erb +1 -3
- data/app/views/zizia/csv_imports/_file_upload.html.erb +1 -1
- data/app/views/zizia/csv_imports/_form.html.erb +77 -59
- data/app/views/zizia/csv_imports/_update_actor_stack.html.erb +4 -5
- data/app/views/zizia/csv_imports/new.html.erb +4 -2
- data/app/views/zizia/metadata_details/show.html.erb +1 -1
- data/lib/zizia/hyrax/hyrax_basic_metadata_mapper.rb +11 -8
- data/lib/zizia/version.rb +1 -1
- data/spec/dummy/spec/system/import_from_csv_spec.rb +6 -3
- data/spec/support/shared_contexts/with_work_type.rb +1 -0
- data/spec/zizia/hyrax/hyrax_basic_metadata_mapper_spec.rb +9 -25
- metadata +5 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7fad0abe5c6bf1fe0cc6a0b30796ae177c2a31ed19754a993f99c63ec9be0c45
|
4
|
+
data.tar.gz: 3bb2ecfbf5631aab6977eef92fa7290992c9c5f4888205a5bd5d08b4b2556507
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b25da746966933d35138caa46190a4ef52bfa3cc4ac1dbba2353faa25bb000722e49cc95e688d55cb7625fd2a21c976b5a9a12e81ca4f048e866c4a9b9003e15
|
7
|
+
data.tar.gz: f86b5f9c298a81d4e21ec5e8c4e84797aa50c9e7a9c24694a981877f2dd28bde29dd02f40a30ff3593497ad08bee871e63738840a8c69bd9df802fa750d7c7f5
|
data/README.md
CHANGED
@@ -2,13 +2,10 @@
|
|
2
2
|
|
3
3
|
<table width="100%">
|
4
4
|
<tr><td>
|
5
|
-
<img alt="Zizia image" src="https://camo.githubusercontent.com/87eafa4a5b6a84802eab583e532bb33881b8a7ab/68747470733a2f2f7777772e706572766572646f6e6b2e636f6d2f77696c64253230666c6f776572732f506172736e69702f476f6c64656e253230416c6578616e646572732f323030383038253230476f6c64656e253230416c6578616e646572253230285a697a69612532306175726561292532302d2532304e47532532302d253230746865253230426f6f6b2532306f6625323057696c64253230466c6f776572732e6a7067"
|
6
|
-
</td><td>
|
7
|
-
|
8
|
-
Object import for Hyrax. See the <a href="https://www.rubydoc.info/gems/zizia">API documentation</a> for more
|
9
|
-
information. See the <a href="https://curationexperts.github.io/zizia/">Getting Started</a> guide for a gentle introduction.
|
10
|
-
<br/><br/>
|
5
|
+
<img alt="Zizia image" src="https://camo.githubusercontent.com/87eafa4a5b6a84802eab583e532bb33881b8a7ab/68747470733a2f2f7777772e706572766572646f6e6b2e636f6d2f77696c64253230666c6f776572732f506172736e69702f476f6c64656e253230416c6578616e646572732f323030383038253230476f6c64656e253230416c6578616e646572253230285a697a69612532306175726561292532302d2532304e47532532302d253230746865253230426f6f6b2532306f6625323057696c64253230466c6f776572732e6a7067"?
|
6
|
+
</td><td width="50%">
|
11
7
|
|
8
|
+
Object import for Hyrax.
|
12
9
|
|
13
10
|
[![Gem Version](https://badge.fury.io/rb/zizia.svg)](https://badge.fury.io/rb/zizia)
|
14
11
|
[![CircleCI](https://circleci.com/gh/curationexperts/zizia.svg?style=svg)](https://circleci.com/gh/curationexperts/zizia)
|
@@ -21,6 +18,38 @@ information. See the <a href="https://curationexperts.github.io/zizia/">Getting
|
|
21
18
|
|
22
19
|
In your project's `Gemfile`, add: `gem 'zizia'`, then run `bundle install`.
|
23
20
|
|
21
|
+
1. Add the engine to `routes.rb`:
|
22
|
+
```
|
23
|
+
mount Zizia::Engine => '/'
|
24
|
+
```
|
25
|
+
|
26
|
+
2. Add the helpers to the `ApplicationController`
|
27
|
+
|
28
|
+
```
|
29
|
+
helper Zizia::Engine.helpers
|
30
|
+
```
|
31
|
+
|
32
|
+
3. Give admin users permission to import in your `Ability.custom_permissions`:
|
33
|
+
|
34
|
+
```
|
35
|
+
can :manage, Zizia::CsvImport if current_user.admin?
|
36
|
+
can :manage, Zizia::CsvImportDetail if current_user.admin?
|
37
|
+
```
|
38
|
+
|
39
|
+
4. Add links to `/csv_imports/new` and `/importer_documentation/csv` in the Hyrax dashboard.
|
40
|
+
|
41
|
+
5. In your Rails application's `application.css` and `application.js` include Zizia's assets:
|
42
|
+
|
43
|
+
```
|
44
|
+
*= require zizia/application
|
45
|
+
```
|
46
|
+
|
47
|
+
6. Run `rake db:migrate`
|
48
|
+
|
49
|
+
The `spec/dummy` folder in this application is a complete Hyrax application with Zizia installed.
|
50
|
+
You can use that as an example for adding this to your current Hyrax application or copy that
|
51
|
+
to create a new application with Zizia installed.
|
52
|
+
|
24
53
|
To do a basic Hyrax import, first ensure that a [work type is registered](http://www.rubydoc.info/github/samvera/hyrax/Hyrax/Configuration#register_curation_concern-instance_method)
|
25
54
|
with your `Hyrax` application. Then write a class like this:
|
26
55
|
|
@@ -57,34 +86,6 @@ environment variables called `IMPORT_PATH`. If `IMPORT_PATH` is not set, `HyraxR
|
|
57
86
|
To input any kind of file other than CSV, you need to provide a `Parser` (out of the box, we support simple CSV import with `CsvParser`). We will be writing guides about
|
58
87
|
how to support custom mappers (for metadata outside of Hyrax's core and basic metadata fields).
|
59
88
|
|
60
|
-
## Hyrax User Interface
|
61
|
-
|
62
|
-
Zizia can be installed as a Rails Engine in a Hyrax application. To use the Zizia UI in Hyrax:
|
63
|
-
|
64
|
-
1. Add the engine to `routes.rb`:
|
65
|
-
```
|
66
|
-
mount Zizia::Engine => '/'
|
67
|
-
```
|
68
|
-
|
69
|
-
2. Add the helpers to the `ApplicationController`
|
70
|
-
|
71
|
-
```
|
72
|
-
helper Zizia::Engine.helpers
|
73
|
-
```
|
74
|
-
|
75
|
-
3. Give admin users permission to import in your `Ability.custom_permissions`:
|
76
|
-
|
77
|
-
```
|
78
|
-
can :manage, Zizia::CsvImport if current_user.admin?
|
79
|
-
```
|
80
|
-
|
81
|
-
4. Add links to `/csv_imports/new` and `/importer_documentation/csv` in the Hyrax dashboard
|
82
|
-
|
83
|
-
The `spec/dummy` folder in this application is a complete Hyrax application with Zizia installed.
|
84
|
-
You can use that as an example for adding this to your current Hyrax application or copy that
|
85
|
-
to create a new application with Zizia installed.
|
86
|
-
|
87
|
-
|
88
89
|
## Development
|
89
90
|
|
90
91
|
```sh
|
@@ -94,9 +95,3 @@ cd zizia
|
|
94
95
|
bundle install
|
95
96
|
bundle exec rake ci
|
96
97
|
```
|
97
|
-
|
98
|
-
### RSpec Support
|
99
|
-
|
100
|
-
This gem ships with RSpec shared examples and other support tools intended to ease testing and ensure
|
101
|
-
interoperability of client code. These can be included by adding `require 'zizia/spec'` to a
|
102
|
-
`spec_helper.rb` or `rails_helper.rb` file in your application's test suite.
|
@@ -0,0 +1,44 @@
|
|
1
|
+
.bullet {
|
2
|
+
background: black;
|
3
|
+
color: white;
|
4
|
+
border-radius: 0.8em;
|
5
|
+
-moz-border-radius: 0.8em;
|
6
|
+
-webkit-border-radius: 0.8em;
|
7
|
+
display: inline-block;
|
8
|
+
font-weight: bold;
|
9
|
+
line-height: 1.6em;
|
10
|
+
margin-right: 5px;
|
11
|
+
text-align: center;
|
12
|
+
width: 1.6em;
|
13
|
+
}
|
14
|
+
|
15
|
+
.well {
|
16
|
+
margin-bottom: 0.25em;
|
17
|
+
min-height: 5em;
|
18
|
+
h4 {
|
19
|
+
margin-top: 0;
|
20
|
+
.bullet {
|
21
|
+
float: left;
|
22
|
+
background: white;
|
23
|
+
color: black;
|
24
|
+
border: 1px solid #e3e3e3;
|
25
|
+
}
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
.no-collection {
|
30
|
+
background: #f7ecb5;
|
31
|
+
}
|
32
|
+
|
33
|
+
.step {
|
34
|
+
margin-top: -1em;
|
35
|
+
margin-bottom: .5em;
|
36
|
+
}
|
37
|
+
|
38
|
+
.zizia .btn {
|
39
|
+
width: 60%;
|
40
|
+
}
|
41
|
+
|
42
|
+
.zizia h3 {
|
43
|
+
margin-bottom: 1.5em;
|
44
|
+
}
|
data/app/config/zizia/usage.yml
CHANGED
@@ -17,7 +17,7 @@ has_model: "-- system field - not directly editable --"
|
|
17
17
|
head: "-- system field - not directly editable --"
|
18
18
|
identifier: "A unique handle identifying the work. An example would be a DOI for a journal article, or an ISBN or OCLC number for a book. Example: LC-U9-12470B-17"
|
19
19
|
import_url: "-- system field - not directly editable --"
|
20
|
-
|
20
|
+
keyword: "Words or phrases you select to describe what the work is about. Example: New Orleans or Music "
|
21
21
|
label: "-- system field - not directly editable --"
|
22
22
|
language: "The language of the source content being described. Example: English"
|
23
23
|
license: "Licensing and distribution information governing access to the work. This field is a URI. You can choose rights statements from this vocabulary (https://github.com/curationexperts/tenejo/blob/master/config/authorities/licenses.yml). Example: http://creativecommons.org/licenses/by/3.0/us/"
|
@@ -1,3 +1,3 @@
|
|
1
1
|
<div class="actions">
|
2
|
-
|
3
|
-
</div>
|
2
|
+
<span class="glyphicon glyphicon-square-checkbox"></span><%= form.submit 'Preview Import', class: "btn btn-default btn-lg glyphicon glyphicon-square-checkbox" %>
|
3
|
+
</div>
|
@@ -1,3 +1 @@
|
|
1
|
-
|
2
|
-
<%= form.select :fedora_collection_id, options_for_select(collections_for_select), {}, class: "form-control", id: "fedora_collection_id" %>
|
3
|
-
</div>
|
1
|
+
<%= form.select :fedora_collection_id, options_for_select(collections_for_select), {}, class: "form-control", id: "fedora_collection_id" %>
|
@@ -1,3 +1,3 @@
|
|
1
1
|
<%= form.file_field :manifest, required: true, id: 'file-upload', class: "file-upload form-control", onchange: "Zizia.displayUploadedFile()" %>
|
2
|
-
<label for="file-upload" class="btn btn-lg btn-
|
2
|
+
<label for="file-upload" class="btn btn-lg btn-default"><span class="glyphicon glyphicon-upload"></span> Upload Your CSV</label>
|
3
3
|
<div id="file-upload-display"></div>
|
@@ -1,83 +1,101 @@
|
|
1
1
|
<%= form_with(model: csv_import, local: true, html: { multipart: true }, url: preview_csv_import_path) do |form| %>
|
2
|
+
<%= form.hidden_field :manifest_cache %>
|
2
3
|
<div class="panel panel-default">
|
3
4
|
<div class="panel-body">
|
4
|
-
<div class="row">
|
5
|
-
<div class="col-md-8">
|
6
|
-
<h2> Getting Started </h2>
|
7
|
-
</div>
|
8
|
-
</div>
|
9
5
|
<div class="row">
|
10
6
|
<div class="col-md-4">
|
11
|
-
<
|
12
|
-
|
7
|
+
<h3><span class="bullet">1</span> Prepare Your Content</h3>
|
8
|
+
<div class="well well-sm">
|
9
|
+
<h4><span class="bullet">A</span></h4>
|
10
|
+
<div class="step">
|
11
|
+
<b>Read the Metadata Field Guide</b> to learn what fields are available for import.
|
12
|
+
</div>
|
13
13
|
<div class="text-center">
|
14
|
-
<a href="/importer_documentation/guide" class="btn btn-default btn-lg"><i class="glyphicon glyphicon-book"></i>
|
14
|
+
<a href="/importer_documentation/guide" class="btn btn-default btn-lg"><i class="glyphicon glyphicon-book"></i> Field Guide</a>
|
15
15
|
</div>
|
16
16
|
</div>
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
17
|
+
<div class="well well-sm">
|
18
|
+
<h4><span class="bullet">B</span></h4>
|
19
|
+
<div class="step">
|
20
|
+
<b>Download a CSV template</b> and start filling in your metadata.
|
21
|
+
</div>
|
21
22
|
<div class="text-center">
|
22
|
-
<a href="/importer_documentation/csv" data-turbolinks="false" class="btn btn-default btn-lg"><i class="glyphicon glyphicon-list"></i>
|
23
|
+
<a href="/importer_documentation/csv" data-turbolinks="false" class="btn btn-default btn-lg"><i class="glyphicon glyphicon-list"></i> Import Template</a>
|
23
24
|
</div>
|
24
25
|
</div>
|
26
|
+
<div class="well well-sm">
|
27
|
+
<h4><span class="bullet">C</span></h4>
|
28
|
+
<div class="step">
|
29
|
+
<b>Upload your files</b> over SFTP, using a tool like <a href="https://filezilla-project.org">FileZilla</a> to transfer files.
|
30
|
+
</div>
|
31
|
+
</div>
|
25
32
|
</div>
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
</div>
|
34
|
-
</div>
|
35
|
-
<div class="row">
|
36
|
-
<div class="col-md-4">
|
37
|
-
<div class="well well-lg">
|
38
|
-
<p> <b>Upload a CSV</b> that has your content. </p>
|
39
|
-
<div class="text-center">
|
40
|
-
<%= render "file_upload", form: form %>
|
33
|
+
<div class="col-md-4">
|
34
|
+
<h3><span class="bullet">2</span> Upload Your Files</h3>
|
35
|
+
<% if collections? %>
|
36
|
+
<div class="well well-sm">
|
37
|
+
<h4><span class="bullet">A</span></h4>
|
38
|
+
<div class="step">
|
39
|
+
<b>Upload a CSV</b> that lists the metadata and files you want to import.
|
41
40
|
</div>
|
41
|
+
<div class="text-center">
|
42
|
+
<%= render "file_upload", form: form %>
|
43
|
+
</div>
|
42
44
|
</div>
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
<div class="text-center">
|
48
|
-
<%= render "collection_selection", form: form %>
|
45
|
+
<div class="well well-sm">
|
46
|
+
<h4><span class="bullet">B</span></h4>
|
47
|
+
<div class="step">
|
48
|
+
<b>Choose a collection</b> that you'd like your new works to be associated with.
|
49
49
|
</div>
|
50
|
+
<div class="text-center">
|
51
|
+
<%= render "collection_selection", form: form %>
|
52
|
+
</div>
|
50
53
|
</div>
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
<%= render "update_actor_stack", form: form %>
|
54
|
+
<div class="well well-sm">
|
55
|
+
<h4><span class="bullet">C</span></h4>
|
56
|
+
<div class="step">
|
57
|
+
<b>Select update behavior.</b> New works will always be added to the repository. Existing works can be overwritten, updated,
|
58
|
+
or ignored.
|
57
59
|
</div>
|
60
|
+
<div class="text-center">
|
61
|
+
<%= render "update_actor_stack", form: form %>
|
62
|
+
</div>
|
58
63
|
</div>
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
<%= render "actions", form: form %>
|
64
|
+
<div class="well well-sm">
|
65
|
+
<h4><span class="bullet">D</span></h4>
|
66
|
+
<div class="step">
|
67
|
+
<b>Preview your import</b> and start the import if everything looks good.
|
68
|
+
or overwritten
|
65
69
|
</div>
|
70
|
+
<div class="text-center">
|
71
|
+
<%= render "actions", form: form %>
|
72
|
+
</div>
|
66
73
|
</div>
|
67
|
-
|
74
|
+
<% else %>
|
75
|
+
<div class="well well-sm no-collection ">
|
76
|
+
<h4><span class="bullet">A</span></h4>
|
77
|
+
<div class="step">
|
78
|
+
You must <a href="/dashboard/collections">create a collection</a> before importing content.
|
79
|
+
</div>
|
80
|
+
</div>
|
81
|
+
<% end %>
|
68
82
|
</div>
|
69
|
-
|
70
|
-
|
71
|
-
<div class="
|
72
|
-
|
73
|
-
|
74
|
-
|
83
|
+
<div class="col-md-4">
|
84
|
+
<h3><span class="bullet">3</span> Monitor Your Progress</h3>
|
85
|
+
<div class="well well-sm">
|
86
|
+
<h4><span class="bullet">A</span></h4>
|
87
|
+
<div class="step">
|
88
|
+
<b>Check the status</b> of batches that have been submitted for import.
|
89
|
+
</div>
|
90
|
+
<div class="text-center">
|
91
|
+
<a href="/csv_import_details/index" class="btn btn-default btn-lg"><i class="glyphicon glyphicon-roundabout"></i> Import History</a>
|
92
|
+
</div>
|
75
93
|
</div>
|
76
94
|
</div>
|
77
|
-
|
78
|
-
|
79
|
-
<%=
|
80
|
-
|
81
|
-
|
82
|
-
|
95
|
+
</div> <!-- row -->
|
96
|
+
<div class="row">
|
97
|
+
<%= render "error", csv_import: csv_import %>
|
98
|
+
</div> <!-- row -->
|
99
|
+
</div> <!-- panel-body -->
|
100
|
+
</div> <!-- panel -->
|
83
101
|
<% end %>
|
@@ -1,5 +1,4 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
</div>
|
1
|
+
<%= form.select :update_actor_stack, options_for_select([['Overwrite All Files & Metadata', 'HyraxDelete'],
|
2
|
+
['Update Existing Metadata, create new works', 'HyraxMetadataOnly'],
|
3
|
+
['Ignore Existing Works, new works only', 'HyraxOnlyNew' ]]), {}, class: "form-control", id: "update_actor_stack_id" %>
|
4
|
+
|
@@ -1,3 +1,5 @@
|
|
1
1
|
<%= javascript_include_tag 'zizia/application' %>
|
2
|
-
<
|
3
|
-
|
2
|
+
<div id="zizia_new" class="zizia">
|
3
|
+
<h2><span class="glyphicon glyphicon-cloud-upload"></span> Batch Import </h2>
|
4
|
+
<%= render 'form', csv_import: @csv_import %>
|
5
|
+
</div>
|
@@ -31,7 +31,7 @@ module Zizia
|
|
31
31
|
##
|
32
32
|
# @return [Enumerable<Symbol>] The fields the mapper can process.
|
33
33
|
def fields
|
34
|
-
core_fields + basic_fields + [:visibility]
|
34
|
+
core_fields + basic_fields + [:visibility, :files]
|
35
35
|
end
|
36
36
|
|
37
37
|
# Properties defined with `multiple: false` in
|
@@ -131,18 +131,21 @@ module Zizia
|
|
131
131
|
end
|
132
132
|
|
133
133
|
# Properties defined in Hyrax::CoreMetadata
|
134
|
-
# Note that date_uploaded
|
135
|
-
#
|
136
|
-
#
|
137
|
-
#
|
134
|
+
# Note that depositor, date_uploaded and date_modified are NOT set here,
|
135
|
+
# even though they are defined in Hyrax::CoreMetadata.
|
136
|
+
# Hyrax expects to set these fields itself, and
|
137
|
+
# sending a metadata value for these fields interferes with
|
138
|
+
# Hyrax expected behavior.
|
138
139
|
def core_fields
|
139
|
-
[:
|
140
|
+
[:title]
|
140
141
|
end
|
141
142
|
|
142
143
|
# Properties defined in Hyrax::BasicMetadata
|
144
|
+
# System related fields like :relative_path, and :import_url
|
145
|
+
# are not included here because we don't expect users to directly
|
146
|
+
# import them.
|
143
147
|
def basic_fields
|
144
|
-
[:
|
145
|
-
:resource_type, :creator, :contributor,
|
148
|
+
[:resource_type, :creator, :contributor,
|
146
149
|
:description, :keyword, :license,
|
147
150
|
:rights_statement, :publisher, :date_created,
|
148
151
|
:subject, :language, :identifier,
|
data/lib/zizia/version.rb
CHANGED
@@ -41,8 +41,10 @@ RSpec.describe 'Importing records from a CSV file', :perform_jobs, :clean, type:
|
|
41
41
|
visit '/csv_imports/new'
|
42
42
|
expect(page).to have_content 'Testing Collection'
|
43
43
|
expect(page).not_to have_content '["Testing Collection"]'
|
44
|
-
|
44
|
+
|
45
45
|
# Fill in and submit the form
|
46
|
+
select 'Testing Collection', from: "csv_import[fedora_collection_id]"
|
47
|
+
select 'Update Existing Metadata, create new works', from: "csv_import[update_actor_stack]"
|
46
48
|
attach_file('csv_import[manifest]', csv_file, make_visible: true)
|
47
49
|
|
48
50
|
expect(page).to have_content('You sucessfully uploaded this CSV: all_fields.csv')
|
@@ -104,6 +106,7 @@ RSpec.describe 'Importing records from a CSV file', :perform_jobs, :clean, type:
|
|
104
106
|
expect(page).to have_content 'Testing Collection'
|
105
107
|
expect(page).not_to have_content '["Testing Collection"]'
|
106
108
|
select 'Testing Collection', from: "csv_import[fedora_collection_id]"
|
109
|
+
select 'Update Existing Metadata, create new works', from: "csv_import[update_actor_stack]"
|
107
110
|
|
108
111
|
# Fill in and submit the form
|
109
112
|
attach_file('csv_import[manifest]', csv_metadata_update_file, make_visible: true)
|
@@ -159,7 +162,7 @@ RSpec.describe 'Importing records from a CSV file', :perform_jobs, :clean, type:
|
|
159
162
|
expect(page).not_to have_content '["Testing Collection"]'
|
160
163
|
select 'Testing Collection', from: "csv_import[fedora_collection_id]"
|
161
164
|
|
162
|
-
select '
|
165
|
+
select 'Ignore Existing Works, new works only', from: 'csv_import[update_actor_stack]'
|
163
166
|
# Fill in and submit the form
|
164
167
|
attach_file('csv_import[manifest]', csv_only_new_file, make_visible: true)
|
165
168
|
|
@@ -206,7 +209,7 @@ RSpec.describe 'Importing records from a CSV file', :perform_jobs, :clean, type:
|
|
206
209
|
expect(page).not_to have_content '["Testing Collection"]'
|
207
210
|
select 'Testing Collection', from: "csv_import[fedora_collection_id]"
|
208
211
|
|
209
|
-
select '
|
212
|
+
select 'Overwrite All Files & Metadata', from: 'csv_import[update_actor_stack]'
|
210
213
|
# Fill in and submit the form
|
211
214
|
attach_file('csv_import[manifest]', csv_complete_update_file, make_visible: true)
|
212
215
|
|
@@ -7,13 +7,12 @@ describe Zizia::HyraxBasicMetadataMapper do
|
|
7
7
|
|
8
8
|
# Properties defined in Hyrax::CoreMetadata
|
9
9
|
let(:core_fields) do
|
10
|
-
[:
|
10
|
+
[:title]
|
11
11
|
end
|
12
12
|
|
13
13
|
# Properties defined in Hyrax::BasicMetadata
|
14
14
|
let(:basic_fields) do
|
15
|
-
[:
|
16
|
-
:resource_type, :creator, :contributor,
|
15
|
+
[:resource_type, :creator, :contributor,
|
17
16
|
:description, :keyword, :license,
|
18
17
|
:rights_statement, :publisher, :date_created,
|
19
18
|
:subject, :language, :identifier, :based_near,
|
@@ -21,7 +20,7 @@ describe Zizia::HyraxBasicMetadataMapper do
|
|
21
20
|
end
|
22
21
|
|
23
22
|
let(:tenejo_fields) do
|
24
|
-
[:visibility]
|
23
|
+
[:visibility, :files]
|
25
24
|
end
|
26
25
|
|
27
26
|
it_behaves_like 'a Zizia::Mapper' do
|
@@ -35,8 +34,7 @@ describe Zizia::HyraxBasicMetadataMapper do
|
|
35
34
|
context 'with metadata, but some missing fields' do
|
36
35
|
before { mapper.metadata = metadata }
|
37
36
|
let(:metadata) do
|
38
|
-
{ '
|
39
|
-
'title' => 'A Title',
|
37
|
+
{ 'title' => 'A Title',
|
40
38
|
'language' => 'English' }
|
41
39
|
end
|
42
40
|
|
@@ -44,16 +42,12 @@ describe Zizia::HyraxBasicMetadataMapper do
|
|
44
42
|
expect(metadata).to include('title')
|
45
43
|
expect(mapper).to respond_to(:title)
|
46
44
|
|
47
|
-
expect(metadata).not_to include('
|
48
|
-
expect(mapper).to respond_to(:
|
45
|
+
expect(metadata).not_to include('source')
|
46
|
+
expect(mapper).to respond_to(:source)
|
49
47
|
end
|
50
48
|
|
51
49
|
it 'returns single values for single-value fields' do
|
52
|
-
expect(mapper.
|
53
|
-
expect(mapper.date_modified).to eq nil
|
54
|
-
expect(mapper.label).to eq nil
|
55
|
-
expect(mapper.relative_path).to eq nil
|
56
|
-
expect(mapper.import_url).to eq nil
|
50
|
+
expect(mapper.visibility).to eq 'restricted'
|
57
51
|
end
|
58
52
|
|
59
53
|
it 'returns array values for multi-value fields' do
|
@@ -91,12 +85,7 @@ describe Zizia::HyraxBasicMetadataMapper do
|
|
91
85
|
{ 'Title' => 'A Title',
|
92
86
|
'Related URL' => 'http://example.com',
|
93
87
|
'Abstract or Summary' => 'desc1|~|desc2',
|
94
|
-
'visiBILITY' => 'open'
|
95
|
-
'Depositor' => 'someone@example.org',
|
96
|
-
'DATE_modified' => 'mod date',
|
97
|
-
'laBel' => 'label',
|
98
|
-
'relative_PATH' => 'rel path',
|
99
|
-
'import_URL' => 'imp url' }
|
88
|
+
'visiBILITY' => 'open' }
|
100
89
|
end
|
101
90
|
|
102
91
|
it 'matches the correct fields' do
|
@@ -105,11 +94,6 @@ describe Zizia::HyraxBasicMetadataMapper do
|
|
105
94
|
expect(mapper.description).to eq ['desc1', 'desc2']
|
106
95
|
expect(mapper.creator).to eq []
|
107
96
|
expect(mapper.visibility).to eq 'open'
|
108
|
-
expect(mapper.depositor).to eq 'someone@example.org'
|
109
|
-
expect(mapper.date_modified).to eq 'mod date'
|
110
|
-
expect(mapper.label).to eq 'label'
|
111
|
-
expect(mapper.relative_path).to eq 'rel path'
|
112
|
-
expect(mapper.import_url).to eq 'imp url'
|
113
97
|
end
|
114
98
|
end
|
115
99
|
|
@@ -184,7 +168,7 @@ describe Zizia::HyraxBasicMetadataMapper do
|
|
184
168
|
end
|
185
169
|
|
186
170
|
it 'doesn\'t raise an error for missing fields' do
|
187
|
-
expect(mapper.
|
171
|
+
expect(mapper.source).to eq []
|
188
172
|
end
|
189
173
|
end
|
190
174
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zizia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 5.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Data Curation Experts
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-10-
|
11
|
+
date: 2019-10-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: active-fedora
|
@@ -656,6 +656,7 @@ files:
|
|
656
656
|
- app/assets/javascripts/zizia/zizia.js
|
657
657
|
- app/assets/stylesheets/zizia/_field_guide.scss
|
658
658
|
- app/assets/stylesheets/zizia/_file_upload.scss
|
659
|
+
- app/assets/stylesheets/zizia/_new.scss
|
659
660
|
- app/assets/stylesheets/zizia/application.css
|
660
661
|
- app/assets/stylesheets/zizia/zizia.scss
|
661
662
|
- app/config/zizia/usage.yml
|
@@ -1546,9 +1547,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1546
1547
|
version: 2.3.4
|
1547
1548
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1548
1549
|
requirements:
|
1549
|
-
- - "
|
1550
|
+
- - ">="
|
1550
1551
|
- !ruby/object:Gem::Version
|
1551
|
-
version:
|
1552
|
+
version: '0'
|
1552
1553
|
requirements: []
|
1553
1554
|
rubygems_version: 3.0.6
|
1554
1555
|
signing_key:
|