adminpanel 1.2.12 → 2.0.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 (127) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +3 -4
  3. data/Gemfile +22 -20
  4. data/README.md +12 -9
  5. data/adminpanel.gemspec +29 -28
  6. data/app/assets/fonts/.keep +0 -0
  7. data/app/assets/javascripts/adminpanel/images_form.js +5 -2
  8. data/app/assets/javascripts/adminpanel/imagesloaded.js +5 -2
  9. data/app/assets/javascripts/adminpanel/tables.js +6 -3
  10. data/app/assets/javascripts/application-admin.js +2 -1
  11. data/app/assets/stylesheets/adminpanel/{_clearfix.css.scss → _clearfix.css} +0 -0
  12. data/app/assets/stylesheets/adminpanel/bootstrap.css +2 -2
  13. data/app/assets/stylesheets/adminpanel/medium-editor.css.scss +1 -1
  14. data/app/assets/stylesheets/application-admin.css +2 -1
  15. data/app/controllers/adminpanel/application_controller.rb +28 -21
  16. data/app/controllers/adminpanel/categories_controller.rb +16 -5
  17. data/app/controllers/adminpanel/galleries_controller.rb +11 -5
  18. data/app/controllers/adminpanel/sections_controller.rb +14 -0
  19. data/app/controllers/adminpanel/users_controller.rb +10 -80
  20. data/app/controllers/concerns/adminpanel/galleryzable_actions.rb +33 -0
  21. data/app/controllers/concerns/adminpanel/rest_actions.rb +109 -0
  22. data/app/helpers/adminpanel/application_helper.rb +0 -1
  23. data/app/helpers/adminpanel/custom_form_builder.rb +12 -13
  24. data/app/helpers/adminpanel/router_helper.rb +11 -2
  25. data/app/helpers/adminpanel/shared_pages_helper.rb +0 -1
  26. data/app/models/adminpanel/analytic.rb +3 -2
  27. data/app/models/adminpanel/gallery.rb +8 -4
  28. data/app/models/adminpanel/group.rb +1 -1
  29. data/app/models/adminpanel/image.rb +1 -2
  30. data/app/models/adminpanel/section.rb +19 -10
  31. data/app/models/adminpanel/user.rb +11 -3
  32. data/app/models/concerns/adminpanel/base.rb +149 -0
  33. data/app/models/concerns/adminpanel/galleryzation.rb +66 -0
  34. data/app/models/contact.rb +16 -9
  35. data/app/views/adminpanel/analytics/index.html.erb +2 -1
  36. data/app/views/adminpanel/categories/_categories_table.html.erb +6 -7
  37. data/app/views/adminpanel/categories/_category_form.html.erb +2 -2
  38. data/app/views/adminpanel/categories/create.js.erb +2 -2
  39. data/app/views/adminpanel/categories/index.html.erb +1 -1
  40. data/app/views/adminpanel/galleries/_galleries_table.html.erb +7 -7
  41. data/app/views/adminpanel/galleries/index.html.erb +6 -5
  42. data/app/views/adminpanel/sections/_sections_table.html.erb +2 -2
  43. data/app/views/adminpanel/sections/edit.html.erb +5 -3
  44. data/app/views/adminpanel/sections/show.html.erb +3 -3
  45. data/app/views/adminpanel/sessions/new.html.erb +1 -1
  46. data/app/views/layouts/_side_menu.html.erb +2 -2
  47. data/app/views/layouts/_top_bar.html.erb +3 -3
  48. data/app/views/layouts/admin-login.html.erb +0 -1
  49. data/app/views/layouts/admin.html.erb +3 -3
  50. data/app/views/shared/_delete_icon_button.html.erb +16 -0
  51. data/app/views/shared/_edit_icon_button.html.erb +14 -0
  52. data/app/views/shared/_error_messages.html.erb +1 -1
  53. data/app/views/shared/_form_fields.html.erb +15 -13
  54. data/app/views/shared/_gallery_entries.html.erb +2 -2
  55. data/app/views/shared/_init_editor.html.erb +5 -2
  56. data/app/views/shared/_new_resource_button.html.erb +18 -0
  57. data/app/views/shared/_remote_form_fields.html.erb +1 -1
  58. data/app/views/shared/_show_icon_button.html.erb +14 -0
  59. data/app/views/shared/edit.html.erb +3 -3
  60. data/app/views/shared/index.html.erb +13 -48
  61. data/app/views/shared/new.html.erb +3 -3
  62. data/app/views/shared/show.html.erb +5 -5
  63. data/config/initializers/pluralization_es.rb +16 -0
  64. data/config/locales/en.yml +89 -0
  65. data/config/locales/es.yml +4 -4
  66. data/config/routes.rb +15 -16
  67. data/lib/adminpanel.rb +8 -8
  68. data/lib/adminpanel/version.rb +1 -1
  69. data/lib/generators/adminpanel/gallery/gallery_generator.rb +12 -8
  70. data/lib/generators/adminpanel/gallery/templates/gallery_template.rb +2 -3
  71. data/lib/generators/adminpanel/initialize/templates/category_template.rb +2 -3
  72. data/lib/generators/adminpanel/resource/resource_generator.rb +24 -18
  73. data/lib/generators/adminpanel/resource/templates/controller.rb +5 -0
  74. data/lib/generators/adminpanel/resource/templates/resource.rb +3 -3
  75. data/lib/tasks/adminpanel/adminpanel.rake +43 -90
  76. data/spec/dummy/app/controllers/adminpanel/mugs_controller.rb +9 -0
  77. data/spec/dummy/app/controllers/adminpanel/products_controller.rb +12 -0
  78. data/spec/dummy/app/models/ability.rb +1 -1
  79. data/spec/dummy/app/models/adminpanel/categorization.rb +1 -2
  80. data/spec/dummy/app/models/adminpanel/category.rb +18 -19
  81. data/spec/dummy/app/models/adminpanel/mug.rb +37 -0
  82. data/spec/dummy/app/models/adminpanel/photo.rb +3 -3
  83. data/spec/dummy/app/models/adminpanel/product.rb +2 -2
  84. data/spec/dummy/config/application.rb +2 -11
  85. data/spec/dummy/config/database.yml +0 -6
  86. data/spec/dummy/config/environments/development.rb +11 -23
  87. data/spec/dummy/config/environments/production.rb +40 -32
  88. data/spec/dummy/config/environments/test.rb +13 -18
  89. data/spec/dummy/config/initializers/adminpanel_setup.rb +2 -1
  90. data/spec/dummy/config/locales/.keep +0 -0
  91. data/spec/dummy/db/schema.rb +68 -2
  92. data/spec/features/authentication_pages_spec.rb +15 -15
  93. data/spec/features/galleries_pages_spec.rb +30 -22
  94. data/spec/features/section_pages_spec.rb +15 -18
  95. data/spec/features/shared_pages_spec.rb +97 -127
  96. data/spec/generators/gallery_generator_spec.rb +2 -3
  97. data/spec/generators/resource_generator_spec.rb +20 -3
  98. data/spec/models/gallery_spec.rb +2 -2
  99. data/spec/models/section_spec.rb +8 -15
  100. data/spec/models/user_spec.rb +23 -39
  101. data/spec/spec_helper.rb +9 -1
  102. data/spec/support/factories.rb +52 -0
  103. data/spec/support/helper_methods.rb +25 -5
  104. data/spec/tasks/adminpanel_rake_spec.rb +11 -10
  105. metadata +361 -353
  106. data/app/assets/fonts/FontAwesome.otf +0 -0
  107. data/app/assets/fonts/fontawesome-webfont.eot +0 -0
  108. data/app/assets/fonts/fontawesome-webfont.svg +0 -255
  109. data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
  110. data/app/assets/fonts/fontawesome-webfont.woff +0 -0
  111. data/app/assets/stylesheets/adminpanel/colorpicker.css +0 -7
  112. data/app/assets/stylesheets/adminpanel/elfinder.min.css +0 -59
  113. data/app/assets/stylesheets/adminpanel/font-awesome.min.css +0 -34
  114. data/app/helpers/adminpanel/pluralizations_helper.rb +0 -25
  115. data/app/helpers/adminpanel/rest_actions_helper.rb +0 -128
  116. data/app/views/adminpanel/galleries/delete.html.erb +0 -2
  117. data/app/views/adminpanel/galleries/edit.html.erb +0 -19
  118. data/app/views/adminpanel/galleries/new.html.erb +0 -18
  119. data/app/views/adminpanel/galleries/show.html.erb +0 -18
  120. data/app/views/adminpanel/galleries/update.html.erb +0 -2
  121. data/lib/adminpanel/active_record/adminpanel_extension.rb +0 -187
  122. data/spec/dummy/config/locales/en.yml +0 -5
  123. data/spec/support/define_factory_models.rb +0 -45
  124. data/spec/support/submit_forms_without_button.rb +0 -17
  125. data/spec/support/test_database.rb +0 -76
  126. data/spec/uploaders/gallery_uploader_spec.rb +0 -37
  127. data/spec/uploaders/image_uploader_spec.rb +0 -31
