enju_subject 0.1.0.pre13 → 0.1.0.pre14

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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/subjects_controller.rb +3 -45
  3. data/app/models/enju_subject/ability.rb +4 -12
  4. data/app/models/subject.rb +4 -10
  5. data/app/models/subject_heading_type.rb +1 -3
  6. data/app/models/subject_sweeper.rb +1 -4
  7. data/app/views/manifestations/_subject_detail.html.erb +1 -1
  8. data/app/views/subjects/_form.html.erb +4 -14
  9. data/app/views/subjects/index.html.erb +44 -5
  10. data/app/views/subjects/show.html.erb +6 -36
  11. data/config/locales/translation_en.yml +0 -16
  12. data/config/locales/translation_ja.yml +1 -17
  13. data/config/routes.rb +4 -31
  14. data/db/migrate/20130504195916_add_subject_heading_type_id_to_subject.rb +5 -0
  15. data/lib/enju_subject/version.rb +1 -1
  16. data/lib/generators/enju_subject/setup/templates/db/fixtures/subject_heading_types.yml +31 -0
  17. data/spec/controllers/subjects_controller_spec.rb +0 -17
  18. data/spec/dummy/app/models/ability.rb +4 -12
  19. data/spec/dummy/db/development.sqlite3 +0 -0
  20. data/spec/dummy/db/schema.rb +5 -26
  21. data/spec/dummy/db/test.sqlite3 +0 -0
  22. data/spec/dummy/solr/data/test/index/segments.gen +0 -0
  23. data/spec/dummy/solr/data/test/index/segments_1ss +0 -0
  24. data/spec/fixtures/subjects.yml +5 -0
  25. data/spec/routing/subjects_routing_spec.rb +0 -4
  26. metadata +10 -37
  27. data/app/controllers/subject_heading_type_has_subjects_controller.rb +0 -80
  28. data/app/controllers/work_has_subjects_controller.rb +0 -107
  29. data/app/models/subject_heading_type_has_subject.rb +0 -22
  30. data/app/models/work_has_subject.rb +0 -32
  31. data/app/views/subjects/_index.html.erb +0 -48
  32. data/app/views/subjects/_index_work.html.erb +0 -60
  33. data/app/views/subjects/_show_work_list.html.erb +0 -15
  34. data/app/views/subjects/show.js.erb +0 -1
  35. data/app/views/work_has_subjects/_form.html.erb +0 -24
  36. data/app/views/work_has_subjects/edit.html.erb +0 -29
  37. data/app/views/work_has_subjects/index.html.erb +0 -31
  38. data/app/views/work_has_subjects/new.html.erb +0 -42
  39. data/app/views/work_has_subjects/show.html.erb +0 -25
  40. data/db/migrate/20080606052544_create_work_has_subjects.rb +0 -18
  41. data/db/migrate/20090208044541_create_subject_heading_type_has_subjects.rb +0 -16
  42. data/spec/controllers/subject_heading_type_has_subjects_controller_spec.rb +0 -447
  43. data/spec/controllers/work_has_subjects_controller_spec.rb +0 -439
  44. data/spec/dummy/solr/data/test/index/segments_1n5 +0 -0
  45. data/spec/factories/work_has_subject.rb +0 -6
  46. data/spec/fixtures/subject_heading_type_has_subjects.yml +0 -24
  47. data/spec/fixtures/work_has_subjects.yml +0 -33
  48. data/spec/models/subject_heading_type_has_subject_spec.rb +0 -20
  49. data/spec/models/work_has_subject_spec.rb +0 -21
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2a89e5f25c1f9c4b71c86a465ba2444e76df5a2d
4
- data.tar.gz: c5057ad5dd20114fb5efb76e4334b7e8b5ca756e
3
+ metadata.gz: f53eb252d1fbc6832322d735d57b15b11aa63269
4
+ data.tar.gz: 9736eb6d6466b072718346f43e7e27f5827a4f67
5
5
  SHA512:
