enju_circulation 0.1.0.pre41 → 0.1.0.pre42

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.
Files changed (140) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/carrier_type_has_checkout_types_controller.rb +10 -4
  3. data/app/controllers/checked_items_controller.rb +8 -1
  4. data/app/controllers/checkins_controller.rb +6 -1
  5. data/app/controllers/checkout_types_controller.rb +8 -3
  6. data/app/controllers/checkouts_controller.rb +11 -4
  7. data/app/controllers/circulation_statuses_controller.rb +7 -2
  8. data/app/controllers/demands_controller.rb +85 -0
  9. data/app/controllers/item_has_use_restrictions_controller.rb +9 -3
  10. data/app/controllers/lending_policies_controller.rb +8 -1
  11. data/app/controllers/manifestation_checkout_stats_controller.rb +11 -2
  12. data/app/controllers/manifestation_reserve_stats_controller.rb +9 -2
  13. data/app/controllers/reserves_controller.rb +37 -9
  14. data/app/controllers/use_restrictions_controller.rb +7 -2
  15. data/app/controllers/user_checkout_stats_controller.rb +9 -2
  16. data/app/controllers/user_group_has_checkout_types_controller.rb +12 -2
  17. data/app/controllers/user_reserve_stats_controller.rb +9 -2
  18. data/app/helpers/items_helper.rb +17 -0
  19. data/app/models/carrier_type_has_checkout_type.rb +0 -1
  20. data/app/models/checked_item.rb +1 -2
  21. data/app/models/checkin.rb +0 -1
  22. data/app/models/checkout.rb +0 -1
  23. data/app/models/checkout_stat_has_manifestation.rb +2 -2
  24. data/app/models/checkout_stat_has_user.rb +2 -2
  25. data/app/models/checkout_type.rb +0 -2
  26. data/app/models/circulation_status.rb +0 -1
  27. data/app/models/demand.rb +5 -0
  28. data/app/models/enju_circulation/ability.rb +2 -0
  29. data/app/models/item_has_use_restriction.rb +0 -1
  30. data/app/models/lending_policy.rb +0 -2
  31. data/app/models/manifestation_checkout_stat.rb +5 -2
  32. data/app/models/manifestation_checkout_stat_transition.rb +1 -1
  33. data/app/models/manifestation_reserve_stat.rb +5 -2
  34. data/app/models/manifestation_reserve_stat_transition.rb +1 -1
  35. data/app/models/reserve.rb +24 -27
  36. data/app/models/reserve_stat_has_manifestation.rb +0 -3
  37. data/app/models/reserve_stat_has_user.rb +3 -3
  38. data/app/models/reserve_state_machine.rb +7 -7
  39. data/app/models/reserve_transition.rb +1 -1
  40. data/app/models/use_restriction.rb +0 -2
  41. data/app/models/user_checkout_stat.rb +5 -2
  42. data/app/models/user_checkout_stat_transition.rb +1 -1
  43. data/app/models/user_group_has_checkout_type.rb +0 -5
  44. data/app/models/user_reserve_stat.rb +5 -2
  45. data/app/models/user_reserve_stat_transition.rb +1 -1
  46. data/app/views/checkouts/_index.html.erb +1 -1
  47. data/app/views/checkouts/_index_item.html.erb +1 -1
  48. data/app/views/checkouts/_index_overdue.html.erb +1 -1
  49. data/app/views/checkouts/_index_user.html.erb +1 -1
  50. data/app/views/checkouts/_list.html.erb +2 -4
  51. data/app/views/demands/_form.html.erb +29 -0
  52. data/app/views/demands/edit.html.erb +6 -0
  53. data/app/views/demands/index.html.erb +31 -0
  54. data/app/views/demands/new.html.erb +5 -0
  55. data/app/views/demands/show.html.erb +19 -0
  56. data/app/views/manifestation_checkout_stats/_group_by_carrier_type.html.erb +29 -28
  57. data/app/views/manifestation_checkout_stats/_group_by_checkout_type.html.erb +29 -28
  58. data/config/locales/translation_en.yml +1 -0
  59. data/config/locales/translation_ja.yml +1 -0
  60. data/config/routes.rb +2 -0
  61. data/db/migrate/20150106001709_create_demands.rb +14 -0
  62. data/lib/enju_circulation/accept.rb +1 -0
  63. data/lib/enju_circulation/carrier_type.rb +15 -0
  64. data/lib/enju_circulation/item.rb +3 -2
  65. data/lib/enju_circulation/profile.rb +0 -3
  66. data/lib/enju_circulation/user.rb +7 -3
  67. data/lib/enju_circulation/user_group.rb +0 -1
  68. data/lib/enju_circulation/version.rb +1 -1
  69. data/lib/enju_circulation.rb +2 -0
  70. data/spec/controllers/checked_items_controller_spec.rb +18 -18
  71. data/spec/controllers/checkouts_controller_spec.rb +3 -3
  72. data/spec/dummy/app/models/user.rb +0 -1
  73. data/spec/dummy/bin/bundle +3 -0
  74. data/spec/dummy/bin/rails +4 -0
  75. data/spec/dummy/bin/rake +4 -0
  76. data/spec/dummy/bin/setup +29 -0
  77. data/spec/dummy/config/application.rb +1 -1
  78. data/spec/dummy/config/environments/development.rb +2 -2
  79. data/spec/dummy/config/routes.rb +2 -0
  80. data/spec/dummy/db/migrate/{20111201155456_devise_create_users.rb → 002_devise_create_users.rb} +6 -2
  81. data/spec/dummy/db/migrate/041_create_roles.rb +13 -0
  82. data/spec/dummy/db/migrate/059_create_libraries.rb +1 -5
  83. data/spec/dummy/db/migrate/069_create_shelves.rb +1 -5
  84. data/spec/dummy/db/migrate/077_create_user_groups.rb +3 -7
  85. data/spec/dummy/db/migrate/080_create_library_groups.rb +2 -10
  86. data/spec/dummy/db/migrate/113_create_events.rb +2 -2
  87. data/spec/dummy/db/migrate/124_create_bookstores.rb +17 -0
  88. data/spec/dummy/db/migrate/130_create_request_status_types.rb +1 -5
  89. data/spec/dummy/db/migrate/131_create_request_types.rb +1 -5
  90. data/spec/dummy/db/migrate/20081006090811_create_subscriptions.rb +17 -0
  91. data/spec/dummy/db/migrate/20081006093246_create_subscribes.rb +14 -0
  92. data/spec/dummy/db/migrate/20081023092436_create_search_engines.rb +17 -0
  93. data/spec/dummy/db/migrate/20081028093607_create_event_import_files.rb +25 -0
  94. data/spec/dummy/db/migrate/20090519203307_create_participates.rb +17 -0
  95. data/spec/dummy/db/migrate/20100314190054_add_opening_hour_to_library.rb +9 -0
  96. data/spec/dummy/db/migrate/{20111201163718_create_user_has_roles.rb → 20100606065209_create_user_has_roles.rb} +2 -0
  97. data/spec/dummy/db/migrate/20100925074639_create_event_import_results.rb +15 -0
  98. data/spec/dummy/db/migrate/{20111201121844_create_roles.rb → 20120129014038_create_budget_types.rb} +2 -2
  99. data/spec/dummy/db/migrate/20120319173203_create_accepts.rb +14 -0
  100. data/spec/dummy/db/migrate/20120413051535_add_event_import_fingerprint_to_event_import_file.rb +5 -0
  101. data/spec/dummy/db/migrate/20120413170734_add_error_message_to_event_import_file.rb +5 -0
  102. data/spec/dummy/db/migrate/20120415060342_rename_event_import_file_imported_at_to_executed_at.rb +9 -0
  103. data/spec/dummy/db/migrate/20120510140958_add_closed_to_shelf.rb +5 -0
  104. data/spec/dummy/db/migrate/20130412083556_add_latitude_and_longitude_to_library.rb +6 -0
  105. data/spec/dummy/db/migrate/20140110122216_create_user_import_files.rb +18 -0
  106. data/spec/dummy/db/migrate/20140110131010_create_user_import_results.rb +11 -0
  107. data/spec/dummy/db/migrate/20140122054321_create_profiles.rb +1 -1
  108. data/spec/dummy/db/migrate/20140523171309_create_event_import_file_transitions.rb +18 -0
  109. data/spec/dummy/db/migrate/20140524074813_create_user_import_file_transitions.rb +18 -0
  110. data/spec/dummy/db/migrate/20140628071719_add_user_encoding_to_event_import_file.rb +5 -0
  111. data/spec/dummy/db/migrate/20140628072217_add_user_encoding_to_user_import_file.rb +5 -0
  112. data/spec/dummy/db/migrate/20140709113413_create_user_export_files.rb +11 -0
  113. data/spec/dummy/db/migrate/20140709113905_create_user_export_file_transitions.rb +18 -0
  114. data/spec/dummy/db/migrate/20140720170714_add_default_library_id_to_user_import_file.rb +5 -0
  115. data/spec/dummy/db/migrate/20140720170735_add_default_user_group_id_to_user_import_file.rb +5 -0
  116. data/spec/dummy/db/migrate/20140720192418_add_default_library_id_to_event_import_file.rb +5 -0
  117. data/spec/dummy/db/migrate/20140812152348_create_event_export_files.rb +11 -0
  118. data/spec/dummy/db/migrate/20140812153137_create_event_export_file_transitions.rb +18 -0
  119. data/spec/dummy/db/migrate/20140814070854_add_default_event_category_id_to_event_import_file.rb +5 -0
  120. data/spec/dummy/db/migrate/20140821151023_create_colors.rb +14 -0
  121. data/spec/dummy/db/migrate/20141003181336_add_full_name_transcription_to_profile.rb +5 -0
  122. data/spec/dummy/db/migrate/20141003182825_add_date_of_birth_to_profile.rb +5 -0
  123. data/spec/dummy/db/schema.rb +246 -58
  124. data/spec/fixtures/checkouts.yml +1 -1
  125. data/spec/fixtures/demands.yml +11 -0
  126. data/spec/fixtures/events.yml +13 -39
  127. data/spec/fixtures/library_groups.yml +0 -2
  128. metadata +105 -43
  129. data/db/migrate/20111217234412_add_save_checkout_history_to_user.rb +0 -5
  130. data/db/migrate/20111218002349_add_checkout_icalendar_token_to_user.rb +0 -6
  131. data/spec/dummy/db/migrate/20090719201843_create_extents.rb +0 -12
  132. data/spec/dummy/db/migrate/20100222124420_add_allow_bookmark_external_url_to_library_group.rb +0 -9
  133. data/spec/dummy/db/migrate/20110115022329_add_position_to_library_group.rb +0 -9
  134. data/spec/dummy/db/migrate/20110425133109_add_issn_to_series_statement.rb +0 -9
  135. data/spec/dummy/db/migrate/20110618091240_add_periodical_to_series_statement.rb +0 -9
  136. data/spec/dummy/db/migrate/20110820131417_create_series_has_manifestations.rb +0 -13
  137. data/spec/dummy/db/migrate/20111020063828_remove_dsbl_from_library_group.rb +0 -11
  138. data/spec/dummy/db/migrate/20120224094141_create_delayed_jobs.rb +0 -22
  139. data/spec/dummy/script/delayed_job +0 -5
  140. data/spec/dummy/script/rails +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bc28894fa75205e043a65091c988180f9ec16291
