enju_circulation 0.1.0.pre11 → 0.1.0.pre12

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 (48) hide show
  1. checksums.yaml +7 -0
  2. data/app/controllers/checked_items_controller.rb +0 -5
  3. data/app/controllers/checkins_controller.rb +0 -11
  4. data/app/controllers/reserves_controller.rb +73 -15
  5. data/app/helpers/reserves_helper.rb +2 -0
  6. data/app/models/checked_item.rb +9 -0
  7. data/app/models/checkin.rb +13 -0
  8. data/app/models/reserve.rb +186 -42
  9. data/app/views/baskets/new.html.erb +1 -1
  10. data/app/views/checked_items/_list.html.erb +1 -1
  11. data/app/views/checkins/_checkin.html.erb +1 -1
  12. data/app/views/checkins/_list.html.erb +1 -1
  13. data/app/views/manifestations/_show_detail_librarian.html.erb +141 -0
  14. data/app/views/manifestations/_show_detail_user.html.erb +136 -0
  15. data/app/views/reserves/_new.html.erb +1 -1
  16. data/app/views/reserves/_state_facet.html.erb +15 -0
  17. data/app/views/reserves/_title.html.erb +2 -1
  18. data/app/views/reserves/edit.html.erb +20 -2
  19. data/app/views/reserves/index.csv.erb +2 -2
  20. data/app/views/reserves/index.html.erb +30 -6
  21. data/app/views/reserves/show.html.erb +18 -3
  22. data/config/locales/translation_en.yml +10 -1
  23. data/config/locales/translation_ja.yml +10 -1
  24. data/db/migrate/20130303104849_add_state_index_to_reserve.rb +5 -0
  25. data/db/migrate/20130303124821_add_retained_at_to_reserve.rb +5 -0
  26. data/db/migrate/20130304015019_add_postponed_at_to_reserve.rb +5 -0
  27. data/lib/enju_circulation/item.rb +4 -0
  28. data/lib/enju_circulation/version.rb +1 -1
  29. data/spec/controllers/checkins_controller_spec.rb +2 -2
  30. data/spec/controllers/reserves_controller_spec.rb +29 -5
  31. data/spec/dummy/db/schema.rb +4 -1
  32. data/spec/dummy/db/test.sqlite3 +0 -0
  33. data/spec/dummy/solr/data/test/index/_5d.fdt +0 -0
  34. data/spec/dummy/solr/data/test/index/_5d.fdx +0 -0
  35. data/spec/dummy/solr/data/test/index/_5d.fnm +4 -0
  36. data/spec/dummy/solr/data/test/index/_5d.frq +1 -0
  37. data/spec/dummy/solr/data/test/index/_5d.nrm +1 -0
  38. data/spec/dummy/solr/data/test/index/_5d.prx +0 -0
  39. data/spec/dummy/solr/data/test/index/_5d.tii +0 -0
  40. data/spec/dummy/solr/data/test/index/_5d.tis +0 -0
  41. data/spec/dummy/solr/data/test/index/segments.gen +0 -0
  42. data/spec/dummy/solr/data/test/index/segments_at +0 -0
  43. data/spec/dummy/solr/data/test/spellchecker/segments.gen +0 -0
  44. data/spec/dummy/solr/data/test/spellchecker/segments_1 +0 -0
  45. data/spec/fixtures/message_templates.yml +14 -0
  46. data/spec/fixtures/reserves.yml +39 -38
  47. data/spec/models/reserve_spec.rb +25 -1
  48. metadata +65 -72