6
- metadata.gz: 07634d10d3e400ae41d3ffb3c170da6f6647e69e63d54e26e35126e36b2403d310039a578fd52b62ec07131c5d89be80c54906dc47a054c52955f6e5d2e98bb8
7
- data.tar.gz: c39aaf878922caeea0dfc026763c7d5b88616edfe0d7d4ee8266cc8e54888a6e03e180ee796f549b8476ddac5a38e3bfa71dcfad49d7508eb675481cfa34a68e
6
+ metadata.gz: 6ff7f21843d3ea51a961d03d9fb4b54087caa3e66e69f05c174fbe62e4af4e106564d83ebad9df4605f742149032eb99bc725def840f8ba04ddc709bf11707a5
7
+ data.tar.gz: 4d0cee45a22718db76db002c067303aad88fbfc71fc4f416de65dadae46720e5bbad64ec99778e2665a5504312216dd811413243afd3d8f5b0603e81b11b07eb
@@ -2,7 +2,6 @@
2
2
  class SubjectsController < ApplicationController
3
3
  load_and_authorize_resource :except => :index
4
4
  authorize_resource :only => :index
5
- before_filter :get_work, :get_subject_heading_type
6
5
  before_filter :prepare_options, :only => :new
7
6
  after_filter :solr_commit, :only => [:create, :update, :destroy]
8
7
  cache_sweeper :subject_sweeper, :only => [:create, :update, :destroy]
@@ -17,7 +16,7 @@ class SubjectsController < ApplicationController
17
16
  end
18
17
  sort[:order] = 'asc' if params[:order] == 'asc'
19
18
 
20
- search = Subject.search(:include => [:manifestation])
19
+ search = Subject.search
21
20
  query = params[:query].to_s.strip
22
21
  unless query.blank?
23
22
  @query = query.dup
@@ -31,15 +30,6 @@ class SubjectsController < ApplicationController
31
30
  order_by sort[:sort_by], sort[:order]
32
31
  end
33
32
 
34
- unless params[:mode] == 'add'
35
- work = @work
36
- subject_heading_type = @subject_heading_type
37
- search.build do
38
- with(:work_id).equal_to work.id if work
39
- with(:subject_heading_type_ids).equal_to subject_heading_type.id if subject_heading_type
40
- end
41
- end
42
-
43
33
  role = current_user.try(:role) || Role.default_role
44
34
  search.build do
45
35
  with(:required_role_id).less_than_or_equal_to role.id
@@ -70,11 +60,6 @@ class SubjectsController < ApplicationController
70
60
  return
71
61
  end
72
62
 
73
- if @work
74
- @subject = @work.subjects.find(params[:id])
75
- #else
76
- # @subject = Subject.find(params[:id])
77
- end
78
63
  search = Sunspot.new_search(Manifestation)
79
64
  subject = @subject
80
65
  search.build do
@@ -82,19 +67,16 @@ class SubjectsController < ApplicationController
82
67
  end
83
68
  page = params[:work_page] || 1
84
69
  search.query.paginate(page.to_i, Manifestation.default_per_page)
85
- @works = search.execute!.results
86
70
 
87
71
  respond_to do |format|
88
72
  format.html # show.html.erb
89
73
  format.json { render :json => @subject }
90
- format.js
91
74
  end
92
75
  end
93
76
 
94
77
  # GET /subjects/new
95
78
  def new
96
79
  @subject = Subject.new
97
- @subject.subject_heading_type_id = @subject_heading_type.id if @subject_heading_type
98
80
 
99
81
  respond_to do |format|
100
82
  format.html # new.html.erb
@@ -104,31 +86,18 @@ class SubjectsController < ApplicationController
104
86
 
105
87
  # GET /subjects/1/edit
106
88
  def edit
107
- if @work
108
- @subject = @work.subjects.find(params[:id])
109
- #else
110
- # @subject = Subject.find(params[:id])
111
- end
112
- @subject_types = SubjectType.all
113
89
  end
114
90
 
115
91
  # POST /subjects
116
92
  # POST /subjects.json
117
93
  def create
118
- if @work
119
- @subject = @work.subjects.new(params[:subject])
120
- else
121
- @subject = Subject.new(params[:subject])
122
- end
123
- subject_heading_type = SubjectHeadingType.find(@subject.subject_heading_type_id) if @subject.subject_heading_type_id.present?
94
+ @subject = Subject.new(params[:subject])
124
95
 
125
96
  respond_to do |format|
126
97
  if @subject.save
