enju_biblio 0.3.10.rc.3 → 0.3.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/agents_controller.rb +0 -6
  3. data/app/controllers/items_controller.rb +13 -8
  4. data/app/controllers/manifestations_controller.rb +64 -72
  5. data/app/controllers/series_statements_controller.rb +0 -6
  6. data/app/helpers/manifestations_helper.rb +8 -8
  7. data/app/models/agent.rb +10 -1
  8. data/app/models/form_of_work.rb +1 -1
  9. data/app/models/frequency.rb +1 -1
  10. data/app/models/identifier.rb +1 -1
  11. data/app/models/import_request.rb +2 -3
  12. data/app/models/item.rb +5 -5
  13. data/app/models/item_custom_value.rb +1 -1
  14. data/app/models/manifestation.rb +8 -17
  15. data/app/models/manifestation_custom_value.rb +1 -1
  16. data/app/views/agents/index.rss.builder +2 -2
  17. data/app/views/items/_item.json.jbuilder +17 -0
  18. data/app/views/items/index.json.jbuilder +5 -0
  19. data/app/views/items/show.html.erb +125 -125
  20. data/app/views/items/show.json.jbuilder +1 -0
  21. data/app/views/layouts/agents.html.erb +2 -2
  22. data/app/views/layouts/manifestations.html.erb +2 -2
  23. data/app/views/manifestations/_carrier_type_facet.html.erb +1 -1
  24. data/app/views/manifestations/_classification_facet.html.erb +2 -2
  25. data/app/views/manifestations/_export_list.html.erb +4 -4
  26. data/app/views/manifestations/_form.html.erb +3 -3
  27. data/app/views/manifestations/_language_facet.html.erb +1 -1
  28. data/app/views/manifestations/_library_facet.html.erb +1 -1
  29. data/app/views/manifestations/_pub_year_facet.html.erb +1 -1
  30. data/app/views/manifestations/_reservable_facet.html.erb +2 -2
  31. data/app/views/manifestations/_show_detail_librarian.html.erb +12 -8
  32. data/app/views/manifestations/_show_detail_user.html.erb +12 -8
  33. data/app/views/manifestations/index.html.erb +7 -7
  34. data/app/views/manifestations/index.rdf.builder +2 -2
  35. data/app/views/manifestations/index.rss.builder +2 -2
  36. data/lib/enju_biblio.rb +0 -2
  37. data/lib/enju_biblio/openurl.rb +5 -1
  38. data/lib/enju_biblio/version.rb +1 -1
  39. data/spec/controllers/items_controller_spec.rb +36 -0
  40. data/spec/controllers/manifestations_controller_spec.rb +0 -19
  41. data/spec/fixtures/creates.yml +2 -0
  42. data/spec/fixtures/produces.yml +2 -0
  43. data/spec/fixtures/realizes.yml +2 -0
  44. data/spec/models/manifestation_spec.rb +0 -65
  45. data/spec/models/resource_export_file_spec.rb +14 -2
  46. data/spec/system/items_spec.rb +6 -0
  47. data/spec/views/items/index.json.jbuilder_spec.rb +15 -0
  48. data/spec/views/items/show.json.jbuilder_spec.rb +15 -0
  49. data/spec/views/manifestations/index.html.erb_spec.rb +1 -1
  50. data/spec/views/manifestations/index.rdf.builder_spec.rb +0 -1
  51. metadata +513 -511
  52. data/app/views/manifestations/explain.sru +0 -9
  53. data/app/views/manifestations/index.sru.builder +0 -101
  54. data/lib/enju_biblio/porta_cql.rb +0 -282
  55. data/lib/enju_biblio/sru.rb +0 -83
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f2d7203c658e7663f3cbac31e55722e0dae3f5ce6805105697470ef7998dc956
4
- data.tar.gz: b0fccbbda78a90bdcc409f25673d137cdcaac5a50629d44eea35f27ad2690cc3
3
+ metadata.gz: afa249847e374fa2a87ea6801bfb851af30e99edc72fd982a32ce52d1674fa0c
4
+ data.tar.gz: 5ab7f1b8abd52e9c841c0445dd1a04db2d752fd077aada5672d70ea2ed2d8262
5
5
  SHA512:
