adminpanel 1.2.12 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
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