127
- @subject.subject_heading_types << subject_heading_type if subject_heading_type
128
98
  format.html { redirect_to @subject, :notice => t('controller.successfully_created', :model => t('activerecord.models.subject')) }
129
99
  format.json { render :json => @subject, :status => :created, :location => @subject }
130
100
  else
131
- @subject_heading_type = subject_heading_type
132
101
  prepare_options
133
102
  format.html { render :action => "new" }
134
103
  format.json { render :json => @subject.errors, :status => :unprocessable_entity }
@@ -139,12 +108,6 @@ class SubjectsController < ApplicationController
139
108
  # PUT /subjects/1
140
109
  # PUT /subjects/1.json
141
110
  def update
142
- if @work
143
- @subject = @work.subjects.find(params[:id])
144
- #else
145
- # @subject = Subject.find(params[:id])
146
- end
147
-
148
111
  respond_to do |format|
149
112
  if @subject.update_attributes(params[:subject])
150
113
  format.html { redirect_to @subject, :notice => t('controller.successfully_updated', :model => t('activerecord.models.subject')) }
@@ -160,11 +123,6 @@ class SubjectsController < ApplicationController
160
123
  # DELETE /subjects/1
161
124
  # DELETE /subjects/1.json
162
125
  def destroy
163
- if @work
164
- @subject = @work.subjects.find(params[:id])
165
- #else
166
- # @subject = Subject.find(params[:id])
167
- end
168
126
  @subject.destroy
169
127
 
170
128
  respond_to do |format|
@@ -175,6 +133,6 @@ class SubjectsController < ApplicationController
175
133
 
176
134
  private
177
135
  def prepare_options
178
- @subject_types = SubjectType.all
136
+ @subject_heading_types = SubjectHeadingType.select([:id, :display_name, :position])
179
137
  end
180
138
  end
@@ -7,10 +7,8 @@ module EnjuSubject
7
7
  when 'Administrator'
8
8
  can :manage, [
9
9
  Classification,
10
- Subject,
11
- SubjectHeadingTypeHasSubject
10
+ Subject
12
11
  ]
13
- can :manage, WorkHasSubject
14
12
  if LibraryGroup.site_config.network_access_allowed?(ip_address)
15
13
  can [:read, :create, :update], ClassificationType
16
14
  can [:destroy, :delete], ClassificationType do |classification_type|
@@ -30,32 +28,26 @@ module EnjuSubject
30
28
  ]
31
29
  end
32
30
  when 'Librarian'
33
- can :manage, [
34
- WorkHasSubject
35
- ]
36
31
  can :read, [
37
32
  Classification,
38
33
  ClassificationType,
39
34
  Subject,
40
35
  SubjectType,
41
- SubjectHeadingType,
42
- SubjectHeadingTypeHasSubject
36
+ SubjectHeadingType
43
37
  ]
44
38
  when 'User'
45
39
  can :read, [
46
40
  Classification,
47
41
  ClassificationType,
48
42
  Subject,
49
- SubjectHeadingType,
50
- WorkHasSubject
43
+ SubjectHeadingType
51
44
  ]
52
45
  else
53
46
  can :read, [
54
47
  Classification,
55
48
  ClassificationType,
56
49
  Subject,
57
- SubjectHeadingType,
58
- WorkHasSubject
50
+ SubjectHeadingType
59
51
  ]
60
52
  end
61
53
  end
@@ -1,25 +1,19 @@
1
1
  class Subject < ActiveRecord::Base
2
2
  attr_accessible :parent_id, :use_term_id, :term, :term_transcription,
3
- :subject_type_id, :note, :required_role_id
3
+ :subject_type_id, :note, :required_role_id, :subject_heading_type_id
4
4
 
5
5
  belongs_to :manifestation
6
6
  belongs_to :subject_type
7
- has_many :subject_heading_type_has_subjects
8
- has_many :subject_heading_types, :through => :subject_heading_type_has_subjects
7
+ belongs_to :subject_heading_type
9
8
  belongs_to :required_role, :class_name => 'Role', :foreign_key => 'required_role_id'
10
9
 
11
- validates_associated :subject_type
12
- validates_presence_of :term, :subject_type
13
-
14
- attr_accessor :subject_heading_type_id
10
+ validates_associated :subject_type, :subject_heading_type
11
+ validates_presence_of :term, :subject_type_id #, :subject_heading_type_id
15
12
 