@@ -0,0 +1,141 @@
1
+ <div id="tabs">
2
+ <%= render 'manifestations/tab_menu', :manifestation => manifestation %>
3
+ <div id="detail">
4
+ <% cache([:manifestation => manifestation.id, :fragment => 'show_detail_librarian_html', :role => current_user_role_name, :locale => @locale]) do %>
5
+ <table class="table table-striped" id="resource_detail">
6
+ <%= embed_content(manifestation) -%>
7
+ <% if manifestation.title_alternative? %>
8
+ <tr>
9
+ <td style="width: 200px"><%= t('activerecord.attributes.manifestation.title_alternative') -%>:</td>
10
+ <td style="width: 500px"><%= manifestation.title_alternative -%></td>
11
+ </tr>
12
+ <% end %>
13
+ <%- if manifestation.series_statement -%>
14
+ <tr>
15
+ <td style="width: 200px"><%= t('activerecord.models.series_statement') -%>:</td>
16
+ <td style="width: 500px">
17
+ <%= link_to manifestation.series_statement.original_title, manifestation.series_statement -%>
18
+ <%= manifestation.volume_number_string %>
19
+ <%- if manifestation.issn.present? -%>
20
+ (<%= t('activerecord.attributes.manifestation.issn') -%>: <%= manifestation.issn -%>)
21
+ <%- end -%>
22
+ </td>
23
+ </tr>
24
+ <% end %>
25
+ <%= render 'edition_and_number', :manifestation => manifestation %>
26
+ <tr>
27
+ <td style="width: 200px"><%= t('page.form') -%>:</td>
28
+ <td style="width: 500px">
29
+ <%= form_icon(manifestation.carrier_type) -%> <%= manifestation.carrier_type.display_name.localize -%> /
30
+ <%= content_type_icon(manifestation.manifestation_content_type) -%> <%= manifestation.manifestation_content_type.display_name.localize if manifestation.manifestation_content_type -%>
31
+ </td>
32
+ </tr>
33
+ <tr>
34
+ <td><%= t('activerecord.models.language') -%>:</td>
35
+ <td><span itemprop="inLanguage"><%= manifestation.language.display_name.localize -%></span></td>
36
+ </tr>
37
+ <tr>
38
+ <td><%= t('manifestation.physical_description') -%>:</td>
39
+ <td>
40
+ <%- if manifestation.number_of_pages -%>
41
+ <span itemprop="numPages"><%= manifestation.number_of_pages -%></span> p.
42
+ (<%= manifestation.start_page -%> - <%= manifestation.end_page -%>)
43
+ <%- end -%>
44
+ <!-- TODO: センチメートル以外の単位 -->
45
+ <%- if manifestation.height -%>
46
+ <%= manifestation.height -%> cm.
47
+ <%- end -%>
48
+ </td>
49
+ </tr>
50
+ <tr>
51
+ <td><%= t('activerecord.attributes.manifestation.price') -%>:</td>
52
+ <td><%= manifestation.price -%></td>
53
+ </tr>
54
+ <% if defined?(EnjuSubject) %>
55
+ <tr>
56
+ <td><%= t('activerecord.models.subject') -%>:</td>
57
+ <td>
58
+ <%- unless manifestation.subjects.empty? -%>
59
+ <ul>
60
+ <%- manifestation.subjects.each do |subject| -%>
61
+ <li>
62
+ <%= link_to subject.term, subject -%>
63
+ <%- unless subject.classifications.empty? -%>
64
+ (
65
+ <%- subject.classifications.each do |classification| -%>
66
+ <%= classification.classification_type.name -%>: <%= link_to classification.category, classification -%>
67
+ <%- end -%>
68
+ )
69
+ <%- end -%>
70
+ </li>
71
+ <%- end -%>
72
+ </ul>
73
+ <%- end -%>
74
+ </td>
75
+ </tr>
76
+ <tr>
77
+ <td><%= t('activerecord.attributes.classification.category') %></td>
78
+ <td>
79
+ <%= manifestation.ndc %>
80
+ </td>
81
+ </tr>
82
+ <% end %>
83
+ <% if defined?(EnjuBookmark) %>
84
+ <tr>
85
+ <td><%= t('activerecord.models.tag') -%>:</td>
86
+ <td>
87
+ <%= render 'manifestations/tag_list', :manifestation => manifestation -%>
88
+ </td>
89
+ </tr>
90
+ <% end %>
91
+ <%- unless manifestation.periodical? -%>
92
+ <tr>
93
+ <td><%= t('page.identifier') -%>:</td>
94
+ <td>
95
+ <%- if manifestation.isbn.present? -%>
96
+ ISBN: <span itemprop="isbn"><%= manifestation.isbn -%></span>
97
+ <%- if manifestation.isbn10.present? -%>
98
+ ( <%= manifestation.isbn10 -%> )
99
+ <%- end -%>
100
+ <%- end -%>
101
+ <%- if manifestation.nbn.present? -%>
102
+ NBN: <%= manifestation.nbn -%>
103
+ <%- end -%>
104
+ <%- if manifestation.lccn.present? -%>
105
+ <br />
106
+ LCCN: <%= manifestation.lccn -%>
107
+ <%- end -%>
108
+ </td>
109
+ </tr>
110
+ <%- end -%>
111
+ <%- unless manifestation.attachment_file_name.blank? -%>
112
+ <%= render 'manifestations/attachment_file', :manifestation => manifestation -%>
113
+ <%- end -%>
114
+ <tr>
115
+ <td><%= t('page.created_at') -%>:</td>
116
+ <td><%=l manifestation.created_at if manifestation.created_at -%></td>
117
+ </tr>
118
+ <tr>
119
+ <td><%= t('page.updated_at') -%>:</td>
120
+ <td><%=l manifestation.updated_at if manifestation.updated_at -%></td>
121
+ </tr>
122
+ <tr>
123
+ <td><%= t('activerecord.attributes.manifestation.description') -%>:</td>
124
+ <td>
125
+ <%= raw simple_format(h(manifestation.description)) -%>
126
+ </td>
127
+ </tr>
128
+ <tr>
129
+ <td><%= t('activerecord.attributes.manifestation.note') -%>:</td>
130
+ <td>
131
+ <%= raw simple_format(h(manifestation.note)) -%>
132
+ </td>
133
+ </tr>
134
+ </table>
135
+ <% end %>
136
+ <%- if manifestation.items.on_shelf.exists? -%>
137
+ <%= render 'manifestations/show_holding', :manifestation => manifestation -%>
138
+ <%- end -%>
139
+ </div>
140
+ <%= render 'manifestations/tab_list', :manifestation => manifestation %>
141
+ </div>
@@ -0,0 +1,136 @@
1
+ <div id="tabs">
2
+ <%= render 'manifestations/tab_menu', :manifestation => manifestation %>
3
+ <div id="detail">
4
+ <% cache([:manifestation => manifestation.id, :fragment => 'show_detail_user_html', :role => current_user_role_name, :locale => @locale]) do %>
5
+ <table class="table table-striped" id="resource_detail">
6
+ <%= embed_content(manifestation) -%>
7
+ <% if manifestation.title_alternative? %>
8
+ <tr>
9
+ <td style="width: 200px"><%= t('activerecord.attributes.manifestation.title_alternative') -%>:</td>
10
+ <td style="width: 500px"><%= manifestation.title_alternative -%></td>
11
+ </tr>
12
+ <% end %>
13
+ <%- if manifestation.series_statement -%>
14
+ <tr>
15
+ <td style="width: 200px"><%= t('activerecord.models.series_statement') -%>:</td>
16
+ <td style="width: 500px">
17
+ <%= link_to manifestation.series_statement.original_title, manifestation.series_statement -%>
18
+ <%= manifestation.volume_number_string %>
19
+ <%- if manifestation.issn.present? -%>
20
+ (<%= t('activerecord.attributes.manifestation.issn') -%>: <%= manifestation.issn -%>)
21
+ <%- end -%>
22
+ </td>
23
+ </tr>
24
+ <% end %>
25
+ <%= render 'edition_and_number', :manifestation => manifestation %>
26
+ <tr>
27
+ <td style="width: 200px"><%= t('page.form') -%>:</td>
28
+ <td style="width: 500px">
29
+ <%= form_icon(manifestation.carrier_type) -%> <%= manifestation.carrier_type.display_name.localize -%> /
30
+ <%= content_type_icon(manifestation.manifestation_content_type) -%> <%= manifestation.manifestation_content_type.display_name.localize if manifestation.manifestation_content_type -%>
31
+ </td>
32
+ </tr>
33
+ <tr>
34
+ <td><%= t('activerecord.models.language') -%>:</td>
35
+ <td><span itemprop="inLanguage"><%= manifestation.language.display_name.localize -%></span></td>
36
+ </tr>
37
+ <tr>
38
+ <td><%= t('manifestation.physical_description') -%>:</td>
39
+ <td>
40
+ <%- if manifestation.number_of_pages -%>
41
+ <span itemprop="numPages"><%= manifestation.number_of_pages -%></span> p.
42
+ (<%= manifestation.start_page -%> - <%= manifestation.end_page -%>)
43
+ <%- end -%>
44
+ <!-- TODO: センチメートル以外の単位 -->
45
+ <%- if manifestation.height -%>
46
+ <%= manifestation.height -%> cm.
47
+ <%- end -%>
48
+ </td>
49
+ </tr>
50
+ <% if manifestation.price.present? %>
51
+ <tr>
52
+ <td><%= t('activerecord.attributes.manifestation.price') -%>:</td>
53
+ <td><%= manifestation.price -%></td>
54
+ </tr>
55
+ <% end %>
56
+ <% if defined?(EnjuSubject) %>
57
+ <%- unless manifestation.subjects.empty? -%>
58
+ <tr>
59
+ <td><%= t('activerecord.models.subject') -%>:</td>
60
+ <td>
61
+ <%- manifestation.subjects.each do |subject| -%>
62
+ <%= link_to subject.term, subject -%>
63
+ <%- end -%>
64
+ </td>
65
+ </tr>
66
+ <%- end -%>
67
+ <tr>
68
+ <td><%= t('activerecord.attributes.classification.category') %></td>
69
+ <td>
70
+ <%= manifestation.ndc %>
71
+ </td>
72
+ </tr>
73
+ <% end %>
74
+ <% if defined?(EnjuBookmark) %>
75
+ <tr>
76
+ <td><%= t('activerecord.models.tag') -%>:</td>
77
+ <td>
78
+ <%= render 'manifestations/tag_list', :manifestation => manifestation -%>
79
+ </td>
80
+ </tr>
81
+ <% end %>
82
+ <%- unless manifestation.periodical? -%>
83
+ <tr>
84
+ <td><%= t('page.identifier') -%>:</td>
85
+ <td>
86
+ <%- if manifestation.isbn.present? -%>
87
+ ISBN: <span itemprop="isbn"><%= manifestation.isbn -%></span>
88
+ <%- if manifestation.isbn10.present? -%>
89
+ ( <%= manifestation.isbn10 -%> )
90
+ <%- end -%>
91
+ <%- end -%>
92
+ <%- if manifestation.nbn.present? -%>
93
+ NBN: <%= manifestation.nbn -%>
94
+ <%- end -%>
95
+ <%- if manifestation.lccn.present? -%>
96
+ <br />
97
+ LCCN: <%= manifestation.lccn -%>
98
+ <%- end -%>
99
+ </td>
100
+ </tr>
101
+ <%- end -%>
102
+ <%- unless manifestation.attachment_file_name.blank? -%>
103
+ <%= render 'manifestations/attachment_file', :manifestation => manifestation -%>
104
+ <%- end -%>
105
+ <tr>
106
+ <td><%= t('page.created_at') -%>:</td>
107
+ <td><%=l manifestation.created_at if manifestation.created_at -%></td>
108
+ </tr>
109
+ <tr>
110
+ <td><%= t('page.updated_at') -%>:</td>
111
+ <td><%=l manifestation.updated_at if manifestation.updated_at -%></td>
112
+ </tr>
113
+ <% if manifestation.description.present? %>
114
+ <tr>
115
+ <td><%= t('activerecord.attributes.manifestation.description') -%>:</td>
116
+ <td>
117
+ <%= raw simple_format(h(manifestation.description)) -%>
118
+ </td>
119
+ </tr>
120
+ <% end %>
121
+ <% if manifestation.note.present? %>
122
+ <tr>
123
+ <td><%= t('activerecord.attributes.manifestation.note') -%>:</td>
124
+ <td>
125
+ <%= raw simple_format(h(manifestation.note)) -%>
126
+ </td>
127
+ </tr>
128
+ <% end %>
129
+ </table>
130
+ <% end %>
131
+ <%- if manifestation.items.on_shelf.exists? -%>
132
+ <%= render 'manifestations/show_holding', :manifestation => manifestation -%>
133
+ <%- end -%>
134
+ </div>
135
+ <%= render 'manifestations/tab_list', :manifestation => manifestation %>
136
+ </div>
@@ -33,7 +33,7 @@
33
33
  <%= f.submit %>
