hydra-head 4.0.3 → 4.1.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.
Files changed (125) hide show
  1. data/.gitignore +1 -0
  2. data/HISTORY.textile +17 -2
  3. data/app/assets/stylesheets/hydra/html_refactor.css +3 -30
  4. data/app/assets/stylesheets/hydra/styles.css +6 -64
  5. data/app/controllers/downloads_controller.rb +1 -1
  6. data/app/controllers/hydra/assets_controller.rb +10 -1
  7. data/app/controllers/hydra/contributors_controller.rb +15 -1
  8. data/app/controllers/hydra/file_assets_controller.rb +1 -1
  9. data/app/controllers/hydra/permissions_controller.rb +14 -0
  10. data/app/helpers/hydra/article_metadata_helper_behavior.rb +14 -1
  11. data/app/helpers/hydra/downloads_helper_behavior.rb +6 -0
  12. data/app/helpers/hydra/facets_helper_behavior.rb +7 -0
  13. data/app/helpers/hydra/generic_content_objects_helper_behavior.rb +6 -0
  14. data/app/helpers/hydra/hydra_assets_helper_behavior.rb +10 -0
  15. data/app/helpers/hydra/hydra_fedora_metadata_helper_behavior.rb +31 -0
  16. data/app/helpers/hydra/hydra_helper_behavior.rb +18 -7
  17. data/app/helpers/hydra/hydra_uploader_helper_behavior.rb +5 -0
  18. data/app/helpers/hydra/inline_editable_metadata_helper_behavior.rb +6 -0
  19. data/app/helpers/hydra/javascript_includes_helper_behavior.rb +7 -0
  20. data/app/helpers/hydra/personalization_helper_behavior.rb +5 -0
  21. data/app/helpers/hydra/release_process_helper_behavior.rb +5 -0
  22. data/app/models/generic_content.rb +3 -0
  23. data/app/models/generic_image.rb +3 -0
  24. data/app/models/superuser.rb +4 -2
  25. data/app/models/user_attribute.rb +7 -2
  26. data/app/views/_add_assets_links.html.erb +4 -4
  27. data/app/views/catalog/_index_partials/_default.html.erb +2 -2
  28. data/app/views/catalog/show.html.erb +1 -1
  29. data/app/views/generic_contents/_index.html.erb +2 -2
  30. data/app/views/generic_images/_edit.html.erb +1 -1
  31. data/app/views/generic_images/_index.html.erb +2 -2
  32. data/app/views/hydra/file_assets/_file_assets_form.html.erb +1 -1
  33. data/app/views/hydra/file_assets/_index.html.erb +2 -2
  34. data/app/views/hydra/file_assets/_result.html.erb +1 -1
  35. data/app/views/layouts/hydra-head.html.erb +4 -1
  36. data/app/views/mods_assets/_index_list.html.erb +1 -1
  37. data/app/views/mods_assets/_index_table.html.erb +2 -2
  38. data/app/views/mods_assets/_show.html.erb +1 -1
  39. data/app/views/mods_assets/_show_file_assets.html.erb +1 -1
  40. data/config/jetty.yml +1 -1
  41. data/config/locales/hydra.en.yml +7 -0
  42. data/config/solr.yml +1 -1
  43. data/config/solr_mappings.yml +2 -2
  44. data/hydra-head.gemspec +5 -4
  45. data/lib/generators/hydra/head_generator.rb +6 -5
  46. data/lib/generators/hydra/templates/config/fedora.yml +1 -1
  47. data/lib/generators/hydra/templates/config/solr.yml +1 -1
  48. data/lib/hydra-head/version.rb +1 -1
  49. data/lib/hydra.rb +13 -11
  50. data/lib/hydra/assets.rb +5 -135
  51. data/lib/hydra/catalog.rb +6 -44
  52. data/lib/hydra/controller.rb +10 -27
  53. data/lib/hydra/controller/assets_controller_behavior.rb +142 -0
  54. data/lib/hydra/controller/catalog_controller_behavior.rb +56 -0
  55. data/lib/hydra/controller/controller_behavior.rb +59 -0
  56. data/lib/hydra/controller/file_assets_behavior.rb +142 -0
  57. data/lib/hydra/controller/repository_controller_behavior.rb +119 -0
  58. data/lib/hydra/controller/upload_behavior.rb +139 -0
  59. data/lib/hydra/file_assets.rb +3 -138
  60. data/lib/hydra/file_assets_helper.rb +6 -133
  61. data/lib/hydra/generic_content.rb +15 -0
  62. data/lib/hydra/generic_image.rb +10 -0
  63. data/lib/hydra/global_configurable.rb +46 -0
  64. data/lib/hydra/model_methods.rb +3 -3
  65. data/lib/hydra/model_mixins.rb +1 -1
  66. data/lib/hydra/model_mixins/solr_document_extension.rb +24 -0
  67. data/lib/hydra/repository_controller.rb +4 -95
  68. data/lib/hydra/ui/controller.rb +1 -2
  69. data/lib/hydra/user.rb +13 -1
  70. data/lib/railties/hydra-fixtures.rake +1 -1
  71. data/tasks/hydra-head.rake +2 -0
  72. data/{app/models → test_support/etc}/common_metadata_asset.rb +1 -2
  73. data/test_support/features/mods_asset_show.feature +1 -1
  74. data/test_support/features/support/env.rb +2 -0
  75. data/test_support/features/support/paths.rb +2 -0
  76. data/test_support/spec/controllers/catalog_controller_spec.rb +8 -0
  77. data/test_support/spec/controllers/catalog_controller_viewing_context_spec.rb +10 -1
  78. data/test_support/spec/controllers/catalog_valid_html_spec.rb +8 -0
  79. data/test_support/spec/controllers/contributors_controller_spec.rb +10 -0
  80. data/test_support/spec/controllers/file_assets_controller_spec.rb +15 -3
  81. data/test_support/spec/controllers/hydra-assets_controller_spec.rb +11 -1
  82. data/test_support/spec/controllers/hydra_controller_spec.rb +15 -4
  83. data/test_support/spec/controllers/permissions_controller_spec.rb +8 -0
  84. data/test_support/spec/helpers/access_controls_enforcement_spec.rb +1 -2
  85. data/test_support/spec/helpers/file_assets_helper_spec.rb +1 -1
  86. data/test_support/spec/helpers/generic_content_objects_helper_spec.rb +10 -1
  87. data/test_support/spec/helpers/hydra-repository_controller_spec.rb +1 -1
  88. data/test_support/spec/helpers/hydra_assets_helper_spec.rb +8 -0
  89. data/test_support/spec/helpers/hydra_fedora_metadata_helper_spec.rb +11 -0
  90. data/test_support/spec/helpers/hydra_helper_spec.rb +18 -0
  91. data/test_support/spec/helpers/hydra_model_methods_spec.rb +0 -12
  92. data/test_support/spec/helpers/hydra_uploader_helper_spec.rb +8 -0
  93. data/test_support/spec/helpers/javascript_includes_helper_spec.rb +9 -1
  94. data/test_support/spec/lib/catalog_spec.rb +10 -3
  95. data/test_support/spec/lib/global_configurable_spec.rb +98 -0
  96. data/test_support/spec/lib/model_methods_spec.rb +29 -0
  97. data/test_support/spec/models/generic_content_spec.rb +11 -0
  98. data/test_support/spec/models/generic_image_spec.rb +15 -0
  99. data/test_support/spec/models/user_spec.rb +25 -0
  100. metadata +39 -37
  101. data/app/models/ability.rb +0 -5
  102. data/app/models/hydra/ability.rb +0 -137
  103. data/app/models/hydra/datastream/common_mods_index_methods.rb +0 -47
  104. data/app/models/hydra/datastream/mods_article.rb +0 -530
  105. data/app/models/hydra/datastream/mods_dataset.rb +0 -173
  106. data/app/models/hydra/datastream/mods_generic_content.rb +0 -498
  107. data/app/models/hydra/datastream/mods_image.rb +0 -497
  108. data/app/models/hydra/datastream/rights_metadata.rb +0 -191
  109. data/app/models/hydra/role_mapper_behavior.rb +0 -33
  110. data/app/models/role_mapper.rb +0 -6
  111. data/lib/hydra/access_controls_enforcement.rb +0 -237
  112. data/lib/hydra/access_controls_evaluation.rb +0 -38
  113. data/lib/hydra/common_mods_index_methods.rb +0 -46
  114. data/lib/hydra/model_mixins/mods_object.rb +0 -17
  115. data/lib/hydra/model_mixins/rights_metadata.rb +0 -357
  116. data/lib/hydra/mods_article.rb +0 -535
  117. data/lib/hydra/mods_dataset.rb +0 -177
  118. data/lib/hydra/mods_generic_content.rb +0 -500
  119. data/lib/hydra/mods_image.rb +0 -500
  120. data/lib/uva/mods_index_methods.rb +0 -30
  121. data/test_support/spec/lib/common_mods_index_methods_spec.rb +0 -26
  122. data/test_support/spec/models/ability_spec.rb +0 -40
  123. data/test_support/spec/models/hydra_rights_metadata_spec.rb +0 -175
  124. data/test_support/spec/models/role_mapper_spec.rb +0 -22
  125. data/test_support/spec/unit/rights_metadata_spec.rb +0 -80