@@ -0,0 +1,16 @@
1
+ ActiveSupport::Inflector.inflections(:es) do |inflect|
2
+ inflect.plural(/$/, 's')
3
+ inflect.plural(/([^aeéiou])$/i, '\1es')
4
+ inflect.plural(/([aeiou]s)$/i, '\1')
5
+ inflect.plural(/z$/i, 'ces')
6
+ inflect.plural(/á([sn])$/i, 'a\1es')
7
+ inflect.plural(/é([sn])$/i, 'e\1es')
8
+ inflect.plural(/í([sn])$/i, 'i\1es')
9
+ inflect.plural(/ó([sn])$/i, 'o\1es')
10
+ inflect.plural(/ú([sn])$/i, 'u\1es')
11
+
12
+ inflect.singular(/s$/, '')
13
+ inflect.singular(/es$/, '')
14
+
15
+ inflect.irregular('el', 'los')
16
+ end
@@ -0,0 +1,89 @@
1
+ en:
2
+ model:
3
+ Analytics: "Google Analytics"
4
+ Gallery: "Gallery"
5
+ Categories: "Categories"
6
+ attributes:
7
+ adminproject_id: "Proyect"
8
+ brief: "Brief Description"
9
+ body: "Body"
10
+ category_id: "Category"
11
+ client_id: "Client"
12
+ description: "Description"
13
+ email: "Email"
14
+ file: "File"
15
+ group_id: "Group"
16
+ name: "Name"
17
+ password: "Password"
18
+ password_confirmation: "Confirm password"
19
+ password_digest: "Confirm password"
20
+ username: "Nombre de usuario"
21
+ errors:
22
+ one: "%{model} can't be saved, 1 error"
23
+ other: "%{model} can't be saved, %{count} errors"
24
+ activerecord:
25
+ errors:
26
+ messages:
27
+ not_phone: "isn't a phone (10 numbers)"
28
+ blank: "can't be blank"
29
+ confirmation: "Must be the same"
30
+ invalid: "isn't an email"
31
+ not_a_number: "not a number"
32
+ taken: "alredy in use"
33
+ too_long: "too long"
34
+ too_short: "too short, minimum is 6 characters"
35
+ time:
36
+ formats:
37
+ graphic: "%Y-%m-%d %H:%M:%S"
38
+ long: "%d/%m/%Y %l:%M:%S %p"
39
+ short: "%d de %B de %Y"
40
+ estimate: "%Y-%m-%d"
41
+ Add Image: "Add Image"
42
+ Write description here: "Write descrition here..."
43
+ Gallery: "Gallery"
44
+ Panel title: "Panel Administrativo CoDN"
45
+ actions: "Actions"
46
+ action:
47
+ add: "Add"
48
+ create: "Create"
49
+ close: "Close"
50
+ show: "Show"
51
+ submitting: "Submitting..."
52
+ save: "Save"
53
+ save_success: "Has been saved successfully"
54
+ update: "Update"
55
+ delete: "Delete"
56
+ view: "View"
57
+ delete confirmation: "Are you sure you wan't to delete?"
58
+ is_true: 'Yes'
59
+ is_false: 'No'
60
+ authentication:
61
+ welcome: "Welcome! Please, submit your credentials"
62
+ signin_error: "Email and/or Password wrong."
63
+ signin_success: "Welcome!"
64
+ not_authorized: "You don't have access to that"
65
+ gallery:
66
+ new: "Add Image"
67
+ success: "Image has been saved"
68
+ deleted: "Image has been deleted"
69
+ moved : "Gallery position has been updated"
70
+ not-moved: "Image wasn't able to move"
71
+ image: "Image"
72
+ position: "Position"
73
+ action: "Action"
74
+ user:
75
+ new: "Add User"
76
+ success: "User has been saved"
77
+ section:
78
+ name: "Name"
79
+ description: "Description"
80
+ edit: "Edit Section"
81
+ default: "Without Section"
82
+ image: "Image"
83
+ session:
84
+ password: "Password"
85
+ email: "Email"
86
+ other:
87
+ add : "Add %{model}"
88
+ choose: "Chooose related %{model}"
89
+ no description: "Don't have a description yet"
@@ -6,6 +6,7 @@ es:
6
6
  attributes:
