enju_library 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (217) hide show
  1. data/README.rdoc +2 -2
  2. data/app/controllers/shelves_controller.rb +2 -1
  3. data/app/helpers/shelves_helper.rb +9 -5
  4. data/app/models/library.rb +1 -2
  5. data/app/models/library_group.rb +7 -1
  6. data/app/models/shelf.rb +1 -0
  7. data/app/views/accepts/index.html.erb +2 -2
  8. data/app/views/bookstores/index.html.erb +3 -3
  9. data/app/views/bookstores/show.html.erb +1 -1
  10. data/app/views/budget_types/index.html.erb +2 -2
  11. data/app/views/libraries/_form.html.erb +1 -1
  12. data/app/views/libraries/index.html.erb +3 -3
  13. data/app/views/libraries/show.html.erb +1 -1
  14. data/app/views/library_groups/index.html.erb +1 -1
  15. data/app/views/request_status_types/index.html.erb +2 -2
  16. data/app/views/request_types/index.html.erb +2 -2
  17. data/app/views/search_engines/index.html.erb +2 -2
  18. data/app/views/shelves/_library_facet.html.erb +1 -4
  19. data/app/views/shelves/index.html.erb +2 -2
  20. data/app/views/shelves/show.mobile.erb +33 -0
  21. data/app/views/subscribes/index.html.erb +2 -2
  22. data/app/views/subscriptions/index.html.erb +2 -2
  23. data/app/views/subscriptions/show.html.erb +1 -1
  24. data/lib/enju_library/engine.rb +0 -8
  25. data/lib/enju_library/version.rb +1 -1
  26. data/lib/enju_library.rb +0 -2
  27. data/spec/controllers/bookstores_controller_spec.rb +447 -0
  28. data/spec/controllers/budget_types_controller_spec.rb +167 -0
  29. data/spec/controllers/libraries_controller_spec.rb +517 -0
  30. data/spec/controllers/library_groups_controller_spec.rb +133 -0
  31. data/spec/controllers/request_status_types_controller_spec.rb +447 -0
  32. data/spec/controllers/request_types_controller_spec.rb +447 -0
  33. data/spec/controllers/search_engines_controller_spec.rb +447 -0
  34. data/spec/controllers/shelves_controller_spec.rb +437 -0
  35. data/spec/controllers/subscribes_controller_spec.rb +441 -0
  36. data/spec/controllers/subscriptions_controller_spec.rb +442 -0
  37. data/{test → spec}/dummy/README.rdoc +0 -0
  38. data/{test → spec}/dummy/Rakefile +0 -0
  39. data/{test → spec}/dummy/app/assets/javascripts/application.js +0 -0
  40. data/{test → spec}/dummy/app/assets/stylesheets/application.css +0 -0
  41. data/spec/dummy/app/controllers/application_controller.rb +59 -0
  42. data/spec/dummy/app/helpers/application_helper.rb +13 -0
  43. data/spec/dummy/app/models/ability.rb +51 -0
  44. data/spec/dummy/app/models/picture_file.rb +49 -0
  45. data/spec/dummy/app/models/role.rb +46 -0
  46. data/spec/dummy/app/models/user.rb +94 -0
  47. data/spec/dummy/app/models/user_group.rb +40 -0
  48. data/spec/dummy/app/models/user_has_role.rb +5 -0
  49. data/{test → spec}/dummy/app/views/layouts/application.html.erb +0 -0
  50. data/spec/dummy/app/views/page/403.html.erb +9 -0
  51. data/spec/dummy/app/views/page/403.mobile.erb +5 -0
  52. data/spec/dummy/app/views/page/403.xml.erb +4 -0
  53. data/spec/dummy/app/views/page/404.html.erb +9 -0
  54. data/spec/dummy/app/views/page/404.mobile.erb +5 -0
  55. data/spec/dummy/app/views/page/404.xml.erb +4 -0
  56. data/{test → spec}/dummy/config/application.rb +3 -0
  57. data/{test → spec}/dummy/config/boot.rb +0 -0
  58. data/{test → spec}/dummy/config/database.yml +0 -0
  59. data/{test → spec}/dummy/config/environment.rb +0 -0
  60. data/{test → spec}/dummy/config/environments/development.rb +0 -0
  61. data/{test → spec}/dummy/config/environments/production.rb +0 -0
  62. data/{test → spec}/dummy/config/environments/test.rb +0 -0
  63. data/{test → spec}/dummy/config/initializers/backtrace_silencers.rb +0 -0
  64. data/spec/dummy/config/initializers/devise.rb +205 -0
  65. data/{test → spec}/dummy/config/initializers/inflections.rb +0 -0
  66. data/{test → spec}/dummy/config/initializers/mime_types.rb +0 -0
  67. data/{test → spec}/dummy/config/initializers/secret_token.rb +0 -0
  68. data/{test → spec}/dummy/config/initializers/session_store.rb +0 -0
  69. data/{test → spec}/dummy/config/initializers/wrap_parameters.rb +0 -0
  70. data/{test → spec}/dummy/config/locales/en.yml +0 -0
  71. data/{test → spec}/dummy/config/routes.rb +2 -0
  72. data/{test → spec}/dummy/config.ru +0 -0
  73. data/spec/dummy/db/development.sqlite3 +0 -0
  74. data/spec/dummy/db/migrate/001_create_patrons.rb +58 -0
  75. data/spec/dummy/db/migrate/005_create_manifestations.rb +61 -0
  76. data/spec/dummy/db/migrate/006_create_items.rb +31 -0
  77. data/spec/dummy/db/migrate/012_create_owns.rb +12 -0
  78. data/spec/dummy/db/migrate/015_create_creates.rb +12 -0
  79. data/spec/dummy/db/migrate/047_create_produces.rb +12 -0
  80. data/spec/dummy/db/migrate/073_create_carrier_types.rb +11 -0
  81. data/spec/dummy/db/migrate/077_create_user_groups.rb +16 -0
  82. data/spec/dummy/db/migrate/125_create_donates.rb +12 -0
  83. data/spec/dummy/db/migrate/20080830154109_create_realizes.rb +13 -0
  84. data/spec/dummy/db/migrate/20080830172106_create_exemplifies.rb +13 -0
  85. data/spec/dummy/db/migrate/20080905191442_create_patron_types.rb +12 -0
  86. data/spec/dummy/db/migrate/20081025083323_create_countries.rb +28 -0
  87. data/spec/dummy/db/migrate/20081025083905_create_languages.rb +23 -0
  88. data/spec/dummy/db/migrate/20081027150907_create_picture_files.rb +16 -0
  89. data/spec/dummy/db/migrate/20090705133942_add_attachments_picture_to_picture_file.rb +15 -0
  90. data/spec/dummy/db/migrate/20090812151902_create_patron_relationship_types.rb +12 -0
  91. data/spec/dummy/db/migrate/20091012101112_add_dcndl_schema.rb +27 -0
  92. data/spec/dummy/db/migrate/20091202124834_create_versions.rb +18 -0
  93. data/spec/dummy/db/migrate/20091214131723_create_series_statements.rb +13 -0
  94. data/spec/dummy/db/migrate/20100223121519_rename_series_statement_title_to_original_title.rb +13 -0
  95. data/spec/dummy/db/migrate/20100321235924_add_series_statement_identifier_to_series_statement.rb +10 -0
  96. data/spec/dummy/db/migrate/20100525124311_create_manifestation_relationships.rb +13 -0
  97. data/spec/dummy/db/migrate/20100606073747_create_patron_relationships.rb +13 -0
  98. data/spec/dummy/db/migrate/20100607044753_create_manifestation_relationship_types.rb +12 -0
  99. data/spec/dummy/db/migrate/20100814091104_add_position_to_patron_relationship.rb +11 -0
  100. data/spec/dummy/db/migrate/20101212070145_add_acquired_at_to_item.rb +9 -0
  101. data/spec/dummy/db/migrate/20110301035123_add_pub_date_to_manifestation.rb +9 -0
  102. data/spec/dummy/db/migrate/20110301121550_add_birth_date_and_death_date_to_patron.rb +11 -0
  103. data/spec/dummy/db/migrate/20110318183304_add_valid_period_for_new_user_to_user_group.rb +13 -0
  104. data/spec/dummy/db/migrate/20110425133109_add_issn_to_series_statement.rb +9 -0
  105. data/spec/dummy/db/migrate/20110618091240_add_periodical_to_series_statement.rb +9 -0
  106. data/spec/dummy/db/migrate/20110619064807_add_edition_string_to_manifestation.rb +9 -0
  107. data/{db → spec/dummy/db}/migrate/20110620173525_add_bookstore_id_to_item.rb +0 -0
  108. data/spec/dummy/db/migrate/20110627034940_create_series_statement_merge_lists.rb +9 -0
  109. data/spec/dummy/db/migrate/20110627035057_create_series_statement_merges.rb +12 -0
  110. data/spec/dummy/db/migrate/20110820131417_create_series_has_manifestations.rb +13 -0
  111. data/spec/dummy/db/migrate/20110916053430_rename_manifestation_number_list_to_number_string.rb +13 -0
  112. data/spec/dummy/db/migrate/20110916091020_add_volume_number_to_manifestation.rb +13 -0
  113. data/spec/dummy/db/migrate/20110916103953_add_manifestaiton_id_to_series_statement.rb +10 -0
  114. data/spec/dummy/db/migrate/20110918161853_rename_series_statement_manifestation_id_to_root_manifestation_id.rb +13 -0
  115. data/spec/dummy/db/migrate/20110918162329_add_note_to_series_statement.rb +9 -0
  116. data/spec/dummy/db/migrate/20111124110059_create_create_types.rb +12 -0
  117. data/spec/dummy/db/migrate/20111124110319_create_realize_types.rb +12 -0
  118. data/spec/dummy/db/migrate/20111124110355_create_produce_types.rb +12 -0
  119. data/spec/dummy/db/migrate/20111124112131_add_create_type_to_create.rb +7 -0
  120. data/spec/dummy/db/migrate/20111201121844_create_roles.rb +12 -0
  121. data/spec/dummy/db/migrate/20111201155456_create_users.rb +16 -0
  122. data/spec/dummy/db/migrate/20111201155513_add_devise_to_users.rb +44 -0
  123. data/spec/dummy/db/migrate/20111201163718_create_user_has_roles.rb +10 -0
  124. data/spec/dummy/db/migrate/20120125152919_add_title_subseries_transcription_to_series_statement.rb +6 -0
  125. data/spec/dummy/db/migrate/20120413072700_add_picture_meta_to_picture_file.rb +5 -0
  126. data/spec/dummy/db/migrate/20120413100352_add_fingerprint_to_picture_file.rb +5 -0
  127. data/spec/dummy/db/schema.rb +642 -0
  128. data/spec/dummy/db/test.sqlite3 +0 -0
  129. data/{test → spec}/dummy/public/404.html +0 -0
  130. data/{test → spec}/dummy/public/422.html +0 -0
  131. data/{test → spec}/dummy/public/500.html +0 -0
  132. data/{test → spec}/dummy/public/favicon.ico +0 -0
  133. data/{test → spec}/dummy/script/rails +0 -0
  134. data/spec/dummy/solr/conf/admin-extra.html +31 -0
  135. data/spec/dummy/solr/conf/elevate.xml +36 -0
  136. data/spec/dummy/solr/conf/mapping-ISOLatin1Accent.txt +246 -0
  137. data/spec/dummy/solr/conf/protwords.txt +21 -0
  138. data/spec/dummy/solr/conf/schema.xml +238 -0
  139. data/spec/dummy/solr/conf/scripts.conf +24 -0
  140. data/spec/dummy/solr/conf/solrconfig.xml +934 -0
  141. data/spec/dummy/solr/conf/spellings.txt +2 -0
  142. data/spec/dummy/solr/conf/stopwords.txt +58 -0
  143. data/spec/dummy/solr/conf/synonyms.txt +31 -0
  144. data/spec/dummy/solr/data/test/index/_k.fdt +0 -0
  145. data/spec/dummy/solr/data/test/index/_k.fdx +0 -0
  146. data/spec/dummy/solr/data/test/index/_k.fnm +3 -0
  147. data/spec/dummy/solr/data/test/index/_k.frq +1 -0
  148. data/spec/dummy/solr/data/test/index/_k.nrm +1 -0
  149. data/spec/dummy/solr/data/test/index/_k.prx +0 -0
  150. data/spec/dummy/solr/data/test/index/_k.tii +0 -0
  151. data/spec/dummy/solr/data/test/index/_k.tis +0 -0
  152. data/spec/dummy/solr/data/test/index/segments.gen +0 -0
  153. data/spec/dummy/solr/data/test/index/segments_18 +0 -0
  154. data/spec/dummy/solr/data/test/spellchecker/segments.gen +0 -0
  155. data/spec/dummy/solr/data/test/spellchecker/segments_1 +0 -0
  156. data/spec/dummy/tmp/cache/4AD/470/country_all +0 -0
  157. data/spec/factories/bookstore.rb +5 -0
  158. data/spec/factories/budget_types.rb +5 -0
  159. data/spec/factories/carrier_types.yml +51 -0
  160. data/spec/factories/library.rb +13 -0
  161. data/spec/factories/manifestation.rb +6 -0
  162. data/spec/factories/request_status_type.rb +5 -0
  163. data/spec/factories/request_type.rb +5 -0
  164. data/spec/factories/search_engine.rb +9 -0
  165. data/spec/factories/shelf.rb +6 -0
  166. data/spec/factories/subscribe.rb +8 -0
  167. data/spec/factories/subscription.rb +6 -0
  168. data/spec/factories/user.rb +37 -0
  169. data/spec/fixtures/bookstores.yml +107 -0
  170. data/spec/fixtures/budget_types.yml +29 -0
  171. data/spec/fixtures/carrier_types.yml +51 -0
  172. data/spec/fixtures/languages.yml +1901 -0
  173. data/spec/fixtures/libraries.yml +102 -0
  174. data/spec/fixtures/library_groups.yml +33 -0
  175. data/spec/fixtures/manifestations.yml +2022 -0
  176. data/spec/fixtures/request_status_types.yml +63 -0
  177. data/spec/fixtures/request_types.yml +55 -0
  178. data/spec/fixtures/roles.yml +21 -0
  179. data/spec/fixtures/search_engines.yml +41 -0
  180. data/spec/fixtures/shelves.yml +47 -0
  181. data/spec/fixtures/subscribes.yml +45 -0
  182. data/spec/fixtures/subscriptions.yml +27 -0
  183. data/spec/fixtures/user_groups.yml +31 -0
  184. data/spec/fixtures/user_has_roles.yml +41 -0
  185. data/spec/fixtures/users.yml +129 -0
  186. data/spec/models/bookstore_spec.rb +26 -0
  187. data/spec/models/budget_type_spec.rb +22 -0
  188. data/spec/models/library_group_spec.rb +33 -0
  189. data/spec/models/library_spec.rb +47 -0
  190. data/spec/models/request_status_type_spec.rb +21 -0
  191. data/spec/models/request_type_spec.rb +21 -0
  192. data/spec/models/search_engine_spec.rb +29 -0
  193. data/spec/models/shelf_spec.rb +29 -0
  194. data/spec/models/subscribe_spec.rb +21 -0
  195. data/spec/models/subscription_spec.rb +26 -0
  196. data/spec/routing/budget_types_routing_spec.rb +35 -0
  197. data/spec/routing/libraries_routing_spec.rb +35 -0
  198. data/spec/spec_helper.rb +55 -0
  199. data/spec/support/controller_macros.rb +46 -0
  200. data/spec/support/devise.rb +4 -0
  201. data/spec/support/vcr.rb +9 -0
  202. data/spec/views/budget_types/edit.html.erb_spec.rb +23 -0
  203. data/spec/views/budget_types/index.html.erb_spec.rb +28 -0
  204. data/spec/views/budget_types/new.html.erb_spec.rb +23 -0
  205. data/spec/views/budget_types/show.html.erb_spec.rb +24 -0
  206. metadata +372 -198
  207. data/lib/enju_library/master_model.rb +0 -19
  208. data/lib/enju_library/url_validator.rb +0 -10
  209. data/test/dummy/app/controllers/application_controller.rb +0 -3
  210. data/test/dummy/app/helpers/application_helper.rb +0 -2
  211. data/test/dummy/db/development.sqlite3 +0 -0
  212. data/test/dummy/db/test.sqlite3 +0 -0
  213. data/test/dummy/log/development.log +0 -0
  214. data/test/dummy/log/test.log +0 -0
  215. data/test/enju_library_test.rb +0 -7
  216. data/test/integration/navigation_test.rb +0 -10
  217. data/test/test_helper.rb +0 -15