@@ -1,497 +0,0 @@
1
- # @deprecated Leftover app-specific code from Hydrangea or Hydra at Hull. Please use Hydra::Datastream::ModsGenericContent instead.
2
- module Hydra
3
- module Datastream
4
- class ModsImage < ActiveFedora::NokogiriDatastream
5
- include Hydra::Datastream::CommonModsIndexMethods
6
-
7
- set_terminology do |t|
8
- t.root(:path=>"mods", :xmlns=>"http://www.loc.gov/mods/v3", :schema=>"http://www.loc.gov/standards/mods/v3/mods-3-2.xsd")
9
-
10
- t.title_info(:path=>"titleInfo") {
11
- t.main_title(:path=>"title", :label=>"title")
12
- t.language(:index_as=>[:facetable],:path=>{:attribute=>"lang"})
13
- }
14
-
15
- t.language{
16
- t.lang_code(:index_as=>[:facetable], :path=>"languageTerm", :attributes=>{:type=>"code"})
17
- }
18
- t.abstract
19
- t.subject {
20
- t.topic
21
- }
22
- t.topic_tag(:index_as=>[:facetable],:path=>"subject", :default_content_path=>"topic")
23
-
24
- # mods:physicaldescription/mods:extent - used for storing file size in human-readable form.
25
- t.physical_description(:path => "physicalDescription") {
26
- t.extent( :path => "extent" )
27
- }
28
-
29
- # This is a mods:name. The underscore is purely to avoid namespace conflicts.
30
- t.name_ {
31
- # this is a namepart
32
- t.namePart(:type=>:string, :label=>"generic name")
33
- # affiliations are great
34
- t.affiliation
35
- t.institution(:path=>"affiliation", :index_as=>[:facetable], :label=>"organization")
36
- t.displayForm
37
- t.role(:ref=>[:role])
38
- t.description
39
- t.date(:path=>"namePart", :attributes=>{:type=>"date"})
40
- t.last_name(:path=>"namePart", :attributes=>{:type=>"family"})
41
- t.first_name(:path=>"namePart", :attributes=>{:type=>"given"}, :label=>"first name")
42
- t.terms_of_address(:path=>"namePart", :attributes=>{:type=>"termsOfAddress"})
43
- }
44
- # lookup :person, :first_name
45
- t.person(:ref=>:name, :attributes=>{:type=>"personal"}, :index_as=>[:facetable])
46
- t.organization(:ref=>:name, :attributes=>{:type=>"corporate"}, :index_as=>[:facetable])
47
- t.conference(:ref=>:name, :attributes=>{:type=>"conference"}, :index_as=>[:facetable])
48
- t.role {
49
- t.text(:path=>"roleTerm",:attributes=>{:type=>"text"})
50
- t.code(:path=>"roleTerm",:attributes=>{:type=>"code"})
51
- }
52
- t.journal(:path=>'relatedItem', :attributes=>{:type=>"host"}) {
53
- t.title_info(:index_as=>[:facetable],:ref=>[:title_info])
54
- t.origin_info(:path=>"originInfo") {
55
- t.publisher
56
- t.date_issued(:path=>"dateIssued")
57
- }
58
- t.issn(:path=>"identifier", :attributes=>{:type=>"issn"})
59
- t.issue(:path=>"part") {
60
- t.volume(:path=>"detail", :attributes=>{:type=>"volume"}, :default_content_path=>"number")
61
- t.level(:path=>"detail", :attributes=>{:type=>"number"}, :default_content_path=>"number")
62
- t.extent
63
- t.pages(:path=>"extent", :attributes=>{:unit=>"pages"}) {
64
- t.start
65
- t.end
66
- }
67
- t.start_page(:proxy=>[:pages, :start])
68
- t.end_page(:proxy=>[:pages, :end])
69
- t.publication_date(:path=>"date")
70
- }
71
- }
72
- end
73
-
74
- # accessor :title, :term=>[:mods, :title_info, :main_title]
75
-
76
- # Generates an empty Mods Image (used when you call ModsImage.new without passing in existing xml)
77
- def self.xml_template
78
- builder = Nokogiri::XML::Builder.new do |xml|
79
- xml.mods(:version=>"3.3", "xmlns:xlink"=>"http://www.w3.org/1999/xlink",
80
- "xmlns:xsi"=>"http://www.w3.org/2001/XMLSchema-instance",
81
- "xmlns"=>"http://www.loc.gov/mods/v3",
82
- "xsi:schemaLocation"=>"http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-3.xsd") {
83
- xml.titleInfo(:lang=>"") {
84
- xml.title
85
- }
86
- xml.name(:type=>"personal") {
87
- xml.namePart(:type=>"given")
88
- xml.namePart(:type=>"family")
89
- xml.affiliation
90
- xml.role {
91
- xml.roleTerm(:authority=>"marcrelator", :type=>"text")
92
- }
93
- }
94
- xml.typeOfResource
95
- xml.genre(:authority=>"marcgt")
96
- xml.language {
97
- xml.languageTerm(:authority=>"iso639-2b", :type=>"code")
98
- }
99
- # mods:physicaldescription/mods:extent - used for storing file size in human-readable form.
100
- xml.physicalDescription {
101
- xml.extent
102
- }
103
- xml.abstract
104
- xml.subject {
105
- xml.topic
106
- }
107
- xml.relatedItem(:type=>"host") {
108
- xml.titleInfo {
109
- xml.title
110
- }
111
- xml.identifier(:type=>"issn")
112
- xml.originInfo {
113
- xml.publisher
114
- xml.dateIssued
115
- }
116
- xml.part {
117
- xml.detail(:type=>"volume") {
118
- xml.number
119
- }
120
- xml.detail(:type=>"number") {
121
- xml.number
122
- }
123
- xml.extent(:unit=>"pages") {
124
- xml.start
125
- xml.end
126
- }
127
- xml.date
128
- }
129
- }
130
- xml.location {
131
- xml.url
132
- }
133
- }
134
- end
135
- return builder.doc
136
- end
137
-
138
- # Generates a new Person node
139
- def self.person_template
140
- builder = Nokogiri::XML::Builder.new do |xml|
141
- xml.name(:type=>"personal") {
142
- xml.namePart(:type=>"family")
143
- xml.namePart(:type=>"given")
144
- xml.affiliation
145
- xml.role {
146
- xml.roleTerm(:type=>"text")
147
- }
148
- }
149
- end
150
- return builder.doc.root
151
- end
152
-
153
- def self.full_name_template
154
- builder = Nokogiri::XML::Builder.new do |xml|
155
- xml.full_name(:type => "personal")
156
- end
157
- return builder.doc.root
158
- end
159
-
160
- # Generates a new Organization node
161
- # Uses mods:name[@type="corporate"]
162
- def self.organization_template
163
- builder = Nokogiri::XML::Builder.new do |xml|
164
- xml.name(:type=>"corporate") {
165
- xml.namePart
166
- xml.role {
167
- xml.roleTerm(:authority=>"marcrelator", :type=>"text")
168
- }
169
- }
170
- end
171
- return builder.doc.root
172
- end
173
-
174
- # Generates a new Conference node
175
- def self.conference_template
176
- builder = Nokogiri::XML::Builder.new do |xml|
177
- xml.name(:type=>"conference") {
178
- xml.namePart
179
- xml.role {
180
- xml.roleTerm(:authority=>"marcrelator", :type=>"text")
181
- }
182
- }
183
- end
184
- return builder.doc.root
185
- end
186
-
187
- # Inserts a new contributor (mods:name) into the mods document
188
- # creates contributors of type :person, :organization, or :conference
189
- def insert_contributor(type, opts={})
190
- case type.to_sym
191
- when :person
192
- node = Hydra::Datastream::ModsImage.person_template
193
- nodeset = self.find_by_terms(:person)
194
- when :organization
195
- node = Hydra::Datastream::ModsImage.organization_template
196
- nodeset = self.find_by_terms(:organization)
197
- when :conference
198
- node = Hydra::Datastream::ModsImage.conference_template
199
- nodeset = self.find_by_terms(:conference)
200
- else
201
- ActiveFedora.logger.warn("#{type} is not a valid argument for Hydra::Datastream::ModsImage.insert_contributor")
202
- node = nil
203
- index = nil
204
- end
205
-
206
- unless nodeset.nil?
207
- if nodeset.empty?
208
- self.ng_xml.root.add_child(node)
209
- index = 0
210
- else
211
- nodeset.after(node)
212
- index = nodeset.length
213
- end
214
- self.dirty = true
215
- end
216
-
217
- return node, index
218
- end
219
-
220
- # Remove the contributor entry identified by @contributor_type and @index
221
- def remove_contributor(contributor_type, index)
222
- self.find_by_terms( {contributor_type.to_sym => index.to_i} ).first.remove
223
- self.dirty = true
224
- end
225
-
226
- def self.common_relator_terms
227
- {"aut" => "Author",
228
- "clb" => "Collaborator",
229
- "com" => "Compiler",
230
- "ctb" => "Contributor",
231
- "cre" => "Creator",
232
- "edt" => "Editor",
233
- "ill" => "Illustrator",
234
- "oth" => "Other",
235
- "trl" => "Translator",
236
- }
237
- end
238
-
239
- def self.person_relator_terms
240
- {"aut" => "Author",
241
- "clb" => "Collaborator",
242
- "com" => "Compiler",
243
- "cre" => "Creator",
244
- "ctb" => "Contributor",
245
- "edt" => "Editor",
246
- "ill" => "Illustrator",
247
- "res" => "Researcher",
248
- "rth" => "Research team head",
249
- "rtm" => "Research team member",
250
- "trl" => "Translator"
251
- }
252
- end
253
-
254
- def self.conference_relator_terms
255
- {
256
- "hst" => "Host"
257
- }
258
- end
259
-
260
- def self.organization_relator_terms
261
- {
262
- "fnd" => "Funder",
263
- "hst" => "Host"
264
- }
265
- end
266
-
267
- def self.dc_relator_terms
268
- {"acp" => "Art copyist",
269
- "act" => "Actor",
270
- "adp" => "Adapter",
271
- "aft" => "Author of afterword, colophon, etc.",
272
- "anl" => "Analyst",
273
- "anm" => "Animator",
274
- "ann" => "Annotator",
275
- "ant" => "Bibliographic antecedent",
276
- "app" => "Applicant",
277
- "aqt" => "Author in quotations or text abstracts",
278
- "arc" => "Architect",
279
- "ard" => "Artistic director ",
280
- "arr" => "Arranger",
281
- "art" => "Artist",
282
- "asg" => "Assignee",
283
- "asn" => "Associated name",
284
- "att" => "Attributed name",
285
- "auc" => "Auctioneer",
286
- "aud" => "Author of dialog",
287
- "aui" => "Author of introduction",
288
- "aus" => "Author of screenplay",
289
- "aut" => "Author",
290
- "bdd" => "Binding designer",
291
- "bjd" => "Bookjacket designer",
292
- "bkd" => "Book designer",
293
- "bkp" => "Book producer",
294
- "bnd" => "Binder",
295
- "bpd" => "Bookplate designer",
296
- "bsl" => "Bookseller",
297
- "ccp" => "Conceptor",
298
- "chr" => "Choreographer",
299
- "clb" => "Collaborator",
300
- "cli" => "Client",
301
- "cll" => "Calligrapher",
302
- "clt" => "Collotyper",
303
- "cmm" => "Commentator",
304
- "cmp" => "Composer",
305
- "cmt" => "Compositor",
306
- "cng" => "Cinematographer",
307
- "cnd" => "Conductor",
308
- "cns" => "Censor",
309
- "coe" => "Contestant -appellee",
310
- "col" => "Collector",
311
- "com" => "Compiler",
312
- "cos" => "Contestant",
313
- "cot" => "Contestant -appellant",
314
- "cov" => "Cover designer",
315
- "cpc" => "Copyright claimant",
316
- "cpe" => "Complainant-appellee",
317
- "cph" => "Copyright holder",
318
- "cpl" => "Complainant",
319
- "cpt" => "Complainant-appellant",
320
- "cre" => "Creator",
321
- "crp" => "Correspondent",
322
- "crr" => "Corrector",
323
- "csl" => "Consultant",
324
- "csp" => "Consultant to a project",
325
- "cst" => "Costume designer",
326
- "ctb" => "Contributor",
327
- "cte" => "Contestee-appellee",
328
- "ctg" => "Cartographer",
329
- "ctr" => "Contractor",
330
- "cts" => "Contestee",
331
- "ctt" => "Contestee-appellant",
332
- "cur" => "Curator",
333
- "cwt" => "Commentator for written text",
334
- "dfd" => "Defendant",
335
- "dfe" => "Defendant-appellee",
336
- "dft" => "Defendant-appellant",
337
- "dgg" => "Degree grantor",
338
- "dis" => "Dissertant",
339
- "dln" => "Delineator",
340
- "dnc" => "Dancer",
341
- "dnr" => "Donor",
342
- "dpc" => "Depicted",
343
- "dpt" => "Depositor",
344
- "drm" => "Draftsman",
345
- "drt" => "Director",
346
- "dsr" => "Designer",
347
- "dst" => "Distributor",
348
- "dtc" => "Data contributor ",
349
- "dte" => "Dedicatee",
350
- "dtm" => "Data manager ",
351
- "dto" => "Dedicator",
352
- "dub" => "Dubious author",
353
- "edt" => "Editor",
354
- "egr" => "Engraver",
355
- "elg" => "Electrician ",
356
- "elt" => "Electrotyper",
357
- "eng" => "Engineer",
358
- "etr" => "Etcher",
359
- "exp" => "Expert",
360
- "fac" => "Facsimilist",
361
- "fld" => "Field director ",
362
- "flm" => "Film editor",
363
- "fmo" => "Former owner",
364
- "fpy" => "First party",
365
- "fnd" => "Funder",
366
- "frg" => "Forger",
367
- "gis" => "Geographic information specialist ",
368
- "grt" => "Graphic technician",
369
- "hnr" => "Honoree",
370
- "hst" => "Host",
371
- "ill" => "Illustrator",
372
- "ilu" => "Illuminator",
373
- "ins" => "Inscriber",
374
- "inv" => "Inventor",
375
- "itr" => "Instrumentalist",
376
- "ive" => "Interviewee",
377
- "ivr" => "Interviewer",
378
- "lbr" => "Laboratory ",
379
- "lbt" => "Librettist",
380
- "ldr" => "Laboratory director ",
381
- "led" => "Lead",
382
- "lee" => "Libelee-appellee",
383
- "lel" => "Libelee",
384
- "len" => "Lender",
385
- "let" => "Libelee-appellant",
386
- "lgd" => "Lighting designer",
387
- "lie" => "Libelant-appellee",
388
- "lil" => "Libelant",
389
- "lit" => "Libelant-appellant",
390
- "lsa" => "Landscape architect",
391
- "lse" => "Licensee",
392
- "lso" => "Licensor",
393
- "ltg" => "Lithographer",
394
- "lyr" => "Lyricist",
395
- "mcp" => "Music copyist",
396
- "mfr" => "Manufacturer",
397
- "mdc" => "Metadata contact",
398
- "mod" => "Moderator",
399
- "mon" => "Monitor",
400
- "mrk" => "Markup editor",
401
- "msd" => "Musical director",
402
- "mte" => "Metal-engraver",
403
- "mus" => "Musician",
404
- "nrt" => "Narrator",
405
- "opn" => "Opponent",
406
- "org" => "Originator",
407
- "orm" => "Organizer of meeting",
408
- "oth" => "Other",
409
- "own" => "Owner",
410
- "pat" => "Patron",
411
- "pbd" => "Publishing director",
412
- "pbl" => "Publisher",
413
- "pdr" => "Project director",
414
- "pfr" => "Proofreader",
415
- "pht" => "Photographer",
416
- "plt" => "Platemaker",
417
- "pma" => "Permitting agency",
418
- "pmn" => "Production manager",
419
- "pop" => "Printer of plates",
420
- "ppm" => "Papermaker",
421
- "ppt" => "Puppeteer",
422
- "prc" => "Process contact",
423
- "prd" => "Production personnel",
424
- "prf" => "Performer",
425
- "prg" => "Programmer",
426
- "prm" => "Printmaker",
427
- "pro" => "Producer",
428
- "prt" => "Printer",
429
- "pta" => "Patent applicant",
430
- "pte" => "Plaintiff -appellee",
431
- "ptf" => "Plaintiff",
432
- "pth" => "Patent holder",
433
- "ptt" => "Plaintiff-appellant",
434
- "rbr" => "Rubricator",
435
- "rce" => "Recording engineer",
436
- "rcp" => "Recipient",
437
- "red" => "Redactor",
438
- "ren" => "Renderer",
439
- "res" => "Researcher",
440
- "rev" => "Reviewer",
441
- "rps" => "Repository",
442
- "rpt" => "Reporter",
443
- "rpy" => "Responsible party",
444
- "rse" => "Respondent-appellee",
445
- "rsg" => "Restager",
446
- "rsp" => "Respondent",
447
- "rst" => "Respondent-appellant",
448
- "rth" => "Research team head",
449
- "rtm" => "Research team member",
450
- "sad" => "Scientific advisor",
451
- "sce" => "Scenarist",
452
- "scl" => "Sculptor",
453
- "scr" => "Scribe",
454
- "sds" => "Sound designer",
455
- "sec" => "Secretary",
456
- "sgn" => "Signer",
457
- "sht" => "Supporting host",
458
- "sng" => "Singer",
459
- "spk" => "Speaker",
460
- "spn" => "Sponsor",
461
- "spy" => "Second party",
462
- "srv" => "Surveyor",
463
- "std" => "Set designer",
464
- "stl" => "Storyteller",
465
- "stm" => "Stage manager",
466
- "stn" => "Standards body",
467
- "str" => "Stereotyper",
468
- "tcd" => "Technical director",
469
- "tch" => "Teacher",
470
- "ths" => "Thesis advisor",
471
- "trc" => "Transcriber",
472
- "trl" => "Translator",
473
- "tyd" => "Type designer",
474
- "tyg" => "Typographer",
475
- "vdg" => "Videographer",
476
- "voc" => "Vocalist",
477
- "wam" => "Writer of accompanying material",
478
- "wdc" => "Woodcutter",
479
- "wde" => "Wood -engraver",
480
- "wit" => "Witness"}
481
- end
482
-
483
- def self.valid_child_types
484
- ["data", "supporting file", "profile", "lorem ipsum", "dolor"]
485
- end
486
-
487
- def to_solr(solr_doc=Hash.new)
488
- super(solr_doc)
489
- solr_doc.merge!(extract_person_full_names)
490
- solr_doc.merge!(extract_person_organizations)
491
- solr_doc.merge!(:object_type_facet => "Image")
492
- solr_doc
493
- end
494
-
495
- end
496
- end
497
- end