7
7
  adminproject_id: "Proyecto"
8
8
  brief: "Pequeña descripción"
9
+ body: "Contenido"
9
10
  category_id: "Categoría"
10
11
  client_id: "Cliente"
11
12
  description: "Descripción"
@@ -23,6 +24,7 @@ es:
23
24
  activerecord:
24
25
  errors:
25
26
  messages:
27
+ not_phone: 'no es un teléfono (10 números)'
26
28
  blank: "no puede estar vacío"
27
29
  confirmation: "Deben ser iguales"
28
30
  invalid: "no es un correo"
@@ -38,7 +40,6 @@ es:
38
40
  estimate: "%Y-%m-%d"
39
41
  Add Image: "Agregar Imagen"
40
42
  Write description here: "Escriba la descripción aquí"
41
- Gallery: "Galería"
42
43
  Panel title: "Panel Administrativo"
43
44
  actions: "Acciones"
44
45
  action:
@@ -61,6 +62,7 @@ es:
61
62
  signin_success: "Bienvenido!"
62
63
  not_authorized: 'No tienes permisos para acceder'
63
64
  gallery:
65
+ name: 'Galeria'
64
66
  new: "Agregar Imagen"
65
67
  success: "La imagen ha sido guardada"
66
68
  deleted: "La imagen ha sido eliminada"
