enju_circulation 0.0.27 → 0.0.28

Sign up to get free protection for your applications and to get access to all the features.
@@ -104,15 +104,20 @@ class ReservesController < ApplicationController
104
104
  begin
105
105
  if params[:reserve][:user_number]
106
106
  user = User.where(:user_number => params[:reserve][:user_number]).first
107
+ else
108
+ access_denied
109
+ return
107
110
  end
108
111
  rescue NoMethodError
109
112
  end
110
113
 
111
114
  # 図書館員以外は自分の予約しか作成できない
112
115
  unless current_user.has_role?('Librarian')
113
- if user != current_user
114
- access_denied
115
- return
116
+ if user
117
+ if user != current_user
118
+ access_denied
119
+ return
120
+ end
116
121
  end
117
122
  end
118
123
 
@@ -124,7 +129,7 @@ class ReservesController < ApplicationController
124
129
 
125
130
  respond_to do |format|
126
131
  if @reserve.save
127
- @reserve.send_message('accepted')
132
+ @reserve.sm_request!
128
133
 
129
134
  #format.html { redirect_to reserve_url(@reserve) }
130
135
  format.html { redirect_to @reserve, :notice => t('controller.successfully_created', :model => t('activerecord.models.reserve')) }
@@ -163,7 +168,7 @@ class ReservesController < ApplicationController
163
168
  if @reserve.update_attributes(params[:reserve])
164
169
  if @reserve.state == 'canceled'
165
170
  flash[:notice] = t('reserve.reservation_was_canceled')
166
- @reserve.send_message('canceled')
171
+ @reserve.send_message
167
172
  else
168
173
  flash[:notice] = t('controller.successfully_updated', :model => t('activerecord.models.reserve'))
169
174
  end
@@ -2,7 +2,7 @@
2
2
  class Reserve < ActiveRecord::Base
3
3
  scope :hold, where('item_id IS NOT NULL')
4
4
  scope :not_hold, where(:item_id => nil)
5
- scope :waiting, where('canceled_at IS NULL AND expired_at > ? AND state != ?', Time.zone.now, 'completed').order('id DESC')
5
+ scope :waiting, where('canceled_at IS NULL AND expired_at > ? AND state != ?', Time.zone.now, 'completed').order('reserves.id DESC')
6
6
  scope :completed, where('checked_out_at IS NOT NULL')
7
7
  scope :canceled, where('canceled_at IS NOT NULL')
8
8
  scope :will_expire_retained, lambda {|datetime| {:conditions => ['checked_out_at IS NULL AND canceled_at IS NULL AND expired_at <= ? AND state = ?', datetime, 'retained'], :order => 'expired_at'}}
@@ -106,55 +106,52 @@ class Reserve < ActiveRecord::Base
106
106
  end
107
107
 
108
108
  def next_reservation
109
- manifestation.reserves.where('reserves.id != ?', self.id).order('reserves.created_at').first
110
- end
111
-
112
- def retain
113
- # TODO: 「取り置き中」の状態を正しく表す
114
- self.update_attributes!({:request_status_type => RequestStatusType.where(:name => 'In Process').first, :checked_out_at => Time.zone.now})
115
- end
116
-
117
- def expire
118
- self.update_attributes!({:request_status_type => RequestStatusType.where(:name => 'Expired').first, :canceled_at => Time.zone.now})
119
- logger.info "#{Time.zone.now} reserve_id #{self.id} expired!"
120
- end
121
-
122
- def cancel
123
- self.update_attributes!({:request_status_type => RequestStatusType.where(:name => 'Cannot Fulfill Request').first, :canceled_at => Time.zone.now})
124
- end
125
-
126
- def checkout
127
- self.update_attributes!({:request_status_type => RequestStatusType.where(:name => 'Available For Pickup').first, :checked_out_at => Time.zone.now})
109
+ if item
110
+ Reserve.waiting.where(:manifestation_id => item.manifestation.id).first
111
+ end
128
112
  end
129
113
 
130
- def send_message(status)
131
- system_user = User.find(1) # TODO: システムからのメッセージの発信者
114
+ def send_message(sender = nil)
115
+ sender = User.find(1) unless sender # TODO: システムからのメッセージの発信者
132
116
  Reserve.transaction do
133
- case status
134
- when 'accepted'
135
- message_template_to_patron = MessageTemplate.localized_template('reservation_accepted', self.user.locale)
136
- request = MessageRequest.create!(:sender => system_user, :receiver => self.user, :message_template => message_template_to_patron)
137
- request.save_message_body(:manifestations => Array[self.manifestation], :user => self.user)
117
+ case state
118
+ when 'requested'
119
+ message_template_to_patron = MessageTemplate.localized_template('reservation_accepted_for_patron', user.locale)
120
+ request = MessageRequest.create!(:sender => sender, :receiver => user, :message_template => message_template_to_patron)
121
+ request.save_message_body(:manifestations => Array[manifestation], :user => user)
138
122
  request.sm_send_message! # 受付時は即時送信
139
- message_template_to_library = MessageTemplate.localized_template('reservation_accepted', self.user.locale)
140
- request = MessageRequest.create!(:sender => system_user, :receiver => system_user, :message_template => message_template_to_library)
141
- request.save_message_body(:manifestations => Array[self.manifestation], :user => self.user)
123
+ message_template_to_library = MessageTemplate.localized_template('reservation_accepted_for_library', user.locale)
124
+ request = MessageRequest.create!(:sender => sender, :receiver => sender, :message_template => message_template_to_library)
125
+ request.save_message_body(:manifestations => Array[manifestation], :user => user)
142
126
  request.sm_send_message! # 受付時は即時送信
143
127
  when 'canceled'
144
- message_template_to_patron = MessageTemplate.localized_template('reservation_canceled_for_patron', self.user.locale)
145
- request = MessageRequest.create!(:sender => system_user, :receiver => self.user, :message_template => message_template_to_patron)
146
- request.save_message_body(:manifestations => Array[self.manifestation], :user => self.user)
128
+ message_template_to_patron = MessageTemplate.localized_template('reservation_canceled_for_patron', user.locale)
129
+ request = MessageRequest.create!(:sender => sender, :receiver => user, :message_template => message_template_to_patron)
130
+ request.save_message_body(:manifestations => Array[manifestation], :user => user)
147
131
  request.sm_send_message! # キャンセル時は即時送信