4
- data.tar.gz: c032ab36c6bb6973ad8c7d333cda148feb0db4c6
3
+ metadata.gz: 6c9e08e2fc2236be4faa9882cfb283f247d845f1
4
+ data.tar.gz: f3d16e72a7f830f8b67e1524acb1d793c3ba1c47
5
5
  SHA512:
6
- metadata.gz: 38f85ed8019ed31ddc51516bed7bf0fd9764445b3ba9d4a3231fa27cdaccb744d7f0723bc211be6002e394c56e7e103ccbef73ba7aa84a62bd20f9537cb34e72
7
- data.tar.gz: d35cb074110a6727b25a03fb57d1f38f25132dea4844dd31b1371db40383612b4d6cacfaf2f17269b545cca4adf96fbfeb0071227c73415dc8c84516eee9957c
6
+ metadata.gz: 91d1606fe101c3c2cc8b2f4d6bd0a2775f1867a293f84d19a6faa6990c2736bb3c7d7d143f793a16c3c47485ac2099f7b10b4512407604f090c1511652265563
7
+ data.tar.gz: c97fcb04551f6bafb00f15c0c58fc3cd8ae9d54135afcde4b7f8baedd0037cc4a947d2e91c8b7e2bfe6466678842fd780ebc82d7f7d16eee4c536f5991863ec8
@@ -43,7 +43,7 @@ class CarrierTypeHasCheckoutTypesController < ApplicationController
43
43
  # POST /carrier_type_has_checkout_types