@@ -83,7 +85,5 @@ es:
83
85
  email: "Correo electrónico"
84
86
  other:
85
87
  add : "Agregar %{model}"
86
- choose: "Selecciona %{model} pertenecientes"
88
+ choose: "Selecciona las relaciones con %{model}"
87
89
  no description: "No tiene descripción aún"
88
- key:
89
- telephone: 'Teléfono'
data/config/routes.rb CHANGED
@@ -5,37 +5,36 @@ Adminpanel::Engine.routes.draw do
5
5
  Adminpanel.displayable_resources.each do |resource|
6
6
  case resource
7
7
  when :sections
8
- resources :sections, :except => [:new, :create, :destroy]
9
- when :users
10
- resources :users
8
+ # sections cannot be created or destroyed
9
+ resources :sections, resources_parameters(resource).merge({:except => [:new, :create, :destroy] })
11
10
  when :galleries
12
- resources :galleries do
11
+ # galleries gallery is different from normal resources galleries
12
+ resources :galleries, resources_parameters(resource) do
13
13
  member do
14
- put :move_better, :as => "move_to_better"
15
- put :move_worst, :as => "move_to_worst"
14
+ put :move_better, :as => 'move_to_better'
15
+ put :move_worst, :as => 'move_to_worst'
16
16
  end
17
17
  end
18
- when :categories
19
- resources :categories
20
18
  when :analytics
21
- resources :analytics, :only => [:index]
19
+ resources :analytics, resources_parameters(resource).merge({:only => [:index]})
22
20
  else
23
- if !acts_as_a_gallery?(resource).nil?
24
- resources resource
25
- resources acts_as_a_gallery?(resource).to_sym, :only => [:index] do
21
+ if !gallery_children(resource).nil?
22
+ # make the resources gallery routes
23
+ resources gallery_children(resource).to_sym, :only => [:index] do
26
24
  member do
27
25
  put :move_better, :as => 'move_to_better'
28
26
  put :move_worst, :as => 'move_to_worst'
29
27
  end
30
28
  end
31
- else
32
- resources resource
33
29
  end
30
+
31
+ # normal resource
32
+ resources resource, resources_parameters(resource)
34
33
  end
35
34
  end
36
35
 
37
36
  root :to => "#{Adminpanel.displayable_resources.first}#index"
38
37
  resources :sessions, :only => [:new, :create, :destroy]
39
- match '/signout', :to => 'sessions#destroy', :via => :delete, :as => "signout"
40
- match '/signin', :to => 'sessions#new', :as => "signin"
38
+ delete '/signout', :to => 'sessions#destroy', :as => "signout"
39
+ get '/signin', :to => 'sessions#new', :as => "signin"
41
40
  end