6
- metadata.gz: 8dbdc8cc98c98e26594cf4abe0cfdae324b187e94e45829e32de9668f798844155eecb7a37a389fa4b61306897c8861cc43f6d43974521f3483084754c57848f
7
- data.tar.gz: 237824184eba2b78940b5fe20c67025e8c7bb694e5fbc12cc39320c0749b12bdc1c352d69313df60671ac6124085502a3b119ff39be8b408d6273a611102eeaf
6
+ metadata.gz: e937c7448b783f607e851da92fa21b38c7bb44677b572e47b7f11a3ef5cc9133e76e74a1b2a13657041acfbeef89ed9240fbbe8cc606179167606cfd8fd5075a
7
+ data.tar.gz: 42b259f6e9d84b40a93b66d649c171b1d8a6ec84cdffc773d8871223a5de707383e3e82dfaddb4ceb76d980001cb8e1ec6096b35d29647dd298d0426460a936a
@@ -227,10 +227,4 @@ class AgentsController < ApplicationController
227
227
  @languages = Language.all
228
228
  @agent_type = AgentType.where(name: 'person').first
229
229
  end
230
-
231
- def filtered_params
232
- params.permit([:view, :format, :page, :language, :sort_by, :per_page])
233
- end
234
-
235
- helper_method :filtered_params
236
230
  end
@@ -51,6 +51,17 @@ class ItemsController < ApplicationController
51
51
 
52
52
  unless @inventory_file
53
53
  search = Sunspot.new_search(Item)
54
+ selected_attributes = [
55
+ :id, :item_identifier, :call_number, :manifestation_id, :acquired_at,
56
+ :binding_item_identifier, :binding_call_number, :binded_at,
57
+ :include_supplements, :url, :note,
58
+ :circulation_status_id, :shelf_id,
59
+ :created_at, :updated_at
60
+ ]
61
+ selected_attributes += [
62
+ :memo, :required_role_id, :budget_type_id, :bookstore_id, :price
63
+ ] if current_user.try(:has_role?, 'Librarian')
64
+ search.data_accessor_for(Item).select = selected_attributes
54
65
  set_role_query(current_user, search)
55
66
 
56
67
  @query = query.dup
@@ -122,7 +133,7 @@ class ItemsController < ApplicationController
122
133
 
123
134
  respond_to do |format|
124
135
  format.html # index.html.erb
125
- format.json { render json: @items }
136
+ format.json
126
137
  format.txt { render layout: false }
127
138
  format.atom
128
139
  end
@@ -137,7 +148,7 @@ class ItemsController < ApplicationController
137
148
 
138
149
  respond_to do |format|
139
150
  format.html # show.html.erb
140
- format.json { render json: @item }
151
+ format.json
141
152
  end
142
153
  end
143
154
 
@@ -301,10 +312,4 @@ class ItemsController < ApplicationController
301
312
  end
302
313
  end
303
314
  end
304
-
305
- def filtered_params
306
- params.permit([:view, :format, :page, :library, :carrier_type, :reservable, :pub_date_from, :pub_date_until, :language, :sort_by, :per_page])
307
- end
308
-
309
- helper_method :filtered_params
310
315
  end
@@ -33,25 +33,14 @@ class ManifestationsController < ApplicationController
33
33
  per_page = 65534
34
34
  end
35
35
 