16
13
  searchable do
17
14
  text :term
18
15
  time :created_at
19
16
  integer :required_role_id
20
- integer :work_id do
21
- manifestation_id
22
- end
23
17
  end
24
18
 
25
19
  normalize_attributes :term
@@ -1,9 +1,7 @@
1
1
  class SubjectHeadingType < ActiveRecord::Base
2
2
  attr_accessible :name, :display_name, :note
3
3
  include MasterModel
4
- #has_many_polymorphs :subjects, :from => [:concepts, :places], :through => :subject_heading_type_has_subjects
5
- has_many :subject_heading_type_has_subjects
6
- has_many :subjects, :through => :subject_heading_type_has_subjects
4
+ has_many :subjects
7
5
  end
8
6
 
9
7
  # == Schema Information
@@ -1,6 +1,5 @@
1
1
  class SubjectSweeper < ActionController::Caching::Sweeper
2
- observe Subject, Classification, SubjectHeadingTypeHasSubject,
3
- SubjectHeadingType
2
+ observe Subject, Classification
4
3
  include ExpireEditableFragment
5
4
 
6
5
  def after_save(record)
@@ -12,8 +11,6 @@ class SubjectSweeper < ActionController::Caching::Sweeper
12
11
  end
13
12
  when :Classification
14
13
  expire_editable_fragment(record)
15
- when :SubjectHeadingTypeHasSubject
16
- expire_editable_fragment(record.subject)
17
14
  end
18
15
  end
19
16
 
@@ -5,7 +5,7 @@
5
5
  <ul>
6
6
  <%- manifestation.subjects.each do |subject| -%>
7
7
  <li>
8
- <%= link_to subject.term, manifestations_path(:query => "subject_sm:#{subject.term}") -%>
8
+ <%= link_to "#{subject.subject_heading_type.display_name.localize}: #{subject.term}", manifestations_path(:query => "subject_sm:#{subject.term}") -%>
9
9
  </li>
10
10
  <%- end -%>
11
11
  </ul>
@@ -17,20 +17,10 @@
17
17
  <%= f.label :note -%><br />
18
18
  <%= f.text_area :note -%>
19
19
  </div>
20
- <%- if @classification -%>
21
- <div class="field">
22
- <%= f.label t('activerecord.models.classification') -%>
23
- <%= link_to @classification.category, @classification -%>
24
- <%= f.hidden_field :classification_id -%>
25
- </div>
26
- <%- end -%>
27
- <%- if @subject_heading_type -%>
28
- <div class="field">
29
- <%= f.label t('activerecord.models.subject_heading_type') -%>
30
- <%= link_to @subject_heading_type.display_name.localize, @subject_heading_type -%>
31
- <%= f.hidden_field :subject_heading_type_id -%>
32
- </div>
33
- <%- end -%>
20
+ <div class="field">
21
+ <%= f.label t('activerecord.models.subject_heading_type') -%>
22
+ <%= f.select(:subject_heading_type_id, @subject_heading_types.collect{|s| [s.display_name.localize, s.id]}) -%>
23
+ </div>
34
24
  <div class="actions">
35
25
  <%= f.submit %>
36
26
  </div>