data/lib/adminpanel.rb CHANGED
@@ -1,11 +1,11 @@
1
- require "adminpanel/version"
2
- require "adminpanel/engine"
3
- require "inherited_resources"
4
- require "adminpanel/active_record/adminpanel_extension"
5
- require "carrierwave"
6
- require "carrierwave/orm/activerecord"
7
- require "google/api_client"
8
- require 'cancan'
1
+ require 'adminpanel/version'
2
+ require 'adminpanel/engine'
3
+ require 'inherited_resources'
4
+ require 'carrierwave'
5
+ require 'carrierwave/orm/activerecord'
6
+ require 'google/api_client'
7
+ require 'cancancan'
8
+ require 'font-awesome-rails'
9
9
 
10
10
  module Adminpanel
11
11
  end
@@ -1,3 +1,3 @@
1
1
  module Adminpanel
2
- VERSION = "1.2.12"
2
+ VERSION = "2.0.0"
3
3
  end
@@ -5,17 +5,20 @@ module Adminpanel
5
5
  source_root File.expand_path("../templates", __FILE__)
6
6
  desc "Generate the resource files necessary to use a model"
7
7
 
8
- def create_model
8
+ def generate_model
9
9
  template 'gallery_template.rb', "app/models/adminpanel/#{lower_name}.rb"
10
10
  end
11
11
 
12
- def create_uploader
12
+ def generate_uploader
13
13
  template 'uploader.rb', "app/uploaders/adminpanel/#{lower_name}_uploader.rb"
14
14
  end
15
15
 
16
- def create_migration
17
- migration_template 'gallery_migration.rb', "db/migrate/create_adminpanel_#{lower_name.pluralize}_table.rb"
18
- puts "don't forget to add the form_field, the relationship and #{lower_name}s_attributes it to attr_accessible"
16
+ def generate_migration
17
+ migration_template(
18
+ 'gallery_migration.rb',
19
+ "db/migrate/create_adminpanel_#{lower_name.pluralize}_table.rb"
20
+ )
21
+ puts "don't forget to add the form_field, the relationship and #{lower_name}s_attributes it to the permited params"
19
22
  end
20
23
 
21
24
  private
@@ -23,13 +26,14 @@ module Adminpanel
23
26
  name.singularize.downcase
24
27
  end
25
28
 
29
+ def lower_name
30
+ "#{reference_name}file"
31
+ end
32
+
26
33
  def class_name
27
34
  "#{lower_name.capitalize}"
28
35
  end
29
36
 
30
- def lower_name
31
- "#{name.singularize.downcase}file"
32
- end
33
37
  end
34
38
  end
35
39
  end
@@ -1,13 +1,12 @@
1
1
  module Adminpanel
2
2
  class <%= class_name %> < ActiveRecord::Base
3
- attr_accessible :<%= reference_name %>_id, :file
3
+ # include Adminpanel::Galleryzation
4
4
 
5
5
  mount_uploader :file, <%= class_name %>Uploader
6
6
 
7
- # act_as_a_gallery
8
7
 
9
8
  # def self.relation_field
10
- # 'something_id'
9
+ # '<%= reference_name %>_id'
11
10
  # end
12
11
 
13
12
  end
@@ -1,6 +1,5 @@
1
1
  module Adminpanel
2
2
  class Category < ActiveRecord::Base
3
- attr_accessible :name, :model #, :product_ids
4
3
 
5
4
  validates_presence_of :model
6
5
  validates_presence_of :name
@@ -32,11 +31,11 @@ module Adminpanel
32
31
  end
33
32
 
34
33
  def self.display_name
35
- "Categorías"
34
+ "Categoria" #singular
36
35
  end
37
36
 
38
37
  def self.icon
39
- "icon-bookmark"
38
+ "bookmark" #fa-{icon}
40
39
  end
41
40
 
42
41
  default_scope { order("model ASC")}
@@ -8,20 +8,26 @@ module Adminpanel
8
8
 
9
9
  argument :fields, :type => :array, :default => "name:string"
10
10
 
11
- def create_model
12
- template 'resource.rb', "app/models/adminpanel/#{lower_name}.rb"
11
+ def generate_model
12
+ template 'resource.rb', "app/models/adminpanel/#{lower_singularized_name}.rb"
13
13
  end
14
14
 
15
- def create_controller
15
+ def generate_controller
16
16
  if is_a_resource?
17
17
  template "controller.rb", "app/controllers/adminpanel/#{pluralized_name}_controller.rb"
18
18
  end
19
19
  end
20
20
 
21
- def create_migrations
22
- migration_template "migration.rb", "db/migrate/create_#{pluralized_name}_table"
21
+ def generate_migrations
22
+ migration_template(
23
+ 'migration.rb',
24
+ "db/migrate/create_#{pluralized_name}_table.rb"
25
+ )
23
26
  end
