enju_circulation 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/app/models/concerns/enju_circulation/enju_item.rb +3 -0
- data/app/models/reserve.rb +1 -1
- data/app/views/checkouts/index.txt.ruby +1 -1
- data/lib/enju_circulation/version.rb +1 -1
- data/spec/concerns/enju_accept_spec.rb +2 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/models/user.rb +1 -0
- data/spec/dummy/config/application.rb +1 -0
- data/spec/dummy/config/database.yml +17 -22
- data/spec/dummy/db/migrate/20160813191533_add_book_jacket_source_to_library_group.rb +5 -0
- data/spec/dummy/db/migrate/20160813191820_add_screenshot_generator_to_library_group.rb +5 -0
- data/spec/dummy/db/schema.rb +3 -1
- data/spec/factories/withdraw.rb +21 -0
- data/spec/models/withdraw_spec.rb +35 -0
- data/spec/rails_helper.rb +6 -0
- metadata +63 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 6b71a1452b3731a885beeb265f9f5d3db20604cb7f4397cdddd9269b4e235a7c
|
4
|
+
data.tar.gz: 79273b205450724cc144ac839d09d82069755f5f84fc78f37948ce396ea292a2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4df0bfd6a17b48bdbdf08177ee991c0f8dcebbe1d6e7237e9f41b7eb39e65b32e7d38c9c0b08bfa41add718bc8f5ec26e29dc364003ef4ef9518d8ca8864f246
|
7
|
+
data.tar.gz: f5e812a6fa13aebc8b642d44d78cbb7a303ca761df3afeef33650fdd9820dc3c9cec390b7a551135088d7fa027244d23b4010b1bf70f83f4c4092e3c3e2c9e0c
|
@@ -27,7 +27,10 @@ module EnjuCirculation
|
|
27
27
|
'use_restrictions.name' => FOR_CHECKOUT_USE_RESTRICTION
|
28
28
|
).where(identifier_conditions)
|
29
29
|
}
|
30
|
+
scope :on_shelf, -> { includes(:shelf).references(:shelf).where('shelves.name != ?', 'web').where.not(circulation_status_id: CirculationStatus.find_by(name: 'Removed').id) }
|
31
|
+
scope :available, -> { includes(:circulation_status).where.not('circulation_statuses.name' => 'Removed') }
|
30
32
|
scope :removed, -> { includes(:circulation_status).where('circulation_statuses.name' => 'Removed') }
|
33
|
+
|
31
34
|
has_many :checkouts
|
32
35
|
has_many :reserves
|
33
36
|
has_many :checked_items
|
data/app/models/reserve.rb
CHANGED
@@ -137,7 +137,7 @@ class Reserve < ActiveRecord::Base
|
|
137
137
|
def retained_by_other_user?
|
138
138
|
return nil if force_retaining == '1'
|
139
139
|
if item && !retained?
|
140
|
-
if Reserve.retained.where(item_id: item.
|
140
|
+
if Reserve.retained.where(item_id: item.id).count > 0
|
141
141
|
errors[:base] << I18n.t('reserve.attempt_to_update_retained_reservation')
|
142
142
|
end
|
143
143
|
end
|
@@ -3,7 +3,7 @@ CSV.generate(col_sep: "\t", row_sep: "\r\n") do |csv|
|
|
3
3
|
@checkouts.each do |checkout|
|
4
4
|
csv << [
|
5
5
|
checkout.user.try(:username),
|
6
|
-
checkout.user.try(:user_number),
|
6
|
+
checkout.user.try(:profile).try(:user_number),
|
7
7
|
checkout.item.item_identifier,
|
8
8
|
checkout.item.manifestation.original_title,
|
9
9
|
checkout.created_at,
|
@@ -6,6 +6,7 @@ end
|
|
6
6
|
|
7
7
|
describe EnjuCirculation::EnjuAccept do
|
8
8
|
fixtures :all
|
9
|
+
|
9
10
|
it "should successfully accept" do
|
10
11
|
accept = MyAccept.new(FactoryBot.attributes_for(:accept))
|
11
12
|
expect(accept.item).to be_truthy
|
@@ -14,6 +15,7 @@ describe EnjuCirculation::EnjuAccept do
|
|
14
15
|
expect(accept.item.circulation_status.name).to eq "Available On Shelf"
|
15
16
|
expect(accept.item.use_restriction.name).to eq "Limited Circulation, Normal Loan Period"
|
16
17
|
end
|
18
|
+
|
17
19
|
it "should reflect to items list", solr: true do
|
18
20
|
FactoryBot.create(:item)
|
19
21
|
FactoryBot.create(:item)
|
@@ -1,30 +1,25 @@
|
|
1
|
-
|
1
|
+
# SQLite version 3.x
|
2
|
+
# gem install sqlite3
|
3
|
+
#
|
4
|
+
# Ensure the SQLite 3 gem is defined in your Gemfile
|
5
|
+
# gem 'sqlite3'
|
6
|
+
#
|
7
|
+
default: &default
|
2
8
|
adapter: sqlite3
|
3
|
-
|
4
|
-
|
5
|
-
mysql: &mysql
|
6
|
-
adapter: mysql2
|
7
|
-
username: root
|
8
|
-
password:
|
9
|
-
database: enju_<%= Rails.env %>
|
10
|
-
|
11
|
-
postgresql: &postgresql
|
12
|
-
adapter: postgresql
|
13
|
-
username: postgres
|
14
|
-
password:
|
15
|
-
database: enju_<%= Rails.env %>
|
16
|
-
|
17
|
-
defaults: &defaults
|
18
|
-
pool: 5
|
9
|
+
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
|
19
10
|
timeout: 5000
|
20
|
-
host: localhost
|
21
|
-
<<: *<%= ENV['DB'] || "sqlite" %>
|
22
11
|
|
23
12
|
development:
|
24
|
-
<<: *
|
13
|
+
<<: *default
|
14
|
+
database: db/development.sqlite3
|
25
15
|
|
16
|
+
# Warning: The database defined as "test" will be erased and
|
17
|
+
# re-generated from your development database when you run "rake".
|
18
|
+
# Do not set this db to the same as development or production.
|
26
19
|
test:
|
27
|
-
<<: *
|
20
|
+
<<: *default
|
21
|
+
database: db/test.sqlite3
|
28
22
|
|
29
23
|
production:
|
30
|
-
<<: *
|
24
|
+
<<: *default
|
25
|
+
database: db/production.sqlite3
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
#
|
11
11
|
# It's strongly recommended that you check this file into your version control system.
|
12
12
|
|
13
|
-
ActiveRecord::Schema.define(version:
|
13
|
+
ActiveRecord::Schema.define(version: 2018_01_07_162048) do
|
14
14
|
|
15
15
|
create_table "accepts", force: :cascade do |t|
|
16
16
|
t.integer "basket_id"
|
@@ -669,8 +669,10 @@ ActiveRecord::Schema.define(version: 20180107162048) do
|
|
669
669
|
t.string "url", default: "http://localhost:3000/"
|
670
670
|
t.text "settings"
|
671
671
|
t.text "html_snippet"
|
672
|
+
t.string "book_jacket_source"
|
672
673
|
t.integer "max_number_of_results", default: 500
|
673
674
|
t.boolean "family_name_first", default: true
|
675
|
+
t.string "screenshot_generator"
|
674
676
|
t.integer "pub_year_facet_range_interval", default: 10
|
675
677
|
t.integer "user_id"
|
676
678
|
t.boolean "csv_charset_conversion", default: false, null: false
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# Read about factories at https://github.com/thoughtbot/factory_girl
|
2
|
+
|
3
|
+
FactoryBot.define do
|
4
|
+
factory :withdraw do
|
5
|
+
item_id{FactoryBot.create(:item).id}
|
6
|
+
librarian_id{FactoryBot.create(:librarian).id}
|
7
|
+
basket_id{FactoryBot.create(:basket, user_id: librarian_id).id}
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
# == Schema Information
|
12
|
+
#
|
13
|
+
# Table name: withdraws
|
14
|
+
#
|
15
|
+
# id :integer not null, primary key
|
16
|
+
# basket_id :integer
|
17
|
+
# item_id :integer
|
18
|
+
# librarian_id :integer
|
19
|
+
# created_at :datetime not null
|
20
|
+
# updated_at :datetime not null
|
21
|
+
#
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
RSpec.describe Withdraw, type: :model do
|
4
|
+
fixtures :all
|
5
|
+
|
6
|
+
it "should change circulation_status" do
|
7
|
+
withdraw = FactoryBot.create(:withdraw)
|
8
|
+
withdraw.item.circulation_status.name.should eq 'Removed'
|
9
|
+
withdraw.item.use_restriction.name.should eq 'Not For Loan'
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should not withdraw rented item" do
|
13
|
+
withdraw = Withdraw.new(librarian: users(:librarian1))
|
14
|
+
withdraw.item = items(:item_00013)
|
15
|
+
withdraw.valid?.should be_falsy
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should not withdraw reserved item" do
|
19
|
+
reserve = FactoryBot.create(:reserve)
|
20
|
+
withdraw = FactoryBot.build(:withdraw, item: reserve.manifestation.items.first)
|
21
|
+
withdraw.valid?.should be_falsy
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
# == Schema Information
|
26
|
+
#
|
27
|
+
# Table name: withdraws
|
28
|
+
#
|
29
|
+
# id :integer not null, primary key
|
30
|
+
# basket_id :integer
|
31
|
+
# item_id :integer
|
32
|
+
# librarian_id :integer
|
33
|
+
# created_at :datetime not null
|
34
|
+
# updated_at :datetime not null
|
35
|
+
#
|
data/spec/rails_helper.rb
CHANGED
@@ -36,6 +36,12 @@ RSpec.configure do |config|
|
|
36
36
|
config.extend ControllerMacros, type: :controller
|
37
37
|
|
38
38
|
config.infer_spec_type_from_file_location!
|
39
|
+
|
40
|
+
config.before(:each) do |example|
|
41
|
+
if example.metadata[:type] == :system
|
42
|
+
driven_by :selenium, using: :headless_chrome, screen_size: [1400, 1400]
|
43
|
+
end
|
44
|
+
end
|
39
45
|
end
|
40
46
|
|
41
47
|
FactoryBot.definition_file_paths << "#{::Rails.root}/../../spec/factories"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: enju_circulation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kosuke Tanabe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-04-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: enju_biblio
|
@@ -16,42 +16,56 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.3.
|
19
|
+
version: 0.3.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.3.
|
26
|
+
version: 0.3.2
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: enju_manifestation_viewer
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.3.2
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.3.2
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: enju_event
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
45
|
- - "~>"
|
32
46
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.3.
|
47
|
+
version: 0.3.2
|
34
48
|
type: :runtime
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
52
|
- - "~>"
|
39
53
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.3.
|
54
|
+
version: 0.3.2
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: capybara
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
59
|
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version: '3.
|
61
|
+
version: '3.11'
|
48
62
|
type: :development
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
66
|
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version: '3.
|
68
|
+
version: '3.11'
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: coveralls
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,14 +86,14 @@ dependencies:
|
|
72
86
|
requirements:
|
73
87
|
- - "~>"
|
74
88
|
- !ruby/object:Gem::Version
|
75
|
-
version: 1.3.
|
89
|
+
version: 1.3.2
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
94
|
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
|
-
version: 1.3.
|
96
|
+
version: 1.3.2
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: factory_bot_rails
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,14 +184,14 @@ dependencies:
|
|
170
184
|
requirements:
|
171
185
|
- - "~>"
|
172
186
|
- !ruby/object:Gem::Version
|
173
|
-
version: '3.
|
187
|
+
version: '3.8'
|
174
188
|
type: :development
|
175
189
|
prerelease: false
|
176
190
|
version_requirements: !ruby/object:Gem::Requirement
|
177
191
|
requirements:
|
178
192
|
- - "~>"
|
179
193
|
- !ruby/object:Gem::Version
|
180
|
-
version: '3.
|
194
|
+
version: '3.8'
|
181
195
|
- !ruby/object:Gem::Dependency
|
182
196
|
name: simplecov
|
183
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -220,6 +234,34 @@ dependencies:
|
|
220
234
|
- - "~>"
|
221
235
|
- !ruby/object:Gem::Version
|
222
236
|
version: '2.3'
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: selenium-webdriver
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - ">="
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '0'
|
244
|
+
type: :development
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - ">="
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '0'
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: puma
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - ">="
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '0'
|
258
|
+
type: :development
|
259
|
+
prerelease: false
|
260
|
+
version_requirements: !ruby/object:Gem::Requirement
|
261
|
+
requirements:
|
262
|
+
- - ">="
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: '0'
|
223
265
|
description: Circulation management for Next-L Enju
|
224
266
|
email:
|
225
267
|
- nabeta@fastmail.fm
|
@@ -731,8 +773,10 @@ files:
|
|
731
773
|
- spec/dummy/db/migrate/20160801080637_add_most_recent_to_resource_export_file_transitions.rb
|
732
774
|
- spec/dummy/db/migrate/20160801080643_add_most_recent_to_agent_import_file_transitions.rb
|
733
775
|
- spec/dummy/db/migrate/20160811102604_add_picture_width_to_picture_file.rb
|
776
|
+
- spec/dummy/db/migrate/20160813191533_add_book_jacket_source_to_library_group.rb
|
734
777
|
- spec/dummy/db/migrate/20160813191647_add_max_number_of_results_to_library_group.rb
|
735
778
|
- spec/dummy/db/migrate/20160813191733_add_family_name_first_to_library_group.rb
|
779
|
+
- spec/dummy/db/migrate/20160813191820_add_screenshot_generator_to_library_group.rb
|
736
780
|
- spec/dummy/db/migrate/20160813192542_add_pub_year_facet_range_interval_to_library_group.rb
|
737
781
|
- spec/dummy/db/migrate/20160813203039_add_user_id_to_library_group.rb
|
738
782
|
- spec/dummy/db/migrate/20160814165332_add_most_recent_to_message_request_transitions.rb
|
@@ -782,6 +826,7 @@ files:
|
|
782
826
|
- spec/factories/user_group.rb
|
783
827
|
- spec/factories/user_group_has_checkout_type.rb
|
784
828
|
- spec/factories/user_reserve_stat.rb
|
829
|
+
- spec/factories/withdraw.rb
|
785
830
|
- spec/fixtures/agent_types.yml
|
786
831
|
- spec/fixtures/agents.yml
|
787
832
|
- spec/fixtures/baskets.yml
|
@@ -849,6 +894,7 @@ files:
|
|
849
894
|
- spec/models/user_group_has_checkout_type_spec.rb
|
850
895
|
- spec/models/user_reserve_stat_spec.rb
|
851
896
|
- spec/models/user_spec.rb
|
897
|
+
- spec/models/withdraw_spec.rb
|
852
898
|
- spec/rails_helper.rb
|
853
899
|
- spec/routing/checked_items_routing_spec.rb
|
854
900
|
- spec/spec_helper.rb
|
@@ -890,8 +936,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
890
936
|
- !ruby/object:Gem::Version
|
891
937
|
version: '0'
|
892
938
|
requirements: []
|
893
|
-
|
894
|
-
rubygems_version: 2.6.14.3
|
939
|
+
rubygems_version: 3.0.3
|
895
940
|
signing_key:
|
896
941
|
specification_version: 4
|
897
942
|
summary: enju_circulation plugin
|
@@ -1106,6 +1151,7 @@ test_files:
|
|
1106
1151
|
- spec/dummy/db/migrate/20090705212043_add_attachments_attachment_to_manifestation.rb
|
1107
1152
|
- spec/dummy/db/migrate/20140628071719_add_user_encoding_to_event_import_file.rb
|
1108
1153
|
- spec/dummy/db/migrate/012_create_owns.rb
|
1154
|
+
- spec/dummy/db/migrate/20160813191533_add_book_jacket_source_to_library_group.rb
|
1109
1155
|
- spec/dummy/db/migrate/20160820004638_add_attachment_attachment_to_carrier_types.rb
|
1110
1156
|
- spec/dummy/db/migrate/20140614141500_create_resource_export_file_transitions.rb
|
1111
1157
|
- spec/dummy/db/migrate/002_devise_create_users.rb
|
@@ -1128,6 +1174,7 @@ test_files:
|
|
1128
1174
|
- spec/dummy/db/migrate/20140823083524_add_extent_to_manifestation.rb
|
1129
1175
|
- spec/dummy/db/migrate/20130506175303_create_identifier_types.rb
|
1130
1176
|
- spec/dummy/db/migrate/20130509185724_add_statement_of_responsibility_to_manifestation.rb
|
1177
|
+
- spec/dummy/db/migrate/20160813191820_add_screenshot_generator_to_library_group.rb
|
1131
1178
|
- spec/dummy/db/migrate/113_create_events.rb
|
1132
1179
|
- spec/dummy/db/migrate/20110916103953_add_manifestaiton_id_to_series_statement.rb
|
1133
1180
|
- spec/dummy/db/migrate/20140813182425_add_publication_place_to_manifestation.rb
|
@@ -1135,6 +1182,7 @@ test_files:
|
|
1135
1182
|
- spec/models/item_has_use_resetriction_spec.rb
|
1136
1183
|
- spec/models/reserve_spec.rb
|
1137
1184
|
- spec/models/carrier_type_has_checkout_type_spec.rb
|
1185
|
+
- spec/models/withdraw_spec.rb
|
1138
1186
|
- spec/models/user_reserve_stat_spec.rb
|
1139
1187
|
- spec/models/checkout_type_spec.rb
|
1140
1188
|
- spec/models/checkout_stat_has_manifestation_spec.rb
|
@@ -1178,6 +1226,7 @@ test_files:
|
|
1178
1226
|
- spec/factories/circulation_status.rb
|
1179
1227
|
- spec/factories/item_has_use_restriction.rb
|
1180
1228
|
- spec/factories/profile.rb
|
1229
|
+
- spec/factories/withdraw.rb
|
1181
1230
|
- spec/factories/user_reserve_stat.rb
|
1182
1231
|
- spec/factories/reserve_stat_has_user.rb
|
1183
1232
|
- spec/factories/user_group.rb
|