qm-acts-as-generic-controller 0.1.10 → 0.1.11

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -9,7 +9,7 @@ begin
9
9
  gemspec.email = "marcin@saepia.net"
10
10
  gemspec.homepage = "http://q.saepia.net"
11
11
  gemspec.authors = ["Marcin Lewandowski"]
12
- gemspec.version = "0.1.10"
12
+ gemspec.version = "0.1.11"
13
13
  gemspec.files = Rake::FileList.new [ "MIT-LICENSE", "Rakefile", "lib/*", "app/views/generic_controller/*" ]
14
14
  gemspec.add_dependency "qui-common-helpers", ">= 0.0.8"
15
15
  gemspec.add_dependency "qui-index-table", ">= 0.0.8"
@@ -1,7 +1,9 @@
1
1
  <%- records ||= instance_variable_get("@#{@controller.class.to_s.demodulize.gsub("Controller", "").tableize}") -%>
2
2
  <%- class_name ||= @controller.class.to_s.demodulize.gsub("Controller", "").singularize.constantize -%>
3
3
 
4
- <%- headers = class_name.generic_fields(:action => :index).collect{ |x| x[:options][:index_header] || ".#{x[:name]}".to_sym if not current_user.respond_to? "has_privileges?" or (class_name.generic_field_associations.has_key?(x[:name]) and current_user.has_privileges?(:class_name => class_name.generic_field_associations[x[:name]][:class_name])) or (current_user.has_privileges?(:class_name => class_name, :attribute => x[:name], :mode => :read)) }.compact -%>
4
+ <%- privileged_fields = class_name.generic_fields(:action => :index).collect{|field| field if not current_user.respond_to? "has_privileges?" or (class_name.generic_field_associations.has_key?(field[:name]) and current_user.has_privileges?(:class_name => class_name.generic_field_associations[field[:name]][:class_name])) or (current_user.has_privileges?(:class_name => class_name, :attribute => field[:name], :mode => :read)) } -%>
5
+
6
+ <%- headers = privileged_fields.collect{ |x| x[:options][:index_header] || ".#{x[:name]}".to_sym } -%>
5
7
 
6
8
  <%- controller_name = "#{defined?(section) ? "#{section.to_s.camelize}::" : ""}#{class_name.to_s.pluralize}".tableize %>
7
9
 
@@ -23,17 +25,16 @@
23
25
  <%- headers << :oneicon if has_edit %>
24
26
  <%- headers << :oneicon if has_delete %>
25
27
 
28
+
26
29
  <%- index_table records, :headers => headers, :class_name => class_name do |r| %>
27
- <%- class_name.generic_fields(:action => :index).each do |field| -%>
28
- <%- if not current_user.respond_to? "has_privileges?" or (class_name.generic_field_associations.has_key?(field[:name]) and current_user.has_privileges?(:class_name => class_name.generic_field_associations[field[:name]][:class_name])) or (current_user.has_privileges?(:class_name => class_name, :attribute => field[:name], :mode => :read)) -%>
29
- <td>
30
- <%- if field[:options].has_key? :renderer -%>
31
- <%= send(field[:options][:renderer], { :record => r, :field => field, :action => :index }) %>
32
- <%- else -%>
33
- <%= generic_renderer(:index, { :record => r, :field => field }) %>
34
- <%- end -%>
35
- </td>
36
- <%- end -%>
30
+ <%- privileged_fields.each do |field| -%>
31
+ <td>
32
+ <%- if field[:options].has_key? :renderer -%>
33
+ <%= send(field[:options][:renderer], { :record => r, :field => field, :action => :index }) %>
34
+ <%- else -%>
35
+ <%= generic_renderer(:index, { :record => r, :field => field }) %>
36
+ <%- end -%>
37
+ </td>
37
38
  <%- end -%>
38
39
 
39
40
  <%- if defined?(QM::ActsAsWorkflow) and class_name.is_workflow? -%>
@@ -15,17 +15,19 @@
15
15
 
16
16
  <%- description = capture do -%>
17
17
  <dl>
18
- <%- klass.generic_fields(:action => :show).each do |field| -%>
19
- <%- if not current_user.respond_to? "has_privileges?" or (current_user.respond_to? "has_privileges?" and current_user.has_privileges?(:class_name => klass, :attribute => field[:name])) -%>
18
+ <%- klass.generic_fields(:action => :show).collect{|field| field if not current_user.respond_to? "has_privileges?" or (current_user.respond_to? "has_privileges?" and current_user.has_privileges?(:class_name => klass, :attribute => field[:name])) }.compact.each do |field| -%>
19
+ <%- data = capture do -%>
20
+ <%- if field[:options].has_key? :renderer -%>
21
+ <%= send(field[:options][:renderer], { :record => record, :field => field, :action => :show }) %>
22
+ <%- else -%>
23
+ <%= generic_renderer(:show, { :record => record, :field => field }) %>
24
+ <%- end -%>
25
+ <%- end -%>
26
+
27
+ <%- unless data.strip.empty? -%>
20
28
  <dt><%= h klass.human_attribute_name field[:name] %></dt>
21
29
 
22
- <dd>
23
- <%- if field[:options].has_key? :renderer -%>
24
- <%= send(field[:options][:renderer], { :record => record, :field => field, :action => :show }) %>
25
- <%- else -%>
26
- <%= generic_renderer(:show, { :record => record, :field => field }) %>
27
- <%- end -%>
28
- </dd>
30
+ <dd><%= data %></dd>
29
31
  <%- end -%>
30
32
  <%- end -%>
31
33
  </dl>
@@ -116,6 +116,9 @@ module QM
116
116
  remove_unprivileged_keys_from_params
117
117
 
118
118
  instance_variable_set(singular_variable, model.new(params[singular_variable(true)])) unless instance_variable_defined?(singular_variable)
119
+
120
+ save_creator
121
+ save_updator
119
122
 
120
123
  respond_to do |format|
121
124
  if instance_variable_get(singular_variable).save
@@ -186,6 +189,7 @@ module QM
186
189
  remove_unprivileged_keys_from_params
187
190
 
188
191
  instance_variable_get(singular_variable).update_attributes params[singular_variable(true)]
192
+ save_updator
189
193
 
190
194
  respond_to do |format|
191
195
  if instance_variable_get(singular_variable).save
@@ -230,6 +234,14 @@ module QM
230
234
  end
231
235
 
232
236
  protected
237
+ def save_creator
238
+ instance_variable_get(singular_variable).send("creator_#{current_user.class.to_s.tableize.singularize}_id=", current_user.id) if defined?(current_user) and instance_variable_get(singular_variable).respond_to? "creator_#{current_user.class.to_s.tableize.singularize}_id="
239
+ end
240
+
241
+ def save_updator
242
+ instance_variable_get(singular_variable).send("updator_#{current_user.class.to_s.tableize.singularize}_id=", current_user.id) if defined?(current_user) and instance_variable_get(singular_variable).respond_to? "updator_#{current_user.class.to_s.tableize.singularize}_id="
243
+ end
244
+
233
245
  def model
234
246
  self.class.to_s.demodulize.gsub("Controller", "").singularize.constantize
235
247
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qm-acts-as-generic-controller
3
3
  version: !ruby/object:Gem::Version
4
- hash: 15
4
+ hash: 13
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 10
10
- version: 0.1.10
9
+ - 11
10
+ version: 0.1.11
11
11
  platform: ruby
12
12
  authors:
13
13
  - Marcin Lewandowski
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-10 00:00:00 +01:00
18
+ date: 2010-11-18 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency