qm-acts-as-generic-controller 0.0.14 → 0.0.15

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.
data/Rakefile CHANGED
@@ -9,9 +9,9 @@ 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.0.14"
12
+ gemspec.version = "0.0.15"
13
13
  gemspec.files = Rake::FileList.new [ "MIT-LICENSE", "Rakefile", "lib/*", "app/views/generic_controller/*" ]
14
- gemspec.add_dependency "qui-common-helpers", ">= 0.0.6"
14
+ gemspec.add_dependency "qui-common-helpers", ">= 0.0.7"
15
15
  gemspec.add_dependency "qui-tabs", ">= 0.0.3"
16
16
  gemspec.add_dependency "qui-toolbar", ">= 0.0.4"
17
17
  gemspec.add_dependency "rfc822"
@@ -58,7 +58,7 @@
58
58
  <%- case record.column_for_attribute(attribute_name).type -%>
59
59
  <%- when :text -%>
60
60
  <%= f.text_area attribute_name, :rows => 5, :cols => 60 %>
61
- <%- when :date -%>
61
+ <%- when :date, :datetime -%>
62
62
  <%= f.calendar_date_select attribute_name %>
63
63
  <%- when :boolean -%>
64
64
  <span class="boolean">
@@ -82,7 +82,7 @@ module QM
82
82
  respond_to do |format|
83
83
  if instance_variable_get(singular_variable).save
84
84
  flash[:notice] = :savedAsFlash
85
- if defined?(:section)
85
+ if defined?(section)
86
86
  format.html { redirect_to [ section, instance_variable_get(singular_variable) ] }
87
87
  format.xml { render :xml => instance_variable_get(singular_variable), :status => :created, :location => [ section, instance_variable_get(singular_variable) ] }
88
88
  else
@@ -103,7 +103,7 @@ module QM
103
103
  respond_to do |format|
104
104
  if instance_variable_get(singular_variable).save
105
105
  flash[:notice] = :savedAsFlash
106
- if defined?(:section)
106
+ if defined?(section)
107
107
  format.html { redirect_to [ section, instance_variable_get(singular_variable) ] }
108
108
  format.xml { head :ok }
109
109
  else
@@ -13,7 +13,7 @@ module QM
13
13
 
14
14
  def has_many(association_id, options = {}, &extension)
15
15
  @generic_field_associations ||= {}
16
- @generic_field_associations[association_id.to_sym] = { :kind => :has_many, :class_name => ( options[:class_name] ? options[:class_name].constantize : association_id.to_s.classify.constantize ), :readonly => options[:readonly] || false, :through => options[:through].present?, :generic_create => options[:generic_create] || false }
16
+ @generic_field_associations[association_id.to_sym] = { :kind => :has_many, :class_name => ( options.has_key?(:class_name) ? options[:class_name].constantize : association_id.to_s.classify.constantize ), :readonly => options[:readonly] || false, :through => options[:through].present?, :generic_create => options[:generic_create] || false }
17
17
 
18
18
  options.delete :generic_create
19
19
 
@@ -22,7 +22,7 @@ module QM
22
22
 
23
23
  def has_and_belongs_to_many(association_id, options = {}, &extension)
24
24
  @generic_field_associations ||= {}
25
- @generic_field_associations[association_id.to_sym] = { :kind => :has_and_belongs_to_many, :class_name => ( options[:class_name] ? options[:class_name].constantize : association_id.to_s.classify.constantize ), :readonly => options[:readonly] || false, :through => options[:through].present?, :generic_create => options[:generic_create] || false }
25
+ @generic_field_associations[association_id.to_sym] = { :kind => :has_and_belongs_to_many, :class_name => ( options.has_key?(:class_name) ? options[:class_name].constantize : association_id.to_s.classify.constantize ), :readonly => options[:readonly] || false, :through => options[:through].present?, :generic_create => options[:generic_create] || false }
26
26
 
27
27
  options.delete :generic_create
28
28
 
@@ -31,8 +31,11 @@ module QM
31
31
 
32
32
  def belongs_to(association_id, options = {})
33
33
  @generic_field_associations ||= {}
34
- klass = ( options[:class_name].constantize ? options[:class_name].constantize : association_id.to_s.classify.constantize )
35
- @generic_field_associations[association_id.to_sym] = { :kind => :belongs_to, :class_name => klass, :foreign_key => options[:foreign_key] || "#{klass.to_s.tableize}_id" }
34
+ unless options.has_key?(:polymorphic)
35
+ klass = ( options.has_key?(:class_name) ? options[:class_name].to_s.constantize : association_id.to_s.classify.constantize )
36
+
37
+ @generic_field_associations[association_id.to_sym] = { :kind => :belongs_to, :class_name => klass, :foreign_key => options[:foreign_key] || "#{klass.to_s.tableize}_id" }
38
+ end
36
39
 
37
40
  super association_id, options
38
41
  end
@@ -24,9 +24,14 @@ module QM
24
24
  elsif options[:kind] == :radio
25
25
  field_name = "#{table_name}[#{klass.generic_field_associations[attribute_name][:foreign_key]}]"
26
26
  allow_nil ||= options[:record].column_for_attribute(klass.generic_field_associations[attribute_name][:foreign_key]).null
27
- end
28
-
29
- collection = klass.generic_field_associations[attribute_name][:class_name].all
27
+ end
28
+
29
+ if klass.respond_to? :limit_for_user and defined?(current_user)
30
+ collection = klass.generic_field_associations[attribute_name][:class_name].limit_for_user(current_user)
31
+ else
32
+ collection = klass.generic_field_associations[attribute_name][:class_name].all
33
+ end
34
+
30
35
  render :partial => "generic_controller/multiple_select", :locals => { :mode => :activerecord,
31
36
  :attribute_name => attribute_name,
32
37
  :field_name => field_name,
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: 3
4
+ hash: 1
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 14
10
- version: 0.0.14
9
+ - 15
10
+ version: 0.0.15
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-10-06 00:00:00 +02:00
18
+ date: 2010-10-14 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -26,12 +26,12 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- hash: 19
29
+ hash: 17
30
30
  segments:
31
31
  - 0
32
32
  - 0
33
- - 6
34
- version: 0.0.6
33
+ - 7
34
+ version: 0.0.7
35
35
  type: :runtime
36
36
  version_requirements: *id001
37
37
  - !ruby/object:Gem::Dependency