enju_circulation 0.0.27 → 0.0.28

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.
@@ -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