@@ -0,0 +1,94 @@
1
+ class User < ActiveRecord::Base
2
+ # Include default devise modules. Others available are:
3
+ # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable and :omniauthable
4
+ devise :database_authenticatable, :registerable,
5
+ :recoverable, :rememberable, :trackable, :validatable
6
+
7
+ # Setup accessible (or protected) attributes for your model
8
+ attr_accessible :email, :password, :password_confirmation, :remember_me
9
+
10
+ has_one :patron
11
+ has_one :user_has_role
12
+ has_one :role, :through => :user_has_role
13
+ belongs_to :user_group
14
+ belongs_to :required_role, :class_name => 'Role', :foreign_key => 'required_role_id'
15
+ has_many :checkouts, :dependent => :nullify
16
+ has_many :reserves, :dependent => :destroy
17
+ has_many :reserved_manifestations, :through => :reserves, :source => :manifestation
18
+ has_many :checkout_stat_has_users
19
+ has_many :user_checkout_stats, :through => :checkout_stat_has_users
20
+ has_many :reserve_stat_has_users
21
+ has_many :user_reserve_stats, :through => :reserve_stat_has_users
22
+ has_many :baskets, :dependent => :destroy
23
+ belongs_to :library
24
+
25
+ before_destroy :check_item_before_destroy
26
+
27
+ extend FriendlyId
28
+ friendly_id :username
29
+
30
+ def check_item_before_destroy
31
+ # TODO: 貸出記録を残す場合
32
+ if checkouts.size > 0
33
+ raise 'This user has items still checked out.'
34
+ end
35
+ end
36
+
37
+ def reset_checkout_icalendar_token
38
+ self.checkout_icalendar_token = Devise.friendly_token
39
+ end
40
+
41
+ def delete_checkout_icalendar_token
42
+ self.checkout_icalendar_token = nil
43
+ end
44
+
45
+ def checked_item_count
46
+ checkout_count = {}
47
+ CheckoutType.all.each do |checkout_type|
48
+ # 資料種別ごとの貸出中の冊数を計算
49
+ checkout_count[:"#{checkout_type.name}"] = self.checkouts.count_by_sql(["
50
+ SELECT count(item_id) FROM checkouts
51
+ WHERE item_id IN (
52
+ SELECT id FROM items
53
+ WHERE checkout_type_id = ?
54
+ )
55
+ AND user_id = ? AND checkin_id IS NULL", checkout_type.id, self.id]
56
+ )
57
+ end
58
+ return checkout_count
59
+ end
60
+
61
+ def reached_reservation_limit?(manifestation)
62
+ return true if self.user_group.user_group_has_checkout_types.available_for_carrier_type(manifestation.carrier_type).where(:user_group_id => self.user_group.id).collect(&:reservation_limit).max.to_i <= self.reserves.waiting.size
63
+ false
64
+ end
65
+
66
+ def has_role?(role_in_question)
67
+ return false unless role
68
+ return true if role.name == role_in_question
69
+ case role.name
70
+ when 'Administrator'
71
+ return true
72
+ when 'Librarian'
73
+ return true if role_in_question == 'User'
74
+ else
75
+ false
76
+ end
77
+ end
78
+
79
+ if defined?(EnjuMessage)
80
+ has_many :sent_messages, :foreign_key => 'sender_id', :class_name => 'Message'
81
+ has_many :received_messages, :foreign_key => 'receiver_id', :class_name => 'Message'
82
+
83
+ def send_message(status, options = {})
84
+ MessageRequest.transaction do
85
+ request = MessageRequest.new
86
+ request.sender = User.find(1)
87
+ request.receiver = self
88
+ request.message_template = MessageTemplate.localized_template(status, self.locale)
89
+ request.save_message_body(options)
90
+ request.sm_send_message!
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,40 @@
1
+ # -*- encoding: utf-8 -*-
2
+ class UserGroup < ActiveRecord::Base
3
+ attr_accessible :name, :display_name, :note, :valid_period_for_new_user,
4
+ :expired_at, :number_of_day_to_notify_overdue,
5
+ :number_of_day_to_notify_overdue,
6
+ :number_of_day_to_notify_due_date,
7
+ :number_of_time_to_notify_overdue
8
+
9
+ include MasterModel
10
+ default_scope :order => "user_groups.position"
11
+ has_many :users
12
+
13
+ validates_numericality_of :valid_period_for_new_user,
14
+ :greater_than_or_equal_to => 0,
15
+ :allow_blank => true
16
+
17
+ def self.per_page
18
+ 10
19
+ end
20
+ end
21
+
22
+ # == Schema Information
23
+ #
24
+ # Table name: user_groups
25
+ #
26
+ # id :integer not null, primary key
27
+ # name :string(255)
28
+ # display_name :text
29
+ # note :text
30
+ # position :integer
31
+ # created_at :datetime
32
+ # updated_at :datetime
33
+ # deleted_at :datetime
34
+ # valid_period_for_new_user :integer default(0), not null
35
+ # expired_at :datetime
36
+ # number_of_day_to_notify_overdue :integer default(1), not null
37
+ # number_of_day_to_notify_due_date :integer default(7), not null
38
+ # number_of_time_to_notify_overdue :integer default(3), not null
39
+ #
40
+
@@ -0,0 +1,5 @@
1
+ class UserHasRole < ActiveRecord::Base
2
+ attr_accessible :user_id, :role_id
3
+ belongs_to :user
4
+ belongs_to :role
5
+ end
@@ -0,0 +1,9 @@
1
+ <div id="content_detail" class="ui-corner-all">
2
+ <h1 class="title"><%= t('page.access_denied') -%></h1>
3
+ <div id="content_list">
4
+ <%= render 'page/search_form' %>
5
+ </div>
6
+ </div>
7
+
8
+ <div id="submenu" class="ui-corner-all">
9
+ </div>
@@ -0,0 +1,5 @@
1
+ <div data-role="header">
2
+ <h2 class="title"><%= t('page.access_denied') -%></h2>
3
+ </div>
4
+ <div data-role="content">
5
+ </div>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <error>
3
+ <status>403</status>
4
+ </error>
@@ -0,0 +1,9 @@
1
+ <div id="content_detail" class="ui-corner-all">
2
+ <h1 class="title"><%= t('page.not_found') -%></h1>
3
+ <div id="content_list">
4
+ <%= render 'page/search_form' %>
5
+ </div>
6
+ </div>
7
+
8
+ <div id="submenu" class="ui-corner-all">
9
+ </div>
@@ -0,0 +1,5 @@
1
+ <div data-role="header">
2
+ <h2 class="title"><%= t('page.not_found') -%></h2>
3
+ </div>
4
+ <div data-role="content">
5
+ </div>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="utf-8" ?>
2
+ <error>
3
+ <status>404</status>
4
+ </error>
@@ -54,3 +54,6 @@ module Dummy
54
54
  end
55
55
  end
56
56
 
57
+ require 'enju_biblio'
58
+ require 'enju_manifestation_viewer'
59
+ require 'enju_core'
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,205 @@
1
+ # Use this hook to configure devise mailer, warden hooks and so forth.
2
+ # Many of these configuration options can be set straight in your model.
3
+ Devise.setup do |config|
4
+ # ==> Mailer Configuration
5
+ # Configure the e-mail address which will be shown in Devise::Mailer,
6
+ # note that it will be overwritten if you use your own mailer class with default "from" parameter.
7
+ config.mailer_sender = "please-change-me-at-config-initializers-devise@example.com"
8
+
9
+ # Configure the class responsible to send e-mails.
10
+ # config.mailer = "Devise::Mailer"
11
+
12
+ # ==> ORM configuration
13
+ # Load and configure the ORM. Supports :active_record (default) and
14
+ # :mongoid (bson_ext recommended) by default. Other ORMs may be
15
+ # available as additional gems.
16
+ require 'devise/orm/active_record'
17
+
18
+ # ==> Configuration for any authentication mechanism
19
+ # Configure which keys are used when authenticating a user. The default is
20
+ # just :email. You can configure it to use [:username, :subdomain], so for
21
+ # authenticating a user, both parameters are required. Remember that those
22
+ # parameters are used only when authenticating and not when retrieving from
23
+ # session. If you need permissions, you should implement that in a before filter.
24
+ # You can also supply a hash where the value is a boolean determining whether
25
+ # or not authentication should be aborted when the value is not present.
26
+ # config.authentication_keys = [ :email ]
27
+
28
+ # Configure parameters from the request object used for authentication. Each entry
29
+ # given should be a request method and it will automatically be passed to the
30
+ # find_for_authentication method and considered in your model lookup. For instance,
31
+ # if you set :request_keys to [:subdomain], :subdomain will be used on authentication.
32
+ # The same considerations mentioned for authentication_keys also apply to request_keys.
33
+ # config.request_keys = []
34
+
35
+ # Configure which authentication keys should be case-insensitive.
36
+ # These keys will be downcased upon creating or modifying a user and when used
37
+ # to authenticate or find a user. Default is :email.
38
+ config.case_insensitive_keys = [ :email ]
39
+
40
+ # Configure which authentication keys should have whitespace stripped.
41
+ # These keys will have whitespace before and after removed upon creating or
42
+ # modifying a user and when used to authenticate or find a user. Default is :email.
43
+ config.strip_whitespace_keys = [ :email ]
44
+
45
+ # Tell if authentication through request.params is enabled. True by default.
46
+ # config.params_authenticatable = true
47
+
48
+ # Tell if authentication through HTTP Basic Auth is enabled. False by default.
49
+ # config.http_authenticatable = false
50
+
51
+ # If http headers should be returned for AJAX requests. True by default.
52
+ # config.http_authenticatable_on_xhr = true
53
+
54
+ # The realm used in Http Basic Authentication. "Application" by default.
55
+ # config.http_authentication_realm = "Application"
56
+
57
+ # It will change confirmation, password recovery and other workflows
58
+ # to behave the same regardless if the e-mail provided was right or wrong.
59
+ # Does not affect registerable.
60
+ # config.paranoid = true
61
+
62
+ # ==> Configuration for :database_authenticatable
63
+ # For bcrypt, this is the cost for hashing the password and defaults to 10. If
64
+ # using other encryptors, it sets how many times you want the password re-encrypted.
65
+ #
66
+ # Limiting the stretches to just one in testing will increase the performance of
67
+ # your test suite dramatically. However, it is STRONGLY RECOMMENDED to not use
68
+ # a value less than 10 in other environments.
69
+ config.stretches = Rails.env.test? ? 1 : 10
70
+
71
+ # Setup a pepper to generate the encrypted password.
72
+ # config.pepper = "9c3e60feae3030ec50d52f408005d7083c980b028e24e96536c60829394fd7cf5e26fdfed03e48b756b8bbf16177d73cca8cc6d036b2e916c953faf8d2c0238c"
73
+
74
+ # ==> Configuration for :confirmable
75
+ # A period that the user is allowed to access the website even without
76
+ # confirming his account. For instance, if set to 2.days, the user will be
77
+ # able to access the website for two days without confirming his account,
78
+ # access will be blocked just in the third day. Default is 0.days, meaning
79
+ # the user cannot access the website without confirming his account.
80
+ # config.confirm_within = 2.days
81
+
82
+ # Defines which key will be used when confirming an account
83
+ # config.confirmation_keys = [ :email ]
84
+
85
+ # ==> Configuration for :rememberable
86
+ # The time the user will be remembered without asking for credentials again.
87
+ # config.remember_for = 2.weeks
88
+
89
+ # If true, a valid remember token can be re-used between multiple browsers.
90
+ # config.remember_across_browsers = true
91
+
92
+ # If true, extends the user's remember period when remembered via cookie.
93
+ # config.extend_remember_period = false
94
+
95
+ # Options to be passed to the created cookie. For instance, you can set
96
+ # :secure => true in order to force SSL only cookies.
97
+ # config.cookie_options = {}
98
+
99
+ # ==> Configuration for :validatable
100
+ # Range for password length. Default is 6..128.
101
+ # config.password_length = 6..128
102
+
103
+ # Email regex used to validate email formats. It simply asserts that
104
+ # an one (and only one) @ exists in the given string. This is mainly
105
+ # to give user feedback and not to assert the e-mail validity.
106
+ # config.email_regexp = /\A[^@]+@[^@]+\z/
107
+
108
+ # ==> Configuration for :timeoutable
109
+ # The time you want to timeout the user session without activity. After this
110
+ # time the user will be asked for credentials again. Default is 30 minutes.
111
+ # config.timeout_in = 30.minutes
112
+
113
+ # ==> Configuration for :lockable
114
+ # Defines which strategy will be used to lock an account.
115
+ # :failed_attempts = Locks an account after a number of failed attempts to sign in.
116
+ # :none = No lock strategy. You should handle locking by yourself.
117
+ # config.lock_strategy = :failed_attempts
118
+
119
+ # Defines which key will be used when locking and unlocking an account
120
+ # config.unlock_keys = [ :email ]
121
+
122
+ # Defines which strategy will be used to unlock an account.
123
+ # :email = Sends an unlock link to the user email
124
+ # :time = Re-enables login after a certain amount of time (see :unlock_in below)
125
+ # :both = Enables both strategies
126
+ # :none = No unlock strategy. You should handle unlocking by yourself.
127
+ # config.unlock_strategy = :both
128
+
129
+ # Number of authentication tries before locking an account if lock_strategy
130
+ # is failed attempts.
131
+ # config.maximum_attempts = 20
132
+
133
+ # Time interval to unlock the account if :time is enabled as unlock_strategy.
134
+ # config.unlock_in = 1.hour
135
+
136
+ # ==> Configuration for :recoverable
137
+ #
138
+ # Defines which key will be used when recovering the password for an account
139
+ # config.reset_password_keys = [ :email ]
140
+
141
+ # Time interval you can reset your password with a reset password key.
142
+ # Don't put a too small interval or your users won't have the time to
143
+ # change their passwords.
144
+ config.reset_password_within = 2.hours
145
+
146
+ # ==> Configuration for :encryptable
147
+ # Allow you to use another encryption algorithm besides bcrypt (default). You can use
148
+ # :sha1, :sha512 or encryptors from others authentication tools as :clearance_sha1,
149
+ # :authlogic_sha512 (then you should set stretches above to 20 for default behavior)
150
+ # and :restful_authentication_sha1 (then you should set stretches to 10, and copy
151
+ # REST_AUTH_SITE_KEY to pepper)
152
+ # config.encryptor = :sha512
153
+
154
+ # ==> Configuration for :token_authenticatable
155
+ # Defines name of the authentication token params key
156
+ # config.token_authentication_key = :auth_token
157
+
158
+ # If true, authentication through token does not store user in session and needs
159
+ # to be supplied on each request. Useful if you are using the token as API token.
160
+ # config.stateless_token = false
161
+
162
+ # ==> Scopes configuration
163
+ # Turn scoped views on. Before rendering "sessions/new", it will first check for
164
+ # "users/sessions/new". It's turned off by default because it's slower if you
165
+ # are using only default views.
166
+ # config.scoped_views = false
167
+
168
+ # Configure the default scope given to Warden. By default it's the first
169
+ # devise role declared in your routes (usually :user).
170
+ # config.default_scope = :user
171
+
172
+ # Configure sign_out behavior.
173
+ # Sign_out action can be scoped (i.e. /users/sign_out affects only :user scope).
174
+ # The default is true, which means any logout action will sign out all active scopes.
175
+ # config.sign_out_all_scopes = true
176
+
177
+ # ==> Navigation configuration
178
+ # Lists the formats that should be treated as navigational. Formats like
179
+ # :html, should redirect to the sign in page when the user does not have
180
+ # access, but formats like :xml or :json, should return 401.
181
+ #
182
+ # If you have any extra navigational formats, like :iphone or :mobile, you
183
+ # should add them to the navigational formats lists.
184
+ #
185
+ # The :"*/*" and "*/*" formats below is required to match Internet
186
+ # Explorer requests.
187
+ # config.navigational_formats = [:"*/*", "*/*", :html]
188
+
189
+ # The default HTTP method used to sign out a resource. Default is :delete.
190
+ config.sign_out_via = :delete
191
+
192
+ # ==> OmniAuth
193
+ # Add a new OmniAuth provider. Check the wiki for more information on setting
194
+ # up on your models and hooks.
195
+ # config.omniauth :github, 'APP_ID', 'APP_SECRET', :scope => 'user,public_repo'
196
+
197
+ # ==> Warden configuration
198
+ # If you want to use other strategies, that are not supported by Devise, or
199
+ # change the failure app, you can configure them inside the config.warden block.
200
+ #
201
+ # config.warden do |manager|
202
+ # manager.intercept_401 = false
203
+ # manager.default_strategies(:scope => :user).unshift :some_external_strategy
204
+ # end
205
+ end
File without changes
@@ -1,4 +1,6 @@
1
1
  Dummy::Application.routes.draw do
2
+ devise_for :users
3
+
2
4
  # The priority is based upon order of creation:
3
5
  # first created -> highest priority.
4
6
 
File without changes
Binary file
@@ -0,0 +1,58 @@
1
+ class CreatePatrons < ActiveRecord::Migration
2
+ def change
3
+ create_table :patrons do |t|
4
+ t.integer :user_id
5
+ t.string :last_name
6
+ t.string :middle_name
7
+ t.string :first_name
8
+ t.string :last_name_transcription
9
+ t.string :middle_name_transcription
10
+ t.string :first_name_transcription
11
+ t.string :corporate_name
12
+ t.string :corporate_name_transcription
13
+ t.string :full_name
14
+ t.text :full_name_transcription
15
+ t.text :full_name_alternative
16
+ t.timestamps
17
+ t.datetime :deleted_at
18
+ t.string :zip_code_1
19
+ t.string :zip_code_2
20
+ t.text :address_1
21
+ t.text :address_2
22
+ t.text :address_1_note
23
+ t.text :address_2_note
24
+ t.string :telephone_number_1
25
+ t.string :telephone_number_2
26
+ t.string :fax_number_1
27
+ t.string :fax_number_2
28
+ t.text :other_designation
29
+ t.text :place
30
+ t.string :postal_code
31
+ t.text :street
32
+ t.text :locality
33
+ t.text :region
34
+ t.datetime :date_of_birth
35
+ t.datetime :date_of_death
36
+ t.integer :language_id, :default => 1, :null => false
37
+ t.integer :country_id, :default => 1, :null => false
38
+ t.integer :patron_type_id, :default => 1, :null => false
39
+ t.integer :lock_version, :default => 0, :null => false
40
+ t.text :note
41
+ t.integer :creates_count, :default => 0, :null => false
42
+ t.integer :realizes_count, :default => 0, :null => false
43
+ t.integer :produces_count, :default => 0, :null => false
44
+ t.integer :owns_count, :default => 0, :null => false
45
+ #t.integer :resource_has_subjects_count, :default => 0, :null => false
46
+ t.integer :required_role_id, :default => 1, :null => false
47
+ t.integer :required_score, :default => 0, :null => false
48
+ t.string :state
49
+ t.text :email
50
+ t.text :url
51
+ end
52
+ add_index :patrons, :user_id, :unique => true
53
+ add_index :patrons, :language_id
54
+ add_index :patrons, :country_id
55
+ add_index :patrons, :required_role_id
56
+ add_index :patrons, :full_name
57
+ end
58
+ end
@@ -0,0 +1,61 @@
1
+ class CreateManifestations < ActiveRecord::Migration
2
+ def change
3
+ create_table :manifestations do |t|
4
+ t.text :original_title, :null => false
5
+ t.text :title_alternative
6
+ t.text :title_transcription
7
+ t.string :classification_number
8
+ t.string :manifestation_identifier
9
+ t.datetime :date_of_publication
10
+ t.datetime :copyright_date
11
+ t.timestamps
12
+ t.datetime :deleted_at
13
+ t.string :access_address
14
+ t.integer :language_id, :default => 1, :null => false
15
+ t.integer :carrier_type_id, :default => 1, :null => false
16
+ t.integer :extent_id, :default => 1, :null => false
17
+ t.integer :start_page
18
+ t.integer :end_page
19
+ t.integer :height
20
+ t.integer :width
21
+ t.integer :depth
22
+ t.string :isbn
23
+ t.string :isbn10
24
+ t.string :wrong_isbn
25
+ t.string :nbn
26
+ t.string :lccn
27
+ t.string :oclc_number
28
+ t.string :issn
29
+ t.integer :price # TODO: 通貨単位
30
+ t.text :fulltext
31
+ t.string :volume_number_list
32
+ t.string :issue_number_list
33
+ t.string :serial_number_list
34
+ t.integer :edition
35
+ t.text :note
36
+ t.integer :produces_count, :default => 0, :null => false
37
+ t.integer :exemplifies_count, :default => 0, :null => false
38
+ t.integer :embodies_count, :default => 0, :null => false
39
+ t.integer :exemplifies_count, :default => 0, :null => false
40
+ t.integer :work_has_subjects_count, :default => 0, :null => false
41
+ t.boolean :repository_content, :default => false, :null => false
42
+ t.integer :lock_version, :default => 0, :null => false
43
+ t.integer :required_role_id, :default => 1, :null => false
44
+ t.string :state
45
+ t.integer :required_score, :default => 0, :null => false
46
+ t.integer :frequency_id, :default => 1, :null => false
47
+ t.boolean :subscription_master, :default => false, :null => false
48
+ end
49
+ add_index :manifestations, :carrier_type_id
50
+ add_index :manifestations, :required_role_id
51
+ add_index :manifestations, :isbn
52
+ add_index :manifestations, :nbn
53
+ add_index :manifestations, :lccn
54
+ add_index :manifestations, :oclc_number
55
+ add_index :manifestations, :issn
56
+ add_index :manifestations, :access_address
57
+ add_index :manifestations, :frequency_id
58
+ add_index :manifestations, :manifestation_identifier
59
+ add_index :manifestations, :updated_at
60
+ end
61
+ end
@@ -0,0 +1,31 @@
1
+ class CreateItems < ActiveRecord::Migration
2
+ def change
3
+ create_table :items do |t|
4
+ #t.integer :manifestation_id
5
+ t.string :call_number
6
+ t.string :item_identifier
7
+ t.integer :circulation_status_id, :default => 5, :null => false
8
+ t.integer :checkout_type_id, :default => 1, :null => false
9
+ t.timestamps
10
+ t.datetime :deleted_at
11
+ t.integer :shelf_id, :default => 1, :null => false
12
+ t.boolean :include_supplements, :default => false, :null => false
13
+ t.integer :checkouts_count, :default => 0, :null => false
14
+ t.integer :owns_count, :default => 0, :null => false
15
+ t.integer :resource_has_subjects_count, :default => 0, :null => false
16
+ t.text :note
17
+ t.string :url
18
+ t.integer :price
19
+ t.integer :lock_version, :default => 0, :null => false
20
+ t.integer :required_role_id, :default => 1, :null => false
21
+ t.string :state
22
+ t.integer :required_score, :default => 0, :null => false
23
+ end
24
+ #add_index :items, :manifestation_id
25
+ add_index :items, :circulation_status_id
26
+ add_index :items, :checkout_type_id
27
+ add_index :items, :shelf_id
28
+ add_index :items, :item_identifier
29
+ add_index :items, :required_role_id
30
+ end
31
+ end
@@ -0,0 +1,12 @@
1
+ class CreateOwns < ActiveRecord::Migration
2
+ def change
3
+ create_table :owns do |t|
4
+ t.references :patron, :null => false
5
+ t.references :item, :null => false
6
+ t.integer :position
7
+ t.timestamps
8
+ end
9
+ add_index :owns, :patron_id
10
+ add_index :owns, :item_id
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ class CreateCreates < ActiveRecord::Migration
2
+ def change
3
+ create_table :creates do |t|
4
+ t.references :patron, :null => false
5
+ t.references :work, :null => false
6
+ t.integer :position
7
+ t.timestamps
8
+ end
9
+ add_index :creates, :patron_id
10
+ add_index :creates, :work_id
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ class CreateProduces < ActiveRecord::Migration
2
+ def change
3
+ create_table :produces do |t|
4
+ t.references :patron, :null => false
5
+ t.references :manifestation, :null => false
6
+ t.integer :position
7
+ t.timestamps
8
+ end
9
+ add_index :produces, :patron_id
10
+ add_index :produces, :manifestation_id
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ class CreateCarrierTypes < ActiveRecord::Migration
2
+ def change
3
+ create_table :carrier_types do |t|
4
+ t.string :name, :null => false
5
+ t.text :display_name
6
+ t.text :note
7
+ t.integer :position
8
+ t.timestamps
9
+ end
10
+ end
11
+ end