148
- message_template_to_library = MessageTemplate.localized_template('reservation_canceled_for_library', self.user.locale)
149
- request = MessageRequest.create!(:sender => system_user, :receiver => system_user, :message_template => message_template_to_library)
150
- request.save_message_body(:manifestations => Array[self.manifestation], :user => self.user)
132
+ message_template_to_library = MessageTemplate.localized_template('reservation_canceled_for_library', user.locale)
133
+ request = MessageRequest.create!(:sender => sender, :receiver => sender, :message_template => message_template_to_library)
134
+ request.save_message_body(:manifestations => Array[manifestation], :user => user)
151
135
  request.sm_send_message! # キャンセル時は即時送信
152
136
  when 'expired'
153
- message_template_to_patron = MessageTemplate.localized_template('reservation_expired_for_patron', self.user.locale)
154
- request = MessageRequest.create!(:sender => system_user, :receiver => self.user, :message_template => message_template_to_patron)
155
- request.save_message_body(:manifestations => Array[self.manifestation], :user => self.user)
156
- request.sm_send_message! # 期限切れ時は利用者にのみ即時送信
137
+ message_template_to_patron = MessageTemplate.localized_template('reservation_expired_for_patron', user.locale)
138
+ request = MessageRequest.create!(:sender => sender, :receiver => user, :message_template => message_template_to_patron)
139
+ request.save_message_body(:manifestations => Array[manifestation], :user => user)
140
+ request.sm_send_message!
157
141
  self.update_attribute(:expiration_notice_to_patron, true)
142
+ message_template_to_library = MessageTemplate.localized_template('reservation_expired_for_library', sender.locale)
143
+ request = MessageRequest.create!(:sender => sender, :receiver => sender, :message_template => message_template_to_library)
144
+ request.save_message_body(:manifestations => Array[manifestation], :user => sender)
145
+ request.sm_send_message!
146
+ when 'retained'
147
+ message_template_for_patron = MessageTemplate.localized_template('item_received_for_patron', user.locale)
148
+ request = MessageRequest.create!(:sender => sender, :receiver => user, :message_template => message_template_for_patron)
149
+ request.save_message_body(:manifestations => Array[item.manifestation], :user => user)
150
+ request.sm_send_message!
151
+ message_template_for_library = MessageTemplate.localized_template('item_received_for_library', user.locale)
152
+ request = MessageRequest.create!(:sender => sender, :receiver => sender, :message_template => message_template_for_library)
153
+ request.save_message_body(:manifestations => Array[item.manifestation], :user => user)
154
+ request.sm_send_message!
158
155
  else
159
156
  raise 'status not defined'
160
157
  end
@@ -162,18 +159,18 @@ class Reserve < ActiveRecord::Base
162
159
  end
163
160
 
164
161
  def self.send_message_to_library(status, options = {})
165
- system_user = User.find(1) # TODO: システムからのメッセージの発信者
162
+ sender = User.find(1) # TODO: システムからのメッセージの発信者
166
163
  case status
167
164
  when 'expired'
168
- message_template_to_library = MessageTemplate.localized_template('reservation_expired_for_library', system_user.locale)
169
- request = MessageRequest.create!(:sender => system_user, :receiver => system_user, :message_template => message_template_to_library)
165
+ message_template_to_library = MessageTemplate.localized_template('reservation_expired_for_library', sender.locale)
166
+ request = MessageRequest.create!(:sender => sender, :receiver => sender, :message_template => message_template_to_library)
170
167
  request.save_message_body(:manifestations => options[:manifestations])
171
168
  self.not_sent_expiration_notice_to_library.each do |reserve|
172
169
  reserve.update_attribute(:expiration_notice_to_library, true)
173
170
  end
174
171
  #when 'canceled'
175
- # message_template_to_library = MessageTemplate.localized_template('reservation_canceled_for_library', system_user.locale)
176
- # request = MessageRequest.create!(:sender => system_user, :receiver => system_user, :message_template => message_template_to_library)
172
+ # message_template_to_library = MessageTemplate.localized_template('reservation_canceled_for_library', sender.locale)
173
+ # request = MessageRequest.create!(:sender => sender, :receiver => sender, :message_template => message_template_to_library)
177
174
  # request.save_message_body(:manifestations => self.not_sent_expiration_notice_to_library.collect(&:manifestation))
178
175
  # self.not_sent_cancel_notice_to_library.each do |reserve|
179
176
  # reserve.update_attribute(:expiration_notice_to_library, true)
@@ -219,6 +216,37 @@ class Reserve < ActiveRecord::Base
219
216
  end
220
217
  end
221
218
  end
219
+
220
+ private
221
+ def retain
222
+ # TODO: 「取り置き中」の状態を正しく表す
223
+ self.update_attributes!({:request_status_type => RequestStatusType.where(:name => 'In Process').first, :checked_out_at => Time.zone.now})
224
+ end
225
+
226
+ def expire
227
+ self.update_attributes!({:request_status_type => RequestStatusType.where(:name => 'Expired').first, :canceled_at => Time.zone.now})
228
+ logger.info "#{Time.zone.now} reserve_id #{self.id} expired!"
229
+ reserve = next_reservation
230
+ if reserve
231
+ reserve.item = item
232
+ reserve.sm_retain!
233
+ reserve.send_message
234
+ end
235
+ end
236
+
237
+ def cancel
238
+ self.update_attributes!({:request_status_type => RequestStatusType.where(:name => 'Cannot Fulfill Request').first, :canceled_at => Time.zone.now})
239
+ reserve = next_reservation
240
+ if reserve
241
+ reserve.item = item
242
+ reserve.sm_retain!
243
+ reserve.send_message
244
+ end
245
+ end
246
+
247
+ def checkout
248
+ self.update_attributes!({:request_status_type => RequestStatusType.where(:name => 'Available For Pickup').first, :checked_out_at => Time.zone.now})
249
+ end
222
250
  end
223
251
 
224
252
  # == Schema Information
@@ -20,10 +20,14 @@
20
20
  <%= f.text_field :expired_at, :value => @reserve.expired_at.try(:strftime, "%Y-%m-%d"), :class => 'date_field', :placeholder => "#{t('page.example')}: 2011-04-12"-%>