36
- if params[:format] == 'sru'
37
- if params[:operation] == 'searchRetrieve'
38
- sru = Sru.new(params)
39
- query = sru.cql.to_sunspot
40
- sort = sru.sort_by
41
- else
42
- render template: 'manifestations/explain', layout: false
43
- return
44
- end
36
+ if params[:api] == 'openurl'
37
+ openurl = Openurl.new(params)
38
+ @manifestations = openurl.search
39
+ query = openurl.query_text
40
+ sort = set_search_result_order(params[:sort_by], params[:order])
45
41
  else
46
- if params[:api] == 'openurl'
47
- openurl = Openurl.new(params)
48
- @manifestations = openurl.search
49
- query = openurl.query_text
50
- sort = set_search_result_order(params[:sort_by], params[:order])
51
- else
52
- query = make_query(params[:query], params)
53
- sort = set_search_result_order(params[:sort_by], params[:order])
54
- end
42
+ query = make_query(params[:query], params)
43
+ sort = set_search_result_order(params[:sort_by], params[:order])
55
44
  end
56
45
 
57
46
  # 絞り込みを行わない状態のクエリ
@@ -191,37 +180,37 @@ class ManifestationsController < ApplicationController
191
180
  else
192
181
  per_page = Manifestation.default_per_page
193
182
  end
194
- if params[:format] == 'sru'
195
- #search.query.start_record(params[:startRecord] || 1, params[:maximumRecords] || 200)
183
+
184
+ pub_dates = parse_pub_date(params)
185
+ pub_date_range = {}
186
+
187
+ if pub_dates[:from] == '*'
188
+ pub_date_range[:from] = 0
196
189
  else
197
- pub_dates = parse_pub_date(params)
198
- pub_date_range = {}
199
- if pub_dates[:from] == '*'
200
- pub_date_range[:from] = 0
201
- else
202
- pub_date_range[:from] = Time.zone.parse(pub_dates[:from]).year
203
- end
204
- if pub_dates[:until] == '*'
205
- pub_date_range[:until] = 10000
206
- else
207
- pub_date_range[:until] = Time.zone.parse(pub_dates[:until]).year
208
- end
209
- if params[:pub_year_range_interval]
210
- pub_year_range_interval = params[:pub_year_range_interval].to_i
211
- else
212
- pub_year_range_interval = @library_group.pub_year_facet_range_interval || 10
213
- end
190
+ pub_date_range[:from] = Time.zone.parse(pub_dates[:from]).year
191
+ end
192
+ if pub_dates[:until] == '*'
193
+ pub_date_range[:until] = 10000
194
+ else
195
+ pub_date_range[:until] = Time.zone.parse(pub_dates[:until]).year
196
+ end
214
197
 
215
- search.build do
216
- facet :reservable if defined?(EnjuCirculation)
217
- facet :carrier_type
218
- facet :library
219
- facet :language
220
- facet :pub_year, range: pub_date_range[:from]..pub_date_range[:until], range_interval: pub_year_range_interval
221
- facet :subject_ids if defined?(EnjuSubject)
222
- paginate page: page.to_i, per_page: per_page
223
- end
198
+ if params[:pub_year_range_interval]
199
+ pub_year_range_interval = params[:pub_year_range_interval].to_i
200
+ else
201
+ pub_year_range_interval = @library_group.pub_year_facet_range_interval || 10
224
202
  end
203
+
204
+ search.build do
205
+ facet :reservable if defined?(EnjuCirculation)
206
+ facet :carrier_type
207
+ facet :library
208
+ facet :language
209
+ facet :pub_year, range: pub_date_range[:from]..pub_date_range[:until], range_interval: pub_year_range_interval
210
+ facet :subject_ids if defined?(EnjuSubject)
211
+ paginate page: page.to_i, per_page: per_page
212
+ end
213
+
225
214
  search_result = search.execute
226
215
  if @count[:query_result] > @max_number_of_results
227
216
  max_count = @max_number_of_results
@@ -261,7 +250,6 @@ class ManifestationsController < ApplicationController
261
250
  format.html
262
251
  format.html.phone
