adminpanel 2.2.5 → 2.3.0

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 (202) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -5
  3. data/CONTRIBUTING.md +22 -0
  4. data/Gemfile +1 -6
  5. data/README.md +8 -13
  6. data/Rakefile +4 -6
  7. data/adminpanel.gemspec +29 -24
  8. data/app/assets/javascripts/{application-admin.js → adminpanel/application.js} +2 -1
  9. data/app/assets/javascripts/adminpanel/images_form_add_remove_fields.js.coffee +11 -0
  10. data/app/assets/javascripts/adminpanel/sections.js.coffee +9 -0
  11. data/app/assets/javascripts/adminpanel/spinner.js.coffee +3 -3
  12. data/app/assets/javascripts/adminpanel/tables.js +4 -3
  13. data/app/assets/javascripts/adminpanel/wysiwyg.js.coffee +4 -1
  14. data/app/assets/stylesheets/{application-admin.css → adminpanel/application.css} +2 -2
  15. data/app/assets/stylesheets/adminpanel/fa-hidden.css.scss +7 -0
  16. data/app/assets/stylesheets/adminpanel/theme.css.scss.erb +3 -27
  17. data/app/assets/stylesheets/adminpanel/turbolinks_progress_load.css.scss +5 -0
  18. data/app/controllers/adminpanel/analytics_controller.rb +3 -3
  19. data/app/controllers/adminpanel/application_controller.rb +5 -11
  20. data/app/controllers/adminpanel/auths_controller.rb +6 -0
  21. data/app/controllers/adminpanel/categories_controller.rb +26 -60
  22. data/app/controllers/adminpanel/permissions_controller.rb +1 -2
  23. data/app/controllers/adminpanel/roles_controller.rb +10 -0
  24. data/app/controllers/adminpanel/sections_controller.rb +14 -14
  25. data/app/controllers/adminpanel/sessions_controller.rb +4 -3
  26. data/app/controllers/adminpanel/users_controller.rb +2 -2
  27. data/app/controllers/concerns/adminpanel/analytics/twitter_analytics.rb +1 -1
  28. data/app/controllers/concerns/adminpanel/facebook_actions.rb +13 -12
  29. data/app/controllers/concerns/adminpanel/galleryzable_actions.rb +13 -9
  30. data/app/controllers/concerns/adminpanel/rest_actions.rb +65 -59
  31. data/app/controllers/concerns/adminpanel/sitemap_actions.rb +1 -1
  32. data/app/controllers/concerns/adminpanel/sortable_actions.rb +29 -0
  33. data/app/controllers/concerns/adminpanel/twitter_actions.rb +5 -5
  34. data/app/helpers/adminpanel/adminpanel_form_builder.rb +104 -64
  35. data/app/helpers/adminpanel/application_helper.rb +20 -9
  36. data/app/helpers/adminpanel/breadcrumbs_helper.rb +2 -2
  37. data/app/helpers/adminpanel/router_helper.rb +8 -4
  38. data/app/helpers/adminpanel/shared_pages_helper.rb +59 -11
  39. data/app/models/ability.rb +2 -2
  40. data/app/models/adminpanel/analytic.rb +3 -3
  41. data/app/models/adminpanel/permission.rb +19 -19
  42. data/app/models/adminpanel/{rol.rb → role.rb} +9 -2
  43. data/app/models/adminpanel/section.rb +10 -6
  44. data/app/models/adminpanel/{image.rb → sectionfile.rb} +1 -1
  45. data/app/models/adminpanel/user.rb +27 -31
  46. data/app/models/concerns/adminpanel/base.rb +33 -19
  47. data/app/models/concerns/adminpanel/galleryzation.rb +18 -5
  48. data/app/models/concerns/adminpanel/sitemap.rb +1 -1
  49. data/app/models/concerns/adminpanel/sortable.rb +69 -0
  50. data/app/uploaders/adminpanel/.keep +1 -0
  51. data/app/views/adminpanel/analytics/_fb_statistic_widget.html.erb +27 -27
  52. data/app/views/adminpanel/categories/_categories_table.html.erb +4 -4
  53. data/app/views/adminpanel/categories/_category_form.html.erb +26 -6
  54. data/app/views/adminpanel/categories/create.js.erb +4 -5
  55. data/app/views/adminpanel/categories/index.html.erb +23 -16
  56. data/app/views/adminpanel/categories/new.js.erb +1 -1
  57. data/app/views/adminpanel/form/_adminpanel_file_field.html.erb +24 -0
  58. data/app/views/adminpanel/form/_belongs_to.html.erb +24 -0
  59. data/app/views/adminpanel/form/_file_field.html.erb +4 -0
  60. data/app/views/adminpanel/form/_has_many.html.erb +19 -0
  61. data/app/views/adminpanel/form/_non_image_file_field.html.erb +4 -0
  62. data/app/views/{shared/_delete_icon_button.html.erb → adminpanel/icons/_delete.html.erb} +3 -1
  63. data/app/views/{shared/_edit_icon_button.html.erb → adminpanel/icons/_edit.html.erb} +3 -3
  64. data/app/views/{shared/_fb_icon_button.html.erb → adminpanel/icons/_facebook.html.erb} +6 -5
  65. data/app/views/adminpanel/icons/_move_to_better.html.erb +16 -0
  66. data/app/views/adminpanel/icons/_move_to_worst.html.erb +17 -0
  67. data/app/views/{shared/_show_icon_button.html.erb → adminpanel/icons/_show.html.erb} +1 -1
  68. data/app/views/{shared/_twitter_icon_button.html.erb → adminpanel/icons/_twitter.html.erb} +1 -1
  69. data/app/views/adminpanel/sections/_sections_table.html.erb +1 -1
  70. data/app/views/adminpanel/sections/edit.html.erb +25 -17
  71. data/app/views/adminpanel/sections/index.html.erb +1 -1
  72. data/app/views/adminpanel/sections/show.html.erb +2 -2
  73. data/app/views/{shared → adminpanel/shared}/_breadcrumb.html.erb +0 -0
  74. data/app/views/adminpanel/shared/_create_remote_resource_button.html.erb +21 -0
  75. data/app/views/{shared → adminpanel/shared}/_error_messages.html.erb +0 -0
  76. data/app/views/{shared → adminpanel/shared}/_fb_publish_modal.html.erb +2 -2
  77. data/app/views/adminpanel/shared/_form_fields.html.erb +21 -0
  78. data/app/views/adminpanel/shared/_gallery_entries.html.erb +11 -0
  79. data/app/views/adminpanel/shared/_image_fields.html.erb +3 -0
  80. data/app/views/adminpanel/shared/_index_records.html.erb +32 -0
  81. data/app/views/adminpanel/shared/_modal.html.erb +20 -0
  82. data/app/views/adminpanel/shared/_new_resource_button.html.erb +17 -0
  83. data/app/views/adminpanel/shared/_remote_form_fields.html.erb +28 -0
  84. data/app/views/{shared → adminpanel/shared}/_twitter_publish_modal.html.erb +0 -0
  85. data/app/views/{shared → adminpanel/shared}/create_belongs_to.js.erb +0 -0
  86. data/app/views/{shared → adminpanel/shared}/create_has_many.js.erb +0 -0
  87. data/app/views/adminpanel/shared/edit.html.erb +42 -0
  88. data/app/views/{shared → adminpanel/shared}/fb_choose_page.html.erb +2 -2
  89. data/app/views/adminpanel/shared/gallery_entries.js.erb +1 -0
  90. data/app/views/adminpanel/shared/index.html.erb +43 -0
  91. data/app/views/adminpanel/shared/index_records.js.erb +1 -0
  92. data/app/views/adminpanel/shared/new.html.erb +42 -0
  93. data/app/views/adminpanel/shared/new.js.erb +2 -0
  94. data/app/views/adminpanel/shared/show.html.erb +77 -0
  95. data/app/views/layouts/{_shim.html.erb → adminpanel/_shim.html.erb} +0 -0
  96. data/app/views/layouts/adminpanel/_side_menu.html.erb +32 -0
  97. data/app/views/layouts/{_top_bar.html.erb → adminpanel/_top_bar.html.erb} +4 -2
  98. data/app/views/layouts/{admin-login.html.erb → adminpanel/application-login.html.erb} +4 -4
  99. data/app/views/layouts/{admin.html.erb → adminpanel/application.html.erb} +8 -6
  100. data/config/initializers/adminpanel/clear_cache.rb +4 -0
  101. data/config/initializers/{pluralization_es.rb → adminpanel/pluralization_es.rb} +0 -0
  102. data/config/initializers/{twitter-oauth.rb → adminpanel/twitter_oauth.rb} +0 -0
  103. data/config/locales/en.yml +93 -59
  104. data/config/locales/es.yml +34 -14
  105. data/config/routes.rb +27 -24
  106. data/lib/adminpanel.rb +3 -1
  107. data/lib/adminpanel/engine.rb +6 -3
  108. data/lib/adminpanel/version.rb +1 -1
  109. data/lib/generators/adminpanel/contact/contact_generator.rb +12 -0
  110. data/{app/models/contact.rb → lib/generators/adminpanel/contact/templates/contact_template.rb} +0 -0
  111. data/lib/generators/adminpanel/dump/dump_generator.rb +37 -0
  112. data/lib/generators/adminpanel/gallery/templates/gallery_template.rb +7 -0
  113. data/lib/generators/adminpanel/gallery/templates/uploader.rb +7 -9
  114. data/lib/generators/adminpanel/initialize/templates/adminpanel_setup.rb +2 -2
  115. data/lib/generators/adminpanel/initialize/templates/create_adminpanel_tables.rb +23 -34
  116. data/lib/generators/adminpanel/initialize/templates/section_uploader.rb +6 -8
  117. data/lib/generators/adminpanel/resource/resource_generator.rb +3 -2
  118. data/lib/generators/adminpanel/resource/resource_generator_helper.rb +6 -8
  119. data/lib/generators/adminpanel/resource/templates/adminpanel_controller_template.rb +1 -1
  120. data/lib/generators/adminpanel/resource/templates/adminpanel_resource_template.rb +2 -2
  121. data/lib/tasks/adminpanel/adminpanel.rake +11 -24
  122. data/lib/tasks/adminpanel/sections.rake +65 -0
  123. data/test/dummy/app/controllers/adminpanel/file_resources_controller.rb +12 -0
  124. data/test/dummy/app/controllers/adminpanel/galleries_controller.rb +4 -0
  125. data/test/dummy/app/controllers/adminpanel/products_controller.rb +5 -5
  126. data/test/dummy/app/models/adminpanel/category.rb +2 -0
  127. data/test/dummy/app/models/adminpanel/file_resource.rb +34 -0
  128. data/test/dummy/app/models/adminpanel/file_resourcefile.rb +13 -0
  129. data/test/dummy/app/models/adminpanel/gallery.rb +32 -0
  130. data/test/dummy/app/models/adminpanel/galleryfile.rb +19 -0
  131. data/test/dummy/app/models/adminpanel/mug.rb +14 -14
  132. data/test/dummy/app/models/adminpanel/photo.rb +1 -0
  133. data/test/dummy/app/models/adminpanel/product.rb +7 -7
  134. data/test/dummy/app/models/adminpanel/test_object.rb +53 -0
  135. data/test/dummy/app/uploader/adminpanel/file_resourcefile_uploader.rb +82 -0
  136. data/test/dummy/app/uploader/adminpanel/photo_uploader.rb +5 -9
  137. data/test/dummy/app/uploader/adminpanel/section_uploader.rb +5 -9
  138. data/test/dummy/config/application.rb +3 -30
  139. data/test/dummy/config/carrierwave.rb +1 -1
  140. data/test/dummy/config/environments/test.rb +10 -4
  141. data/test/dummy/config/initializers/adminpanel_setup.rb +5 -2
  142. data/test/dummy/db/schema.rb +65 -34
  143. data/test/dummy/test/fixtures/adminpanel/categories.yml +7 -0
  144. data/test/dummy/test/fixtures/adminpanel/galleryfiles.yml +18 -0
  145. data/test/dummy/test/fixtures/adminpanel/permissions.yml +7 -7
  146. data/test/dummy/test/fixtures/adminpanel/products.yml +7 -0
  147. data/test/dummy/test/fixtures/adminpanel/{rols.yml → roles.yml} +0 -0
  148. data/test/dummy/test/fixtures/adminpanel/test_objects.yml +7 -0
  149. data/test/dummy/test/fixtures/adminpanel/users.yml +7 -7
  150. data/test/dummy/test/fixtures/dog fries.png +0 -0
  151. data/test/features/categories/categories_index_test.rb +31 -0
  152. data/test/features/shared/concerns/galleryzable_test.rb +22 -0
  153. data/test/features/shared/concerns/sortable_test.rb +26 -0
  154. data/test/features/shared/form/has_many_through_non_category_modal_test.rb +1 -1
  155. data/test/features/shared/form/remote_resource_modal_test.rb +41 -0
  156. data/test/features/shared/resource/edit_test.rb +7 -6
  157. data/test/features/shared/resource/new_test.rb +3 -2
  158. data/test/features/shared/ui/max_images_gallery_test.rb +52 -0
  159. data/test/generators/contact_generator_test.rb +20 -0
  160. data/test/generators/dump_generator_test.rb +51 -0
  161. data/test/generators/resource_generator_test.rb +46 -1
  162. data/test/helpers/breadcrumbs_helper_test.rb +3 -4
  163. data/test/helpers/router_helper_test.rb +1 -1
  164. data/test/helpers/shared_pages_helper_test.rb +120 -0
  165. data/test/models/adminpanel/gallery_test.rb +16 -23
  166. data/test/models/adminpanel/user_test.rb +1 -1
  167. data/test/support/view_case.rb +18 -19
  168. data/test/tasks/adminpanel_rake_test.rb +5 -3
  169. data/test/test_helper.rb +2 -5
  170. metadata +204 -150
  171. data/.rspec +0 -2
  172. data/app/assets/javascripts/adminpanel/images_form.js +0 -23
  173. data/app/assets/javascripts/adminpanel/imagesloaded.js +0 -16
  174. data/app/controllers/adminpanel/galleries_controller.rb +0 -75
  175. data/app/controllers/adminpanel/rols_controller.rb +0 -10
  176. data/app/models/adminpanel/gallery.rb +0 -82
  177. data/app/uploaders/adminpanel/gallery_uploader.rb +0 -56
  178. data/app/views/adminpanel/galleries/_galleries_table.html.erb +0 -15
  179. data/app/views/adminpanel/galleries/create.html.erb +0 -2
  180. data/app/views/adminpanel/galleries/index.html.erb +0 -52
  181. data/app/views/adminpanel/galleries/move_better.js.erb +0 -1
  182. data/app/views/adminpanel/galleries/move_worst.js.erb +0 -1
  183. data/app/views/layouts/_side_menu.html.erb +0 -40
  184. data/app/views/shared/_create_remote_resource_button.html.erb +0 -23
  185. data/app/views/shared/_form_fields.html.erb +0 -63
  186. data/app/views/shared/_gallery_entries.html.erb +0 -11
  187. data/app/views/shared/_image_fields.html.erb +0 -3
  188. data/app/views/shared/_modal.html.erb +0 -8
  189. data/app/views/shared/_new_resource_button.html.erb +0 -17
  190. data/app/views/shared/_remote_form_fields.html.erb +0 -12
  191. data/app/views/shared/edit.html.erb +0 -29
  192. data/app/views/shared/gallery_entries.js.erb +0 -1
  193. data/app/views/shared/index.html.erb +0 -68
  194. data/app/views/shared/new.html.erb +0 -41
  195. data/app/views/shared/new.js.erb +0 -2
  196. data/app/views/shared/show.html.erb +0 -92
  197. data/test/dummy/README.rdoc +0 -261
  198. data/test/dummy/config/environments/development.rb +0 -29
  199. data/test/dummy/config/environments/production.rb +0 -80
  200. data/test/dummy/lib/assets/.gitkeep +0 -0
  201. data/test/dummy/script/rails +0 -6
  202. data/test/unit/gallery_unit_test.rb +0 -21