44
44
  # POST /carrier_type_has_checkout_types.json
45
45
  def create
46
- @carrier_type_has_checkout_type = CarrierTypeHasCheckoutType.new(params[:carrier_type_has_checkout_type])
46
+ @carrier_type_has_checkout_type = CarrierTypeHasCheckoutType.new(carrier_type_has_checkout_type_params)
47
47
 
48
48
  respond_to do |format|
49
49
  if @carrier_type_has_checkout_type.save
@@ -62,7 +62,7 @@ class CarrierTypeHasCheckoutTypesController < ApplicationController
62
62
  # PUT /carrier_type_has_checkout_types/1.json
63
63
  def update
64
64
  respond_to do |format|
65
- if @carrier_type_has_checkout_type.update_attributes(params[:carrier_type_has_checkout_type])
65
+ if @carrier_type_has_checkout_type.update_attributes(carrier_type_has_checkout_type_params)
66
66
  flash[:notice] = t('controller.successfully_updated', model: t('activerecord.models.carrier_type_has_checkout_type'))
67
67
  format.html { redirect_to @carrier_type_has_checkout_type }
68
68
  format.json { head :no_content }
@@ -86,8 +86,14 @@ class CarrierTypeHasCheckoutTypesController < ApplicationController
86
86
  end
87
87
 
88
88
  private
89
+ def carrier_type_has_checkout_type_params
90
+ params.require(:carrier_type_has_checkout_type).permit(
91
+ :carrier_type_id, :checkout_type_id, :note
92
+ )
93
+ end
94
+
89
95
  def prepare_options
90
- @checkout_types = CheckoutType.all
91
- @carrier_types = CarrierType.all
96
+ @checkout_types = CheckoutType.order(:position)
97
+ @carrier_types = CarrierType.order(:position)
92
98
  end
93
99
  end
@@ -87,7 +87,7 @@ class CheckedItemsController < ApplicationController
87
87
  end
88
88
 
89
89
  respond_to do |format|
90
- if @checked_item.update_attributes(params[:checked_item])
90
+ if @checked_item.update_attributes(checked_item_params)
91
91
  format.html { redirect_to checked_item_url(@checked_item), notice: t('controller.successfully_updated', model: t('activerecord.models.checked_item')) }
92
92
  format.json { head :no_content }
93
93
  else
@@ -107,4 +107,11 @@ class CheckedItemsController < ApplicationController
107
107
  format.json { head :no_content }
108
108
  end
109
109
  end
110
+
111
+ private
112
+ def checked_item_params
113
+ params.fetch(:checked_item, {}).permit(
114
+ :item_identifier, :ignore_restriction, :due_date_string
115
+ )
116
+ end
110
117
  end
@@ -90,7 +90,7 @@ class CheckinsController < ApplicationController
90
90
  # PUT /checkins/1
91
91
  # PUT /checkins/1.json
92
92
  def update