263
252
  format.xml { render xml: @manifestations }
264
- format.sru { render layout: false }
265
253
  format.rss { render layout: false }
266
254
  format.txt { render layout: false }
267
255
  format.rdf { render layout: false }
@@ -394,11 +382,8 @@ class ManifestationsController < ApplicationController
394
382
  # POST /manifestations
395
383
  # POST /manifestations.json
396
384
  def create
397
- creators_params = manifestation_params[:creators_attributes]
398
- @manifestation = Manifestation.new(manifestation_params.delete_if{|k, v|
399
- k == 'creators_attributes'
400
- })
401
- parent = Manifestation.where(id: @manifestation.parent_id).first
385
+ @manifestation = Manifestation.new(manifestation_params)
386
+ parent = Manifestation.find_by(id: @manifestation.parent_id)
402
387
  unless @manifestation.original_title?
403
388
  @manifestation.original_title = @manifestation.attachment_file_name
404
389
  end
@@ -406,14 +391,16 @@ class ManifestationsController < ApplicationController
406
391
  respond_to do |format|
407
392
  if @manifestation.save
408
393
  Manifestation.transaction do
409
- @manifestation.creators = Agent.new_agents(creators_params)
410
- parent.derived_manifestations << @manifestation if parent
411
- end
412
- if parent
413
- parent.index
414
- @manifestation.index
394
+ set_creators
395
+
396
+ if parent
397
+ parent.derived_manifestations << @manifestation
398
+ parent.index
399
+ @manifestation.index
400
+ end
401
+
402
+ Sunspot.commit
415
403
  end
416
- Sunspot.commit
417
404
 
418
405
  format.html { redirect_to @manifestation, notice: t('controller.successfully_created', model: t('activerecord.models.manifestation')) }
419
406
  format.json { render json: @manifestation, status: :created, location: @manifestation }
@@ -428,17 +415,11 @@ class ManifestationsController < ApplicationController
428
415
  # PUT /manifestations/1
429
416
  # PUT /manifestations/1.json
430
417
  def update
431
- creators_params = manifestation_params[:creators_attributes]
432
- @manifestation.assign_attributes(manifestation_params.delete_if{|k, v|
433
- k == 'creators_attributes'
434
- })
418
+ @manifestation.assign_attributes(manifestation_params)
435
419
 
436
420
  respond_to do |format|
437
- if @manifestation.valid?
438
- Manifestation.transaction do
439
- @manifestation.creators = Agent.new_agents(creators_params)
440
- @manifestation.save!
441
- end
421
+ if @manifestation.save
422
+ set_creators
442
423
 
443
424
  format.html { redirect_to @manifestation, notice: t('controller.successfully_updated', model: t('activerecord.models.manifestation')) }
444
425
  format.json { head :no_content }
@@ -856,9 +837,20 @@ class ManifestationsController < ApplicationController
856
837
  query
857
838
  end
858
839
 
859
- def filtered_params
860
- params.permit([:view, :format, :library, :carrier_type, :reservable, :pub_date_from, :pub_date_until, :language, :sort_by, :per_page, :query])
861
- end
840
+ def set_creators
841
+ creators_params = manifestation_params[:creators_attributes]
842
+ contributors_params = manifestation_params[:contributors_attributes]
843
+ publishers_params = manifestation_params[:publishers_attributes]
844
+
845
+ Manifestation.transaction do
846
+ @manifestation.creates.destroy_all
847
+ @manifestation.realizes.destroy_all
848
+ @manifestation.produces.destroy_all
849
+ @manifestation.reload
862
850
 
863
- helper_method :filtered_params
851
+ @manifestation.creators = Agent.new_agents(creators_params)
852
+ @manifestation.contributors = Agent.new_agents(contributors_params)
853
+ @manifestation.publishers = Agent.new_agents(publishers_params)
854
+ end
855
+ end
864
856
  end