21
21
  </div>
22
22
 
23
- <div class="field">
24
- <%= f.label t('activerecord.attributes.user.user_number') -%><br />
25
- <%= f.text_field :user_number, :class => 'resource_user_number' -%>
26
- </div>
23
+ <% if current_user.has_role?('Librarian') %>
24
+ <div class="field">
25
+ <%= f.label t('activerecord.attributes.user.user_number') -%><br />
26
+ <%= f.text_field :user_number, :class => 'resource_user_number' -%>
27
+ </div>
28
+ <% else %>
29
+ <%= f.hidden_field :user_number, :class => 'resource_user_number' -%>
30
+ <% end %>
27
31
 
28
32
  <div class="actions">
29
33
  <%= f.submit t('page.create') -%>
@@ -1,3 +1,3 @@
1
1
  module EnjuCirculation
2
- VERSION = "0.0.27"
2
+ VERSION = "0.0.28"
3
3
  end
@@ -239,9 +239,10 @@ describe CheckedItemsController do
239
239
 
240
240
  describe "When the item is reserved" do
241
241
  it "assigns a newly created checked_item as @checked_item" do
242
+ old_count = items(:item_00021).manifestation.reserves.waiting.count
242
243
  post :create, :checked_item => {:item_identifier => '00021'} , :basket_id => 11
243
244
  assigns(:checked_item).should be_valid
244
- assigns(:checked_item).item.manifestation.reserves.waiting.should be_empty
245
+ assigns(:checked_item).item.manifestation.reserves.waiting.count.should eq old_count - 1
245
246
  end
246
247
  end
247
248
 
@@ -2,124 +2,263 @@
2
2
  class Item < ActiveRecord::Base
3
3
  scope :on_shelf, where('shelf_id != 1')
4
4
  scope :on_web, where(:shelf_id => 1)
5
-
6
- scope :for_checkout, where('item_identifier IS NOT NULL')
7
- scope :not_for_checkout, where(:item_identifier => nil)
8
5
  has_one :exemplify
9
6
  has_one :manifestation, :through => :exemplify
10
- has_many :checkouts
11
- has_many :reserves
12
- has_many :reserved_patrons, :through => :reserves, :class_name => 'Patron'
13
- has_many :checked_items, :dependent => :destroy
14
- has_many :baskets, :through => :checked_items
15
- belongs_to :circulation_status, :validate => true
16
- belongs_to :checkout_type
17
- has_many :lending_policies, :dependent => :destroy
18
- has_one :item_has_use_restriction, :dependent => :destroy
19
- has_one :use_restriction, :through => :item_has_use_restriction
7
+ #has_many :owns
8
+ #has_many :patrons, :through => :owns
20
9
  belongs_to :shelf, :counter_cache => true, :validate => true
10
+ delegate :display_name, :to => :shelf, :prefix => true
11
+ belongs_to :bookstore, :validate => true
12
+ #has_many :donates
13
+ #has_many :donors, :through => :donates, :source => :patron
14
+ belongs_to :required_role, :class_name => 'Role', :foreign_key => 'required_role_id', :validate => true
15
+ #has_one :resource_import_result
16
+ belongs_to :budget_type
17
+
18
+ validates_associated :shelf, :bookstore
19
+ validates :manifestation_id, :presence => true, :on => :create
20
+ validates :item_identifier, :allow_blank => true, :uniqueness => true,
21
+ :format => {:with => /\A[0-9A-Za-z_]+\Z/}
22
+ validates :url, :url => true, :allow_blank => true, :length => {:maximum => 255}
23
+ validates_date :acquired_at, :allow_blank => true
24
+
25
+ normalize_attributes :item_identifier
21
26
 
22
- validates_associated :circulation_status, :checkout_type
23
- validates_presence_of :circulation_status, :checkout_type
24
- before_save :set_use_restriction
25
27
  searchable do
26
- integer :circulation_status_id
28
+ text :item_identifier, :note, :title #, :creator, :contributor, :publisher
29
+ string :item_identifier
30
+ string :library do
31
+ shelf.library.name if shelf
32
+ end
33
+ integer :required_role_id
34
+ integer :manifestation_id do
35
+ manifestation.id if manifestation
36
+ end
37
+ integer :shelf_id
38
+ #integer :patron_ids, :multiple => true
39
+ time :created_at
40
+ time :updated_at
27
41
  end
28
- attr_accessor :use_restriction_id
42
+
29
43
  attr_accessor :library_id, :manifestation_id
30
44
 
31
- def set_circulation_status
32
- self.circulation_status = CirculationStatus.where(:name => 'In Process').first if self.circulation_status.nil?
33
- end
45
+ if defined?(EnjuCirculation)
46
+ scope :for_checkout, where('item_identifier IS NOT NULL')
47
+ scope :not_for_checkout, where(:item_identifier => nil)
48
+ has_many :checkouts
49
+ has_many :reserves
50
+ has_many :reserved_patrons, :through => :reserves, :class_name => 'Patron'
51
+ has_many :checked_items, :dependent => :destroy
52
+ has_many :baskets, :through => :checked_items
53
+ belongs_to :circulation_status, :validate => true
54
+ belongs_to :checkout_type
55
+ has_many :lending_policies, :dependent => :destroy
56
+ has_one :item_has_use_restriction, :dependent => :destroy
57
+ has_one :use_restriction, :through => :item_has_use_restriction
58
+ validates_associated :circulation_status, :checkout_type
59
+ validates_presence_of :circulation_status, :checkout_type
60
+ before_save :set_use_restriction
61
+ searchable do
62
+ integer :circulation_status_id
63
+ end
64
+ attr_accessor :use_restriction_id
34
65
 