93
- @checkin.assign_attributes(params[:checkin])
93
+ @checkin.assign_attributes(checkin_params)
94
94
  @checkin.librarian = current_user
95
95
 
96
96
  respond_to do |format|
@@ -115,4 +115,9 @@ class CheckinsController < ApplicationController
115
115
  format.json { head :no_content }
116
116
  end
117
117
  end
118
+
119
+ private
120
+ def checkin_params
121
+ params.require(:checkin).permit(:item_identifier)
122
+ end
118
123
  end
@@ -53,9 +53,9 @@ class CheckoutTypesController < ApplicationController
53
53
  # POST /checkout_types.json
54
54
  def create
55
55
  if @user_group
56
- @checkout_type = @user_group.checkout_types.new(params[:checkout_type])
56
+ @checkout_type = @user_group.checkout_types.new(checkout_type_params)
57
57
  else
58
- @checkout_type = CheckoutType.new(params[:checkout_type])
58
+ @checkout_type = CheckoutType.new(checkout_type_params)
59
59
  end
60
60
 
61
61
  respond_to do |format|
@@ -78,7 +78,7 @@ class CheckoutTypesController < ApplicationController
78
78
  end
79
79
 
80
80
  respond_to do |format|
81
- if @checkout_type.update_attributes(params[:checkout_type])
81
+ if @checkout_type.update_attributes(checkout_type_params)
82
82
  format.html { redirect_to @checkout_type, notice: t('controller.successfully_updated', model: t('activerecord.models.checkout_type')) }
83
83
  format.json { head :no_content }
84
84
  else
@@ -101,4 +101,9 @@ class CheckoutTypesController < ApplicationController
101
101
  format.json { head :no_content }
102
102
  end
103
103
  end
104
+
105
+ private
106
+ def checkout_type_params
107
+ params.require(:checkout_type).permit(:name, :display_name, :note)
108
+ end
104
109
  end
@@ -35,7 +35,7 @@ class CheckoutsController < ApplicationController
35
35
  if current_user.try(:has_role?, 'Librarian')
36
36
  search.build do
37
37
  with(:username).equal_to user.username
38
- with(:checked_in_at).equal_to nil unless user.save_checkout_history
38
+ with(:checked_in_at).equal_to nil unless user.profile.save_checkout_history
39
39
  end
40
40
  else
41
41
  if current_user == user
@@ -53,8 +53,10 @@ class CheckoutsController < ApplicationController
53
53
  end
54
54
  end
55
55
 
56
- search.build do
57
- with(:checked_in_at).equal_to nil
56
+ unless current_user.profile.save_checkout_history?
57
+ search.build do
58
+ with(:checked_in_at).equal_to nil
59
+ end
58
60
  end
59
61
  end
60
62
 
@@ -133,7 +135,7 @@ class CheckoutsController < ApplicationController
133
135
  # PUT /checkouts/1
134
136
  # PUT /checkouts/1.json
135
137
  def update
136
- @checkout.assign_attributes(params[:checkout])
138
+ @checkout.assign_attributes(checkout_params)
137
139
  @checkout.due_date = @checkout.due_date.end_of_day
138
140
  @checkout.checkout_renewal_count += 1
139
141
 
@@ -177,4 +179,9 @@ class CheckoutsController < ApplicationController
177
179
  format.json { head :no_content }
178
180
  end
179
181
  end
182
+
183
+ private
184
+ def checkout_params
185
+ params.fetch(:checkout, {}).permit(:due_date)
186
+ end
180
187
  end
@@ -39,7 +39,7 @@ class CirculationStatusesController < ApplicationController
39
39
  # POST /circulation_statuses
40
40
  # POST /circulation_statuses.json
41
41
  def create
42
- @circulation_status = CirculationStatus.new(params[:circulation_status])
42
+ @circulation_status = CirculationStatus.new(circulation_status_params)
43
43
 
44
44
  respond_to do |format|
45
45
  if @circulation_status.save
@@ -61,7 +61,7 @@ class CirculationStatusesController < ApplicationController
61
61
  end
62
62
 
63
63
  respond_to do |format|
64
- if @circulation_status.update_attributes(params[:circulation_status])
64
+ if @circulation_status.update_attributes(circulation_status_params)
65
65
  format.html { redirect_to @circulation_status, notice: t('controller.successfully_updated', model: t('activerecord.models.circulation_status')) }
66
66
  format.json { head :no_content }
67
67
  else
@@ -81,4 +81,9 @@ class CirculationStatusesController < ApplicationController
81
81
  format.json { head :no_content }
82
82
  end
83
83
  end
84
+
85
+ private
86
+ def circulation_status_params
87
+ params.require(:circulation_status).permit(:name, :display_name, :note)
88
+ end
84
89
  end