@@ -1,5 +1,44 @@
1
- <%- if @work -%>
2
- <%= render 'subjects/index_work', :subjects => @subjects -%>
3
- <%- else -%>
4
- <%= render 'subjects/index', :subjects => @subjects -%>
5
- <%- end -%>
1
+ <div id="content_detail" class="ui-corner-all">
2
+ <h1 class="title"><%= t('page.listing', :model => t('activerecord.models.subject')) -%></h1>
3
+ <div id="content_list">
4
+
5
+ <div class="search_form">
6
+ <%= form_for :subjects, :url => subjects_path, :html => {:method => 'get'} do -%>
7
+ <p>
8
+ <%= t('page.search_term') -%>: <%= search_field_tag 'query', h(@query), {:id => 'search_form_top', :class => 'search_form', :placeholder => t('page.search_term')} -%>
9
+ <%= submit_tag t('page.search') -%>
10
+ </p>
11
+ <%- end -%>
12
+ </div>
13
+
14
+ <table class="table table-striped index">
15
+ <tr>
16
+ <th><%= t('activerecord.attributes.subject.term') -%></th>
17
+ <th></th>
18
+ </tr>
19
+ <%- @subjects.each do |subject| -%>
20
+ <tr class="line<%= cycle("0", "1") -%>">
21
+ <td><%= link_to subject.term, subject -%></td>
22
+ <td>
23
+ <%- if can? :update, subject -%>
24
+ <%= link_to t('page.edit'), edit_subject_path(subject) -%>
25
+ <%- end -%>
26
+ <%- if can? :delete, subject -%>
27
+ <%= link_to t('page.destroy'), subject, :data => {:confirm => t('page.are_you_sure')}, :method => :delete -%>
28
+ <%- end -%>
29
+ </td>
30
+ </tr>
31
+ <%- end -%>
32
+ </table>
33
+
34
+ <%= paginate(@subjects) -%>
35
+ </div>
36
+ </div>
37
+
38
+ <div id="submenu" class="ui-corner-all">
39
+ <ul>
40
+ <%- if can? :create, Subject -%>
41
+ <li><%= link_to t('page.new', :model => t('activerecord.models.subject')), new_subject_path -%></li>
42
+ <%- end -%>
43
+ </ul>
44
+ </div>
@@ -7,14 +7,10 @@
7
7
  [S]
8
8
  <%= @subject.term -%>
9
9
  </h2>
10
- <p>
11
- (<%= link_to_wikipedia(@subject.term) -%>)
12
- </p>
13
10
 
14
11
  <p>
15
- <%- @subject.subject_heading_types.uniq.each do |subject_heading_type| -%>
16
- <%= link_to subject_heading_type.display_name.localize, subject_heading_type -%>
17
- <%- end -%>
12
+ <strong><%= t('activerecord.models.subject_heading_type') -%>:</strong>
13
+ <%= link_to @subject.subject_heading_type.display_name.localize, @subject.subject_heading_type -%>
18
14
  </p>
19
15
 
20
16
  <p>
@@ -22,35 +18,10 @@
22
18
  <%= @subject.term_transcription -%>
23
19
  </p>
24
20
 
25
- <div id="tabs">
26
- <ul>
27
- <li title="active" class="selected"><a href="#work"><em><%= t('activerecord.models.work') -%></em></a></li>
28
- <li><a href="#classification"><em><%= t('activerecord.models.classification') -%></em></a></li>
29
- </ul>
30
- <%= render 'subjects/show_work_list' -%>
31
- <%- cache(:controller => :subjects, :action => :show, :id => @subject.id, :page => 'detail', :role => current_user_role_name, :locale => @locale, :subject_id => nil) do -%>
32
- <div id="classification">
33
- <table class="table table-striped index">
34
- <tr>
35
- <th><%= t('activerecord.attributes.classification.category') -%></th>
36
- <th><%= t('activerecord.models.classification_type') -%></th>
37
- </tr>
38
- <%- @subject.classifications.each do |classification| -%>
39
- <tr class="line<%= cycle("0", "1") -%>">
40
- <td><%= link_to classification.category, classification -%></td>
41
- <td><%= link_to classification.classification_type.name, classification.classification_type -%></td>
42
- </tr>
43
- <%- end -%>
44
- </table>
45
-
46
- <p>
47
- <strong><%= t('activerecord.attributes.subject.note') -%>:</strong>
48
- <%= @subject.note -%>
49
- </p>
50
- </div>
51
- <%- end -%>
52
- </div>
53
- </div>
21
+ <p>
22
+ <strong><%= t('activerecord.attributes.subject.note') -%>:</strong>
23
+ <%= @subject.note -%>
24
+ </p>
54
25
  </div>
55
26
 
56
27
  <div id="submenu" class="ui-corner-all">
@@ -58,6 +29,5 @@
58
29
  <li><%= back_to_index(flash[:page_info]) -%></li>
59
30
  <li><%= link_to t('page.edit'), edit_subject_path(@subject) -%></li>
60
31
  <li><%= link_to t('page.destroy'), subject_path(@subject), :data => {:confirm => t('page.are_you_sure')}, :method => :delete -%></li>
61
- <li><%= link_to t('page.listing', :model => t('activerecord.models.subject_heading_type')), subject_subject_heading_types_path(@subject) -%></li>
62
32
  </ul>