34
34
  </div>
35
35
  <%- end -%>
36
- <%= javascript_tag("$('#reserve_user_number').focus().select();") -%>
36
+ <%= javascript_tag("$(function(){$('#reserve_user_number').focus().select()})") %>
37
37
  </div>
38
38
  </div>
39
39
 
@@ -0,0 +1,15 @@
1
+ <h4><%= t('activerecord.attributes.reserve.state') -%></h4>
2
+ <%- unless @state_facet.blank? -%>
3
+ <ul>
4
+ <% @state_facet.each do |state| %>
5
+ <li>
6
+ <% if state.value == params[:state].to_s.downcase %><strong><% end %>
7
+ <%= link_to "#{i18n_state(state.value)} (#{state.count})", url_for(params.merge(:state => state.value, :page => nil, :view => nil, :only_path => true)) %>
8
+ <% if state.value == params[:state].to_s.downcase %></strong><% end %>
9
+ </li>
10
+ <% end %>
11
+ <%- if params[:state] -%>
12
+ <li><%= link_to t('page.remove_this_facet'), url_for(params.merge(:state => nil, :page => nil, :view => nil, :only_path => true)) -%></li>
13
+ <%- end -%>
14
+ </ul>
15
+ <%- end -%>
@@ -1,4 +1,5 @@
1
- <strong><%= link_to title_with_volume_number(reserve.manifestation), reserve -%></strong>
1
+ <strong><%= link_to title_with_volume_number(reserve.manifestation), reserve -%></strong>
2
+ (<%= link_to t('reserve.bibliographic_detail'), reserve.manifestation %>)
2
3
  <br />
