enju_library 0.1.0.pre6 → 0.1.0.pre7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. data/app/controllers/accepts_controller.rb +83 -0
  2. data/app/models/accept.rb +37 -0
  3. data/app/models/basket.rb +63 -0
  4. data/app/models/library.rb +2 -2
  5. data/app/models/library_group.rb +0 -1
  6. data/app/models/shelf.rb +1 -1
  7. data/app/views/accepts/_form.html.erb +11 -0
  8. data/app/views/accepts/_list.html.erb +31 -0
  9. data/app/views/accepts/edit.html.erb +13 -0
  10. data/app/views/accepts/index.csv.erb +4 -0
  11. data/app/views/accepts/index.html.erb +49 -0
  12. data/app/views/accepts/index.js.erb +1 -0
  13. data/app/views/accepts/new.html.erb +14 -0
  14. data/app/views/accepts/show.html.erb +31 -0
  15. data/config/locales/en.yml +86 -0
  16. data/config/locales/ja.yml +86 -0
  17. data/config/routes.rb +5 -0
  18. data/db/migrate/080_create_library_groups.rb +0 -1
  19. data/db/migrate/120_create_baskets.rb +12 -0
  20. data/db/migrate/20120319173203_create_accepts.rb +14 -0
  21. data/lib/enju_library/engine.rb +2 -0
  22. data/lib/enju_library/version.rb +1 -1
  23. data/spec/controllers/accepts_controller_spec.rb +304 -0
  24. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  25. data/spec/dummy/app/models/ability.rb +2 -0
  26. data/spec/dummy/config/application.rb +4 -2
  27. data/spec/dummy/db/migrate/033_create_checkouts.rb +25 -0
  28. data/spec/dummy/db/migrate/132_create_circulation_statuses.rb +16 -0
  29. data/spec/dummy/db/migrate/20081030023412_create_checkout_types.rb +17 -0
  30. data/spec/dummy/db/migrate/20081030023518_create_user_group_has_checkout_types.rb +25 -0
  31. data/spec/dummy/db/migrate/20110328130826_add_current_checkout_count_to_user_group_has_checkout_type.rb +9 -0
  32. data/spec/dummy/db/migrate/20121119153944_add_manifestation_id_to_item.rb +5 -0
  33. data/spec/dummy/db/schema.rb +83 -1
  34. data/spec/dummy/db/test.sqlite3 +0 -0
  35. data/spec/dummy/tmp/cache/4AD/470/country_all +0 -0
  36. data/spec/factories/accepts.rb +9 -0
  37. data/spec/factories/basket.rb +5 -0
  38. data/spec/factories/item.rb +7 -0
  39. data/spec/fixtures/baskets.yml +80 -0
  40. data/spec/fixtures/checkout_types.yml +34 -0
  41. data/spec/fixtures/checkouts.yml +163 -0
  42. data/spec/fixtures/circulation_statuses.yml +106 -0
  43. data/spec/fixtures/exemplifies.yml +160 -0
  44. data/spec/fixtures/items.yml +259 -0
  45. data/spec/models/accept_spec.rb +23 -0
  46. data/spec/models/basket_spec.rb +25 -0
  47. data/spec/models/library_group_spec.rb +6 -0
  48. data/spec/routing/accepts_routing_spec.rb +27 -0
  49. data/spec/spec_helper.rb +3 -0
  50. data/spec/views/accepts/edit.html.erb_spec.rb +18 -0
  51. data/spec/views/accepts/index.html.erb_spec.rb +27 -0
  52. data/spec/views/accepts/new.html.erb_spec.rb +31 -0
  53. data/spec/views/accepts/show.html.erb_spec.rb +17 -0
  54. metadata +140 -55
  55. data/spec/dummy/db/development.sqlite3 +0 -0
  56. data/spec/dummy/solr/data/test/index/_38.fdt +0 -0
  57. data/spec/dummy/solr/data/test/index/_38.fdx +0 -0
  58. data/spec/dummy/solr/data/test/index/_38.fnm +0 -3
  59. data/spec/dummy/solr/data/test/index/_38.frq +0 -1
  60. data/spec/dummy/solr/data/test/index/_38.nrm +0 -1
  61. data/spec/dummy/solr/data/test/index/_38.prx +0 -0
  62. data/spec/dummy/solr/data/test/index/_38.tii +0 -0
  63. data/spec/dummy/solr/data/test/index/_38.tis +0 -0
  64. data/spec/dummy/solr/data/test/index/segments.gen +0 -0
  65. data/spec/dummy/solr/data/test/index/segments_7f +0 -0
  66. data/spec/dummy/solr/data/test/spellchecker/segments.gen +0 -0
  67. data/spec/dummy/solr/data/test/spellchecker/segments_1 +0 -0
