zizia 4.6.0.alpha.01 → 5.0.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 +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
|
[](https://badge.fury.io/rb/zizia)
|
|
14
11
|
[](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:
|