3
4
  <%- if reserve.manifestation.creators.readable_by(current_user).exists? -%>
4
5
  <%= t('patron.creator') -%>: <%= patrons_list(reserve.manifestation.creators.readable_by(current_user)) -%>
@@ -21,13 +21,31 @@
21
21
  (<%= @reserve.user.user_number %>)
22
22
  </div>
23
23
 
24
+ <% unless @reserve.completed? %>
25
+ <div class="field">
26
+ <%= f.label :item_identifier %><br />
27
+ <%= f.text_field :item_identifier %>
28
+ </div>
29
+ <% end %>
30
+
24
31
  <div class="field">
25
32
  <%= f.label :expired_at -%><br />
26
33
  <%= f.text_field :expired_at, :value => @reserve.expired_at.try(:strftime, "%Y-%m-%d"), :class => 'date_field', :placeholder => "#{t('page.example')}: 2011-04-12"-%>
27
34
  </div>
28
35
 
36
+ <% unless @reserve.errors[:base].empty? %>
37
+ <div class="field">
38
+ <%= f.label :force_retaining %><br />
39
+ <%= f.check_box :force_retaining %>
40
+ </div>
41
+ <% end %>
42
+
29
43
  <div class="actions">
30
- <%= f.submit %>
44
+ <% if @reserve.retained? %>
45
+ <%= f.submit :confirm => "#{t('reserve.attempt_to_update_retained_reservation')} #{t('page.continue')}" %>
46
+ <% else %>
47
+ <%= f.submit %>
48
+ <% end %>
31
49
  </div>
