enju_circulation 0.0.43 → 0.0.45
Sign up to get free protection for your applications and to get access to all the features.
- data/app/controllers/checked_items_controller.rb +2 -4
- data/app/controllers/checkout_stat_has_manifestations_controller.rb +6 -6
- data/app/controllers/checkout_stat_has_users_controller.rb +6 -6
- data/app/controllers/checkout_types_controller.rb +2 -4
- data/app/controllers/item_has_use_restrictions_controller.rb +5 -5
- data/app/controllers/manifestation_checkout_stats_controller.rb +2 -4
- data/app/controllers/manifestation_reserve_stats_controller.rb +2 -4
- data/app/controllers/reserve_stat_has_manifestations_controller.rb +4 -2
- data/app/controllers/reserve_stat_has_users_controller.rb +6 -6
- data/app/controllers/user_group_has_checkout_types_controller.rb +2 -4
- data/app/models/carrier_type_has_checkout_type.rb +1 -0
- data/app/models/checked_item.rb +1 -0
- data/app/models/checkin.rb +1 -1
- data/app/models/checkout.rb +2 -3
- data/app/models/checkout_stat_has_manifestation.rb +3 -0
- data/app/models/checkout_stat_has_user.rb +3 -0
- data/app/models/checkout_type.rb +1 -0
- data/app/models/circulation_status.rb +2 -2
- data/app/models/item_has_use_restriction.rb +2 -0
- data/app/models/lending_policy.rb +2 -0
- data/app/models/manifestation_checkout_stat.rb +2 -0
- data/app/models/manifestation_reserve_stat.rb +2 -0
- data/app/models/reserve.rb +35 -16
- data/app/models/reserve_stat_has_manifestation.rb +3 -0
- data/app/models/reserve_stat_has_user.rb +3 -0
- data/app/models/use_restriction.rb +1 -1
- data/app/models/user_checkout_stat.rb +2 -1
- data/app/models/user_group_has_checkout_type.rb +4 -0
- data/app/models/user_reserve_stat.rb +2 -1
- data/lib/enju_circulation/version.rb +1 -1
- data/spec/controllers/carrier_type_has_checkout_types_controller_spec.rb +7 -7
- data/spec/controllers/checkout_stat_has_manifestations_controller_spec.rb +10 -10
- data/spec/controllers/checkout_stat_has_users_controller_spec.rb +3 -3
- data/spec/controllers/checkouts_controller_spec.rb +9 -7
- data/spec/controllers/circulation_statuses_controller_spec.rb +445 -0
- data/spec/controllers/item_has_use_restrictions_controller_spec.rb +10 -10
- data/spec/controllers/reserve_stat_has_manifestations_controller_spec.rb +10 -10
- data/spec/controllers/reserve_stat_has_users_controller_spec.rb +3 -3
- data/spec/controllers/reserves_controller_spec.rb +1 -1
- data/spec/controllers/use_restrictions_controller_spec.rb +4 -4
- data/spec/dummy/app/models/basket.rb +5 -2
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/solr/conf/admin-extra.html +31 -0
- data/spec/dummy/solr/conf/elevate.xml +36 -0
- data/spec/dummy/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
- data/spec/dummy/solr/conf/protwords.txt +21 -0
- data/spec/dummy/solr/conf/schema.xml +238 -0
- data/spec/dummy/solr/conf/scripts.conf +24 -0
- data/spec/dummy/solr/conf/solrconfig.xml +934 -0
- data/spec/dummy/solr/conf/spellings.txt +2 -0
- data/spec/dummy/solr/conf/stopwords.txt +58 -0
- data/spec/dummy/solr/conf/synonyms.txt +31 -0
- data/spec/dummy/solr/data/test/index/segments.gen +0 -0
- data/spec/dummy/solr/data/test/index/segments_1 +0 -0
- data/spec/dummy/solr/data/test/spellchecker/segments.gen +0 -0
- data/spec/dummy/solr/data/test/spellchecker/segments_1 +0 -0
- data/spec/factories/circulation_status.rb +5 -0
- data/spec/models/basket_spec.rb +43 -0
- data/spec/models/checkin_spec.rb +13 -4
- data/spec/models/circulation_status_spec.rb +21 -0
- data/spec/spec_helper.rb +13 -0
- metadata +56 -18
@@ -68,8 +68,7 @@ class CheckedItemsController < ApplicationController
|
|
68
68
|
if @checked_item.item.include_supplements
|
69
69
|
flash[:message] << t('item.this_item_include_supplement')
|
70
70
|
end
|
71
|
-
|
72
|
-
format.html { redirect_to(basket_checked_items_url(@basket)) }
|
71
|
+
format.html { redirect_to(basket_checked_items_url(@basket), :notice => t('controller.successfully_created', :model => t('activerecord.models.checked_item'))) }
|
73
72
|
format.json { render :json => @checked_item, :status => :created, :location => @checked_item }
|
74
73
|
format.js { redirect_to(basket_checked_items_url(@basket, :format => :js)) }
|
75
74
|
else
|
@@ -93,8 +92,7 @@ class CheckedItemsController < ApplicationController
|
|
93
92
|
|
94
93
|
respond_to do |format|
|
95
94
|
if @checked_item.update_attributes(params[:checked_item])
|
96
|
-
|
97
|
-
format.html { redirect_to @checked_item }
|
95
|
+
format.html { redirect_to @checked_item, :notice => t('controller.successfully_updated', :model => t('activerecord.models.checked_item')) }
|
98
96
|
format.json { head :no_content }
|
99
97
|
else
|
100
98
|
format.html { render :action => "edit" }
|
@@ -39,12 +39,12 @@ class CheckoutStatHasManifestationsController < ApplicationController
|
|
39
39
|
# POST /checkout_stat_has_manifestations
|
40
40
|
# POST /checkout_stat_has_manifestations.json
|
41
41
|
def create
|
42
|
-
@checkout_stat_has_manifestation = CheckoutStatHasManifestation.new
|
42
|
+
@checkout_stat_has_manifestation = CheckoutStatHasManifestation.new
|
43
|
+
@checkout_stat_has_manifestation.assign_attributes(params[:checkout_stat_has_manifestation], :as => :admin)
|
43
44
|
|
44
45
|
respond_to do |format|
|
45
46
|
if @checkout_stat_has_manifestation.save
|
46
|
-
|
47
|
-
format.html { redirect_to @checkout_stat_has_manifestation }
|
47
|
+
format.html { redirect_to @checkout_stat_has_manifestation, :notice => t('controller.successfully_created', :model => t('activerecord.models.checkout_stat_has_manifestation')) }
|
48
48
|
format.json { render :json => @checkout_stat_has_manifestation, :status => :created, :location => @checkout_stat_has_manifestation }
|
49
49
|
else
|
50
50
|
format.html { render :action => "new" }
|
@@ -56,10 +56,10 @@ class CheckoutStatHasManifestationsController < ApplicationController
|
|
56
56
|
# PUT /checkout_stat_has_manifestations/1
|
57
57
|
# PUT /checkout_stat_has_manifestations/1.json
|
58
58
|
def update
|
59
|
+
@checkout_stat_has_manifestation.assign_attributes(params[:checkout_stat_has_manifestation], :as => :admin)
|
59
60
|
respond_to do |format|
|
60
|
-
if @checkout_stat_has_manifestation.
|
61
|
-
|
62
|
-
format.html { redirect_to @checkout_stat_has_manifestation }
|
61
|
+
if @checkout_stat_has_manifestation.save
|
62
|
+
format.html { redirect_to @checkout_stat_has_manifestation, :notice => t('controller.successfully_updated', :model => t('activerecord.models.checkout_stat_has_manifestation')) }
|
63
63
|
format.json { head :no_content }
|
64
64
|
else
|
65
65
|
format.html { render :action => "edit" }
|
@@ -39,12 +39,12 @@ class CheckoutStatHasUsersController < ApplicationController
|
|
39
39
|
# POST /checkout_stat_has_users
|
40
40
|
# POST /checkout_stat_has_users.json
|
41
41
|
def create
|
42
|
-
@checkout_stat_has_user = CheckoutStatHasUser.new
|
42
|
+
@checkout_stat_has_user = CheckoutStatHasUser.new
|
43
|
+
@checkout_stat_has_user.assign_attributes(params[:checkout_stat_has_user], :as => :admin)
|
43
44
|
|
44
45
|
respond_to do |format|
|
45
46
|
if @checkout_stat_has_user.save
|
46
|
-
|
47
|
-
format.html { redirect_to @checkout_stat_has_user }
|
47
|
+
format.html { redirect_to @checkout_stat_has_user, :notice => t('controller.successfully_created', :model => t('activerecord.models.checkout_stat_has_user')) }
|
48
48
|
format.json { render :json => @checkout_stat_has_user, :status => :created, :location => @checkout_stat_has_user }
|
49
49
|
else
|
50
50
|
format.html { render :action => "new" }
|
@@ -56,10 +56,10 @@ class CheckoutStatHasUsersController < ApplicationController
|
|
56
56
|
# PUT /checkout_stat_has_users/1
|
57
57
|
# PUT /checkout_stat_has_users/1.json
|
58
58
|
def update
|
59
|
+
@checkout_stat_has_user.assign_attributes(params[:checkout_stat_has_user], :as => :admin)
|
59
60
|
respond_to do |format|
|
60
|
-
if @checkout_stat_has_user.
|
61
|
-
|
62
|
-
format.html { redirect_to @checkout_stat_has_user }
|
61
|
+
if @checkout_stat_has_user.save
|
62
|
+
format.html { redirect_to @checkout_stat_has_user, :notice => t('controller.successfully_updated', :model => t('activerecord.models.checkout_stat_has_user')) }
|
63
63
|
format.json { head :no_content }
|
64
64
|
else
|
65
65
|
format.html { render :action => "edit" }
|
@@ -63,8 +63,7 @@ class CheckoutTypesController < ApplicationController
|
|
63
63
|
|
64
64
|
respond_to do |format|
|
65
65
|
if @checkout_type.save
|
66
|
-
|
67
|
-
format.html { redirect_to @checkout_type }
|
66
|
+
format.html { redirect_to @checkout_type, :notice => t('controller.successfully_created', :model => t('activerecord.models.checkout_type')) }
|
68
67
|
format.json { render :json => @checkout_type, :status => :created, :location => @checkout_type }
|
69
68
|
else
|
70
69
|
format.html { render :action => "new" }
|
@@ -87,8 +86,7 @@ class CheckoutTypesController < ApplicationController
|
|
87
86
|
|
88
87
|
respond_to do |format|
|
89
88
|
if @checkout_type.update_attributes(params[:checkout_type])
|
90
|
-
|
91
|
-
format.html { redirect_to @checkout_type }
|
89
|
+
format.html { redirect_to @checkout_type, :notice => t('controller.successfully_updated', :model => t('activerecord.models.checkout_type')) }
|
92
90
|
format.json { head :no_content }
|
93
91
|
else
|
94
92
|
format.html { render :action => "edit" }
|
@@ -46,11 +46,11 @@ class ItemHasUseRestrictionsController < ApplicationController
|
|
46
46
|
# POST /item_has_use_restrictions.json
|
47
47
|
def create
|
48
48
|
@item_has_use_restriction = ItemHasUseRestriction.new(params[:item_has_use_restriction])
|
49
|
+
@item_has_use_restriction.assign_attributes(params[:item_has_use_restriction], :as => :admin)
|
49
50
|
|
50
51
|
respond_to do |format|
|
51
52
|
if @item_has_use_restriction.save
|
52
|
-
|
53
|
-
format.html { redirect_to @item_has_use_restriction }
|
53
|
+
format.html { redirect_to @item_has_use_restriction, :notice => t('controller.successfully_created', :model => t('activerecord.models.item_has_use_restriction')) }
|
54
54
|
format.json { render :json => @item_has_use_restriction, :status => :created, :location => @item_has_use_restriction }
|
55
55
|
else
|
56
56
|
@use_restrictions = UseRestriction.all
|
@@ -63,10 +63,10 @@ class ItemHasUseRestrictionsController < ApplicationController
|
|
63
63
|
# PUT /item_has_use_restrictions/1
|
64
64
|
# PUT /item_has_use_restrictions/1.json
|
65
65
|
def update
|
66
|
+
@item_has_use_restriction.assign_attributes(params[:item_has_use_restriction], :as => :admin)
|
66
67
|
respond_to do |format|
|
67
|
-
if @item_has_use_restriction.
|
68
|
-
|
69
|
-
format.html { redirect_to @item_has_use_restriction }
|
68
|
+
if @item_has_use_restriction.save
|
69
|
+
format.html { redirect_to @item_has_use_restriction, :notice => t('controller.successfully_updated', :model => t('activerecord.models.item_has_use_restriction')) }
|
70
70
|
format.json { head :no_content }
|
71
71
|
else
|
72
72
|
@use_restrictions = UseRestriction.all
|
@@ -52,8 +52,7 @@ class ManifestationCheckoutStatsController < ApplicationController
|
|
52
52
|
|
53
53
|
respond_to do |format|
|
54
54
|
if @manifestation_checkout_stat.save
|
55
|
-
|
56
|
-
format.html { redirect_to @manifestation_checkout_stat }
|
55
|
+
format.html { redirect_to @manifestation_checkout_stat, :notice => t('controller.successfully_created', :model => t('activerecord.models.manifestation_checkout_stat')) }
|
57
56
|
format.json { render :json => @manifestation_checkout_stat, :status => :created, :location => @manifestation_checkout_stat }
|
58
57
|
else
|
59
58
|
format.html { render :action => "new" }
|
@@ -67,8 +66,7 @@ class ManifestationCheckoutStatsController < ApplicationController
|
|
67
66
|
def update
|
68
67
|
respond_to do |format|
|
69
68
|
if @manifestation_checkout_stat.update_attributes(params[:manifestation_checkout_stat])
|
70
|
-
|
71
|
-
format.html { redirect_to @manifestation_checkout_stat }
|
69
|
+
format.html { redirect_to @manifestation_checkout_stat, :notice => t('controller.successfully_updated', :model => t('activerecord.models.manifestation_checkout_stat')) }
|
72
70
|
format.json { head :no_content }
|
73
71
|
else
|
74
72
|
format.html { render :action => "edit" }
|
@@ -52,8 +52,7 @@ class ManifestationReserveStatsController < ApplicationController
|
|
52
52
|
|
53
53
|
respond_to do |format|
|
54
54
|
if @manifestation_reserve_stat.save
|
55
|
-
|
56
|
-
format.html { redirect_to @manifestation_reserve_stat }
|
55
|
+
format.html { redirect_to @manifestation_reserve_stat, :notice => t('controller.successfully_created', :model => t('activerecord.models.manifestation_reserve_stat')) }
|
57
56
|
format.json { render :json => @manifestation_reserve_stat, :status => :created, :location => @manifestation_reserve_stat }
|
58
57
|
else
|
59
58
|
format.html { render :action => "new" }
|
@@ -67,8 +66,7 @@ class ManifestationReserveStatsController < ApplicationController
|
|
67
66
|
def update
|
68
67
|
respond_to do |format|
|
69
68
|
if @manifestation_reserve_stat.update_attributes(params[:manifestation_reserve_stat])
|
70
|
-
|
71
|
-
format.html { redirect_to @manifestation_reserve_stat }
|
69
|
+
format.html { redirect_to @manifestation_reserve_stat, :notice => t('controller.successfully_created', :model => t('activerecord.models.manifestation_reserve_stat')) }
|
72
70
|
format.json { head :no_content }
|
73
71
|
else
|
74
72
|
format.html { render :action => "edit" }
|
@@ -39,7 +39,8 @@ class ReserveStatHasManifestationsController < ApplicationController
|
|
39
39
|
# POST /reserve_stat_has_manifestations
|
40
40
|
# POST /reserve_stat_has_manifestations.json
|
41
41
|
def create
|
42
|
-
@reserve_stat_has_manifestation = ReserveStatHasManifestation.new
|
42
|
+
@reserve_stat_has_manifestation = ReserveStatHasManifestation.new
|
43
|
+
@reserve_stat_has_manifestation.assign_attributes(params[:reserve_stat_has_manifestation], :as => :admin)
|
43
44
|
|
44
45
|
respond_to do |format|
|
45
46
|
if @reserve_stat_has_manifestation.save
|
@@ -55,8 +56,9 @@ class ReserveStatHasManifestationsController < ApplicationController
|
|
55
56
|
# PUT /reserve_stat_has_manifestations/1
|
56
57
|
# PUT /reserve_stat_has_manifestations/1.json
|
57
58
|
def update
|
59
|
+
@reserve_stat_has_manifestation.assign_attributes(params[:reserve_stat_has_manifestation], :as => :admin)
|
58
60
|
respond_to do |format|
|
59
|
-
if @reserve_stat_has_manifestation.
|
61
|
+
if @reserve_stat_has_manifestation.save
|
60
62
|
format.html { redirect_to @reserve_stat_has_manifestation, :notice => t('controller.successfully_updated', :model => t('activerecord.models.reserve_stat_has_manifestation')) }
|
61
63
|
format.json { head :no_content }
|
62
64
|
else
|
@@ -39,12 +39,12 @@ class ReserveStatHasUsersController < ApplicationController
|
|
39
39
|
# POST /reserve_stat_has_users
|
40
40
|
# POST /reserve_stat_has_users.json
|
41
41
|
def create
|
42
|
-
@reserve_stat_has_user = ReserveStatHasUser.new
|
42
|
+
@reserve_stat_has_user = ReserveStatHasUser.new
|
43
|
+
@reserve_stat_has_user.assign_attributes(params[:reserve_stat_has_user], :as => :admin)
|
43
44
|
|
44
45
|
respond_to do |format|
|
45
46
|
if @reserve_stat_has_user.save
|
46
|
-
|
47
|
-
format.html { redirect_to @reserve_stat_has_user }
|
47
|
+
format.html { redirect_to @reserve_stat_has_user, :notice => t('controller.successfully_created', :model => t('activerecord.models.reserve_stat_has_user')) }
|
48
48
|
format.json { render :json => @reserve_stat_has_user, :status => :created, :location => @reserve_stat_has_user }
|
49
49
|
else
|
50
50
|
format.html { render :action => "new" }
|
@@ -56,10 +56,10 @@ class ReserveStatHasUsersController < ApplicationController
|
|
56
56
|
# PUT /reserve_stat_has_users/1
|
57
57
|
# PUT /reserve_stat_has_users/1.json
|
58
58
|
def update
|
59
|
+
@reserve_stat_has_user.assign_attributes(params[:reserve_stat_has_user], :as => :admin)
|
59
60
|
respond_to do |format|
|
60
|
-
if @reserve_stat_has_user.
|
61
|
-
|
62
|
-
format.html { redirect_to @reserve_stat_has_user }
|
61
|
+
if @reserve_stat_has_user.save
|
62
|
+
format.html { redirect_to @reserve_stat_has_user, :notice => t('controller.successfully_updated', :model => t('activerecord.models.reserve_stat_has_user')) }
|
63
63
|
format.json { head :no_content }
|
64
64
|
else
|
65
65
|
format.html { render :action => "edit" }
|
@@ -48,8 +48,7 @@ class UserGroupHasCheckoutTypesController < ApplicationController
|
|
48
48
|
|
49
49
|
respond_to do |format|
|
50
50
|
if @user_group_has_checkout_type.save
|
51
|
-
|
52
|
-
format.html { redirect_to(@user_group_has_checkout_type) }
|
51
|
+
format.html { redirect_to(@user_group_has_checkout_type, :notice => t('controller.successfully_created', :model => t('activerecord.models.user_group_has_checkout_type'))) }
|
53
52
|
format.json { render :json => @user_group_has_checkout_type, :status => :created, :location => @user_group_has_checkout_type }
|
54
53
|
else
|
55
54
|
prepare_options
|
@@ -64,8 +63,7 @@ class UserGroupHasCheckoutTypesController < ApplicationController
|
|
64
63
|
def update
|
65
64
|
respond_to do |format|
|
66
65
|
if @user_group_has_checkout_type.update_attributes(params[:user_group_has_checkout_type])
|
67
|
-
|
68
|
-
format.html { redirect_to @user_group_has_checkout_type }
|
66
|
+
format.html { redirect_to @user_group_has_checkout_type, :notice => t('controller.successfully_updated', :model => t('activerecord.models.user_group_has_checkout_type')) }
|
69
67
|
format.json { head :no_content }
|
70
68
|
else
|
71
69
|
prepare_options
|
@@ -1,4 +1,5 @@
|
|
1
1
|
class CarrierTypeHasCheckoutType < ActiveRecord::Base
|
2
|
+
attr_accessible :carrier_type_id, :checkout_type_id, :note
|
2
3
|
scope :available_for_carrier_type, lambda {|carrier_type| {:include => :carrier_type, :conditions => ['carrier_types.name = ?', carrier_type.name]}}
|
3
4
|
scope :available_for_user_group, lambda {|user_group| {:include => {:checkout_type => :user_groups}, :conditions => ['user_groups.name = ?', user_group.name]}}
|
4
5
|
|
data/app/models/checked_item.rb
CHANGED
data/app/models/checkin.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
class Checkin < ActiveRecord::Base
|
2
|
+
attr_accessible :item_identifier
|
2
3
|
default_scope :order => 'checkins.id DESC'
|
3
4
|
scope :on, lambda {|date| {:conditions => ['created_at >= ? AND created_at < ?', date.beginning_of_day, date.tomorrow.beginning_of_day]}}
|
4
5
|
has_one :checkout
|
@@ -10,7 +11,6 @@ class Checkin < ActiveRecord::Base
|
|
10
11
|
validates_presence_of :item_id, :message => I18n.t('checkin.item_not_found')
|
11
12
|
validates_presence_of :basket_id
|
12
13
|
|
13
|
-
attr_protected :user_id
|
14
14
|
attr_accessor :item_identifier
|
15
15
|
|
16
16
|
def self.per_page
|
data/app/models/checkout.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
class Checkout < ActiveRecord::Base
|
2
|
-
|
2
|
+
attr_accessible
|
3
|
+
default_scope :order => 'checkouts.id DESC'
|
3
4
|
scope :not_returned, where(:checkin_id => nil)
|
4
5
|
scope :overdue, lambda {|date| {:conditions => ['checkin_id IS NULL AND due_date < ?', date]}}
|
5
6
|
scope :due_date_on, lambda {|date| where(:checkin_id => nil, :due_date => date.beginning_of_day .. date.end_of_day)}
|
@@ -21,8 +22,6 @@ class Checkout < ActiveRecord::Base
|
|
21
22
|
validate :is_not_checked?, :on => :create
|
22
23
|
validates_date :due_date
|
23
24
|
|
24
|
-
attr_protected :user_id
|
25
|
-
|
26
25
|
def self.per_page
|
27
26
|
10
|
28
27
|
end
|
data/app/models/checkout_type.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
class CheckoutType < ActiveRecord::Base
|
2
|
+
attr_accessible :name, :display_name, :note
|
2
3
|
include MasterModel
|
3
4
|
default_scope :order => "checkout_types.position"
|
4
5
|
scope :available_for_carrier_type, lambda {|carrier_type| {:include => :carrier_types, :conditions => ['carrier_types.name = ?', carrier_type.name], :order => 'carrier_types.position'}}
|
@@ -1,9 +1,9 @@
|
|
1
1
|
class CirculationStatus < ActiveRecord::Base
|
2
|
+
attr_accessible :name, :display_name, :note
|
2
3
|
include MasterModel
|
3
|
-
default_scope :order => "position"
|
4
|
+
default_scope :order => "circulation_statuses.position"
|
4
5
|
scope :available_for_checkout, where(:name => 'Available On Shelf')
|
5
6
|
has_many :items
|
6
|
-
attr_protected :name
|
7
7
|
end
|
8
8
|
|
9
9
|
# == Schema Information
|
@@ -1,5 +1,7 @@
|
|
1
1
|
class ManifestationCheckoutStat < ActiveRecord::Base
|
2
|
+
attr_accessible :start_date, :end_date, :note
|
2
3
|
include CalculateStat
|
4
|
+
default_scope :order => 'manifestation_checkout_stats.id DESC'
|
3
5
|
scope :not_calculated, where(:state => 'pending')
|
4
6
|
has_many :checkout_stat_has_manifestations
|
5
7
|
has_many :manifestations, :through => :checkout_stat_has_manifestations
|
@@ -1,5 +1,7 @@
|
|
1
1
|
class ManifestationReserveStat < ActiveRecord::Base
|
2
|
+
attr_accessible :start_date, :end_date, :note
|
2
3
|
include CalculateStat
|
4
|
+
default_scope :order => 'manifestation_reserve_stats.id DESC'
|
3
5
|
scope :not_calculated, where(:state => 'pending')
|
4
6
|
has_many :reserve_stat_has_manifestations
|
5
7
|
has_many :manifestations, :through => :reserve_stat_has_manifestations
|
data/app/models/reserve.rb
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
class Reserve < ActiveRecord::Base
|
3
|
+
attr_accessible :manifestation_id, :item_identifier, :user_number, :expired_at
|
4
|
+
attr_accessible :manifestation_id, :item_identifier, :user_number,
|
5
|
+
:expired_at, :request_status_type, :canceled_at, :checked_out_at,
|
6
|
+
:expiration_notice_to_patron, :expiration_notice_to_library,
|
7
|
+
:as => :admin
|
3
8
|
scope :hold, where('item_id IS NOT NULL')
|
4
9
|
scope :not_hold, where(:item_id => nil)
|
5
10
|
scope :waiting, where('canceled_at IS NULL AND expired_at > ? AND state != ?', Time.zone.now, 'completed').order('reserves.id DESC')
|
@@ -31,7 +36,6 @@ class Reserve < ActiveRecord::Base
|
|
31
36
|
before_validation :set_expired_at
|
32
37
|
before_validation :set_request_status, :on => :create
|
33
38
|
|
34
|
-
attr_protected :user_id
|
35
39
|
attr_accessor :user_number, :item_identifier
|
36
40
|
|
37
41
|
state_machine :initial => :pending do
|
@@ -94,7 +98,8 @@ class Reserve < ActiveRecord::Base
|
|
94
98
|
end
|
95
99
|
|
96
100
|
def do_request
|
97
|
-
self.
|
101
|
+
self.assign_attributes({:request_status_type => RequestStatusType.where(:name => 'In Process').first}, :as => :admin)
|
102
|
+
self.save!
|
98
103
|
end
|
99
104
|
|
100
105
|
def manifestation_must_include_item
|
@@ -116,39 +121,47 @@ class Reserve < ActiveRecord::Base
|
|
116
121
|
case state
|
117
122
|
when 'requested'
|
118
123
|
message_template_to_patron = MessageTemplate.localized_template('reservation_accepted_for_patron', user.locale)
|
119
|
-
request = MessageRequest.
|
124
|
+
request = MessageRequest.new
|
125
|
+
request.assign_attributes({:sender => sender, :receiver => user, :message_template => message_template_to_patron}, :as => :admin)
|
120
126
|
request.save_message_body(:manifestations => Array[manifestation], :user => user)
|
121
127
|
request.sm_send_message! # 受付時は即時送信
|
122
128
|
message_template_to_library = MessageTemplate.localized_template('reservation_accepted_for_library', user.locale)
|
123
|
-
request = MessageRequest.
|
129
|
+
request = MessageRequest.new
|
130
|
+
request.assign_attributes({:sender => sender, :receiver => sender, :message_template => message_template_to_library}, :as => :admin)
|
124
131
|
request.save_message_body(:manifestations => Array[manifestation], :user => user)
|
125
132
|
request.sm_send_message! # 受付時は即時送信
|
126
133
|
when 'canceled'
|
127
134
|
message_template_to_patron = MessageTemplate.localized_template('reservation_canceled_for_patron', user.locale)
|
128
|
-
request = MessageRequest.
|
135
|
+
request = MessageRequest.new
|
136
|
+
request.assign_attributes({:sender => sender, :receiver => user, :message_template => message_template_to_patron}, :as => :admin)
|
129
137
|
request.save_message_body(:manifestations => Array[manifestation], :user => user)
|
130
138
|
request.sm_send_message! # キャンセル時は即時送信
|
131
139
|
message_template_to_library = MessageTemplate.localized_template('reservation_canceled_for_library', user.locale)
|
132
|
-
request = MessageRequest.
|
140
|
+
request = MessageRequest.new
|
141
|
+
request.assign_attributes({:sender => sender, :receiver => sender, :message_template => message_template_to_library}, :as => :admin)
|
133
142
|
request.save_message_body(:manifestations => Array[manifestation], :user => user)
|
134
143
|
request.sm_send_message! # キャンセル時は即時送信
|
135
144
|
when 'expired'
|
136
145
|
message_template_to_patron = MessageTemplate.localized_template('reservation_expired_for_patron', user.locale)
|
137
|
-
request = MessageRequest.
|
146
|
+
request = MessageRequest.new
|
147
|
+
request.assign_attributes({:sender => sender, :receiver => user, :message_template => message_template_to_patron}, :as => :admin)
|
138
148
|
request.save_message_body(:manifestations => Array[manifestation], :user => user)
|
139
149
|
request.sm_send_message!
|
140
150
|
self.update_attribute(:expiration_notice_to_patron, true)
|
141
151
|
message_template_to_library = MessageTemplate.localized_template('reservation_expired_for_library', sender.locale)
|
142
|
-
request = MessageRequest.
|
152
|
+
request = MessageRequest.new
|
153
|
+
request.assign_attributes({:sender => sender, :receiver => sender, :message_template => message_template_to_library}, :as => :admin)
|
143
154
|
request.save_message_body(:manifestations => Array[manifestation], :user => sender)
|
144
155
|
request.sm_send_message!
|
145
156
|
when 'retained'
|
146
157
|
message_template_for_patron = MessageTemplate.localized_template('item_received_for_patron', user.locale)
|
147
|
-
request = MessageRequest.
|
158
|
+
request = MessageRequest.new
|
159
|
+
request.assign_attributes({:sender => sender, :receiver => user, :message_template => message_template_for_patron}, :as => :admin)
|
148
160
|
request.save_message_body(:manifestations => Array[item.manifestation], :user => user)
|
149
161
|
request.sm_send_message!
|
150
162
|
message_template_for_library = MessageTemplate.localized_template('item_received_for_library', user.locale)
|
151
|
-
request = MessageRequest.
|
163
|
+
request = MessageRequest.new
|
164
|
+
request.assign_attributes({:sender => sender, :receiver => sender, :message_template => message_template_for_library}, :as => :admin)
|
152
165
|
request.save_message_body(:manifestations => Array[item.manifestation], :user => user)
|
153
166
|
request.sm_send_message!
|
154
167
|
else
|
@@ -162,14 +175,16 @@ class Reserve < ActiveRecord::Base
|
|
162
175
|
case status
|
163
176
|
when 'expired'
|
164
177
|
message_template_to_library = MessageTemplate.localized_template('reservation_expired_for_library', sender.locale)
|
165
|
-
request = MessageRequest.
|
178
|
+
request = MessageRequest.new
|
179
|
+
request.assign_attributes({:sender => sender, :receiver => sender, :message_template => message_template_to_library}, :as => :admin)
|
166
180
|
request.save_message_body(:manifestations => options[:manifestations])
|
167
181
|
self.not_sent_expiration_notice_to_library.each do |reserve|
|
168
182
|
reserve.update_attribute(:expiration_notice_to_library, true)
|
169
183
|
end
|
170
184
|
#when 'canceled'
|
171
185
|
# message_template_to_library = MessageTemplate.localized_template('reservation_canceled_for_library', sender.locale)
|
172
|
-
# request = MessageRequest.
|
186
|
+
# request = MessageRequest.new
|
187
|
+
# request.assign_attributes({:sender => sender, :receiver => sender, :message_template => message_template_to_library}, :as => :admin)
|
173
188
|
# request.save_message_body(:manifestations => self.not_sent_expiration_notice_to_library.collect(&:manifestation))
|
174
189
|
# self.not_sent_cancel_notice_to_library.each do |reserve|
|
175
190
|
# reserve.update_attribute(:expiration_notice_to_library, true)
|
@@ -219,11 +234,13 @@ class Reserve < ActiveRecord::Base
|
|
219
234
|
private
|
220
235
|
def retain
|
221
236
|
# TODO: 「取り置き中」の状態を正しく表す
|
222
|
-
self.
|
237
|
+
self.assign_attributes({:request_status_type => RequestStatusType.where(:name => 'In Process').first, :checked_out_at => Time.zone.now}, :as => :admin)
|
238
|
+
self.save!
|
223
239
|
end
|
224
240
|
|
225
241
|
def expire
|
226
|
-
self.
|
242
|
+
self.assign_attributes({:request_status_type => RequestStatusType.where(:name => 'Expired').first, :canceled_at => Time.zone.now}, :as => :admin)
|
243
|
+
self.save!
|
227
244
|
logger.info "#{Time.zone.now} reserve_id #{self.id} expired!"
|
228
245
|
reserve = next_reservation
|
229
246
|
if reserve
|
@@ -234,7 +251,8 @@ class Reserve < ActiveRecord::Base
|
|
234
251
|
end
|
235
252
|
|
236
253
|
def cancel
|
237
|
-
self.
|
254
|
+
self.assign_attributes({:request_status_type => RequestStatusType.where(:name => 'Cannot Fulfill Request').first, :canceled_at => Time.zone.now}, :as => :admin)
|
255
|
+
self.save!
|
238
256
|
reserve = next_reservation
|
239
257
|
if reserve
|
240
258
|
reserve.item = item
|
@@ -244,7 +262,8 @@ class Reserve < ActiveRecord::Base
|
|
244
262
|
end
|
245
263
|
|
246
264
|
def checkout
|
247
|
-
self.
|
265
|
+
self.assign_attributes({:request_status_type => RequestStatusType.where(:name => 'Available For Pickup').first, :checked_out_at => Time.zone.now}, :as => :admin)
|
266
|
+
self.save!
|
248
267
|
end
|
249
268
|
|
250
269
|
if defined?(EnjuInterLibraryLoan)
|