35
- def set_use_restriction
36
- if self.use_restriction_id
37
- self.use_restriction = UseRestriction.where(:id => self.use_restriction_id).first
38
- else
39
- return if use_restriction
40
- self.use_restriction = UseRestriction.where(:name => 'Limited Circulation, Normal Loan Period').first
66
+ def set_circulation_status
67
+ self.circulation_status = CirculationStatus.where(:name => 'In Process').first if self.circulation_status.nil?
68
+ end
69
+
70
+ def set_use_restriction
71
+ if self.use_restriction_id
72
+ self.use_restriction = UseRestriction.where(:id => self.use_restriction_id).first
73
+ else
74
+ return if use_restriction
75
+ self.use_restriction = UseRestriction.where(:name => 'Limited Circulation, Normal Loan Period').first
76
+ end
77
+ end
78
+
79
+ def checkout_status(user)
80
+ user.user_group.user_group_has_checkout_types.where(:checkout_type_id => self.checkout_type.id).first
81
+ end
82
+
83
+ def next_reservation
84
+ Reserve.waiting.where(:manifestation_id => self.manifestation.id).first
85
+ end
86
+
87
+ def reserved?
88
+ return true if self.next_reservation
89
+ false
90
+ end
91
+
92
+ def rent?
93
+ return true if self.checkouts.not_returned.select(:item_id).detect{|checkout| checkout.item_id == self.id}
94
+ false
95
+ end
96
+
97
+ def reserved_by_user?(user)
98
+ if self.next_reservation
99
+ return true if self.next_reservation.user == user
100
+ end
101
+ false
102
+ end
103
+
104
+ def available_for_checkout?
105
+ circulation_statuses = CirculationStatus.available_for_checkout.select(:id)
106
+ return true if circulation_statuses.include?(self.circulation_status)
107
+ false
108
+ end
109
+
110
+ def checkout!(user)
111
+ self.circulation_status = CirculationStatus.where(:name => 'On Loan').first
112
+ if self.reserved_by_user?(user)
113
+ self.next_reservation.update_attributes(:checked_out_at => Time.zone.now)
114
+ self.next_reservation.sm_complete!
115
+ end
116
+ save!
41
117
  end
42
- end
43
118
 
44
- def checkout_status(user)
45
- user.user_group.user_group_has_checkout_types.where(:checkout_type_id => self.checkout_type.id).first
119
+ def checkin!
120
+ self.circulation_status = CirculationStatus.where(:name => 'Available On Shelf').first
121
+ save(:validate => false)
122
+ end
123
+
124
+ def retain(librarian)
125
+ Item.transaction do
126
+ reservation = self.manifestation.next_reservation
127
+ unless reservation.nil?
128
+ reservation.item = self
129
+ reservation.sm_retain!
130
+ reservation.send_message(librarian)
131
+ end
132
+ end
133
+ end
134
+
135
+ def lending_rule(user)
136
+ lending_policies.where(:user_group_id => user.user_group.id).first
137
+ end
138
+
139
+ def not_for_loan?
140
+ if use_restriction.try(:name) == 'Not For Loan'
141
+ true
142
+ else
143
+ false
144
+ end
145
+ end
46
146
  end
47
147
 
48
- def next_reservation
49
- Reserve.waiting.where(:manifestation_id => self.manifestation.id).first
148
+ if defined?(EnjuInventory)
149
+ has_many :inventories, :dependent => :destroy
150
+ has_many :inventory_files, :through => :inventories
151
+ searchable do
152
+ integer :inventory_file_ids, :multiple => true
153
+ end
154
+
155
+ def self.inventory_items(inventory_file, mode = 'not_on_shelf')
156
+ item_ids = Item.select(:id).collect(&:id)
157
+ inventory_item_ids = inventory_file.items.select('items.id').collect(&:id)
158
+ case mode
159
+ when 'not_on_shelf'
160
+ Item.where(:id => (item_ids - inventory_item_ids))
161
+ when 'not_in_catalog'
162
+ Item.where(:id => (inventory_item_ids - item_ids))
163
+ end
164
+ rescue
165
+ nil
166
+ end
50
167
  end
51
168
 
52
- def reserved?
53
- return true if self.next_reservation
54
- false
169
+ if defined?(EnjuQuestion)
170
+ has_many :answer_has_items, :dependent => :destroy
171
+ has_many :answers, :through => :answer_has_items
55
172
  end
56
173
 
57
- def reservable_by?(user)
58
- if manifestation.is_reservable_by?(user)
59
- return false if ['Lost', 'Missing', 'Claimed Returned Or Never Borrowed'].include?(self.circulation_status.name)
60
- return false if self.item_identifier.blank?
61
- true
62
- else
63
- false
174
+ if defined?(EnjuInterLibraryLoan)
175
+ has_many :inter_library_loans, :dependent => :destroy
176
+ def inter_library_loaned?
177
+ true if self.inter_library_loans.size > 0
64
178
  end
65
179
  end
66
180
 
67
- def rent?
68
- return true if self.checkouts.not_returned.select(:item_id).detect{|checkout| checkout.item_id == self.id}
69
- false
181
+ def self.per_page
182
+ 10
70
183
  end
71
184
 
72
- def reserved_by_user?(user)
73
- if self.next_reservation
74
- return true if self.next_reservation.user == user
75
- end
76
- false
185
+ def title
186
+ manifestation.try(:original_title)
77
187
  end
78
188
 
79
- def available_for_checkout?
80
- circulation_statuses = CirculationStatus.available_for_checkout.select(:id)
81
- return true if circulation_statuses.include?(self.circulation_status)
82
- false
189
+ #def creator
190
+ # manifestation.try(:creator)
191
+ #end
192
+
193
+ #def contributor
194
+ # manifestation.try(:contributor)
195
+ #end
196
+
197
+ #def publisher
198
+ # manifestation.try(:publisher)
199
+ #end
200
+
201
+ def shelf_name
202
+ shelf.name
83
203
  end
84
204
 
85
- def checkout!(user)
86
- self.circulation_status = CirculationStatus.where(:name => 'On Loan').first
87
- if self.reserved_by_user?(user)
88
- self.next_reservation.update_attributes(:checked_out_at => Time.zone.now)
89
- self.next_reservation.sm_complete!
90
- end
91
- save!
205
+ def hold?(library)
206
+ return true if self.shelf.library == library
207
+ false
92
208
  end
93
209
 
94
- def checkin!
95
- self.circulation_status = CirculationStatus.where(:name => 'Available On Shelf').first
96
- save(:validate => false)
210
+ def owned(patron)
211
+ owns.where(:patron_id => patron.id).first
97
212
  end
98
213
 