32
50
  <%- end -%>
33
51
 
@@ -37,6 +55,6 @@
37
55
  <div id="submenu" class="ui-corner-all">
38
56
  <ul>
39
57
  <li><%= link_to t('page.show'), @reserve -%></li>
40
- <li><%= link_to t('page.back'), user_reserves_path(@reserve.user) -%></li>
58
+ <li><%= link_to t('page.back'), :back -%></li>
41
59
  </ul>
42
60
  </div>
@@ -1,4 +1,4 @@
1
- title,isbn,item_identifier,call_number,created_at
1
+ manifestation_id,title,isbn,item_identifier,call_number,username,created_at,expired_at
2
2
  <%- @reserves.each do |reserve| -%>
3
- "<%=h reserve.manifestation.original_title.gsub(/"/, '""') -%>",<%=h reserve.manifestation.isbn %>,<%=h reserve.item.try(:item_identifier) -%>,<%=h reserve.item.try(:call_number) -%>,<%=h reserve.item.try(:created_at) %><%= "\n" -%>
3
+ <%= manifestation.id %>,"<%= reserve.manifestation.original_title.gsub(/"/, '""') -%>",<%= reserve.manifestation.isbn %>,<%= reserve.item.try(:item_identifier) -%>,<%= reserve.item.try(:call_number) -%>,<%= reserve.user.try(:username) %>,<%= reserve.created_at %>,<%= reserve.expired_at %><%= "\n" -%>
4
4
  <%- end -%>
