enju_circulation 0.0.30 → 0.0.31

Sign up to get free protection for your applications and to get access to all the features.
@@ -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