99
- def retain(librarian)
100
- Item.transaction do
101
- reservation = self.manifestation.next_reservation
102
- unless reservation.nil?
103
- reservation.item = self
104
- reservation.sm_retain!
105
- reservation.update_attributes({:request_status_type => RequestStatusType.where(:name => 'In Process').first})
106
- request = MessageRequest.new(:sender_id => librarian.id, :receiver_id => reservation.user_id)
107
- message_template = MessageTemplate.localized_template('item_received', reservation.user.locale)
108
- request.message_template = message_template
109
- request.save!
110
- end
111
- end
214
+ def library_url
215
+ "#{LibraryGroup.site_config.url}libraries/#{self.shelf.library.name}"
112
216
  end
113
217
 
114
- def lending_rule(user)
115
- lending_policies.where(:user_group_id => user.user_group.id).first
218
+ def manifestation_url
219
+ Addressable::URI.parse("#{LibraryGroup.site_config.url}manifestations/#{self.manifestation.id}").normalize.to_s if self.manifestation
116
220
  end
117
221
 
118
- def not_for_loan?
119
- if use_restriction.try(:name) == 'Not For Loan'
120
- true
222
+ def deletable?
223
+ if circulation_status.name == 'Removed'
224
+ return false
121
225
  else
122
- false
226
+ if defined?(EnjuCirculation)
227
+ checkouts.not_returned.empty?
228
+ else
229
+ true
230
+ end
123
231
  end
124
232
  end
125
233
  end
234
+
235
+
236
+ # == Schema Information
237
+ #
238
+ # Table name: items
239
+ #
240
+ # id :integer not null, primary key
241
+ # call_number :string(255)
242
+ # item_identifier :string(255)
243
+ # circulation_status_id :integer default(5), not null
244
+ # checkout_type_id :integer default(1), not null
245
+ # created_at :datetime not null
246
+ # updated_at :datetime not null
247
+ # deleted_at :datetime
248
+ # shelf_id :integer default(1), not null
249
+ # include_supplements :boolean default(FALSE), not null
250
+ # checkouts_count :integer default(0), not null
251
+ # owns_count :integer default(0), not null
252
+ # note :text
253
+ # url :string(255)
254
+ # price :integer
255
+ # lock_version :integer default(0), not null
256
+ # required_role_id :integer default(1), not null
257
+ # state :string(255)
258
+ # required_score :integer default(0), not null
259
+ # acquired_at :datetime
260
+ # bookstore_id :integer
261
+ # missing_since :datetime
262
+ # budget_type_id :integer
263
+ #
264
+
@@ -16,9 +16,9 @@ class CreateManifestations < ActiveRecord::Migration
16
16
  t.integer :extent_id, :default => 1, :null => false
17
17
  t.integer :start_page
18
18
  t.integer :end_page
19
- t.decimal :height
20
- t.decimal :width
21
- t.decimal :depth
19
+ t.integer :height
20
+ t.integer :width
21
+ t.integer :depth
22
22
  t.string :isbn
23
23
  t.string :isbn10
24
24
  t.string :wrong_isbn
@@ -0,0 +1,9 @@
1
+ class AddAcquiredAtToItem < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :items, :acquired_at, :timestamp
4
+ end
5
+
6
+ def self.down
7
+ remove_column :items, :acquired_at
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ class AddVolumeNumberToManifestation < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :manifestations, :volume_number, :integer
4
+ add_column :manifestations, :issue_number, :integer
5
+ add_column :manifestations, :serial_number, :integer
6
+ end
7
+
8
+ def self.down
9
+ remove_column :manifestations, :serial_number
10
+ remove_column :manifestations, :issue_number
11
+ remove_column :manifestations, :volume_number
12
+ end
13
+ end
@@ -217,6 +217,7 @@ ActiveRecord::Schema.define(:version => 20120224094141) do
217
217
  t.integer "required_role_id", :default => 1, :null => false
218
218
  t.string "state"
219
219
  t.integer "required_score", :default => 0, :null => false
220
+ t.datetime "acquired_at"
220
221
  end
221
222
 
222
223
  add_index "items", ["checkout_type_id"], :name => "index_items_on_checkout_type_id"
@@ -349,9 +350,9 @@ ActiveRecord::Schema.define(:version => 20120224094141) do
349
350
  t.integer "extent_id", :default => 1, :null => false
350
351
  t.integer "start_page"
351
352
  t.integer "end_page"
352
- t.decimal "height"
353
- t.decimal "width"
354
- t.decimal "depth"
353
+ t.integer "height"
354
+ t.integer "width"
355
+ t.integer "depth"
355
356
  t.string "isbn"
356
357
  t.string "isbn10"
357
358
  t.string "wrong_isbn"
@@ -377,6 +378,9 @@ ActiveRecord::Schema.define(:version => 20120224094141) do
377
378
  t.integer "required_score", :default => 0, :null => false
378
379
  t.integer "frequency_id", :default => 1, :null => false
379
380
  t.boolean "subscription_master", :default => false, :null => false
381
+ t.integer "volume_number"
382
+ t.integer "issue_number"
383
+ t.integer "serial_number"
380
384
  end
381
385
 
382
386
  add_index "manifestations", ["access_address"], :name => "index_manifestations_on_access_address"
Binary file
@@ -62,7 +62,6 @@ checkout_00006:
62
62
  id: 6
63
63
  librarian_id: 2
64
64
  checkout_renewal_count: 0
65
- due_date: <%= 2.day.from_now.beginning_of_day %>
66
65
  due_date: 2010-09-15 00:00:00 +09:00
67
66
  created_at: 2007-09-08 01:39:03.210081 +09:00
68
67
  checkout_00007:
@@ -5,6 +5,7 @@ exemplify_00001:
5
5
  manifestation_id: 1
6
6
  id: 1
7
7
  created_at: 2008-01-11 23:28:19.277110 +09:00
8
+ position: 1
8
9
  exemplify_00002:
9
10
  updated_at: 2008-01-11 23:28:57.068191 +09:00
10
11
  item_id: 2
@@ -23,6 +24,7 @@ exemplify_00004:
23
24
  manifestation_id: 1
24
25
  id: 4
25
26
  created_at: 2008-01-11 02:34:20.183962 +09:00
27
+ position: 2
26
28
  exemplify_00005:
27
29
  updated_at: 2008-01-11 02:34:32.352223 +09:00
28
30
  item_id: 5
@@ -125,6 +127,12 @@ exemplify_00021:
125
127
  manifestation_id: 11
126
128
  id: 21
127
129
  created_at: 2008-01-11 02:44:37.135721 +09:00
130
+ exemplify_00022:
131
+ updated_at: 2008-01-11 02:44:37.135721 +09:00
132
+ item_id: 22
133
+ manifestation_id: 11
134
+ id: 22
135
+ created_at: 2008-01-11 02:44:37.135721 +09:00
128
136
 
129
137
  # == Schema Information
130
138
  #
@@ -209,10 +209,16 @@ item_00021:
209
209
  id: 21
210
210
  include_supplements: false
211
211
  created_at: 2007-08-24 23:46:20.484813 +09:00
212
-
213
-
214
-
215
-
212
+ item_00022:
213
+ updated_at: 2007-08-24 23:46:20.484813 +09:00
214
+ item_identifier: '00022'
215
+ circulation_status_id: 2
216
+ checkout_type_id: 3
217
+ shelf_id: 1
218
+ call_number:
219
+ id: 22
220
+ include_supplements: false
221
+ created_at: 2007-08-24 23:46:20.484813 +09:00
216
222
 
217
223
 
218
224
  # == Schema Information
@@ -1712,6 +1712,9 @@ manifestation_00202:
1712
1712
  created_at: 2007-11-19 17:55:41 UTC
1713
1713
  frequency_id: 3
1714
1714
  issn: 12345678
1715
+ serial_number: 2
1716
+ volume_number: 1
1717
+ issue_number: 2
1715
1718
  manifestation_00203:
1716
1719
  carrier_type_id: 1
1717
1720
  language_id: 1
@@ -1958,8 +1961,8 @@ manifestation_00216:
1958
1961
  # manifestation_identifier :string(255)
1959
1962
  # date_of_publication :datetime
1960
1963
  # date_copyrighted :datetime
1961
- # created_at :datetime
1962
- # updated_at :datetime
1964
+ # created_at :datetime not null
1965
+ # updated_at :datetime not null
1963
1966
  # deleted_at :datetime
1964
1967
  # access_address :string(255)
1965
1968
  # language_id :integer default(1), not null
@@ -1967,9 +1970,9 @@ manifestation_00216:
1967
1970
  # extent_id :integer default(1), not null
1968
1971
  # start_page :integer
1969
1972
  # end_page :integer
1970
- # height :decimal(, )
1971
- # width :decimal(, )
1972
- # depth :decimal(, )
1973
+ # height :integer
1974
+ # width :integer
1975
+ # depth :integer
1973
1976
  # isbn :string(255)
1974
1977
  # isbn10 :string(255)
1975
1978
  # wrong_isbn :string(255)
@@ -2006,12 +2009,16 @@ manifestation_00216:
2006
2009
  # date_accepted :datetime
2007
2010
  # date_caputured :datetime
2008
2011
  # ndl_bib_id :string(255)
2009
- # file_hash :string(255)
2010
2012
  # pub_date :string(255)
2011
2013
  # edition_string :string(255)
2012
2014
  # volume_number :integer
2013
2015
  # issue_number :integer
2014
2016
  # serial_number :integer
2015
2017
  # ndc :string(255)
2018
+ # content_type_id :integer default(1)
2019
+ # year_of_publication :integer
2020
+ # attachment_fingerprint :string(255)
2021
+ # attachment_meta :text
2022
+ # month_of_publication :integer
2016
2023
  #
2017
2024
 
@@ -1,65 +1,70 @@
1
1
  message_template_00001:
2
2
  id: 1
3
- status: reservation_accepted
3
+ status: reservation_accepted_for_patron
4
4
  title: Reservation accepted
5
5
  body: Reservation accepted
6
6
  position: 1
7
+ locale: ja
7
8
  message_template_00002:
8
9
  id: 2
9
- status: item_received
10
+ status: item_received_for_patron
10
11
  title: Item received
11
12
  body: Item received
12
13
  position: 2
14
+ locale: ja
13
15
  message_template_00003:
14
16
  id: 3
15
17
  status: reservation_expired_for_patron
16
18
  title: Reservation expired
17
19
  body: Reservation expired
18
20
  position: 3
21
+ locale: ja
19
22
  message_template_00004:
20
23
  id: 4
21
24
  status: reservation_expired_for_library
22
25
  title: Reservation expired
23
26
  body: Reservation expired
24
27
  position: 4
28
+ locale: ja
25
29
  message_template_00005:
26
30
  id: 5
27
31
  status: reservation_canceled_for_patron
28
32
  title: Reservation canceled
29
33
  body: Reservation canceled
30
34
  position: 5
35
+ locale: ja
31
36
  message_template_00006:
32
37
  id: 6
33
38
  status: reservation_canceled_for_library
34
39
  title: Reservation canceled
35
40
  body: Reservation canceled
36
41
  position: 6
42
+ locale: ja
37
43
  message_template_00007:
38
44
  id: 7
39
45
  status: recall_item
40
46
  title: Recall item
41
47
  body: Recall item
42
48
  position: 7
49
+ locale: ja
43
50
  message_template_00008:
44
51
  id: 8
45
52
  status: recall_overdue_item
46
53
  title: Recall overdue item
47
54
  body: Recall overdue item
48
55
  position: 8
49
-
50
-
51
-
52
- # == Schema Information
53
- #
54
- # Table name: message_templates
55
- #
56
- # id :integer not null, primary key
57
- # status :string(255) not null
58
- # title :text not null
59
- # body :text not null
60
- # position :integer
61
- # created_at :datetime
62
- # updated_at :datetime
63
- # locale :string(255) default("ja")
64
- #
65
-
56
+ locale: ja
57
+ message_template_00009:
58
+ id: 9
59
+ status: reservation_accepted_for_library
60
+ title: Reservation accepted
61
+ body: Reservation accepted
62
+ position: 9
63
+ locale: ja
64
+ message_template_00010:
65
+ id: 10
66
+ status: item_received_for_library
67
+ title: Item received
68
+ body: Item received
69
+ position: 10
70
+ locale: ja
@@ -117,6 +117,25 @@ reserve_00013:
117
117
  created_at: 2007-09-01 14:20:05.530854 +09:00