@@ -133,10 +133,4 @@ class SeriesStatementsController < ApplicationController
133
133
  :series_master
134
134
  )
135
135
  end
136
-
137
- def filtered_params
138
- params.permit([:locale, :format, :page, :per_page])
139
- end
140
-
141
- helper_method :filtered_params
142
136
  end
@@ -71,10 +71,10 @@ module ManifestationsHelper
71
71
  current = true if languages.include?(language.name)
72
72
  if current
73
73
  content_tag :strong do
74
- link_to("#{language.display_name.localize} (" + facet.count.to_s + ")", url_for(filtered_params.merge(page: nil, language: language.name, view: nil, only_path: true)))
74
+ link_to("#{language.display_name.localize} (" + facet.count.to_s + ")", url_for(request.params.merge(page: nil, language: language.name, view: nil, only_path: true)))
75
75
  end
76
76
  else
77
- link_to("#{language.display_name.localize} (" + facet.count.to_s + ")", url_for(filtered_params.merge(page: nil, language: language.name, view: nil, only_path: true)))
77
+ link_to("#{language.display_name.localize} (" + facet.count.to_s + ")", url_for(request.params.merge(page: nil, language: language.name, view: nil, only_path: true)))
78
78
  end
79
79
  end
80
80
 
@@ -86,10 +86,10 @@ module ManifestationsHelper
86
86
  content_tag :li do
87
87
  if current
88
88
  content_tag :strong do
89
- link_to("#{library.display_name.localize} (" + facet.count.to_s + ")", url_for(filtered_params.merge(page: nil, library: (current_libraries << library.name).uniq.join(' '), view: nil, only_path: true)))
89
+ link_to("#{library.display_name.localize} (" + facet.count.to_s + ")", url_for(request.params.merge(page: nil, library: (current_libraries << library.name).uniq.join(' '), view: nil, only_path: true)))
90
90
  end
91
91
  else
92
- link_to("#{library.display_name.localize} (" + facet.count.to_s + ")", url_for(filtered_params.merge(page: nil, library: (current_libraries << library.name).uniq.join(' '), view: nil, only_path: true)))
92
+ link_to("#{library.display_name.localize} (" + facet.count.to_s + ")", url_for(request.params.merge(page: nil, library: (current_libraries << library.name).uniq.join(' '), view: nil, only_path: true)))
93
93
  end
94
94
  end
95
95
  end
@@ -102,10 +102,10 @@ module ManifestationsHelper
102
102
  current = true if params[:carrier_type] == carrier_type.name
103
103
  if current
104
104
  content_tag :strong do
105
- link_to("#{carrier_type.display_name.localize} (" + facet.count.to_s + ")", url_for(filtered_params.merge(carrier_type: carrier_type.name, page: nil, view: nil, only_path: true)))
105
+ link_to("#{carrier_type.display_name.localize} (" + facet.count.to_s + ")", url_for(request.params.merge(carrier_type: carrier_type.name, page: nil, view: nil, only_path: true)))
106
106
  end
107
107
  else
108
- link_to("#{carrier_type.display_name.localize} (" + facet.count.to_s + ")", url_for(filtered_params.merge(carrier_type: carrier_type.name, page: nil, view: nil, only_path: true)))
108
+ link_to("#{carrier_type.display_name.localize} (" + facet.count.to_s + ")", url_for(request.params.merge(carrier_type: carrier_type.name, page: nil, view: nil, only_path: true)))
109
109
  end
110
110
  end
111
111
  end
@@ -115,10 +115,10 @@ module ManifestationsHelper
115
115
  current = true if facet.value.first.to_i == pub_date_from.to_i and facet.value.last.to_i - 1 == pub_date_until.to_i
116
116
  if current
117
117
  content_tag :strong do
