enju_circulation 0.0.30 → 0.0.31

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.
@@ -42,6 +42,11 @@ class CheckinsController < ApplicationController
42
42
  @checkin = Checkin.new
43
43
  @checkins = []
44
44
  flash[:checkin_basket_id] = @basket.id
45
+
46
+ respond_to do |format|
47
+ format.html # new.html.erb
48
+ format.json { render :json => @checkin }
49
+ end
45
50
  end
46
51
 
47
52
  # GET /checkins/1/edit
@@ -20,16 +20,16 @@ class CheckedItem < ActiveRecord::Base
20
20
  return false
21
21
  end
22
22
 
23
- if self.item.rent?
23
+ if item.rent?
24
24
  errors[:base] << I18n.t('activerecord.errors.messages.checked_item.already_checked_out')
25
25
  end
26
26
 
27
- unless self.item.available_for_checkout?
27
+ unless item.available_for_checkout?
28
28
  errors[:base] << I18n.t('activerecord.errors.messages.checked_item.not_available_for_checkout')
29
29
  return false
30
30
  end
31
31
 
32
- if self.item_checkout_type.blank?
32
+ if item_checkout_type.blank?
33
33
  errors[:base] << I18n.t('activerecord.errors.messages.checked_item.this_group_cannot_checkout')
34
34
  return false
35
35
  end
@@ -37,15 +37,11 @@ class CheckedItem < ActiveRecord::Base
37
37
 
38
38
  return true if self.ignore_restriction == "1"
39
39
 
40
- if self.item.not_for_loan?
40
+ if item.not_for_loan?
41
41
  errors[:base] << I18n.t('activerecord.errors.messages.checked_item.not_available_for_checkout')
42
42
  end
43
43
 
44
- if self.in_transaction?
45
- errors[:base] << I18n.t('activerecord.errors.messages.checked_item.in_transcation')
46
- end
47
-
48
- if self.item.reserved?
44
+ if item.reserved?
49
45
  if self.item.manifestation.next_reservation.user == self.basket.user
50
46
  self.item.manifestation.next_reservation.sm_complete
51
47
  else
@@ -98,21 +94,18 @@ class CheckedItem < ActiveRecord::Base
98
94
  end
99
95
  return self.due_date
100
96
  end
101
-
102
- def in_transaction?
103
- true if CheckedItem.where(:basket_id => self.basket.id, :item_id => self.item_id).first
104
- end
105
97
  end
106
98
 
107
99
  # == Schema Information
108
100
  #
109
101
  # Table name: checked_items
110
102
  #
111
- # id :integer not null, primary key
112
- # item_id :integer not null
113
- # basket_id :integer not null
114
- # due_date :datetime not null
115
- # created_at :datetime
116
- # updated_at :datetime
103
+ # id :integer not null, primary key
104
+ # item_id :integer not null
105
+ # basket_id :integer not null
106
+ # due_date :datetime not null
107
+ # created_at :datetime not null
108
+ # updated_at :datetime not null
109
+ # librarian_id :integer
117
110
  #
118
111
 
@@ -1,3 +1,3 @@
1
1
  module EnjuCirculation
2
- VERSION = "0.0.30"
2
+ VERSION = "0.0.31"
3
3
  end
@@ -228,14 +228,6 @@ describe CheckedItemsController do
228
228
  end
229
229
  end
230
230
 
231
- describe "When the item is in transaction" do
232
- it "assigns a newly created checked_item as @checked_item" do
233
- post :create, :checked_item => {:item_identifier => '00006'} , :basket_id => 9
234
- assigns(:checked_item).should_not be_valid
235
- assigns(:checked_item).errors[:base].include?(I18n.t('activerecord.errors.messages.checked_item.in_transcation')).should be_true
236
- end
237
- end
238
-
239
231
  describe "When the item is reserved" do
240
232
  it "assigns a newly created checked_item as @checked_item" do
241
233
  old_count = items(:item_00021).manifestation.reserves.waiting.count
@@ -286,7 +278,7 @@ describe CheckedItemsController do
286
278
  flash[:message].index(I18n.t('item.this_item_include_supplement')).should be_true
287
279
  end
288
280
 
289
- it "should create checked_item when ignore_restrictoin is checked" do
281
+ it "should create checked_item when ignore_restriction is checked" do
290
282
  post :create, :checked_item => {:item_identifier => '00011', :ignore_restriction => "1"}, :basket_id => 2
291
283
  assigns(:checked_item).due_date.should_not be_nil
292
284
  response.should redirect_to basket_checked_items_url(assigns(:checked_item).basket)
@@ -44,12 +44,28 @@ class Item < ActiveRecord::Base
44
44
  attr_accessor :library_id, :manifestation_id
45
45
 
46
46
  if defined?(EnjuCirculation)