118
118
  expired_at: <%= 1.day.ago %>
119
119
  state: requested
120
+ reserve_00014:
121
+ updated_at: 2007-09-01 14:20:05.530854 +09:00
122
+ manifestation_id: 11
123
+ user_id: 4
124
+ request_status_type_id: 3
125
+ id: 14
126
+ created_at: 2007-09-01 14:20:05.530854 +09:00
127
+ expired_at: <%= 1.day.from_now %>
128
+ state: retained
129
+ item_id: 21
130
+ reserve_00015:
131
+ updated_at: 2007-09-01 14:20:05.530854 +09:00
132
+ manifestation_id: 11
133
+ user_id: 4
134
+ request_status_type_id: 3
135
+ id: 15
136
+ created_at: 2007-09-01 14:20:05.530854 +09:00
137
+ expired_at: <%= 1.day.from_now %>
138
+ state: requested
120
139
 
121
140
  # == Schema Information
122
141
  #
@@ -5,16 +5,25 @@ describe Reserve do
5
5
  fixtures :all
6
6
 
7
7
  it "should have next reservation" do
8
- reserves(:reserve_00001).next_reservation.should be_true
8
+ reserves(:reserve_00014).next_reservation.should be_true
9
+ end
10
+
11
+ it "should notify a next reservation" do
12
+ old_count = Message.count
13
+ reserve = reserves(:reserve_00014)
14
+ reserve.sm_expire!
15
+ reserve.state.should eq 'expired'
16
+ reserve.next_reservation.item.should eq reserve.item
17
+ Message.count.should eq old_count + 2
9
18
  end
10
19
 
11
20
  it "should expire reservation" do
12
- reserves(:reserve_00001).expire
21
+ reserves(:reserve_00001).sm_expire!
13
22
  reserves(:reserve_00001).request_status_type.name.should eq 'Expired'
14
23
  end
15
24
 
16
25
  it "should cancel reservation" do
17
- reserves(:reserve_00001).cancel
26
+ reserves(:reserve_00001).sm_cancel!
18
27
  reserves(:reserve_00001).canceled_at.should be_true
19
28
  reserves(:reserve_00001).request_status_type.name.should eq 'Cannot Fulfill Request'
20
29
  end
@@ -26,7 +35,7 @@ describe Reserve do
26
35
  it "should send accepted message" do
27
36
  old_admin_count = User.find('admin').received_messages.count
28
37
  old_user_count = reserves(:reserve_00002).user.received_messages.count
29
- reserves(:reserve_00002).send_message('accepted').should be_true
38
+ reserves(:reserve_00002).send_message.should be_true
30
39
  # 予約者と図書館の両方に送られる
31
40
  User.find('admin').received_messages.count.should eq old_admin_count + 1
32
41
  reserves(:reserve_00002).user.received_messages.count.should eq old_user_count + 1
@@ -34,8 +43,8 @@ describe Reserve do
34
43
 
35
44
  it "should send expired message" do
36
45
  old_count = MessageRequest.count
37
- reserves(:reserve_00002).send_message('expired').should be_true
38
- MessageRequest.count.should eq old_count + 1
46
+ reserves(:reserve_00006).send_message.should be_true
47
+ MessageRequest.count.should eq old_count + 2
39
48
  end
40
49
 
41
50
  it "should send message to library" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: enju_circulation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.27
4
+ version: 0.0.28
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-20 00:00:00.000000000 Z
12
+ date: 2012-04-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70223734698380 !ruby/object:Gem::Requirement
16
+ requirement: &70274896189320 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.2'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70223734698380
24
+ version_requirements: *70274896189320
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: simple_form
27
- requirement: &70223734697500 !ruby/object:Gem::Requirement
27
+ requirement: &70274896188900 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70223734697500
35
+ version_requirements: *70274896188900
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: devise
38
- requirement: &70223734696600 !ruby/object:Gem::Requirement
38
+ requirement: &70274896188380 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70223734696600
46
+ version_requirements: *70274896188380
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: cancan
49
- requirement: &70223734695740 !ruby/object:Gem::Requirement
49
+ requirement: &70274896187860 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70223734695740
57
+ version_requirements: *70274896187860
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: validates_timeliness
60
- requirement: &70223734694480 !ruby/object:Gem::Requirement
60
+ requirement: &70274896187300 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70223734694480
68
+ version_requirements: *70274896187300
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: attribute_normalizer
71
- requirement: &70223734709580 !ruby/object:Gem::Requirement
71
+ requirement: &70274896186560 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '1.1'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *70223734709580
79
+ version_requirements: *70274896186560
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: inherited_resources
82
- requirement: &70223734709060 !ruby/object:Gem::Requirement
82
+ requirement: &70274896185940 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *70223734709060
90
+ version_requirements: *70274896185940
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: state_machine
93
- requirement: &70223734708200 !ruby/object:Gem::Requirement
93
+ requirement: &70274896185480 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :runtime
100
100
  prerelease: false
101
- version_requirements: *70223734708200
101
+ version_requirements: *70274896185480
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: friendly_id
104
- requirement: &70223734706920 !ruby/object:Gem::Requirement
104
+ requirement: &70274896184820 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '4.0'
110
110
  type: :runtime
111
111
  prerelease: false
112
- version_requirements: *70223734706920
112
+ version_requirements: *70274896184820
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: sunspot_rails
115
- requirement: &70223734706280 !ruby/object:Gem::Requirement
115
+ requirement: &70274896184220 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: '0'
121
121
  type: :runtime
122
122
  prerelease: false
123
- version_requirements: *70223734706280
123
+ version_requirements: *70274896184220
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: sunspot_solr
126
- requirement: &70223734705400 !ruby/object:Gem::Requirement
126
+ requirement: &70274896183620 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ! '>='
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: '0'
132
132
  type: :runtime
133
133
  prerelease: false
134
- version_requirements: *70223734705400
134
+ version_requirements: *70274896183620
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: will_paginate
137
- requirement: &70223734704900 !ruby/object:Gem::Requirement
137
+ requirement: &70274896199100 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ~>
@@ -142,32 +142,32 @@ dependencies:
142
142
  version: '3.0'