@@ -2,13 +2,25 @@
2
2
  <div id="content_detail" class="ui-corner-all">
3
3
  <h1 class="title"><%= t('page.listing', :model => t('activerecord.models.reserve')) -%></h1>
4
4
  <div id="content_list">
5
+
6
+ <div class="search_form">
7
+ <%= form_for :reserves, :url => reserves_path, :html => {:method => 'get'} do -%>
8
+ <p>
9
+ <%= t('page.search_term') -%>: <%= search_field_tag 'query', h(@query), {:id => 'search_form_top', :class => 'search_form', :placeholder => t('page.search_term')} -%>
10
+ <br />
11
+ <%= t('activerecord.attributes.reserve.created_at') %>:
12
+ <%= t('reserve.reserved_from') %>: <%= text_field_tag 'reserved_from', @reserved_from, {:class => 'date_field', :placeholder => "#{t('page.example')}: 2012-04-12"} -%>
13
+ <%= t('reserve.reserved_to') %>: <%= text_field_tag 'reserved_to', @reserved_to, {:class => 'date_field', :placeholder => "#{t('page.example')}: 2012-05-11"} -%>
14
+ <%= submit_tag t('page.search') -%>
15
+ </p>
16
+ <%- end -%>
17
+ </div>
18
+
5
19
  <table class="table table-striped index">
6
20
  <tr>
7
- <th style="width: 30px"><%= 'Id' -%></th>
8
- <th><%= t('activerecord.models.user') -%></th>
21
+ <th style="width: 30px">ID</th>
9
22
  <th><%= t('activerecord.models.manifestation') -%></th>
10
23
  <th style="width: 80px"><%= t('activerecord.attributes.reserve.state') -%></th>
11
- <th><%= t('activerecord.attributes.reserve.expired_at') -%></th>
12
24
  <%- if can? :update, @reserves.first -%>
13
25
  <th style="width: 70px"></th>
14
26
  <% end %>
@@ -17,12 +29,21 @@
17
29
  <%- @reserves.each_with_index do |reserve, i| -%>
18
30
  <tr class="line<%= cycle("0", "1") -%>">
19
31
  <td><%= link_to reserve.id, reserve -%></td>
20
- <td><%= link_to reserve.user.username, reserve.user -%></td>
21
32
  <td>
22
33
  <%= render 'title', :reserve => reserve -%>