47
- FOR_CHECKOUT = [
47
+ FOR_CHECKOUT_CIRCULATION_STATUS = [
48
48
  'Available On Shelf',
49
49
  'On Loan',
50
50
  'Waiting To Be Reshelved'
51
51
  ]
52
- scope :for_checkout, includes(:circulation_status).where('circulation_statuses.name' => FOR_CHECKOUT).where('item_identifier IS NOT NULL')
52
+ FOR_CHECKOUT_USE_RESTRICTION = [
53
+ 'Available For Supply Without Return',
54
+ 'Limited Circulation, Long Loan Period',
55
+ 'Limited Circulation, Short Loan Period',
56
+ 'No Reproduction',
57
+ 'Overnight Only',
58
+ 'Renewals Not Permitted',
59
+ 'Supervision Required',
60
+ 'Term Loan',
61
+ 'User Signature Required',
62
+ 'Limited Circulation, Normal Loan Period'
63
+ ]
64
+ scope :for_checkout, includes(:circulation_status, :use_restriction)
65
+ .where(
66
+ 'circulation_statuses.name' => FOR_CHECKOUT_CIRCULATION_STATUS,
67
+ 'use_restrictions.name' => FOR_CHECKOUT_USE_RESTRICTION
68
+ ).where('item_identifier IS NOT NULL')
53
69
  scope :removed, includes(:circulation_status).where('circulation_statuses.name' => 'Removed')
54
70
  has_many :checkouts
55
71
  has_many :reserves
@@ -104,9 +120,11 @@ class Item < ActiveRecord::Base
104
120
  end
105
121
 
106
122
  def available_for_checkout?
107
- circulation_statuses = CirculationStatus.available_for_checkout.select(:id)
108
- return true if circulation_statuses.include?(self.circulation_status)
109
- false
123
+ if circulation_status.name == 'On Loan'
124
+ false
125
+ else
126
+ manifestation.items.for_checkout.include?(self)
127
+ end
110
128
  end
111
129
 
112
130
  def checkout!(user)
@@ -139,11 +157,7 @@ class Item < ActiveRecord::Base
139
157
  end
140
158
 
141
159
  def not_for_loan?
142
- if use_restriction.try(:name) == 'Not For Loan'
143
- true
144
- else
145
- false
146
- end
160
+ !manifestation.items.for_checkout.include?(self)
147
161
  end
148
162
  end
149
163
 
Binary file
Binary file
@@ -24,11 +24,12 @@ checked_item_00004:
24
24
  #
25
25
  # Table name: checked_items
26
26
  #
27
- # id :integer not null, primary key
28
- # item_id :integer not null
29
- # basket_id :integer not null
30
- # due_date :datetime not null
31
- # created_at :datetime
32
- # updated_at :datetime
27
+ # id :integer not null, primary key
28
+ # item_id :integer not null
29
+ # basket_id :integer not null
30
+ # due_date :datetime not null
31
+ # created_at :datetime not null
32
+ # updated_at :datetime not null
33
+ # librarian_id :integer
33
34
  #
34
35
 
@@ -23,6 +23,24 @@ item_has_use_restriction_00004:
23
23
  id: 4
24
24
  use_restriction_id: 6
25
25
  created_at: 2008-02-13 12:29:36.013448 +09:00
26
+ item_has_use_restriction_00005:
27
+ item_id: 21
28
+ updated_at: 2008-02-13 12:29:36.013448 +09:00
29
+ id: 5
30
+ use_restriction_id: 6
31
+ created_at: 2008-02-13 12:29:36.013448 +09:00
32
+ item_has_use_restriction_00006:
33
+ item_id: 11
34
+ updated_at: 2008-02-13 12:29:36.013448 +09:00
35
+ id: 6
36
+ use_restriction_id: 6
37
+ created_at: 2008-02-13 12:29:36.013448 +09:00
38
+ item_has_use_restriction_00007:
39
+ item_id: 6
40
+ updated_at: 2008-02-13 12:29:36.013448 +09:00
41
+ id: 7
42
+ use_restriction_id: 6
43
+ created_at: 2008-02-13 12:29:36.013448 +09:00
26
44
 
27
45
  # == Schema Information
28
46
  #
@@ -13,11 +13,12 @@ end
13
13
  #
14
14
  # Table name: checked_items
15
15
  #
16
- # id :integer not null, primary key
17
- # item_id :integer not null
18
- # basket_id :integer not null
19
- # due_date :datetime not null
20
- # created_at :datetime
21
- # updated_at :datetime
16
+ # id :integer not null, primary key
17
+ # item_id :integer not null
18
+ # basket_id :integer not null
19
+ # due_date :datetime not null
20
+ # created_at :datetime not null
21
+ # updated_at :datetime not null
22
+ # librarian_id :integer
22
23
  #
23
24
 
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.30
4
+ version: 0.0.31
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-24 00:00:00.000000000 Z
12
+ date: 2012-04-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70197927031940 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: '3.2'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70197927031940
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '3.2'
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: simple_form
27
- requirement: &70197927031520 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '0'
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *70197927031520
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: devise
38
- requirement: &70197927031060 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '0'
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *70197927031060
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: cancan
49
- requirement: &70197927030640 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,10 +69,15 @@ dependencies:
54
69
  version: '0'
55
70
  type: :runtime
56
71
  prerelease: false
57
- version_requirements: *70197927030640
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
58
78
  - !ruby/object:Gem::Dependency
59
79
  name: validates_timeliness
60
- requirement: &70197927030220 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
61
81
  none: false
62
82
  requirements:
63
83
  - - ! '>='
@@ -65,10 +85,15 @@ dependencies:
65
85
  version: '0'
66
86
  type: :runtime
67
87
  prerelease: false
68
- version_requirements: *70197927030220
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
69
94
  - !ruby/object:Gem::Dependency
70
95
  name: attribute_normalizer
71
- requirement: &70197927029720 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
72
97
  none: false
73
98
  requirements:
74
99
  - - ~>
@@ -76,10 +101,15 @@ dependencies:
76
101
  version: '1.1'
77
102
  type: :runtime
78
103
  prerelease: false
79
- version_requirements: *70197927029720
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: '1.1'
80
110
  - !ruby/object:Gem::Dependency
81
111
  name: inherited_resources
82
- requirement: &70197927029300 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
83
113
  none: false
84
114
  requirements:
85
115
  - - ! '>='
@@ -87,10 +117,15 @@ dependencies:
87
117
  version: '0'
88
118
  type: :runtime
89
119
  prerelease: false
90
- version_requirements: *70197927029300
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
91
126
  - !ruby/object:Gem::Dependency
92
127
  name: state_machine
93
- requirement: &70197927028840 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
94
129
  none: false
95
130
  requirements:
96
131
  - - ! '>='
@@ -98,10 +133,15 @@ dependencies:
98
133
  version: '0'
99
134
  type: :runtime
100
135
  prerelease: false
101
- version_requirements: *70197927028840
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
102
142
  - !ruby/object:Gem::Dependency
103
143
  name: friendly_id
104
- requirement: &70197927028340 !ruby/object:Gem::Requirement
144
+ requirement: !ruby/object:Gem::Requirement
105
145
  none: false
106
146
  requirements:
107
147
  - - ~>
@@ -109,10 +149,15 @@ dependencies:
109
149
  version: '4.0'
110
150
  type: :runtime
111
151
  prerelease: false
112
- version_requirements: *70197927028340
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: '4.0'
113
158
  - !ruby/object:Gem::Dependency
114
159
  name: sunspot_rails
115
- requirement: &70197927027920 !ruby/object:Gem::Requirement
160
+ requirement: !ruby/object:Gem::Requirement
116
161
  none: false
117
162
  requirements:
118
163
  - - ! '>='
@@ -120,10 +165,15 @@ dependencies:
120
165
  version: '0'
121
166
  type: :runtime
122
167
  prerelease: false
123
- version_requirements: *70197927027920
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ! '>='
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
124
174
  - !ruby/object:Gem::Dependency
125
175
  name: sunspot_solr
126
- requirement: &70197927027460 !ruby/object:Gem::Requirement
176
+ requirement: !ruby/object:Gem::Requirement
127
177
  none: false
128
178
  requirements:
129
179
  - - ! '>='
@@ -131,10 +181,15 @@ dependencies:
131
181
  version: '0'
132
182
  type: :runtime
133
183
  prerelease: false
134
- version_requirements: *70197927027460
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: '0'
135
190
  - !ruby/object:Gem::Dependency
136
191
  name: will_paginate
137
- requirement: &70197927026960 !ruby/object:Gem::Requirement
192
+ requirement: !ruby/object:Gem::Requirement
138
193
  none: false
139
194
  requirements:
140
195
  - - ~>
@@ -142,10 +197,15 @@ dependencies:
142
197
  version: '3.0'
143
198
  type: :runtime
144
199
  prerelease: false
145
- version_requirements: *70197927026960
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ~>
204
+ - !ruby/object:Gem::Version
205
+ version: '3.0'
146
206
  - !ruby/object:Gem::Dependency
147
207
  name: acts_as_list
148
- requirement: &70197927042820 !ruby/object:Gem::Requirement
208
+ requirement: !ruby/object:Gem::Requirement
149
209
  none: false
150
210
  requirements:
151
211
  - - ~>
@@ -153,10 +213,15 @@ dependencies:
153
213
  version: 0.1.6
154
214
  type: :runtime
155
215
  prerelease: false
156
- version_requirements: *70197927042820
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ~>
220
+ - !ruby/object:Gem::Version
221
+ version: 0.1.6
157
222
  - !ruby/object:Gem::Dependency
158
223
  name: enju_message
159
- requirement: &70197927042360 !ruby/object:Gem::Requirement
224
+ requirement: !ruby/object:Gem::Requirement
160
225
  none: false
161
226
  requirements:
162
227
  - - ~>
@@ -164,10 +229,15 @@ dependencies:
164
229
  version: 0.0.17
165
230
  type: :runtime
166
231
  prerelease: false
167
- version_requirements: *70197927042360
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ none: false
234
+ requirements:
235
+ - - ~>
236
+ - !ruby/object:Gem::Version
237
+ version: 0.0.17
168
238
  - !ruby/object:Gem::Dependency
169
239
  name: enju_event
170
- requirement: &70197927041900 !ruby/object:Gem::Requirement
240
+ requirement: !ruby/object:Gem::Requirement
171
241
  none: false
172
242
  requirements:
173
243
  - - ! '>='
@@ -175,10 +245,15 @@ dependencies:
175
245
  version: 0.0.12
176
246
  type: :runtime
177
247
  prerelease: false
178
- version_requirements: *70197927041900
248
+ version_requirements: !ruby/object:Gem::Requirement
249
+ none: false
250
+ requirements:
251
+ - - ! '>='
252
+ - !ruby/object:Gem::Version
253
+ version: 0.0.12
179
254
  - !ruby/object:Gem::Dependency
180
255
  name: sqlite3
181
- requirement: &70197927041520 !ruby/object:Gem::Requirement
256
+ requirement: !ruby/object:Gem::Requirement
182
257
  none: false
183
258
  requirements:
184
259
  - - ! '>='
@@ -186,10 +261,15 @@ dependencies:
186
261
  version: '0'
187
262
  type: :development
188
263
  prerelease: false
189
- version_requirements: *70197927041520
264
+ version_requirements: !ruby/object:Gem::Requirement
265
+ none: false
266
+ requirements:
267
+ - - ! '>='
268
+ - !ruby/object:Gem::Version
269
+ version: '0'
190
270
  - !ruby/object:Gem::Dependency
191
271
  name: rspec-rails
192
- requirement: &70197927041060 !ruby/object:Gem::Requirement
272
+ requirement: !ruby/object:Gem::Requirement
193
273
  none: false
194
274
  requirements:
195
275
  - - ! '>='
@@ -197,10 +277,15 @@ dependencies:
197
277
  version: '0'
198
278
  type: :development
199
279
  prerelease: false
200
- version_requirements: *70197927041060
280
+ version_requirements: !ruby/object:Gem::Requirement
281
+ none: false
282
+ requirements:
283
+ - - ! '>='
284
+ - !ruby/object:Gem::Version
285
+ version: '0'
201
286
  - !ruby/object:Gem::Dependency
202
287
  name: factory_girl_rails
203
- requirement: &70197927040560 !ruby/object:Gem::Requirement
288
+ requirement: !ruby/object:Gem::Requirement
204
289
  none: false
205
290
  requirements:
206
291
  - - ~>
@@ -208,10 +293,15 @@ dependencies:
208
293
  version: '3.1'
209
294
  type: :development
210
295
  prerelease: false
211
- version_requirements: *70197927040560
296
+ version_requirements: !ruby/object:Gem::Requirement
297
+ none: false
298
+ requirements:
299
+ - - ~>
300
+ - !ruby/object:Gem::Version
301
+ version: '3.1'
212
302
  - !ruby/object:Gem::Dependency
213
303
  name: sunspot-rails-tester
214
- requirement: &70197927040140 !ruby/object:Gem::Requirement
304
+ requirement: !ruby/object:Gem::Requirement
215
305
  none: false
216
306
  requirements:
217
307
  - - ! '>='
@@ -219,7 +309,12 @@ dependencies:
219
309
  version: '0'
220
310
  type: :development
221
311
  prerelease: false
222
- version_requirements: *70197927040140
312
+ version_requirements: !ruby/object:Gem::Requirement
313
+ none: false
314
+ requirements:
315
+ - - ! '>='
316
+ - !ruby/object:Gem::Version
317
+ version: '0'
223
318
  description: Circulation management for Next-L Enju
224
319
  email:
225
320
  - tanabe@mwr.mediacom.keio.ac.jp
@@ -661,7 +756,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
661
756
  version: '0'
662
757
  requirements: []
663
758
  rubyforge_project:
664
- rubygems_version: 1.8.11
759
+ rubygems_version: 1.8.23
665
760
  signing_key:
666
761
  specification_version: 3
667
762
  summary: enju_circulation plugin