@@ -66,7 +66,7 @@ module Adminpanel
66
66
  when 'belongs_to'
67
67
  ':' + belongs_to_field(@attr_field)
68
68
  when 'has_many'
69
- has_many_field(@attr_field) + ': []'
69
+ "{ #{has_many_field(@attr_field)}: [] }"
70
70
  else
71
71
  ":#{attribute.split(':').first}"
72
72
  end
@@ -113,13 +113,11 @@ module Adminpanel
113
113
  end
114
114
 
115
115
  def has_many_form_hash
116
- attribute_hash(has_many_field(resource_class_name(@attr_field)), 'has_many', 'has_many model')
116
+ attribute_hash(has_many_field(resource_class_name(@attr_field.downcase.singularize + 's')), 'has_many', @attr_field.capitalize.singularize)
117
117
  end
118
118
 
119
119
  def attribute_hash(name, type, model = '')
120
- if model != ''
121
- model = model_type(model) + ",\n"
122
- end
120
+ model = model_type(model) + ",\n" if model != ''
123
121
  "{\n" +
124
122
  indent("'#{name}'" + " => {\n", 2) +
125
123
  indent(form_type(type), 4) + ",\n" +
@@ -175,9 +173,9 @@ module Adminpanel
175
173
  end
176
174
 