34
+ <br />
35
+ <%= t('activerecord.models.user') -%>: <%= link_to reserve.user.username, reserve.user -%>
36
+ <%= t('activerecord.attributes.reserve.created_at') %>: <%= l(reserve.created_at, :format => :short) -%>
37
+ <br />
38
+ <%= t('activerecord.attributes.reserve.expired_at') %>: <%= l(reserve.expired_at, :format => :short) -%>
39
+ </td>
40
+ <td>
41
+ <%= i18n_state(reserve.state) -%>
42
+ <% if reserve.item %>
43
+ <br />
44
+ (<%= link_to reserve.item.item_identifier, reserve.item %>)
45
+ <% end %>
23
46
  </td>
24
- <td><%= i18n_state(reserve.state) -%></td>
25
- <td><%= l(reserve.expired_at, :format => :only_date) -%></td>
26
47
  <%- if can? :destroy, reserve -%>
27
48
  <td>
28
49
  <%= link_to t('page.edit'), edit_reserve_path(reserve) -%>
@@ -59,6 +80,9 @@
59
80
  <li><%= link_to t('page.listing', :model => t('activerecord.models.checkout')), user_checkouts_path(@user) -%></li>
60
81
  <%- end -%>
61
82
  </ul>
83
+
84
+ <%= render 'state_facet' %>
85
+
62
86
  <p>
63
87
  <%- if @user -%>
64
88
  <%= link_to (image_tag 'icons/feed.png', :size => '16x16', :alt => t('page.feed'), :class => 'icon'), user_reserves_path(@user, :format => :rss) -%>
@@ -21,23 +21,38 @@
21
21
  <%= i18n_state(@reserve.state) -%>
22
22
  </p>
23
23
 
24
+ <p>
25
+ <strong><%= t('activerecord.attributes.item.item_identifier') -%>:</strong>
26
+ <%= link_to @reserve.item.item_identifier, @reserve.item if @reserve.item -%>
27
+ </p>
28
+
24
29
  <p>
25
30
  <strong><%= t('activerecord.attributes.reserve.created_at') -%>:</strong>
26
31
  <%= l(@reserve.created_at) -%>
27
32
  </p>
28
33
 
34
+ <p>
35
+ <strong><%= t('activerecord.attributes.reserve.expired_at') -%>:</strong>
36
+ <%= l(@reserve.expired_at) if @reserve.expired_at -%>
37
+ </p>
38
+
39
+ <p>
40
+ <strong><%= t('activerecord.attributes.reserve.retained_at') -%>:</strong>
41
+ <%= l(@reserve.retained_at) if @reserve.retained_at -%>
42
+ </p>
43
+
29
44
  <p>
30
45
  <strong><%= t('activerecord.attributes.reserve.canceled_at') -%>:</strong>
31
46
  <%= l(@reserve.canceled_at) if @reserve.canceled_at -%>
32
47
  </p>
33
48
 
34
49
  <p>
35
- <strong><%= t('activerecord.attributes.reserve.expired_at') -%>:</strong>
36
- <%= l(@reserve.expired_at, :format => :only_date) if @reserve.expired_at -%>
50
+ <strong><%= t('activerecord.attributes.reserve.postponed_at') -%>:</strong>
51
+ <%= l(@reserve.postponed_at) if @reserve.postponed_at -%>
37
52
  </p>
38
53
 
39
54
  <p>
40
- <strong><%= t('activerecord.attributes.reserve.checked_out_at') -%>:</strong>
55
+ <strong><%= t('activerecord.attributes.reserve.checked_out_at') -%>:</strong>
41
56
  <%= l(@reserve.checked_out_at) if @reserve.checked_out_at -%>
42
57
  </p>
43
58
 
@@ -43,12 +43,15 @@ en:
43
43
  expired_at: Expired at
44
44
  deleted_at: Deleted at
45
45
  created_at: Reserved at
46
+ retained_at: Retained at
47
+ postponed_at: Postponed at
48
+ state: State
49
+ force_retaining: Force retaining
46
50
  checkout_type:
47
51
  name: Name
48
52
  display_name: Display name
49
53
  note: Note
50
54
  position: Position
51
- state: State
52
55
  circulation_status:
53
56
  name: Name
54
57
  display_name: Display name
@@ -158,6 +161,7 @@ en:
158
161
  my_reservation: "My reservations"