@@ -0,0 +1,83 @@
1
+ class AcceptsController < InheritedResources::Base
2
+ load_and_authorize_resource :except => :index
3
+ authorize_resource :only => :index
4
+ respond_to :html, :json
5
+ before_filter :get_basket, :only => [:index, :create]
6
+
7
+ # GET /accepts
8
+ # GET /accepts.json
9
+ def index
10
+ if params[:format] == 'csv'
11
+ @accepts = Accept.order('accepts.created_at DESC').page(params[:page]).per(65534)
12
+ else
13
+ if params[:accept]
14
+ @query = params[:accept][:item_identifier].to_s.strip
15
+ item = Item.where(:item_identifier => @query).first if @query.present?
16
+ end
17
+
18
+ if item
19
+ @accepts = Accept.order('accepts.created_at DESC').where(:item_id => item.id).page(params[:page])
20
+ else
21
+ if @basket
22
+ @accepts = @basket.accepts.page(params[:page])
23
+ else
24
+ @accepts = Accept.page(params[:page])
25
+ end
26
+ end
27
+ end
28
+
29
+ respond_to do |format|
30
+ format.html # index.html.erb
31
+ format.json { render :json => @accepts }
32
+ format.js { @accept = Accept.new }
33
+ format.csv
34
+ end
35
+ end
36
+
37
+ # GET /new
38
+ # GET /new.json
39
+ def new
40
+ @basket = Basket.new
41
+ @basket.user = current_user
42
+ @basket.save!
43
+ @accept = Accept.new
44
+ @accepts = []
45
+
46
+ respond_to do |format|
47
+ format.html # new.html.erb
48
+ format.json { render :json => @patron }
49
+ end
50
+ end
51
+
52
+ # POST /accepts
53
+ # POST /accepts.json
54
+ def create
55
+ unless @basket
56
+ access_denied; return
57
+ end
58
+ @accept.basket = @basket
59
+ @accept.librarian = current_user
60
+
61
+ flash[:message] = ''
62
+ if @accept.item_identifier.blank?
63
+ flash[:message] << t('accept.enter_item_identifier') if @accept.item_identifier.blank?
64
+ else
65
+ item = Item.where(:item_identifier => @accept.item_identifier.to_s.strip).first
66
+ end
67
+ @accept.item = item
68
+
69
+ respond_to do |format|
70
+ if @accept.save
71
+ flash[:message] << t('accept.successfully_accepted', :model => t('activerecord.models.accept'))
72
+ format.html { redirect_to basket_accepts_url(@basket) }
73
+ format.json { render :json => @accept, :status => :created, :location => @accept }
74
+ format.js { redirect_to basket_accepts_url(@basket, :format => :js) }
75
+ else
76
+ @accepts = @basket.accepts.page(params[:page])
77
+ format.html { render :action => "index" }
78
+ format.json { render :json => @accept.errors, :status => :unprocessable_entity }
79
+ format.js { render :action => "index" }
80
+ end
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,37 @@
1
+ class Accept < ActiveRecord::Base
2
+ attr_accessible :item_identifier, :librarian_id, :item_id
3
+ default_scope :order => 'accepts.id DESC'
4
+ belongs_to :basket
5
+ belongs_to :item
6
+ belongs_to :librarian, :class_name => 'User'
7
+
8
+ validates_uniqueness_of :item_id, :message => I18n.t('accept.already_accepted')
9
+ validates_presence_of :item_id, :message => I18n.t('accept.item_not_found')
10
+ validates_presence_of :basket_id
11
+
12
+ before_save :accept!, :on => :create
13
+
14
+ attr_accessor :item_identifier
15
+
16
+ paginates_per 10
17
+
18
+ def accept!
19
+ if defined?(EnjuCirculation)
20
+ item.circulation_status = CirculationStatus.where(:name => 'Available On Shelf').first
21
+ end
22
+ item.save(:validate => false)
23
+ end
24
+ end
25
+
26
+ # == Schema Information
27
+ #
28
+ # Table name: accepts
29
+ #
30
+ # id :integer not null, primary key
31
+ # basket_id :integer
32
+ # item_id :integer
33
+ # librarian_id :integer
34
+ # created_at :datetime not null
35
+ # updated_at :datetime not null
36
+ #
37
+
@@ -0,0 +1,63 @@
1
+ class Basket < ActiveRecord::Base
2
+ attr_accessible :note, :user_number
3
+ default_scope :order => 'baskets.id DESC'
4
+ scope :will_expire, lambda {|date| {:conditions => ['created_at < ?', date]}}
5
+ belongs_to :user, :validate => true
6
+ has_many :accepts
7
+
8
+ validates_associated :user, :on => :create
9
+ # 貸出完了後にかごのユーザidは破棄する
10
+ validates_presence_of :user, :on => :create
11
+ validate :check_suspended
12
+
13
+ attr_accessor :user_number
14
+
15
+ def check_suspended
16
+ if user
17
+ errors[:base] << I18n.t('basket.this_account_is_suspended') if user.locked_at
18
+ else
19
+ errors[:base] << I18n.t('user.not_found')
20
+ end
21
+ end
22
+
23
+ def self.expire
24
+ Basket.will_expire(Time.zone.now.beginning_of_day).destroy_all
25
+ logger.info "#{Time.zone.now} baskets expired!"
26
+ end
27
+
28
+ if defined?(EnjuCirculation)
29
+ has_many :checked_items, :dependent => :destroy
30
+ has_many :items, :through => :checked_items
31
+ has_many :checkouts
32
+ has_many :checkins
33
+
34
+ def basket_checkout(librarian)
35
+ return nil if checked_items.size == 0
36
+ Item.transaction do
37
+ checked_items.each do |checked_item|
38
+ checkout = user.checkouts.new
39
+ checkout.librarian = librarian
40
+ checkout.item = checked_item.item
41
+ checkout.basket = self
42
+ checkout.due_date = checked_item.due_date
43
+ checked_item.item.checkout!(user)
44
+ checkout.save!
45
+ end
46
+ CheckedItem.destroy_all(:basket_id => id)
47
+ end
48
+ end
49
+ end
50
+ end
51
+
52
+ # == Schema Information
53
+ #
54
+ # Table name: baskets
55
+ #
56
+ # id :integer not null, primary key
57
+ # user_id :integer
58
+ # note :text
59
+ # lock_version :integer default(0), not null
60
+ # created_at :datetime not null
61
+ # updated_at :datetime not null
62
+ #
63
+
@@ -29,8 +29,8 @@ class Library < ActiveRecord::Base
29
29
  validates_uniqueness_of :short_display_name, :case_sensitive => false