@@ -0,0 +1,85 @@
1
+ class DemandsController < ApplicationController
2
+ load_and_authorize_resource
3
+
4
+ # GET /demands
5
+ # GET /demands.json
6
+ def index
7
+ @demands = Demand.order('id DESC').page(params[:page])
8
+
9
+ respond_to do |format|
10
+ format.html # index.html.erb
11
+ format.json { render json: @demands }
12
+ end
13
+ end
14
+
15
+ # GET /demands/1
16
+ # GET /demands/1.json
17
+ def show
18
+ respond_to do |format|
19
+ format.html # show.html.erb
20
+ format.json { render json: @demand }
21
+ format.txt
22
+ end
23
+ end
24
+
25
+ # GET /demands/new
26
+ # GET /demands/new.json
27
+ def new
28
+ @demand = Demand.new
29
+
30
+ respond_to do |format|
31
+ format.html # new.html.erb
32
+ format.json { render json: @demand }
33
+ end
34
+ end
35
+
36
+ # GET /demands/1/edit
37
+ def edit
38
+ end
39
+
40
+ # POST /demands
41
+ # POST /demands.json
42
+ def create
43
+ @demand = Demand.new(demand_params)
44
+
45
+ respond_to do |format|
46
+ if @demand.save
47
+ format.html { redirect_to @demand, notice: t('statistic.successfully_created', model: t('activerecord.models.demand')) }
48
+ format.json { render json: @demand, status: :created, location: @demand }
49
+ else
50
+ format.html { render action: "new" }
51
+ format.json { render json: @demand.errors, status: :unprocessable_entity }
52
+ end
53
+ end
54
+ end
55
+
56
+ # PUT /demands/1
57
+ # PUT /demands/1.json
58
+ def update
59
+ respond_to do |format|
60
+ if @demand.update_attributes(demand_params)
61
+ format.html { redirect_to @demand, notice: t('controller.successfully_updated', model: t('activerecord.models.demand')) }
62
+ format.json { head :no_content }
63
+ else
64
+ format.html { render action: "edit" }
65
+ format.json { render json: @demand.errors, status: :unprocessable_entity }
66
+ end
67
+ end
68
+ end
69
+
70
+ # DELETE /demands/1
71
+ # DELETE /demands/1.json
72
+ def destroy
73
+ @demand.destroy
74
+
75
+ respond_to do |format|
76
+ format.html { redirect_to demands_url }
77
+ format.json { head :no_content }
78
+ end
79
+ end
80
+
81
+ private
82
+ def demand_params
83
+ params.fetch(:demand, {}).permit()
84
+ end
85
+ end
@@ -45,8 +45,7 @@ class ItemHasUseRestrictionsController < ApplicationController
45
45
  # POST /item_has_use_restrictions
46
46
  # POST /item_has_use_restrictions.json
47
47
  def create
48
- @item_has_use_restriction = ItemHasUseRestriction.new(params[:item_has_use_restriction])
49
- @item_has_use_restriction.assign_attributes(params[:item_has_use_restriction])
48
+ @item_has_use_restriction = ItemHasUseRestriction.new(item_has_use_restriction_params)
50
49
 
51
50
  respond_to do |format|
52
51
  if @item_has_use_restriction.save
@@ -63,7 +62,7 @@ class ItemHasUseRestrictionsController < ApplicationController
63
62
  # PUT /item_has_use_restrictions/1
64
63
  # PUT /item_has_use_restrictions/1.json
65
64
  def update
66
- @item_has_use_restriction.assign_attributes(params[:item_has_use_restriction])
65
+ @item_has_use_restriction.assign_attributes(item_has_use_restriction_params)
67
66
  respond_to do |format|
68
67
  if @item_has_use_restriction.save
69
68
  format.html { redirect_to @item_has_use_restriction, notice: t('controller.successfully_updated', model: t('activerecord.models.item_has_use_restriction')) }
@@ -86,4 +85,11 @@ class ItemHasUseRestrictionsController < ApplicationController
86
85
  format.json { head :no_content }
87
86
  end
88
87
  end
88
+
89
+ private
90
+ def item_has_use_restriction_params
91
+ params.require(:item_has_use_restriction).permit(
92
+ :item_id, :use_restriction_id, :use_restriction
93
+ )
94
+ end
89
95
  end
@@ -55,7 +55,7 @@ class LendingPoliciesController < ApplicationController
55
55
  # PUT /lending_policies/1.json
56
56
  def update
57
57
  respond_to do |format|
58
- if @lending_policy.update_attributes(params[:lending_policy])
58
+ if @lending_policy.update_attributes(lending_policy_params)
59
59
  format.html { redirect_to @lending_policy, notice: t('controller.successfully_updated', model: t('activerecord.models.lending_policy')) }
60
60
  format.json { head :no_content }
61
61
  else
@@ -78,6 +78,13 @@ class LendingPoliciesController < ApplicationController
78
78
  end
79
79
 
80
80
  private
81
+ def lending_policy_params
82
+ params.require(:lending_policy).permit(
83
+ :item_id, :user_group_id, :loan_period, :fixed_due_date,
84
+ :renewal, :fine, :note, :position
85
+ )
86
+ end
87
+
81
88
  def prepare_options
82
89
  @user_groups = UserGroup.order(:position)
83
90
  end
@@ -60,6 +60,8 @@ class ManifestationCheckoutStatsController < ApplicationController
60
60
  # GET /manifestation_checkout_stats/new.json
61
61
  def new
62
62
  @manifestation_checkout_stat = ManifestationCheckoutStat.new
63
+ @manifestation_checkout_stat.start_date = Time.zone.now.beginning_of_day
64
+ @manifestation_checkout_stat.end_date = Time.zone.now.beginning_of_day
63
65
 
64
66
  respond_to do |format|
65
67
  format.html # new.html.erb