63
33
  </div>
@@ -2,14 +2,10 @@ en:
2
2
  activerecord:
3
3
  models:
4
4
  subject: Subject
5
- work_has_subject: Resource has subject
6
5
  subject_type: Subject type
7
6
  subject_heading_type: Subject heading type
8
- subject_heading_type_has_subject: Subject heading type to subject relationship
9
7
  classification: Classification
10
8
  classification_type: Classification type
11
- subject_has_classification: Subject has classification
12
- work: Work
13
9
 
14
10
  attributes:
15
11
  subject:
@@ -18,10 +14,6 @@ en:
18
14
  scope_note: Scope note
19
15
  note: Note
20
16
  lock_version: Lock version
21
- work_has_subject:
22
- work: Work
23
- subject: Subject
24
- subjectable_type: Subjectable type
25
17
  subject_type:
26
18
  name: Name
27
19
  display_name: Display name
@@ -32,7 +24,6 @@ en:
32
24
  display_name: Display name
33
25
  note: Note
34
26
  position: Position
35
- subject_heading_type_has_subject:
36
27
  classification:
37
28
  category: Category
38
29
  name: Name
@@ -42,10 +33,3 @@ en:
42
33
  display_name: Display name
43
34
  note: Note
44
35
  position: Position
45
- subject_has_classification:
46
-
47
- work_has_subject:
48
- add_work: "Add a work"
49
- add_subject: "Add a subject"
50
- subjectable: "Subjectable"
51
-
@@ -2,14 +2,10 @@ ja:
2
2
  activerecord:
3
3
  models:
4
4
  subject: 件名
5
- work_has_subject: 資料と件名の関係
6
5
  subject_type: 件名の種類
7
6
  subject_heading_type: 件名標目の種類
8
- subject_heading_type_has_subject: 件名標目と件名の関係
9
7
  classification: 分類
10
- classification_type: 分類型
11
- subject_has_classification: 件名と分類の関係
12
- work: 著作
8
+ classification_type: 分類の種類
13
9
 
14
10
  attributes:
15
11
  subject:
@@ -18,10 +14,6 @@ ja:
18
14
  scope_note: スコープ注記
19
15
  note: 注記
20
16
  lock_version: ロックバージョン
21
- work_has_subject:
22
- work: 書いた資料
23
- subject: 件名
24
- subjectable_type: 件名付与対象の種類
25
17
  subject_type:
26
18
  name: 名前
27
19
  display_name: 表示名
@@ -32,7 +24,6 @@ ja:
32
24
  display_name: 表示名
33
25
  note: 注記
34
26
  position: 位置
35
- subject_heading_type_has_subject:
36
27
  classification:
37
28
  category: カテゴリー
38
29
  name: 名前
@@ -42,10 +33,3 @@ ja:
42
33
  display_name: 表示名
43
34
  note: 注記
44
35
  position: 位置
45
- subject_has_classification:
46
-
47
- work_has_subject:
48
- add_work: "書いた資料を追加する"
49
- add_subject: "件名を追加する"
50
- subjectable: "件名付与対象"
51
-
data/config/routes.rb CHANGED
@@ -1,34 +1,7 @@
1
1
  Rails.application.routes.draw do
2
- resources :subject_has_classifications
3
- resources :subject_heading_types do
4
- resources :subjects
5
- end
6
- resources :subject_heading_type_has_subjects
7
- resources :classifications do
8
- resources :subject_has_classifications
9
- end
10
- resources :classification_types do
11
- resources :classifications
12
- end
2
+ resources :subject_heading_types
3
+ resources :classification_types
4
+ resources :classifications
13
5
  resources :subject_types
14
-
15
- resources :work_has_subjects
16
-
17
- resources :subjects do
18
- resources :works, :controller => 'manifestations'
19
- resources :subject_heading_types
20
- resources :subject_has_classifications
21
- resources :work_has_subjects
22
- resources :classifications
23
- end
24
-
25
- resources :works, :controller => 'manifestations', :except => [:index, :new, :create] do
26
- resources :subjects
27
- resources :work_has_subjects
28
- end
29
-
30
- resources :manifestations do
31
- resources :work_has_subjects
32
- resources :subjects
33
- end
6
+ resources :subjects
34
7
  end