30
30
  validates_uniqueness_of :isil, :allow_blank => true
31
31
  validates :display_name, :uniqueness => true
32
- validates :name, :format => {:with => /^[a-z][0-9a-z\-_]{1,254}$/}
33
- validates :isil, :format => {:with => /^[A-Za-z]{1,4}-[A-Za-z0-9\/:\-]{2,11}$/}, :allow_blank => true
32
+ validates :name, :format => {:with => /\A[a-z][0-9a-z\-_]{1,254}\z/}
33
+ validates :isil, :format => {:with => /\A[A-Za-z]{1,4}-[A-Za-z0-9\/:\-]{2,11}\z/}, :allow_blank => true
34
34
  after_validation :geocode, :if => :address_changed?
35
35
  after_create :create_shelf
36
36
  after_save :clear_all_cache
@@ -4,7 +4,6 @@ class LibraryGroup < ActiveRecord::Base
4
4
  :login_banner, :note, :country_id, :admin_networks, :url
5
5
 
6
6
  #include Singleton
7
- #include Configurator
8
7
  include MasterModel
9
8
 
10
9
  has_many :libraries
data/app/models/shelf.rb CHANGED
@@ -9,7 +9,7 @@ class Shelf < ActiveRecord::Base
9
9
  validates_associated :library