177
175
  def has_many_association(field)
178
- return "# has_many :categorizations\n\t\t" +
179
- "# has_many :#{@attr_field}, " +
180
- ":through => :categorizations, " +
176
+ return "# has_many :#{@attr_field.downcase}zations\n\t\t" +
177
+ "# has_many :#{@attr_field.pluralize.downcase}, " +
178
+ ":through => :#{@attr_field.downcase}zations, " +
181
179
  ":dependent => :destroy\n\t\t"
182
180
  end
183
181
 
@@ -1,5 +1,5 @@
1
1
  module Adminpanel
2
- class <%= pluralized_name.capitalize %>Controller < Adminpanel::ApplicationController
2
+ class <%= camelized_resource.pluralize %>Controller < Adminpanel::ApplicationController
3
3
 
4
4
  private
5
5
  def <%= resource_name %>_params
@@ -7,7 +7,7 @@ module Adminpanel
7
7
 
8
8
  def self.form_attributes
9
9
  [
10
- <%= indent(get_attribute_hash, 8) + ',' %>
10
+ <%= indent(get_attribute_hash, 8) + "," %>
11
11
  <%= indent(file_field_form_hash, 8) if has_gallery? %>
12
12
  ]
13
13
  end
@@ -17,7 +17,7 @@ module Adminpanel
17
17
  end