@@ -74,7 +76,7 @@ class ManifestationCheckoutStatsController < ApplicationController
74
76
  # POST /manifestation_checkout_stats
75
77
  # POST /manifestation_checkout_stats.json
76
78
  def create
77
- @manifestation_checkout_stat = ManifestationCheckoutStat.new(params[:manifestation_checkout_stat])
79
+ @manifestation_checkout_stat = ManifestationCheckoutStat.new(manifestation_checkout_stat_params)
78
80
  @manifestation_checkout_stat.user = current_user
79
81
 
80
82
  respond_to do |format|
@@ -95,7 +97,7 @@ class ManifestationCheckoutStatsController < ApplicationController
95
97
  # PUT /manifestation_checkout_stats/1.json
96
98
  def update
97
99
  respond_to do |format|
98
- if @manifestation_checkout_stat.update_attributes(params[:manifestation_checkout_stat])
100
+ if @manifestation_checkout_stat.update_attributes(manifestation_checkout_stat_params)
99
101
  if @manifestation_checkout_stat.mode == 'import'
100
102
  Resque.enqueue(ManifestationCheckoutStatQueue, @manifestation_checkout_stat.id)
101
103
  end
@@ -118,4 +120,11 @@ class ManifestationCheckoutStatsController < ApplicationController
118
120
  format.json { head :no_content }
119
121
  end
120
122
  end
123
+
124
+ private
125
+ def manifestation_checkout_stat_params
126
+ params.require(:manifestation_checkout_stat).permit(
127
+ :start_date, :end_date, :note, :mode
128
+ )
129
+ end
121
130
  end
@@ -48,7 +48,7 @@ class ManifestationReserveStatsController < ApplicationController
48
48
  # POST /manifestation_reserve_stats
49
49
  # POST /manifestation_reserve_stats.json
50
50
  def create
51
- @manifestation_reserve_stat = ManifestationReserveStat.new(params[:manifestation_reserve_stat])
51
+ @manifestation_reserve_stat = ManifestationReserveStat.new(manifestation_reserve_stat_params)
52
52
  @manifestation_reserve_stat.user = current_user
53
53
 
54
54
  respond_to do |format|
@@ -67,7 +67,7 @@ class ManifestationReserveStatsController < ApplicationController
67
67
  # PUT /manifestation_reserve_stats/1.json
68
68
  def update
69
69
  respond_to do |format|
70
- if @manifestation_reserve_stat.update_attributes(params[:manifestation_reserve_stat])
70
+ if @manifestation_reserve_stat.update_attributes(manifestation_reserve_stat_params)
71
71
  if @manifestation_reserve_stat.mode == 'import'
72
72
  Resque.enqueue(ManifestationReserveStatQueue, @manifestation_reserve_stat.id)
73
73
  end
@@ -90,4 +90,11 @@ class ManifestationReserveStatsController < ApplicationController
90
90
  format.json { head :no_content }
91
91
  end
92
92
  end
93
+
94
+ private
95
+ def manifestation_reserve_stat_params
96
+ params.require(:manifestation_reserve_stat).permit(
97
+ :start_date, :end_date, :note, :mode
98
+ )
99
+ end
93
100
  end
@@ -158,11 +158,7 @@ class ReservesController < ApplicationController
158
158
  # POST /reserves
159
159
  # POST /reserves.json
160
160
  def create
161
- if current_user.has_role?('Librarian')
162
- @reserve = Reserve.new(params[:reserve], as: :admin)
163
- else
164
- @reserve = Reserve.new(params[:reserve])
165
- end
161
+ @reserve = Reserve.new(reserve_params)
166
162
  @reserve.set_user
167
163
 
168
164
  if current_user.has_role?('Librarian')
@@ -194,14 +190,12 @@ class ReservesController < ApplicationController
194
190
  # PUT /reserves/1
195
191
  # PUT /reserves/1.json
196
192
  def update
197
- if current_user.has_role?('Librarian')
198
- @reserve.assign_attributes(params[:reserve], as: :admin)
199
- else
193
+ unless current_user.has_role?('Librarian')
200
194
  if @reserve.user != current_user
201
195
  access_denied; return
202
196
  end
203
- @reserve.assign_attributes(params[:reserve], as: :user_update)
204
197
  end
198
+ @reserve.assign_attributes(reserve_update_params)
205
199
 
206
200
  if @reserve.valid?
207
201
  if params[:mode] == 'cancel'
@@ -256,6 +250,40 @@ class ReservesController < ApplicationController
256
250
  end
257
251
 
258
252
  private
253
+ def reserve_params
254
+ if current_user.try(:has_role?, 'Librarian')
255
+ params.fetch(:reserve, {}).permit(
256
+ :manifestation_id, :user_number, :expired_at,
257
+ :pickup_location_id, :expired_at,
258
+ :manifestation_id, :item_identifier, :user_number,
259
+ :request_status_type, :canceled_at, :checked_out_at,
260
+ :expiration_notice_to_patron, :expiration_notice_to_library, :item_id,
261
+ :retained_at, :postponed_at, :force_retaining
262
+ )
263
+ elsif current_user.try(:has_role?, 'User')
264
+ params.fetch(:reserve, {}).permit(
265
+ :user_number, :manifestation_id, :expired_at, :pickup_location_id
266
+ )
267
+ end
268
+ end
269
+
270
+ def reserve_update_params
271
+ if current_user.try(:has_role?, 'Librarian')
272
+ params.fetch(:reserve, {}).permit(
273
+ :manifestation_id, :user_number, :expired_at,
274
+ :pickup_location_id, :expired_at,
275
+ :manifestation_id, :item_identifier, :user_number,
276
+ :request_status_type, :canceled_at, :checked_out_at,
277
+ :expiration_notice_to_patron, :expiration_notice_to_library, :item_id,
278
+ :retained_at, :postponed_at, :force_retaining
279
+ )
280
+ elsif current_user.try(:has_role?, 'User')
281
+ params.fetch(:reserve, {}).permit(
282
+ :expired_at, :pickup_location_id
283
+ )
284
+ end
285
+ end
286
+
259
287
  def prepare_options