10
10
  validates_presence_of :library
11
11
  validates_uniqueness_of :display_name, :scope => :library_id
12
- validates :name, :format => {:with => /^[a-z][0-9a-z\-_]{1,254}$/}
12
+ validates :name, :format => {:with => /\A[a-z][0-9a-z\-_]{1,254}\z/}
13
13
 
14
14
  acts_as_list :scope => :library
15
15
 
@@ -0,0 +1,11 @@
1
+ <%= simple_form_for(@accept) do |f| %>
2
+ <%= f.error_notification %>
3
+
4
+ <div class="form-inputs">
5
+ <%= f.input :item_id %>
6
+ </div>
7
+
8
+ <div class="form-actions">
9
+ <%= f.button :submit %>
10
+ </div>
11
+ <% end %>
@@ -0,0 +1,31 @@
1
+ <div style="color: red"><%= flash[:message] -%></div>
2
+
3
+ <div class="search_form">
4
+ <%= form_for(@accept, :url => basket_accepts_path(@basket), :remote => true) do |f| %>
5
+ <%= f.error_messages %>
6
+ <p>
7
+ <%= label_tag :item_identifier, t('activerecord.attributes.item.item_identifier') -%>:
8
+ <%= f.search_field :item_identifier, :class => 'resource_item_identifier', :value => nil -%>
9
+ <%= f.submit t('accept.accept'), 'data-disable-with' => t('page.saving') -%>
10
+ </p>
11
+ <%- end -%>
12
+ </div>
13
+
14
+ <table class="index">
15
+ <tr>
16
+ <th><%= t('activerecord.models.item') -%></th>
17
+ </tr>
18
+ <%- @accepts.each_with_index do |accept, i| -%>
19
+ <tr class="line<%= cycle("0", "1") -%>">
20
+ <td>
21
+ <%= render 'manifestations/show_index', :manifestation => accept.item.manifestation %>
22
+ <%= link_to accept.item.item_identifier, accept.item -%> / <%= accept.item.call_number %>
23
+ (<%= link_to accept.item.shelf.library.display_name.localize, accept.item.shelf.library %> /
24
+ <%= link_to accept.item.shelf.display_name.localize, accept.item.shelf %>)<br />
25
+ <%=l accept.created_at %>
26
+ </td>
27
+ </tr>
28
+ <%- end -%>
29
+ </table>
30
+
31
+ <%= javascript_tag("$('#accept_item_identifier').focus()") -%>
@@ -0,0 +1,13 @@
1
+ <div id="content_detail" class="ui-corner-all">
2
+ <h1 class="title"><%= t('page.editing', :model => t('activerecord.models.accept')) -%></h1>
3
+ <div id="content_list">
4
+ <%= render 'form' %>
5
+ </div>
6
+ </div>
7
+
8
+ <div id="submenu" class="ui-corner-all">
9
+ <ul>
10
+ <li><%= link_to t('page.show'), @accept -%></li>
11
+ <li><%= link_to t('page.back'), accepts_path -%></li>
12
+ </ul>
13
+ </div>
@@ -0,0 +1,4 @@
1
+ item_identifier basket_id accepted_at
2
+ <% @accepts.each do |accept| %>
3
+ <%= accept.item.item_identifier %> <%= accept.basket_id %> <%= accept.created_at %>
4
+ <% end %>
@@ -0,0 +1,49 @@
1
+ <div id="content_detail" class="ui-corner-all">
2
+ <h1 class="title"><%= t('page.listing', :model => t('activerecord.models.accept')) -%></h1>
3
+ <div id="content_list">
4
+
5
+ <div class="search_form">
6
+ <%= form_for(:accept, :html => {:method => :get}) do |f| %>
7
+ <p>
8
+ <%= label_tag :item_identifier, t('activerecord.attributes.item.item_identifier') -%>:
9
+ <%= f.search_field :item_identifier, :value => @query, :class => 'resource_item_identifier' -%>
10
+ <%= f.submit t('page.search') -%>
11
+ </p>
12
+ <%- end -%>
13
+ </div>
14
+
15
+ <table class="table table-striped index">
16
+ <tr>
17
+ <th><%= t('activerecord.models.item') -%></th>
18
+ <th></th>
19
+ </tr>
20
+ <%- @accepts.each_with_index do |accept, i| -%>
21
+ <tr class="line<%= cycle("0", "1") -%>">
22
+ <td>
23
+ <% if accept.item %>
24
+ <%= render 'manifestations/show_index', :manifestation => accept.item.manifestation %>
25
+ <%= link_to accept.item.item_identifier, accept.item -%> / <%= accept.item.call_number %>
26
+ (<%= link_to accept.item.shelf.library.display_name.localize, accept.item.shelf.library %> /
27
+ <%= link_to accept.item.shelf.display_name.localize, accept.item.shelf %>)<br />
28
+ <%=l accept.created_at %>
29
+ <% end %>
30
+ </td>
31
+ <td>
32
+ <%- if can? :destroy, accept -%>
33
+ <%= link_to t('page.destroy'), accept, :data => {:confirm => t('page.are_you_sure')}, :method => :delete -%>
34
+ <%- end -%>
35
+ </td>
36
+ </tr>
37
+ <%- end -%>
38
+ </table>
39
+ <%= javascript_tag("$('#accept_item_identifier').focus()") -%>
40
+
41
+ <%= paginate(@accepts) %>
42
+ </div>
43
+ </div>
44
+
45
+ <div id="submenu" class="ui-corner-all">
46
+ <ul>
47
+ <li><%= link_to t('page.new', :model => t('activerecord.models.accept')), new_accept_path -%></li>
48
+ </ul>
49
+ </div>
@@ -0,0 +1 @@
1
+ $("#accept_list").html("<%= escape_javascript(render('accepts/list')) %>");
@@ -0,0 +1,14 @@
1
+ <div id="content_detail" class="ui-corner-all">
2
+ <h1 class="title"><%= t('page.new', :model => t('activerecord.models.accept')) -%></h1>
3
+ <div id="content_list">
4
+ <div id="accept_list">
5
+ <%= render 'list' -%>
6
+ </div>
7
+ </div>
8
+ </div>
9
+
10
+ <div id="submenu" class="ui-corner-all">
11
+ <ul>
12
+ <li><%= link_to t('page.back'), accepts_path -%></li>
13
+ </ul>
14
+ </div>
@@ -0,0 +1,31 @@
1
+ <div id="content_detail" class="ui-corner-all">
2
+ <h1 class="title"><%= t('page.showing', :model => t('activerecord.models.accept')) -%></h1>
3
+ <div id="content_list">
4
+ <p id="notice"><%= notice %></p>
5
+
6
+ <p>
7
+ <strong><%= t('activerecord.models.item') -%>:</strong>
8
+ <% if @accept.item %>
9
+ <%= link_to @accept.item.item_identifier, @accept.item -%>
10
+ (<%= link_to @accept.item.manifestation.original_title, @accept.item.manifestation %>)
11
+ <% end %>
12
+ </p>
13
+
14
+ <p>
15
+ <strong><%= t('activerecord.models.user') -%>:</strong>
16
+ <%= link_to @accept.librarian.username, @accept.librarian if @accept.librarian -%>
17
+ </p>
18
+
19
+ <p>
20
+ <strong><%= t('page.created_at') -%>:</strong>
21
+ <%=l @accept.created_at %>
22
+ </p>
23
+
24
+ </div>
25
+ </div>
26
+
27
+ <div id="submenu" class="ui-corner-all">
28
+ <ul>
29
+ <li><%= back_to_index(flash[:page_info]) -%></li>
30
+ </ul>
31
+ </div>
@@ -0,0 +1,86 @@
1
+ en:
2
+ activerecord:
3
+ models:
4
+ library: Library
5
+ library_group: Library Group
6
+ shelf: Shelf
7
+ accept: Accept
8
+ budget_type: Budget type
9
+ bookstore: Bookstore
10
+ subscribe: Subscribe
11
+ subscription: Subscription
12
+ request_status_type: Request status type
13
+ request_type: Request type
14
+
15
+ attributes:
16
+ library:
17
+ name: Name
18
+ display_name: Display name
19
+ short_display_name: Short display name
20
+ zip_code: Zip code
21
+ region: Region
22
+ locality: Locality
23
+ street: Street
24
+ telephone_number_1: Telephone number 1
25
+ telephone_number_2: Telephone number 2
26
+ fax_number: Fax number
27
+ lat: Lat
28
+ lng: Lng
29
+ note: Note
30
+ call_number_rows: Call number rows
31
+ call_number_delimiter: Call number delimiter
32
+ position: Position
33
+ deleted_at: Deleted at
34
+ opening_hour: Opening hour
35
+ isil: ISIL
36
+ shelf:
37
+ name: Name
38
+ display_name: Display name
39
+ note: Note
40
+ position: Position
41
+ deleted_at: Deleted at
42
+ closed: Closed
43
+ library_group:
44
+ name: Name
45
+ display_name: Display name
46
+ short_name: Short name
47
+ email: Email
48
+ my_networks: My networks
49
+ admin_networks: Admin networks
50
+ note: Note
51
+ login_banner: Login banner
52
+ post_to_union_catalog: Post to union catalog
53
+ bookstore:
54
+ name: Name
55
+ zip_code: Zip code
56
+ address: Address
57
+ note: Note
58
+ telephone_number: Telephone number
59
+ fax_number: Fax number
60
+ url: URL
61
+ position: Position
62
+ deleted_at: Deleted at
63
+ budget_type:
64
+ name: Name
65
+ display_name: Display name
66
+ note: Note
67
+ accept:
68
+ item_id: Item
69
+ subscribe:
70
+ started_on: Start on
71
+ ended_on: End on
72
+ subscription:
73
+ title: Title
74
+ note: Note
75
+ deleted_at: Deleted at
76
+ subscribes_count: Count
77
+ request_status_type:
78
+ name: Name
79
+ display_name: Display name
80
+ note: Note
81
+ position: Position
82
+ request_type:
83
+ name: Name
84
+ display_name: Display name
85
+ note: Note
86
+ position: Position
@@ -0,0 +1,86 @@
1
+ ja:
2
+ activerecord:
3
+ models:
4
+ library: 図書館
5
+ library_group: 図書館全体の設定
6
+ shelf: 本棚
7
+ accept: 検収
8
+ budget_type: 予算種別
9
+ bookstore: 書店
10
+ subscribe: 購読
11
+ subscription: 購読
12
+ request_status_type: 依頼の状態の種類
13
+ request_type: 依頼の種類
14
+
15
+ attributes:
16
+ library:
17
+ name: 名前
18
+ display_name: 表示名
19
+ short_display_name: 短縮表示名
20
+ zip_code: 郵便番号
21
+ region: 都道府県
22
+ locality: 市区町村
23
+ street: 番地
24
+ telephone_number_1: 電話番号1
25
+ telephone_number_2: 電話番号2
26
+ fax_number: ファックス番号
27
+ lat: 緯度
28
+ lng: 経度
29
+ note: 注記
30
+ call_number_rows: 請求記号の列数
31
+ call_number_delimiter: 請求番号の区切り文字
32
+ position: 位置
33
+ deleted_at: 削除時刻
34
+ opening_hour: 開館時間
35
+ isil: ISIL
36
+ shelf:
37
+ name: 名前
38
+ display_name: 表示名
39
+ note: 注記
40
+ position: 位置
41
+ deleted_at: 削除時刻
42
+ closed: 閉架
43
+ library_group:
44
+ name: 名前
45
+ display_name: 表示名
46
+ short_name: 短縮名
47
+ email: メール
48
+ my_networks: LANとして扱うネットワーク
49
+ admin_networks: 管理用として扱うネットワーク
50
+ note: 注記
51
+ login_banner: ログイン画面でのメッセージ
52
+ post_to_union_catalog: 総合目録に登録する
53
+ bookstore:
54
+ name: 名前
55
+ zip_code: 郵便番号
56
+ address: 住所
57
+ note: 注記
58
+ telephone_number: 電話番号
59
+ fax_number: ファックス番号
60
+ url: URL
61
+ position: 位置
62
+ deleted_at: 削除時刻
63
+ budget_type:
64
+ name: 名称
65
+ display_name: 表示名
66
+ note: 注記
67
+ accept:
68
+ item_id: 個別資料
69
+ subscribe:
70
+ started_on: 開始日
71
+ ended_on: 終了日
72
+ subscription:
73
+ title: タイトル
74
+ note: 注記
75
+ deleted_at: 削除時刻
76
+ subscribes_count: 購読数
77
+ request_status_type:
78
+ name: 名前
79
+ display_name: 表示名
80
+ note: 注記
81
+ position: 位置
82
+ request_type:
83
+ name: 名前
84
+ display_name: 表示名
85
+ note: 注記
86
+ position: 位置
data/config/routes.rb CHANGED
@@ -6,6 +6,11 @@ Rails.application.routes.draw do
6
6
  resources :picture_files