143
143
  type: :runtime
144
144
  prerelease: false
145
- version_requirements: *70223734704900
145
+ version_requirements: *70274896199100
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: acts_as_list
148
- requirement: &70223734704380 !ruby/object:Gem::Requirement
148
+ requirement: &70274896198540 !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
151
151
  - - ~>
152
152
  - !ruby/object:Gem::Version
153
- version: 0.1.5
153
+ version: 0.1.6
154
154
  type: :runtime
155
155
  prerelease: false
156
- version_requirements: *70223734704380
156
+ version_requirements: *70274896198540
157
157
  - !ruby/object:Gem::Dependency
158
158
  name: enju_message
159
- requirement: &70223734703800 !ruby/object:Gem::Requirement
159
+ requirement: &70274896198040 !ruby/object:Gem::Requirement
160
160
  none: false
161
161
  requirements:
162
162
  - - ~>
163
163
  - !ruby/object:Gem::Version
164
- version: 0.0.13
164
+ version: 0.0.17
165
165
  type: :runtime
166
166
  prerelease: false
167
- version_requirements: *70223734703800
167
+ version_requirements: *70274896198040
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: enju_event
170
- requirement: &70223734703160 !ruby/object:Gem::Requirement
170
+ requirement: &70274896197380 !ruby/object:Gem::Requirement
171
171
  none: false
172
172
  requirements:
173
173
  - - ! '>='
@@ -175,10 +175,10 @@ dependencies:
175
175
  version: 0.0.12
176
176
  type: :runtime
177
177
  prerelease: false
178
- version_requirements: *70223734703160
178
+ version_requirements: *70274896197380
179
179
  - !ruby/object:Gem::Dependency
180
180
  name: sqlite3
181
- requirement: &70223734702660 !ruby/object:Gem::Requirement
181
+ requirement: &70274896196820 !ruby/object:Gem::Requirement
182
182
  none: false
183
183
  requirements:
184
184
  - - ! '>='
@@ -186,10 +186,10 @@ dependencies:
186
186
  version: '0'
187
187
  type: :development
188
188
  prerelease: false
189
- version_requirements: *70223734702660
189
+ version_requirements: *70274896196820
190
190
  - !ruby/object:Gem::Dependency
191
191
  name: rspec-rails
192
- requirement: &70223734726340 !ruby/object:Gem::Requirement
192
+ requirement: &70274896196140 !ruby/object:Gem::Requirement
193
193
  none: false
194
194
  requirements:
195
195
  - - ! '>='
@@ -197,10 +197,10 @@ dependencies:
197
197
  version: '0'
198
198
  type: :development
199
199
  prerelease: false
200
- version_requirements: *70223734726340
200
+ version_requirements: *70274896196140
201
201
  - !ruby/object:Gem::Dependency
202
202
  name: factory_girl_rails
203
- requirement: &70223734725500 !ruby/object:Gem::Requirement
203
+ requirement: &70274896195360 !ruby/object:Gem::Requirement
204
204
  none: false
205
205
  requirements:
206
206
  - - ~>
@@ -208,10 +208,10 @@ dependencies:
208
208
  version: '3.1'
209
209
  type: :development
210
210
  prerelease: false
211
- version_requirements: *70223734725500
211
+ version_requirements: *70274896195360
212
212
  - !ruby/object:Gem::Dependency
213
213
  name: sunspot-rails-tester
214
- requirement: &70223734723740 !ruby/object:Gem::Requirement
214
+ requirement: &70274896194720 !ruby/object:Gem::Requirement
215
215
  none: false
216
216
  requirements:
217
217
  - - ! '>='
@@ -219,7 +219,7 @@ dependencies:
219
219
  version: '0'
220
220
  type: :development
221
221
  prerelease: false
222
- version_requirements: *70223734723740
222
+ version_requirements: *70274896194720
223
223
  description: Circulation management for Next-L Enju
224
224
  email:
225
225
  - tanabe@mwr.mediacom.keio.ac.jp
@@ -525,9 +525,11 @@ files:
525
525
  - spec/dummy/db/migrate/20081025083905_create_languages.rb
526
526
  - spec/dummy/db/migrate/20100211105551_add_admin_networks_to_library_group.rb
527
527
  - spec/dummy/db/migrate/20100222124420_add_allow_bookmark_external_url_to_library_group.rb
528
+ - spec/dummy/db/migrate/20101212070145_add_acquired_at_to_item.rb
528
529
  - spec/dummy/db/migrate/20110115022329_add_position_to_library_group.rb
529
530
  - spec/dummy/db/migrate/20110222073537_add_url_to_library_group.rb
530
531
  - spec/dummy/db/migrate/20110913115320_add_lft_and_rgt_to_message.rb
532
+ - spec/dummy/db/migrate/20110916091020_add_volume_number_to_manifestation.rb
531
533
  - spec/dummy/db/migrate/20111020063828_remove_dsbl_from_library_group.rb
532
534
  - spec/dummy/db/migrate/20111201121844_create_roles.rb
533
535
  - spec/dummy/db/migrate/20111201155456_create_users.rb
@@ -755,9 +757,11 @@ test_files:
755
757
  - spec/dummy/db/migrate/20081025083905_create_languages.rb
756
758
  - spec/dummy/db/migrate/20100211105551_add_admin_networks_to_library_group.rb
757
759
  - spec/dummy/db/migrate/20100222124420_add_allow_bookmark_external_url_to_library_group.rb
760
+ - spec/dummy/db/migrate/20101212070145_add_acquired_at_to_item.rb
758
761
  - spec/dummy/db/migrate/20110115022329_add_position_to_library_group.rb
759
762
  - spec/dummy/db/migrate/20110222073537_add_url_to_library_group.rb
760
763
  - spec/dummy/db/migrate/20110913115320_add_lft_and_rgt_to_message.rb
764
+ - spec/dummy/db/migrate/20110916091020_add_volume_number_to_manifestation.rb
761
765
  - spec/dummy/db/migrate/20111020063828_remove_dsbl_from_library_group.rb
762
766
  - spec/dummy/db/migrate/20111201121844_create_roles.rb
763
767
  - spec/dummy/db/migrate/20111201155456_create_users.rb