OK, this isn't perfect yet, but I wanted to get this in front of you. The implementation does work from modeling all the way up through the edit form, so that's a yay!
Here are the existing bugs:
Batch form does not allow creating more than one creator (but the File edit form does)
Creator in catalog dropdown shows depositor
Creator in catalog facet view shows depositor and complex creator URIs (related to prior bullet -- there is code somewhere that defaults creator to depositor that we'll want to override not to do that)
File show view needs to be made aware of complex creators (currently just dumping out arrays)
Whole PR needs to be reviewed for sufficient test coverage (known to be lacking in a couple areas)
If you're curious, here's what the RDF of an uploaded file looks like. Look in particular at the creator values to see the linkages.
We should discuss whether I should keep polishing up this PR or we should consider it done enough, ticket the remaining bits, and move onto other things.
OK, this isn't perfect yet, but I wanted to get this in front of you. The implementation does work from modeling all the way up through the edit form, so that's a yay!
Here are the existing bugs:
Batch form does not allow creating more than one creator (but the File edit form does)
Creator in catalog dropdown shows depositor
Creator in catalog facet view shows depositor and complex creator URIs (related to prior bullet -- there is code somewhere that defaults creator to depositor that we'll want to override not to do that)
File show view needs to be made aware of complex creators (currently just dumping out arrays)
Whole PR needs to be reviewed for sufficient test coverage (known to be lacking in a couple areas)
If you're curious, here's what the RDF of an uploaded file looks like. Look in particular at the creator values to see the linkages.
<http://127.0.0.1:8983/fedora/rest/dev/ft/84/8q/93/ft848q936> a <http://www.w3.org/ns/ldp#RDFSource>, <http://www.w3.org/ns/ldp#Container>, <http://www.jcp.org/jcr/nt/1.0folder>, <http://www.jcp.org/jcr/nt/1.0hierarchyNode>, <http://www.jcp.org/jcr/nt/1.0base>, <http://www.jcp.org/jcr/mix/1.0created>, <http://fedora.info/definitions/v4/repository#Container>, <http://fedora.info/definitions/v4/repository#Resource>, <http://www.jcp.org/jcr/mix/1.0lastModified>, <http://www.jcp.org/jcr/mix/1.0referenceable>; <http://purl.org/dc/terms/title> "Confident Ruby"; <http://fedora.info/definitions/v4/repository#created> "2015-05-28T00:06:28.989Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>; <http://fedora.info/definitions/v4/repository#createdBy> "bypassAdmin"; <http://fedora.info/definitions/v4/repository#exportsAs> <http://127.0.0.1:8983/fedora/rest/dev/ft/84/8q/93/ft848q936/fcr:export?format=jcr/xm l>; <http://fedora.info/definitions/v4/repository#hasParent> <http://127.0.0.1:8983/fedora/rest/dev>; <http://fedora.info/definitions/v4/repository#lastModified> "2015-05-28T00:08:15.244Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>; <http://fedora.info/definitions/v4/repository#lastModifiedBy> "bypassAdmin"; <http://fedora.info/definitions/v4/repository#mixinTypes> "fedora:Container", "fedora:Resource"; <http://fedora.info/definitions/v4/repository#primaryType> "nt:folder"; <http://fedora.info/definitions/v4/repository#uuid> "2b1f2ea9-e531-4b93-ba10-97b682a7296d"; <http://fedora.info/definitions/v4/repository#writable> true; <http://id.loc.gov/vocabulary/relators/dpt> "leftwing@uw.edu"; <http://purl.org/dc/terms/creator> "leftwing@uw.edu", <http://127.0.0.1:8983/fedora/rest/dev/ff/b7/ce/10/ffb7ce10-7369-4613-a26d-bc4d023b057d>, <http://127.0.0.1:8983/fedora/rest/dev/be/b4/10/96/beb41096-bafb-4afe-93f0-681fdd540901>; <http://purl.org/dc/terms/dateSubmitted> "2015-05-28T00:06:28.865091296Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>; <http://purl.org/dc/terms/modified> "2015-05-27T17:08:14.00673397Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>; <http://purl.org/dc/terms/relation> "Doles"; <http://purl.org/dc/terms/rights> "http://creativecommons.org/licenses/by/3.0/us/"; <http://purl.org/dc/terms/type> "Book"; <http://scholarsphere.psu.edu/ns#relativePath> ""; <http://www.w3.org/ns/ldp#contains> <http://127.0.0.1:8983/fedora/rest/dev/ft/84/8q/93/ft848q936/content>, <http://127.0.0.1:8983/fedora/rest/dev/ft/84/8q/93/ft848q936/characterization>, <http://127.0.0.1:8983/fedora/rest/dev/ft/84/8q/93/ft848q936/thumbnail>; <info:fedora/fedora-system:def/model#downloadFilename> "Confident Ruby.pdf"; <info:fedora/fedora-system:def/model#hasModel> "GenericFile"; <info:fedora/fedora-system:def/relations-external#isPartOf> <http://127.0.0.1:8983/fedora/rest/dev/ft/84/8q/92/ft848q92x> .
And here's what a creator looks like:
<http://127.0.0.1:8983/fedora/rest/dev/ff/b7/ce/10/ffb7ce10-7369-4613-a26d-bc4d023b057d> a <http://www.w3.org/ns/ldp#RDFSource>, <http://www.w3.org/ns/ldp#Container>, <http://www.jcp.org/jcr/nt/1.0folder>, <http://www.jcp.org/jcr/nt/1.0hierarchyNode>, <http://www.jcp.org/jcr/nt/1.0base>, <http://www.jcp.org/jcr/mix/1.0created>, <http://fedora.info/definitions/v4/repository#Container>, <http://purl.org/dc/terms/Agent>, <http://fedora.info/definitions/v4/repository#Resource>, <http://www.jcp.org/jcr/mix/1.0lastModified>, <http://www.jcp.org/jcr/mix/1.0referenceable>; <http://www.w3.org/2000/01/rdf-schema#label> "Michael Giarlo"; <http://fedora.info/definitions/v4/repository#created> "2015-05-28T00:07:07.523Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>; <http://fedora.info/definitions/v4/repository#createdBy> "bypassAdmin"; <http://fedora.info/definitions/v4/repository#exportsAs> <http://127.0.0.1:8983/fedora/rest/dev/ff/b7/ce/10/ffb7ce10-7369-4613-a26d-bc4d023b057d/fcr:export?format=jcr/xml>; <http://fedora.info/definitions/v4/repository#hasParent> <http://127.0.0.1:8983/fedora/rest/dev>; <http://fedora.info/definitions/v4/repository#lastModified> "2015-05-28T00:08:15.244Z"^^<http://www.w3.org/2001/XMLSchema#dateTime>; <http://fedora.info/definitions/v4/repository#lastModifiedBy> "bypassAdmin"; <http://fedora.info/definitions/v4/repository#mixinTypes> "fedora:Container", "ns004:Agent", "fedora:Resource"; <http://fedora.info/definitions/v4/repository#primaryType> "nt:folder"; <http://fedora.info/definitions/v4/repository#uuid> "506e2e91-5049-4405-84cc-1055fb0e0694"; <http://fedora.info/definitions/v4/repository#writable> true; <http://www.w3.org/2004/02/skos/core#prefLabel> "Mike"; <info:fedora/fedora-system:def/model#hasModel> "ComplexCreator" .
We should discuss whether I should keep polishing up this PR or we should consider it done enough, ticket the remaining bits, and move onto other things.