118
- link_to("#{facet.value.first.to_i} - #{facet.value.last.to_i - 1} (" + facet.count.to_s + ")", url_for(filtered_params.merge(pub_date_from: facet.value.first.to_i, pub_date_until: facet.value.last.to_i - 1, page: nil, view: nil, only_path: true)))
118
+ link_to("#{facet.value.first.to_i} - #{facet.value.last.to_i - 1} (" + facet.count.to_s + ")", url_for(request.params.merge(pub_date_from: facet.value.first.to_i, pub_date_until: facet.value.last.to_i - 1, page: nil, view: nil, only_path: true)))
119
119
  end
120
120
  else
121
- link_to("#{facet.value.first.to_i} - #{facet.value.last.to_i - 1} (" + facet.count.to_s + ")", url_for(filtered_params.merge(pub_date_from: facet.value.first.to_i, pub_date_until: facet.value.last.to_i - 1, page: nil, view: nil, only_path: true)))
121
+ link_to("#{facet.value.first.to_i} - #{facet.value.last.to_i - 1} (" + facet.count.to_s + ")", url_for(request.params.merge(pub_date_from: facet.value.first.to_i, pub_date_until: facet.value.last.to_i - 1, page: nil, view: nil, only_path: true)))
122
122
  end
123
123
  end
124
124
 
data/app/models/agent.rb CHANGED
@@ -256,17 +256,26 @@ class Agent < ApplicationRecord
256
256
  Agent.transaction do
257
257
  agents_params.each do |k, v|
258
258
  next if v['_destroy'] == '1'
259
+
260
+ agent = nil
261
+
259
262
  if v['agent_id'].present?
260
263
  agent = Agent.find(v['agent_id'])
261
264
  elsif v['id'].present?
262
265
  agent = Agent.find(v['id'])
263
- else
266
+ end
267
+
268
+ if !agent or agent.full_name != v['full_name']
269
+ v.delete('id')
270
+ v.delete('agent_id')
264
271
  v.delete('_destroy')
265
272
  agent = Agent.create(v)
266
273
  end
274
+
267
275
  agents << agent
268
276
  end
269
277
  end
278
+
270
279
  agents
271
280
  end
272
281
  end
@@ -1,6 +1,6 @@
1
1
  class FormOfWork < ApplicationRecord
2
2
  include MasterModel
3
- has_many :works, class_name: 'Manifestation'
3
+ has_many :works, class_name: 'Manifestation' #, dependent: :restrict_with_exception
4
4
  end
5
5
 
6
6
  # == Schema Information
@@ -1,6 +1,6 @@
1
1
  class Frequency < ApplicationRecord
2
2
  include MasterModel
3
- has_many :manifestations
3
+ has_many :manifestations, dependent: :restrict_with_exception
4
4
  end
5
5
 
6
6
  # == Schema Information
@@ -8,7 +8,7 @@ class Identifier < ApplicationRecord
8
8
  before_validation :normalize
9
9
  before_save :convert_isbn
10
10
  scope :id_type, -> type {
11
- where(identifier_type: IdentifierType.where(name: type).first)
11
+ where(identifier_type: IdentifierType.find_by(name: type))
12
12
  }
13
13
 
14
14
  acts_as_list scope: :manifestation_id
@@ -27,9 +27,8 @@ class ImportRequest < ApplicationRecord
27
27
 
28
28
  def check_imported
29
29
  if isbn.present?
30
- identifier_type = IdentifierType.where(name: 'isbn').first
31
- identifier_type = IdentifierType.where(name: 'isbn').create! unless identifier_type
32
- if Identifier.where(body: isbn, identifier_type_id: identifier_type.id).first.try(:manifestation)
30
+ identifier_type = IdentifierType.find_by_or_create!(name: 'isbn')
31
+ if Identifier.find_by(body: isbn, identifier_type_id: identifier_type.id)&.manifestation
33
32
  errors.add(:isbn, I18n.t('import_request.isbn_taken'))
34
33
  end
35
34
  end