159
162
  all_reservation: "All reservations"
160
163
  this_manifestation_is_already_reserved: "This manifestation is already reserved."
164
+ this_manifestation_is_already_checked_out: "This manifestation is already checked out."
161
165
  excessed_reservation_limit: "Excessed reservation limit."
162
166
  this_patron_cannot_reserve: "This patron can't reserve this manifestation."
163
167
  reservation_was_canceled: "Reservation was canceled."
@@ -170,6 +174,11 @@ en:
170
174
  retained: "Retained"
171
175
  canceled: "Canceled"
172
176
  expired: "Expired"
177
+ postponed: "Postponed"
173
178
  completed: "Completed"
179
+ reserved_from: "From"
180
+ reserved_to: "To"
181
+ attempt_to_update_retained_reservation: "You are attemping to update a retained reservation."
182
+ bibliographic_detail: "Bibliographic details"
174
183
  page:
175
184
  saving: "Saving..."
@@ -40,8 +40,11 @@ ja:
40
40
  canceled_at: 取消時刻
41
41
  expired_at: 有効期限(この日以降は不要)
42
42
  deleted_at: 削除時刻
43
- created_at: 予約日時
43
+ created_at: 予約時刻
44
+ retained_at: 確保時刻
45
+ postponed_at: 取置取消時刻
44
46
  state: 状態
47
+ force_retaining: 強制的に取り置きを行う
45
48
  checkout_type:
46
49
  name: 名前
47
50
  display_name: 表示名
@@ -156,6 +159,7 @@ ja:
156
159
  my_reservation: "自分の予約"
157
160
  all_reservation: "全ての予約"
158
161
  this_manifestation_is_already_reserved: "この資料はすでに予約されています。"
162
+ this_manifestation_is_already_checked_out: "この資料はすでに貸し出されています。"
159
163
  excessed_reservation_limit: "予約できる資料数の上限を超えています。"
160
164
  this_patron_cannot_reserve: "この利用者はこの資料を予約できません。"
161
165
  reservation_was_canceled: "予約は取り消されました。"
@@ -168,6 +172,11 @@ ja:
168
172
  retained: "取置済み"
169
173
  canceled: "取消済み"
170
174
  expired: "期限切れ"
175
+ postponed: "取置延期"
171
176
  completed: "貸出済み"
177
+ reserved_from: "この日から"
178
+ reserved_to: "この日まで"
179
+ attempt_to_update_retained_reservation: "取り置き済みの予約を変更しようとしています。"
180
+ bibliographic_detail: "書誌詳細"
172
181
  page:
173
182
  saving: "保存中..."
@@ -0,0 +1,5 @@
1
+ class AddStateIndexToReserve < ActiveRecord::Migration
2
+ def change
3
+ add_index :reserves, :state
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddRetainedAtToReserve < ActiveRecord::Migration
2
+ def change
3
+ add_column :reserves, :retained_at, :datetime
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class AddPostponedAtToReserve < ActiveRecord::Migration
2
+ def change
3
+ add_column :reserves, :postponed_at, :datetime
4
+ end
5
+ end
@@ -135,6 +135,10 @@ module EnjuCirculation
135
135
  create_lending_policy
136
136
  end
137
137
  end
138
+
139
+ def next_reservation
140
+ Reserve.waiting.where(:item_id => id).first
141
+ end
138
142
  end
139
143
  end
140
144
  end
@@ -1,3 +1,3 @@
1
1
  module EnjuCirculation
2
- VERSION = "0.1.0.pre11"
2
+ VERSION = "0.1.0.pre12"
3
3
  end
@@ -343,8 +343,8 @@ describe CheckinsController do
343
343
 
344
344
  it "should not update checkin without item_identifier" do
345
345
  put :update, :id => @checkin.id, :checkin => @attrs.merge(:item_identifier => nil)
346
- assigns(:checkin).should_not be_valid
347
- response.should be_success
346
+ assigns(:checkin).should be_valid
347
+ response.should redirect_to(@checkin)
348
348
  end
349
349
  end
350
350