24
27
 
28
+ def print_messages
29
+ puts "don't forget to add :#{pluralized_name} to adminpanel_setup.rb"
30
+ end
25
31
 
26
32
  private
27
33
  def is_a_resource?
@@ -35,19 +41,19 @@ module Adminpanel
35
41
  end
36
42
 
37
43
  def gallery_name
38
- "#{lower_name}file"
44
+ "#{lower_singularized_name}file"
39
45
  end
40
46
 
41
- def lower_name
47
+ def lower_singularized_name
42
48
  name.singularize.downcase
43
49
  end
44
50
 
45
51
  def capitalized_resource
46
- lower_name.capitalize
52
+ lower_singularized_name.capitalize
47
53
  end
48
54
 
49
55
  def pluralized_name
50
- "#{lower_name.pluralize}"
56
+ "#{lower_singularized_name.pluralize}"
51
57
  end
52
58
 
53
59
  def belongs_to_field(resource)
@@ -81,21 +87,21 @@ module Adminpanel
81
87
  end
82
88
 
83
89
  def symbolized_attributes
84
- attr_string = ""
90
+ attr_string = ''
85
91
  fields.each do |attribute|
86
92
 
87
93
  assign_attributes_variables(attribute)
88
94
 
89
- if @attr_type == "images"
90
- attr_string = attr_string + ":#{gallery_name.pluralize}_attributes, "
91
- elsif @attr_type == "belongs_to"
95
+ if @attr_type == 'images'
96
+ attr_string = attr_string + "{:#{gallery_name.pluralize}_attributes => [:id, :file, :_destroy]}, "
97
+ elsif @attr_type == 'belongs_to'
92
98
  attr_string = "#{attr_string}:#{belongs_to_field(@attr_field)}, "
93
- elsif @attr_type == "has_many" || @attr_type == "has_many_through"
94
- if @attr_field.split(",").second == nil
99
+ elsif @attr_type == 'has_many' || @attr_type == 'has_many_through'
100
+ if @attr_field.split(',').second == nil
95
101
  attr_string = "#{attr_string}:#{has_many_field(@attr_field)}, "
96
102
  else
97
103
  model_name = models_in_parameter(@attr_field).first
98
- attr_string = "#{attr_string}:#{has_many_field(model_name)}, "
104
+ attr_string = "#{attr_string} {:#{has_many_field(model_name)} => []}, "
99
105
  end
100
106
  else
101
107
  attr_string = attr_string + ":#{@attr_field}, "
@@ -184,7 +190,7 @@ module Adminpanel
184
190
  end
185
191
 
186
192
  def placeholder_type
187
- "\n\t\t\t\t\t'placeholder' => '#{@attr_field}'"
193
+ "\n\t\t\t\t\t'placeholder' => '#{@attr_field}'\n\t\t\t\t"
188
194
  end
189
195
 
190
196
  def model_type(type)
@@ -255,7 +261,7 @@ module Adminpanel
255
261
  end
256
262
 
257
263
  def generate_gallery
258
- generate "adminpanel:gallery", lower_name
264
+ generate 'adminpanel:gallery', lower_singularized_name
259
265
  end
260
266
 
261
267
  end
@@ -1,4 +1,9 @@
1
1
  module Adminpanel
2
2
  class <%= pluralized_name.capitalize %>Controller < Adminpanel::ApplicationController
3
+
4
+ private
5
+ def <%= lower_singularized_name %>_params
6
+ params.require(:<%= lower_singularized_name%>).permit(<%= symbolized_attributes %>)
7
+ end
3
8
  end
4
9
  end
@@ -1,6 +1,6 @@
1
1
  module Adminpanel
2
2
  class <%= capitalized_resource %> < ActiveRecord::Base
3
- attr_accessible <%= symbolized_attributes %>
3
+ include Adminpanel::Base
4
4
 
5
5
  <%= associations if has_associations? -%>
6
6
 
@@ -10,11 +10,11 @@ module Adminpanel
10
10
  end
11
11
 
12
12
  def self.display_name
13
- "<%= capitalized_resource %>"
13
+ '<%= capitalized_resource %>' #singular
14
14
  end
15
15
 
16
16
  # def self.icon
17
- # "icon-truck"
17
+ # "truck" # fa-{icon}
18
18
  # end
19
19
  end
20
20
  end