260
288
  @libraries = Library.real.order(:position)
261
289
  end
@@ -39,7 +39,7 @@ class UseRestrictionsController < ApplicationController
39
39
  # POST /use_restrictions
40
40
  # POST /use_restrictions.json
41
41
  def create
42
- @use_restriction = UseRestriction.new(params[:use_restriction])
42
+ @use_restriction = UseRestriction.new(use_restriction_params)
43
43
 
44
44
  respond_to do |format|
45
45
  if @use_restriction.save
@@ -61,7 +61,7 @@ class UseRestrictionsController < ApplicationController
61
61
  end
62
62
 
63
63
  respond_to do |format|
64
- if @use_restriction.update_attributes(params[:use_restriction])
64
+ if @use_restriction.update_attributes(use_restriction_params)
65
65
  format.html { redirect_to @use_restriction, notice: t('controller.successfully_updated', model: t('activerecord.models.use_restriction')) }
66
66
  format.json { head :no_content }
67
67
  else
@@ -81,4 +81,9 @@ class UseRestrictionsController < ApplicationController
81
81
  format.json { head :no_content }
82
82
  end
83
83
  end
84
+
85
+ private
86
+ def use_restriction_params
87
+ params.require(:use_restriction).permit(:name, :display_name, :note)
88
+ end
84
89
  end
@@ -48,7 +48,7 @@ class UserCheckoutStatsController < ApplicationController
48
48
  # POST /user_checkout_stats
49
49
  # POST /user_checkout_stats.json
50
50
  def create
51
- @user_checkout_stat = UserCheckoutStat.new(params[:user_checkout_stat])
51
+ @user_checkout_stat = UserCheckoutStat.new(user_checkout_stat_params)
52
52
  @user_checkout_stat.user = current_user
53
53
 
54
54
  respond_to do |format|
@@ -67,7 +67,7 @@ class UserCheckoutStatsController < ApplicationController
67
67
  # PUT /user_checkout_stats/1.json
68
68
  def update
69
69
  respond_to do |format|
70
- if @user_checkout_stat.update_attributes(params[:user_checkout_stat])
70
+ if @user_checkout_stat.update_attributes(user_checkout_stat_params)
71
71
  if @user_checkout_stat.mode == 'import'
72
72
  Resque.enqueue(UserCheckoutStatQueue, @user_checkout_stat.id)
73
73
  end
@@ -90,4 +90,11 @@ class UserCheckoutStatsController < ApplicationController
90
90
  format.json { head :no_content }
91
91
  end
92
92
  end
93
+
94
+ private
95
+ def user_checkout_stat_params
96
+ params.require(:user_checkout_stat).permit(
97
+ :start_date, :end_date, :note, :mode
98
+ )
99
+ end
93
100
  end
@@ -44,7 +44,7 @@ class UserGroupHasCheckoutTypesController < ApplicationController
44
44
  # POST /user_group_has_checkout_types
45
45
  # POST /user_group_has_checkout_types.json
46
46
  def create
47
- @user_group_has_checkout_type = UserGroupHasCheckoutType.new(params[:user_group_has_checkout_type])
47
+ @user_group_has_checkout_type = UserGroupHasCheckoutType.new(user_group_has_checkout_type_params)
48
48
 
49
49
  respond_to do |format|
50
50
  if @user_group_has_checkout_type.save
@@ -62,7 +62,7 @@ class UserGroupHasCheckoutTypesController < ApplicationController
62
62
  # PUT /user_group_has_checkout_types/1.json
63
63
  def update
64
64
  respond_to do |format|
65
- if @user_group_has_checkout_type.update_attributes(params[:user_group_has_checkout_type])
65
+ if @user_group_has_checkout_type.update_attributes(user_group_has_checkout_type_params)
66
66
  format.html { redirect_to @user_group_has_checkout_type, notice: t('controller.successfully_updated', model: t('activerecord.models.user_group_has_checkout_type')) }
67
67
  format.json { head :no_content }
68
68
  else
@@ -85,6 +85,16 @@ class UserGroupHasCheckoutTypesController < ApplicationController
85
85
  end
86
86
 
87
87
  private
88
+ def user_group_has_checkout_type_params
89
+ params.require(:user_group_has_checkout_type).permit(
90
+ :user_group_id, :checkout_type_id,
91
+ :checkout_limit, :checkout_period, :checkout_renewal_limit,
92
+ :reservation_limit, :reservation_expired_period,
93
+ :set_due_date_before_closing_day, :fixed_due_date, :note, :position,
94
+ :user_group, :checkout_type
95
+ )
96
+ end
97
+
88
98
  def prepare_options