data/app/models/item.rb CHANGED
@@ -66,23 +66,23 @@ class Item < ApplicationRecord
66
66
  paginates_per 10
67
67
 
68
68
  def title
69
- manifestation.try(:original_title)
69
+ manifestation&.original_title
70
70
  end
71
71
 
72
72
  def creator
73
- manifestation.try(:creator)
73
+ manifestation&.creator
74
74
  end
75
75
 
76
76
  def contributor
77
- manifestation.try(:contributor)
77
+ manifestation&.contributor
78
78
  end
79
79
 
80
80
  def publisher
81
- manifestation.try(:publisher)
81
+ manifestation&.publisher
82
82
  end
83
83
 
84
84
  def owned(agent)
85
- owns.where(agent_id: agent.id).first
85
+ owns.find_by(agent_id: agent.id)
86
86
  end
87
87
 
88
88
  def manifestation_url
@@ -1,6 +1,6 @@
1
1
  class ItemCustomValue < ApplicationRecord
2
2
  belongs_to :item_custom_property
3
- belongs_to :item, required: false
3
+ belongs_to :item, optional: true
4
4
  validates :item_custom_property, uniqueness: {scope: :item_id}
5
5
  end
6
6
 
@@ -5,12 +5,12 @@ class Manifestation < ApplicationRecord
5
5
  enju_nii_cinii_books if defined?(EnjuNii)
6
6
  enju_bookmark_manifestation_model if defined?(EnjuBookmark)
7
7
 
8
- has_many :creates, dependent: :destroy, foreign_key: 'work_id'
9
- has_many :creators, through: :creates, source: :agent #, order: 'creates.position'
10
- has_many :realizes, dependent: :destroy, foreign_key: 'expression_id'
11
- has_many :contributors, through: :realizes, source: :agent #, order: 'realizes.position'
12
- has_many :produces, dependent: :destroy, foreign_key: 'manifestation_id'
13
- has_many :publishers, through: :produces, source: :agent #, order: 'produces.position'
8
+ has_many :creates, -> { order('creates.position') }, dependent: :destroy, foreign_key: 'work_id'
9
+ has_many :creators, through: :creates, source: :agent
10
+ has_many :realizes, -> { order('realizes.position') }, dependent: :destroy, foreign_key: 'expression_id'
11
+ has_many :contributors, through: :realizes, source: :agent
12
+ has_many :produces, -> { order('produces.position') }, dependent: :destroy, foreign_key: 'manifestation_id'
13
+ has_many :publishers, through: :produces, source: :agent
14
14
  has_many :items, dependent: :destroy
15
15
  has_many :children, foreign_key: 'parent_id', class_name: 'ManifestationRelationship', dependent: :destroy
16
16
  has_many :parents, foreign_key: 'child_id', class_name: 'ManifestationRelationship', dependent: :destroy
@@ -518,16 +518,7 @@ class Manifestation < ApplicationRecord
518
518
  end
519
519
 
520
520
  def identifier_contents(name)
521
- if Rails::VERSION::MAJOR > 3
522
- identifiers.id_type(name).order(:position).pluck(:body)
523
- else
524
- identifier_type = IdentifierType.find_by(name: name)
525
- if identifier_type
526
- identifiers.where(identifier_type_id: identifier_type.id).order(:position).pluck(:body)
527
- else
528
- []
529
- end
530
- end
521
+ identifiers.id_type(name).order(:position).pluck(:body)
531
522
  end
532
523
 
533
524
  # CSVのヘッダ
@@ -549,7 +540,7 @@ class Manifestation < ApplicationRecord
549
540
  manifestation_identifier: manifestation_identifier,
550
541
  creator: creates.map{|create|
551
542
  if create.create_type
552
- "#{create.agent.full_name}||#{create.creator_type.name}"
543
+ "#{create.agent.full_name}||#{create.create_type.name}"
553
544
  else
554
545
  "#{create.agent.full_name}"
555
546
  end