@@ -1,7 +1,7 @@
1
1
  namespace :adminpanel do
2
2
  desc "Interact with adminpanel models :D"
3
3
 
4
- task :section, [:section, :name, :type] => :environment do |t, args|
4
+ task :section, [:name, :section, :type] => :environment do |t, args|
5
5
  args.with_defaults(:section => "home", :name => "greeting", :type => "")
6
6
  puts "Creating #{args[:name]} in #{args[:section]} section"
7
7
 
@@ -35,8 +35,8 @@ namespace :adminpanel do
35
35
  8.times do
36
36
  password = password + "#{characters.sample}"
37
37
  end
38
- puts "Creating/overwriting admin@codn.com with password #{password}"
39
- user = Adminpanel::User.find_by_email('admin@codn.com')
38
+ puts "Creating/overwriting webmaster@codn.com with password #{password}"
39
+ user = Adminpanel::User.find_by_email('webmaster@codn.com')
40
40
  if !user.nil?
41
41
  user.delete
42
42
  end
@@ -47,8 +47,8 @@ namespace :adminpanel do
47
47
  group.save
48
48
  end
49
49
  Adminpanel::User.new(
50
- :email => 'admin@codn.com',
51
- :name => 'CoDN',
50
+ :email => 'webmaster@codn.com',
51
+ :name => 'Webmaster',
52
52
  :password => password,
53
53
  :password_confirmation => password,
54
54
  :group_id => group.id
@@ -90,15 +90,13 @@ namespace :adminpanel do
90
90
  end
91
91
 
92
92
  task :populate, [:times, :model, :attributes] => :environment do |t, args|
93
+ require 'faker'
93
94
  puts "Generating #{args[:times]} records of #{args[:model]}"
94
95
 
95
96
  @model = "adminpanel/#{args[:model]}".classify.constantize
96
97
 
97
98
  attributes = args[:attributes].split(" ")
98
99
 
99
- init_variables
100
-
101
- has_image = false
102
100
  args[:times].to_i.times do |time|
103
101
  instance = @model.new
104
102
  attributes.each do |attribute|
@@ -106,39 +104,52 @@ namespace :adminpanel do
106
104
  type = attribute.split(":").second
107
105
 
108
106
  case type
109
- when "name" #generate a name
110
- value = generate_name
111
-
112
- when "category" || "category_name" #generate a category name
113
- value = @things.sample.pluralize
107
+ when 'name' #generate a name
108
+ value = Faker::Name.name
114
109
 
115
- when 'lorem_short'
116
- value = generate_lorem_name #lorem random short sentence
110
+ when 'category' || 'category_name' #generate a category name
111
+ value = Faker::Commerce.product_name
117
112
 
118
- when "lorem" || "description" #large paragraph.
119
- value = generate_lorem
113
+ when 'lorem' || 'description' #large paragraph.
114
+ value = Faker::Lorem.paragraph([*1..10].sample)
120
115
 
121
- when "number" #generate a number
122
- value = [*1..5000].sample
116
+ when 'number' #generate a number
117
+ value = [*1..7000].sample
123
118
 
124
- when "id" #assign field_id it to a random instance of Adminpanel::field
119
+ when 'url' #generate an url
120
+ value = Faker::Internet.url
121
+ when 'id' #assign field_id it to a random instance of Adminpanel::field
125
122
  field = field.downcase.singularize
126
123
  if field != 'category'
127
- value = "adminpanel/#{field}".classify.constantize.order("RAND()").first.id
124
+ value = "adminpanel/#{field}".classify.constantize.order('RAND()').first.id
128
125
  else
129
- value = "adminpanel/#{field}".classify.constantize.of_model(@model.display_name).order("RAND()").first.id
126
+ value = "adminpanel/#{field}".classify.constantize.of_model(@model.display_name).order('RAND()').first.id
130
127
  end
131
128
  field = "#{field}_id"
132
129
 
133
- when "email" #generates a random email
134
- value = generate_email
130
+ when 'email' #generates a random email
131
+ value = Faker::Internet.email
132
+
133
+ when 'lat_mid'
134
+ value = float_random(21.046929, 20.903954)
135
+ when 'lng_mid'
136
+ value = float_random(-89.699819, -89.567296)
135
137
 
136
- else #no type
137
- value = "#{time + 1} Lorem ipsum dolor sit amec"
138
+ when 'lat'
139
+ value = Faker::Address.latitude
140
+ when 'lng'
141
+ value = Faker::Address.longitude
142
+
143
+ when 'image' || 'images'
144
+ 3.times do
145
+ instance.send("#{@model.name.demodulize.downcase}files").build
146
+ end
147
+ else #no type || not found
148
+ value = Faker::Lorem.words([*1..6].sample).join(' ') #lorem random short sentence
138
149
 
139
150
  end
140
151
 
141
- if(type != "image")
152
+ if(type != 'image')
142
153
  instance.send("#{field}=", value)
143
154
  end
144
155
  end
@@ -146,7 +157,6 @@ namespace :adminpanel do
146
157
  instance.save(:validate => false)
147
158
 
148
159
  change_dates(instance)
149
-
150
160
  end
151
161
 
152
162
  end
@@ -172,70 +182,13 @@ private
172
182
  ").save\n"
173
183
  end
174
184
 
175
- def generate_lorem
176
- value = "#{@lorem.sample}"
177
- [*60..80].sample.times do
178
- value = "#{value} #{@lorem.sample}"
179
- end
180
- "#{value}."
181
- end
182
-
183
- def generate_lorem_name
184
- value = "#{@lorem.sample}"
185
- [*0..3].sample.times do
186
- value = "#{value} #{@lorem.sample}"
187
- end
188
- "#{value.titleize}."
189
- end
190
-
191
- def generate_email
192
- "#{@names.sample.first}#{@l_names.sample}@#{@domains.sample}"
193
- end
194
-
195
- def generate_name
196
- "#{@prefixes.sample} #{@names.sample} #{@l_names.sample}"
197
- end
198
-
199
- def generate_thing
200
- "#{@adjective_denominations} #{@things.sample}"
201
- end
202
-
203
185
  def change_dates(instance)
204
- date = rand(3.years).ago
186
+ date = rand(Date.parse('2010-01-01')..Date.today)
205
187
  instance.update_attribute(:created_at, date)
206
188
  instance.update_attribute(:updated_at, date)
207
189
  end
208
190
 
209
- def init_variables
210
- @prefixes = %W[Sir CEO Entrepeneur Bgr MVP]
211
- @names = %W[Transito Jose Victor John Jane Ramon Katy Sean Emma]
212
- @l_names = %W[Camacho Ferreira Gonzalez Lopez Doe Roe Williams Holmes]
213
- @lorem = %W[Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do
214
- eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad
215
- minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex
216
- ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
217
- velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat
218
- cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
219
- est laborum. Sed dapibus condimentum tempor. Curabitur tortor libero,
220
- malesuada ac varius at, adipiscing non ante. Ut at neque vitae massa
221
- volutpat bibendum a vel purus. Cras adipiscing accumsan placerat. Praesent
222
- rhoncus pellentesque felis, vel faucibus ipsum convallis dictum. Donec
223
- congue vitae risus quis sagittis. Interdum et malesuada fames ac ante
224
- ipsum primis in faucibus. Suspendisse rhoncus tortor ut urna eleifend
225
- molestie. Phasellus in viverra tortor. Pellentesque sagittis tortor tortor,
226
- at auctor risus elementum non. Morbi sagittis ante tincidunt congue
227
- fermentum. Quisque ac tellus in lacus interdum ultrices. Mauris ornare
228
- justo nec sapien tempor, sit amet dapibus massa tincidunt. Interdum et
229
- malesuada fames ac ante ipsum primis in faucibus. Nullam sodales ac mauris
230
- eget egestas. Maecenas rhoncus ac metus quis condimentum. Vestibulum
231
- consequat lacus nulla, eu varius leo consectetur vitae. Pellentesque vitae
232
- sem mauris. Suspendisse ornare, dui eget elementum aliquam, augue neque
233
- condimentum leo, nec ullamcorper lectus massa quis nibh. Etiam id egestas
234
- mauris, eget eleifend enim.
235
- ]
236
- @domains = %W[codn.com gmail.com hotmail.com codn.mx codn.com.mx]
237
- @adjective_denominations = %W[Nice Pretty Good Ugly Expensive Cheap Useful]
238
- @things = %W[T-shirt Cellphone Laptop iPhone Android Beer Belt Headphone
239
- Apple\ TV iMac Macbook\ pro iPod\ touch Github's\ octocat Mug Template
240
- ]
241
- end
191
+ def float_random(min_number, max_number)
192
+ width = max_number - min_number
193
+ return (rand*width)+min_number
194
+ end