89
99
  @checkout_types = CheckoutType.all
90
100
  @user_groups = UserGroup.all
@@ -48,7 +48,7 @@ class UserReserveStatsController < ApplicationController
48
48
  # POST /user_reserve_stats
49
49
  # POST /user_reserve_stats.json
50
50
  def create
51
- @user_reserve_stat = UserReserveStat.new(params[:user_reserve_stat])
51
+ @user_reserve_stat = UserReserveStat.new(user_reserve_stat_params)
52
52
  @user_reserve_stat.user = current_user
53
53
 
54
54
  respond_to do |format|
@@ -67,7 +67,7 @@ class UserReserveStatsController < ApplicationController
67
67
  # PUT /user_reserve_stats/1.json
68
68
  def update
69
69
  respond_to do |format|
70
- if @user_reserve_stat.update_attributes(params[:user_reserve_stat])
70
+ if @user_reserve_stat.update_attributes(user_reserve_stat_params)
71
71
  if @user_reserve_stat.mode == 'import'
72
72
  Resque.enqueue(UserReserveStatQueue, @user_reserve_stat.id)
73
73
  end
@@ -90,4 +90,11 @@ class UserReserveStatsController < ApplicationController
90
90
  format.json { head :no_content }
91
91
  end
92
92
  end
93
+
94
+ private
95
+ def user_reserve_stat_params
96
+ params.require(:user_reserve_stat).permit(
97
+ :start_date, :end_date, :note, :mode
98
+ )
99
+ end
93
100
  end
@@ -0,0 +1,17 @@
1
+ module ItemsHelper
2
+ def circulation_status_facet(facet)
3
+ string = ''
4
+ circulation_status = CirculationStatus.where(name: facet.value).select([:name, :display_name]).first
5
+ if circulation_status
6
+ string << form_icon(circulation_status)
7
+ current = true if params[:circulation_status] == circulation_status.name
8
+ if current
9
+ content_tag :strong do
10
+ link_to("#{circulation_status.display_name.localize} (" + facet.count.to_s + ")", url_for(params.merge(circulation_status: circulation_status.name, page: nil, view: nil, only_path: true)))
11
+ end
12
+ else
13
+ link_to("#{circulation_status.display_name.localize} (" + facet.count.to_s + ")", url_for(params.merge(circulation_status: circulation_status.name, page: nil, view: nil, only_path: true)))
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,5 +1,4 @@
1
1
  class CarrierTypeHasCheckoutType < ActiveRecord::Base
2
- attr_accessible :carrier_type_id, :checkout_type_id, :note
3
2
  scope :available_for_carrier_type, lambda {|carrier_type| includes(:carrier_type).where('carrier_types.name = ?', carrier_type.name)}
4
3
  scope :available_for_user_group, lambda {|user_group| includes(checkout_type: :user_groups).where('user_groups.name = ?', user_group.name)}
5
4
 
@@ -1,5 +1,4 @@
1
1
  class CheckedItem < ActiveRecord::Base
2
- attr_accessible :item_identifier, :ignore_restriction, :due_date_string
3
2
  belongs_to :item #, validate: true
4
3
  belongs_to :basket #, validate: true
5
4
  belongs_to :librarian, class_name: 'User' #, validate: true
@@ -15,7 +14,7 @@ class CheckedItem < ActiveRecord::Base
15
14
  before_validation :set_due_date, on: :create
16
15
  normalize_attributes :item_identifier
17
16
 
18
- attr_protected :user_id
17
+ #attr_protected :user_id
19
18
  attr_accessor :item_identifier, :ignore_restriction, :due_date_string
20
19
 
21
20
  def available_for_checkout?
@@ -1,5 +1,4 @@
1
1
  class Checkin < ActiveRecord::Base
2
- attr_accessible :item_identifier
3
2
  default_scope { order('checkins.id DESC') }
4
3
  scope :on, lambda {|date| where('created_at >= ? AND created_at < ?', date.beginning_of_day, date.tomorrow.beginning_of_day)}
5
4
  has_one :checkout
@@ -1,5 +1,4 @@
1
1
  class Checkout < ActiveRecord::Base
2
- attr_accessible :due_date
3
2
  scope :not_returned, -> { where(checkin_id: nil) }
4
3
  scope :returned, -> { where('checkin_id IS NOT NULL') }
5
4
  scope :overdue, lambda {|date| where('checkin_id IS NULL AND due_date < ?', date)}
@@ -1,6 +1,6 @@
1
1
  class CheckoutStatHasManifestation < ActiveRecord::Base
2
- attr_accessible :manifestation_checkout_stat_id, :manifestation_id,
3
- as: :admin
2
+ #attr_accessible :manifestation_checkout_stat_id, :manifestation_id,
3
+ # as: :admin
4
4
  belongs_to :manifestation_checkout_stat
5
5
  belongs_to :manifestation
6
6
 
@@ -1,6 +1,6 @@
1
1
  class CheckoutStatHasUser < ActiveRecord::Base
2
- attr_accessible :user_checkout_stat_id, :user_id,
3
- as: :admin
2
+ #attr_accessible :user_checkout_stat_id, :user_id,
3
+ # as: :admin
4
4
  belongs_to :user_checkout_stat
5
5
  belongs_to :user
6
6