@@ -0,0 +1,5 @@
1
+ class AddSubjectHeadingTypeIdToSubject < ActiveRecord::Migration
2
+ def change
3
+ add_column :subjects, :subject_heading_type_id, :integer
4
+ end
5
+ end
@@ -1,3 +1,3 @@
1
1
  module EnjuSubject
2
- VERSION = "0.1.0.pre13"
2
+ VERSION = "0.1.0.pre14"
3
3
  end
@@ -0,0 +1,31 @@
1
+ ---
2
+ subject_heading_type_00001:
3
+ name: NDLSH
4
+ display_name: NDLSH
5
+ updated_at: 2008-03-03 00:44:49.850140 +09:00
6
+ id: 1
7
+ note: ""
8
+ created_at: 2008-03-03 00:44:34.260739 +09:00
9
+ position: 1
10
+ subject_heading_type_00002:
11
+ name: BSH
12
+ display_name: BSH
13
+ updated_at: 2008-03-03 00:44:58.685360 +09:00
14
+ id: 2
15
+ note: ""
16
+ created_at: 2008-03-03 00:44:58.685360 +09:00
17
+ position: 2
18
+
19
+ # == Schema Information
20
+ #
21
+ # Table name: subject_heading_types
22
+ #
23
+ # id :integer not null, primary key
24
+ # name :string(255) not null
25
+ # display_name :text
26
+ # note :text
27
+ # position :integer
28
+ # created_at :datetime not null
29
+ # updated_at :datetime not null
30
+ #
31
+
@@ -45,12 +45,6 @@ describe SubjectsController do
45
45
  response.should be_success
46
46
  assigns(:subjects).should_not be_nil
47
47
  end
48
-
49
- it "assigns all subjects as @subjects with work_id" do
50
- get :index, :work_id => 1
51
- response.should be_success
52
- assigns(:subjects).should_not be_nil
53
- end
54
48
  end
55
49
  end
56
50
 
@@ -141,17 +135,6 @@ describe SubjectsController do
141
135
  get :edit, :id => subject.id
142
136
  assigns(:subject).should eq(subject)
143
137
  end
144
-
145
- it "should get edit with work" do
146
- get :edit, :id => subjects(:subject_00001).id, :work_id => 1
147
- assigns(:subject).should eq subjects(:subject_00001)
148
- response.should be_success
149
- end
150
-
151
- it "should not get edit with missing work" do
152
- get :edit, :id => subjects(:subject_00001).id, :work_id => 'missing'
153
- response.should be_missing
154
- end
155
138
  end
156
139
 
157
140
  describe "When logged in as Librarian" do
@@ -7,10 +7,8 @@
7
7
  when 'Administrator'
8
8
  can :manage, [
9
9
  Classification,
10
- Subject,
11
- SubjectHeadingTypeHasSubject
10
+ Subject
12
11
  ]
13
- can :manage, WorkHasSubject
14
12
  if LibraryGroup.site_config.network_access_allowed?(ip_address)
15
13
  can [:read, :create, :update], ClassificationType
16
14
  can [:destroy, :delete], ClassificationType do |classification_type|
@@ -31,16 +29,12 @@
31
29
  end
32
30
  can :read, Manifestation
33
31
  when 'Librarian'
34
- can :manage, [
35
- WorkHasSubject
36
- ]
37
32
  can :read, [
38
33
  Classification,
39
34
  ClassificationType,
40
35
  Subject,
41
36
  SubjectType,
42
- SubjectHeadingType,
43
- SubjectHeadingTypeHasSubject
37
+ SubjectHeadingType
44
38
  ]
45
39
  can :read, Manifestation
46
40
  when 'User'
@@ -48,8 +42,7 @@
48
42
  Classification,
49
43
  ClassificationType,
50
44
  Subject,
51
- SubjectHeadingType,
52
- WorkHasSubject
45
+ SubjectHeadingType
53
46
  ]
54
47
  can :read, Manifestation
55
48
  else
@@ -57,8 +50,7 @@
57
50
  Classification,
58
51
  ClassificationType,
59
52
  Subject,
60
- SubjectHeadingType,
61
- WorkHasSubject
53
+ SubjectHeadingType
62
54
  ]
63
55
  can :read, Manifestation
64
56
  end
Binary file