18
18
 
19
19
  # def self.icon
20
- # 'truck' # fa-{icon}
20
+ # "truck" # fa-{icon}
21
21
  # end
22
22
  end
23
23
  end
@@ -3,7 +3,7 @@ namespace :adminpanel do
3
3
 
4
4
  task :section, [:name, :section, :type] => :environment do |t, args|
5
5
  args.with_defaults(:section => "home", :name => "greeting", :type => "")
6
- puts "Creating #{args[:name]} in #{args[:section]} section"
6
+ puts "Creating #{args[:name]} in #{args[:section]} section" unless Rails.env.test?
7
7
 
8
8
  s = Adminpanel::Section.new(
9
9
  :name => args[:name].titleize,
@@ -35,40 +35,26 @@ namespace :adminpanel do
35
35
  8.times do
36
36
  password = password + "#{characters.sample}"
37
37
  end
38
- puts "Creating/overwriting webmaster@codn.com with password #{password}"
38
+ puts "Creating/overwriting webmaster@codn.com with password #{password}" unless Rails.env.test?
39
39
  user = Adminpanel::User.find_by_email('webmaster@codn.com')
40
40
  if !user.nil?
41
41
  user.delete
42
42
  end
43
43
 
44
- rol = Adminpanel::Rol.find_by_name("Admin")
45
- if rol.nil?
46
- rol = Adminpanel::Rol.new(:name => "Admin")
47
- rol.save
44
+ role = Adminpanel::Role.find_by_name("Admin")
45
+ if role.nil?
46
+ role = Adminpanel::Role.new(:name => "Admin")
47
+ role.save
48
48
  end
49
49
  Adminpanel::User.new(
50
50
  :email => 'webmaster@codn.com',
51
51
  :name => 'Webmaster',
52
52
  :password => password,
53
53
  :password_confirmation => password,
54
- :rol_id => rol.id
54
+ :role_id => role.id
55
55
  ).save
56
56
  end
57
57
 
58
- task :dump => :environment do |t|
59
- puts "Dumping adminpanel_sections and adminpanel_categories into db/seeds.rb"
60
- File.open("#{Rails.root.join('db', 'seeds.rb')}", "w+") do |f|
61
- f << "Adminpanel::Section.delete_all\n"
62
- f << "Adminpanel::Category.delete_all\n"
63
- Adminpanel::Section.all.each do |section|
64
- f << "#{creation_command_section(section)}"
65
- end
66
- Adminpanel::Category.all.each do |category|
67
- f << "#{creation_command_category(category)}"
68
- end
69
- end
70
- end
71
-
72
58
  task :dump_sections => :environment do |t|
73
59
  puts "Dumping adminpanel_sections table into db/seeds.rb"
74
60
  File.open("#{Rails.root.join('db', 'seeds.rb')}", "w") do |f|
@@ -91,7 +77,8 @@ namespace :adminpanel do
91
77
 
92
78
  task :populate, [:times, :model, :attributes] => :environment do |t, args|
93
79
  require 'faker'
94
- puts "Generating #{args[:times]} records of #{args[:model]}"
80
+ I18n.reload!
81
+ puts "Generating #{args[:times]} records of #{args[:model]}" unless Rails.env.test?
95
82
 
96
83
  @model = "adminpanel/#{args[:model]}".classify.constantize
97
84
 
@@ -130,9 +117,9 @@ namespace :adminpanel do
130
117
  when 'email' #generates a random email
131
118
  value = Faker::Internet.email
132
119
 
133
- when 'lat_mid'
120
+ when 'lat_mid' #latitude for merida, yucatan, mx.
134
121
  value = float_random(21.046929, 20.903954)
135
- when 'lng_mid'
122
+ when 'lng_mid' #longitude for merida, yucatan, mx.
136
123
  value = float_random(-89.699819, -89.567296)
137
124
 
138
125
  when 'lat'
@@ -0,0 +1,65 @@
1
+ namespace :adminpanel do
2
+ namespace :test do
3
+ desc "Testing adminpanel performance and other stuff"
4
+
5
+ task single_section_ips: :environment do |t|
6
+ puts "Benchmark retrieving a single section (Iteration Per Second)"
7
+ Benchmark.ips do |x|
8
+ x.report("DQ-where-:key-=>-\"value\"") { Adminpanel::Section.where(:key => "contact-email").first() }
9
+ x.report("where-:key-=>-'value'") { Adminpanel::Section.where(:key => 'contact-email').first() }
10
+ x.report("DQ-where-key:-\"value\"") { Adminpanel::Section.where(key: "contact-email").first() }
11
+ x.report("where-key:-'value'") { Adminpanel::Section.where(key: 'contact-email').first() }
12
+ x.report("DQ-find_by_key(\"key\")") { Adminpanel::Section.find_by_key("contact-email") }
13
+ x.report("find_by_key('key')") { Adminpanel::Section.find_by_key('contact-email') }
14
+ end
15
+ end
16
+
17
+ task find_with_conditions: :environment do |t|
18
+ puts "Benchmark retrieving a section with find_by_key vs find_by(key: 'value')"
19
+ Benchmark.ips do |x|
20
+ x.report("find_by_key('key')") { Adminpanel::Section.find_by_key('contact-email') }
21
+ x.report("find_by(key: 'key')") { Adminpanel::Section.find_by(key: 'contact-email') }
22
+ end
23
+ end
24
+
25
+ task collections_of_a_page_ips: :environment do |t|
26
+ puts "Benchmark retrieving a collection (Iteration Per Second)"
27
+ Benchmark.ips do |x|
28
+ x.report("DQ-where-:page-=>-\"Areas\"") do
29
+ @sections = Adminpanel::Section.where(:page => "Areas")
30
+ @about = @sections.where(:key => "acerca-de-nosotros")
31
+ @mission = @sections.where(:key => "mision")
32
+ @history = @sections.where(:key => "historia")
33
+ end
34
+ x.report("where-:page-=>-'Areas'") do
35
+ @sections = Adminpanel::Section.where(:page => 'Areas')
36
+ @about = @sections.where(:key => 'acerca-de-nosotros')
37
+ @mission = @sections.where(:key => 'mision')
38
+ @history = @sections.where(:key => 'historia')
39
+ end
40
+ x.report("DQ-where-page:-\"Areas\"") do
41
+ @sections = Adminpanel::Section.where(page: "Areas")
42
+ @about = @sections.where(key: "acerca-de-nosotros")
43
+ @mission = @sections.where(key: "mision")
44
+ @history = @sections.where(key: "historia")
45
+ end
46
+ x.report("where-page:-'Areas'") do
47
+ @sections = Adminpanel::Section.where(page: 'Areas')
48
+ @about = @sections.where(key: 'acerca-de-nosotros')
49
+ @mission = @sections.where(key: 'mision')
50
+ @history = @sections.where(key: 'historia')
51
+ end
52
+ x.report("DQ-find_by_key-each") do
53
+ @about = Adminpanel::Section.find_by_key("acerca-de-nosotros")
54
+ @mission = Adminpanel::Section.find_by_key("mision")
55
+ @history = Adminpanel::Section.find_by_key("historia")
56
+ end
57
+ x.report("find_by_key-each") do
58
+ @about = Adminpanel::Section.find_by_key('acerca-de-nosotros')
59
+ @mission = Adminpanel::Section.find_by_key('mision')
60
+ @history = Adminpanel::Section.find_by_key('historia')
61
+ end
62
+ end
63
+ end
64
+ end
65
+ end
@@ -0,0 +1,12 @@
1
+ module Adminpanel
2
+ class FileResourcesController < Adminpanel::ApplicationController
3
+
4
+ private
5
+ def file_test_params
6
+ params.require(:file_test).permit(
7
+ { file_testfiles_attributes: [:id, :file, :_destroy] },
8
+ :name
9
+ )
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,4 @@
1
+ module Adminpanel
2
+ class GalleriesController < Adminpanel::ApplicationController
3
+ end
4
+ end
@@ -4,11 +4,11 @@ module Adminpanel
4
4
  private
5
5
  def product_params
6
6
  params.require(:product).permit(
7
- :price,
8
- :name,
9
- :category_ids,
10
- :description,
11
- :photos_attributes => [:product_id, :file]
7
+ :price,
8
+ :name,
9
+ :category_ids,
10
+ :description,
11
+ :photos_attributes => [:product_id, :file]
12
12
  )
13
13
  end
14
14
 
@@ -7,6 +7,8 @@ module Adminpanel
7
7
  has_many :categorizations
8
8
  has_many :products, :through => :categorizations, :dependent => :destroy
9
9
 
10
+ has_and_belongs_to_many :test_objects,
11
+ join_table: "adminpanel_test_object_category"
10
12
 
11
13
  def self.form_attributes
12
14
  [
@@ -0,0 +1,34 @@
1
+ module Adminpanel
2
+ class FileResource < ActiveRecord::Base
3
+ include Adminpanel::Base
4
+
5
+ mount_images :file_resourcefiles
6
+
7
+ def self.form_attributes
8
+ [
9
+ {
10
+ 'name' => {
11
+ 'type' => 'text_field',
12
+ 'label' => 'name',
13
+ 'placeholder' => 'name',
14
+ }
15
+ },
16
+ {
17
+ 'file_resourcefiles' => {
18
+ 'type' => 'adminpanel_file_field',
19
+ 'label' => 'name',
20
+ 'placeholder' => 'name'
21
+ }
22
+ }
23
+ ]
24
+ end
25
+
26
+ def self.display_name
27
+ 'FileResource' #singular
28
+ end
29
+
30
+ # def self.icon
31
+ # "truck" # fa-{icon}
32
+ # end
33
+ end
34
+ end
@@ -0,0 +1,13 @@
1
+ module Adminpanel
2
+ class FileResourcefile < ActiveRecord::Base
3
+ # include Adminpanel::Galleryzation
4
+
5
+ mount_uploader :file, FileResourcefileUploader
6
+
7
+
8
+ # def self.relation_field
9
+ # 'file_test_id'
10
+ # end
11
+
12
+ end
13
+ end
@@ -0,0 +1,32 @@
1
+ module Adminpanel
2
+ class Gallery < ActiveRecord::Base
3
+ include Adminpanel::Base
4
+ include Adminpanel::Sortable
5
+
6
+ mount_uploader :file, Adminpanel::PhotoUploader
7
+
8
+ def name
9
+ file
10
+ end
11
+
12
+ def self.form_fields
13
+ [
14
+ {
15
+ 'file' => {
16
+ 'type' => 'adminpanel_file_field',
17
+ 'label' => 'file',
18
+
19
+ }
20
+ }
21
+ ]
22
+ end
23
+
24
+ def self.display_name
25
+ 'Galeria'
26
+ end
27
+
28
+ def self.gallery_children
29
+ 'galleryfiles'
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,19 @@
1
+ module Adminpanel
2
+ class Galleryfile < ActiveRecord::Base
3
+ include Adminpanel::Base
4
+ include Adminpanel::Galleryzation
5
+
6
+ belongs_to :gallery
7
+
8
+ mount_uploader :file, Adminpanel::PhotoUploader
9
+
10
+ def self.relation_field
11
+ 'gallery_id'
12
+ end
13
+
14
+ def self.display_name
15
+ 'dsf'
16
+ end
17
+
18
+ end
19
+ end
@@ -6,20 +6,20 @@ module Adminpanel
6
6
 
7
7
  def self.form_attributes
8
8
  [
9
- {
10
- 'name' => {
11
- 'type' => 'text_field',
12
- 'label' => 'name',
13
- 'placeholder' => 'name'
14
- }
15
- },
16
- {
17
- 'number' => {
18
- 'type' => 'number_field',
19
- 'label' => 'number',
20
- 'placeholder' => 'number'
21
- }
22
- },
9
+ {
10
+ 'name' => {
11
+ 'type' => 'text_field',
12
+ 'label' => 'name',
13
+ 'placeholder' => 'name'
14
+ }
15
+ },
16
+ {
17
+ 'number' => {
18
+ 'type' => 'number_field',
19
+ 'label' => 'number',
20
+ 'placeholder' => 'number'
21
+ }
22
+ },
23
23
  ]
24
24
  end
25
25
 
@@ -3,6 +3,7 @@ module Adminpanel
3
3
  include Adminpanel::Base
4
4
  # include Adminpanel::Galleryzation
5
5
  mount_uploader :file, PhotoUploader
6
+ belongs_to :product
6
7
 
7
8
  def self.relation_method
8
9
  'product_id'
@@ -5,7 +5,7 @@ module Adminpanel
5
5
  include Adminpanel::Twitter
6
6
 
7
7
  has_many :categorizations
8
- has_many :categories, :through => :categorizations
8
+ has_many :categories, through: :categorizations
9
9
  mount_images :photos
10
10
 
11
11
  validates_presence_of :name
@@ -13,8 +13,6 @@ module Adminpanel
13
13
  validates_presence_of :description
14
14
 
15
15
  def self.form_attributes
16
-
17
-
18
16
  [
19
17
  {"category_ids" => {"type" => "has_many", "model" => "Adminpanel::Category", "name" => "category_ids"}},
20
18
  {
@@ -33,7 +31,9 @@ module Adminpanel
33
31
  'photos' => {
34
32
  'type' => 'adminpanel_file_field',
35
33
  'label' => 'photo',
36
- 'placeholder' => 'photo'}
34
+ 'placeholder' => 'photo',
35
+ 'max-files' => 2
36
+ }
37
37
  },
38
38
  {
39
39
  'description' => {
@@ -49,9 +49,9 @@ module Adminpanel
49
49
  "Producto"
50
50
  end
51
51
 
52
- def self.gallery_children
53
- 'photos'
54
- end
52
+ # def self.gallery_children
53
+ # 'photos'
54
+ # end
55
55
 
56
56
  def self.icon
57
57
  "icon-truck"