7
7
  end
8
8
 
9
+ resources :baskets do
10
+ resources :accepts, :except => [:edit, :update]
11
+ end
12
+ resources :accepts, :except => [:edit, :update]
13
+
9
14
  resources :bookstores
10
15
  resources :library_groups, :except => [:new, :create, :destroy]
11
16
  resources :subscriptions
@@ -8,7 +8,6 @@ class CreateLibraryGroups < ActiveRecord::Migration
8
8
  t.text :my_networks
9
9
  t.text :login_banner
10
10
  t.text :note
11
- t.integer :valid_period_for_new_user, :default => 365, :null => false
12
11
  t.integer :country_id
13
12
  t.integer :position
14
13
 
@@ -0,0 +1,12 @@
1
+ class CreateBaskets < ActiveRecord::Migration
2
+ def change
3
+ create_table :baskets do |t|
4
+ t.integer :user_id
5
+ t.text :note
6
+ t.integer :lock_version, :default => 0, :null => false
7
+
8
+ t.timestamps
9
+ end
10
+ add_index :baskets, :user_id
11
+ end
12
+ end
@@ -0,0 +1,14 @@
1
+ class CreateAccepts < ActiveRecord::Migration
2
+ def change
3
+ create_table :accepts do |t|
4
+ t.integer :basket_id
5
+ t.integer :item_id
6
+ t.integer :librarian_id
7
+
8
+ t.timestamps
9
+ end
10
+
11
+ add_index :accepts, :basket_id
12
+ add_index :accepts, :item_id
13
+ end
14
+ end
@@ -1,6 +1,8 @@
1
1
  require 'enju_core'
2
2
  require 'inherited_resources'
3
+ require 'mobylette'
3
4
  require 'geocoder'
5
+ require 'ipaddr'
4
6
 
5
7
  module EnjuLibrary
6
8
  class Engine < ::Rails::Engine
@@ -1,3 +1,3 @@
1
1
  module EnjuLibrary
2
- VERSION = "0.1.0.pre6"
2
+ VERSION = "0.1.0.pre7"
3
3
  end