adminpanel 2.4.3 → 2.5.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.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/README.md +16 -16
- data/adminpanel.gemspec +9 -8
- data/app/assets/javascripts/adminpanel/application.js +4 -0
- data/app/assets/javascripts/adminpanel/bootstrap-wysihtml5.js +2 -4
- data/app/assets/javascripts/adminpanel/sortable.js.coffee +27 -0
- data/app/assets/stylesheets/adminpanel/application.css +1 -0
- data/app/assets/stylesheets/adminpanel/sortable.css.scss.erb +13 -0
- data/app/controllers/adminpanel/application_controller.rb +0 -1
- data/app/controllers/adminpanel/sessions_controller.rb +5 -2
- data/app/controllers/concerns/adminpanel/rest_actions.rb +24 -22
- data/app/controllers/concerns/adminpanel/sortable_actions.rb +3 -20
- data/app/helpers/adminpanel/breadcrumbs_helper.rb +6 -5
- data/app/helpers/adminpanel/router_helper.rb +9 -3
- data/app/helpers/adminpanel/shared_pages_helper.rb +1 -1
- data/app/models/concerns/adminpanel/base.rb +34 -11
- data/app/models/concerns/adminpanel/sitemap.rb +0 -1
- data/app/models/concerns/adminpanel/sortable.rb +33 -30
- data/app/models/concerns/adminpanel/sortable_gallery.rb +90 -0
- data/app/views/adminpanel/form/_adminpanel_file_field.html.erb +1 -1
- data/app/views/adminpanel/templates/index.html.erb +41 -13
- data/app/views/adminpanel/templates/show.html.erb +33 -13
- data/config/initializers/adminpanel/carrierwave_mini_magick_quality.rb +11 -0
- data/config/locales/en.yml +3 -7
- data/config/locales/es.yml +1 -8
- data/config/routes.rb +6 -8
- data/lib/adminpanel.rb +9 -8
- data/lib/adminpanel/version.rb +1 -1
- data/lib/generators/adminpanel/custom_errors/custom_errors_generator.rb +37 -0
- data/lib/generators/adminpanel/custom_errors/templates/errors_controller.rb +14 -0
- data/lib/generators/adminpanel/custom_errors/templates/show.html.erb +1 -0
- data/lib/generators/adminpanel/gallery/templates/gallery_template.rb +8 -3
- data/lib/generators/adminpanel/gallery/templates/uploader.rb +4 -1
- data/lib/generators/adminpanel/initialize/initialize_generator.rb +0 -12
- data/lib/generators/adminpanel/initialize/templates/adminpanel_setup.rb +1 -2
- data/lib/generators/adminpanel/resource/resource_generator.rb +29 -8
- data/lib/generators/adminpanel/resource/resource_generator_helper.rb +34 -7
- data/lib/generators/adminpanel/resource/templates/adminpanel_resource_template.rb +7 -2
- data/lib/tasks/adminpanel/adminpanel.rake +19 -61
- data/test/dummy/app/models/adminpanel/file_resourcefile.rb +1 -1
- data/test/dummy/app/models/adminpanel/gallery.rb +9 -4
- data/test/dummy/app/models/adminpanel/galleryfile.rb +2 -2
- data/test/dummy/app/models/adminpanel/photo.rb +1 -1
- data/test/dummy/app/models/adminpanel/product.rb +0 -4
- data/test/dummy/config/initializers/adminpanel_setup.rb +1 -1
- data/test/dummy/test/fixtures/adminpanel/galleryfiles.yml +24 -0
- data/test/features/shared/concerns/sortable_gallery_ui_test.rb +25 -0
- data/test/features/shared/concerns/sortable_test.rb +4 -4
- data/test/features/shared/form/{belongs_to_non_category_modal_test.rb → belongs_to_remote_test.rb} +1 -1
- data/test/features/shared/form/{has_many_through_non_category_modal_test.rb → has_many_through_remote_test.rb} +1 -1
- data/test/generators/dump_generator_test.rb +1 -13
- data/test/generators/gallery_generator_test.rb +1 -1
- data/test/generators/initialize_generator_test.rb +1 -9
- data/test/generators/resource_generator_test.rb +21 -1
- data/test/helpers/router_helper_test.rb +0 -4
- data/test/models/adminpanel/sortable_gallery_unit_test.rb +118 -0
- data/test/models/adminpanel/sortable_unit_test.rb +75 -0
- data/test/tasks/adminpanel_rake_test.rb +1 -1
- metadata +86 -85
- data/app/assets/images/adminpanel/loguito.png +0 -0
- data/app/controllers/adminpanel/categories_controller.rb +0 -52
- data/app/controllers/concerns/adminpanel/galleryzable_actions.rb +0 -34
- data/app/models/concerns/adminpanel/galleryzation.rb +0 -78
- data/app/views/adminpanel/categories/_categories_table.html.erb +0 -48
- data/app/views/adminpanel/categories/_category_form.html.erb +0 -33
- data/app/views/adminpanel/categories/create.js.erb +0 -6
- data/app/views/adminpanel/categories/index.html.erb +0 -63
- data/app/views/adminpanel/categories/new.js.erb +0 -5
- data/app/views/adminpanel/icons/_move_to_better.html.erb +0 -17
- data/app/views/adminpanel/icons/_move_to_worst.html.erb +0 -18
- data/app/views/adminpanel/shared/_gallery_entries.html.erb +0 -11
- data/app/views/adminpanel/shared/_index_records.html.erb +0 -32
- data/app/views/adminpanel/templates/gallery_entries.js.erb +0 -1
- data/app/views/adminpanel/templates/index_records.js.erb +0 -1
- data/lib/generators/adminpanel/initialize/templates/category_template.rb +0 -45
- data/lib/generators/adminpanel/initialize/templates/create_adminpanel_categories_table.rb +0 -11
- data/test/features/categories/categories_index_test.rb +0 -31
- data/test/features/shared/concerns/galleryzable_test.rb +0 -22
- data/test/features/shared/form/belongs_to_category_modal_test.rb +0 -35
- data/test/features/shared/form/has_many_through_category_modal_test.rb +0 -35
- data/test/models/adminpanel/galleryzable_test.rb +0 -28
data/config/locales/en.yml
CHANGED
|
@@ -10,7 +10,6 @@ en:
|
|
|
10
10
|
adminproject_id: 'Proyect'
|
|
11
11
|
brief: 'Brief Description'
|
|
12
12
|
body: 'Body'
|
|
13
|
-
category_id: 'Category'
|
|
14
13
|
client_id: 'Client'
|
|
15
14
|
description: 'Description'
|
|
16
15
|
email: 'Email'
|
|
@@ -69,10 +68,10 @@ en:
|
|
|
69
68
|
submitting: 'Submitting...'
|
|
70
69
|
save: 'Save %{resource}'
|
|
71
70
|
save_success: 'Has been saved successfully'
|
|
72
|
-
update: 'Update %{
|
|
71
|
+
update: 'Update %{resource}'
|
|
73
72
|
delete: 'Delete'
|
|
74
73
|
view: 'View'
|
|
75
|
-
|
|
74
|
+
delete_confirmation: "Are you sure you wan't to delete?"
|
|
76
75
|
is_true: 'Yes'
|
|
77
76
|
is_false: 'No'
|
|
78
77
|
authentication:
|
|
@@ -115,10 +114,7 @@ en:
|
|
|
115
114
|
retweet: 'retweet'
|
|
116
115
|
comment: 'comment'
|
|
117
116
|
publish: 'publish-to-%{location}'
|
|
118
|
-
|
|
119
|
-
move_to_worst: 'remove-priority'
|
|
120
|
-
move_gallery_to_better: 'add-priority-gallery'
|
|
121
|
-
move_gallery_to_worst: 'remove-priority-gallery'
|
|
117
|
+
move_to_position: 'move-position'
|
|
122
118
|
new: 'new'
|
|
123
119
|
edit: 'edit'
|
|
124
120
|
show: 'show'
|
data/config/locales/es.yml
CHANGED
|
@@ -5,7 +5,6 @@ es:
|
|
|
5
5
|
model:
|
|
6
6
|
Analytic: 'Analytics'
|
|
7
7
|
Categories: 'Categorías'
|
|
8
|
-
Category: 'Categoría'
|
|
9
8
|
Role: 'Rol'
|
|
10
9
|
User: 'Usuario'
|
|
11
10
|
Permission: 'Permisos'
|
|
@@ -14,7 +13,6 @@ es:
|
|
|
14
13
|
adminproject_id: 'Proyecto'
|
|
15
14
|
brief: 'Pequeña descripción'
|
|
16
15
|
body: 'Contenido'
|
|
17
|
-
category_id: 'Categoría'
|
|
18
16
|
client_id: 'Cliente'
|
|
19
17
|
description: 'Descripción'
|
|
20
18
|
email: 'Correo electrónico'
|
|
@@ -73,8 +71,7 @@ es:
|
|
|
73
71
|
delete_confirmation: 'Estás seguro que desea eliminar %{resource}?'
|
|
74
72
|
delete: 'Eliminar'
|
|
75
73
|
details: 'Detalles de la foto'
|
|
76
|
-
|
|
77
|
-
move_to_worst: 'Bajar %{resource} de posición'
|
|
74
|
+
move_to_position: 'cambiar-posicion'
|
|
78
75
|
is_false: 'No'
|
|
79
76
|
is_true: 'Sí'
|
|
80
77
|
publish: 'Publicar'
|
|
@@ -126,10 +123,6 @@ es:
|
|
|
126
123
|
retweet: 'retweet'
|
|
127
124
|
comment: 'comentar'
|
|
128
125
|
publish: 'publicar-a-%{location}'
|
|
129
|
-
move_to_better: 'subir-prioridad'
|
|
130
|
-
move_to_worst: 'bajar-prioridad'
|
|
131
|
-
move_gallery_to_better: 'subir-prioridad-galeria'
|
|
132
|
-
move_gallery_to_worst: 'bajar-prioridad-galeria'
|
|
133
126
|
facebook_page: 'pagina-en-facebook'
|
|
134
127
|
new: 'nuevo'
|
|
135
128
|
edit: 'editar'
|
data/config/routes.rb
CHANGED
|
@@ -21,12 +21,11 @@ Adminpanel::Engine.routes.draw do
|
|
|
21
21
|
end
|
|
22
22
|
end
|
|
23
23
|
else
|
|
24
|
-
if
|
|
25
|
-
#
|
|
26
|
-
resources
|
|
24
|
+
if gallery_is_sortable?(resource)
|
|
25
|
+
# included sortable_gallery
|
|
26
|
+
resources sortable_gallery(resource), only: [:index] do
|
|
27
27
|
member do
|
|
28
|
-
put :
|
|
29
|
-
put :move_gallery_worst, as: 'move_gallery_to_worst', path: I18n.t('routes.move_gallery_to_worst')
|
|
28
|
+
put :move_to_position, as: 'move_to_position', path: I18n.t('routes.move_to_position')
|
|
30
29
|
end
|
|
31
30
|
end
|
|
32
31
|
end
|
|
@@ -40,10 +39,9 @@ Adminpanel::Engine.routes.draw do
|
|
|
40
39
|
end
|
|
41
40
|
end
|
|
42
41
|
|
|
43
|
-
if
|
|
42
|
+
if resource_is_sortable?(resource)
|
|
44
43
|
# include sortable concern
|
|
45
|
-
put :
|
|
46
|
-
put :move_to_worst, as: 'move_to_worst', path: I18n.t('routes.move_to_worst')
|
|
44
|
+
put :move_to_position, as: 'move_to_position', path: I18n.t('routes.move_to_position')
|
|
47
45
|
end
|
|
48
46
|
|
|
49
47
|
if has_fb_share?(resource)
|
data/lib/adminpanel.rb
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
require 'adminpanel/version'
|
|
2
1
|
require 'adminpanel/engine'
|
|
2
|
+
require 'adminpanel/version'
|
|
3
|
+
require 'cancancan'
|
|
3
4
|
require 'carrierwave'
|
|
4
5
|
require 'carrierwave/orm/activerecord'
|
|
5
|
-
require '
|
|
6
|
-
require 'cancancan'
|
|
6
|
+
require 'coffee-rails'
|
|
7
7
|
require 'font-awesome-rails'
|
|
8
|
+
require 'google/api_client'
|
|
9
|
+
require 'instagram'
|
|
10
|
+
require 'jquery-rails'
|
|
11
|
+
require 'jquery-ui-rails'
|
|
8
12
|
require 'koala'
|
|
9
|
-
require 'twitter'
|
|
10
13
|
require 'omniauth-twitter'
|
|
11
|
-
require 'jquery-rails'
|
|
12
|
-
require 'instagram'
|
|
13
|
-
require 'turbolinks'
|
|
14
|
-
require 'coffee-rails'
|
|
15
14
|
require 'sass'
|
|
15
|
+
require 'turbolinks'
|
|
16
|
+
require 'twitter'
|
|
16
17
|
|
|
17
18
|
module Adminpanel
|
|
18
19
|
end
|
data/lib/adminpanel/version.rb
CHANGED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
require 'rails/generators/active_record'
|
|
2
|
+
|
|
3
|
+
module Adminpanel
|
|
4
|
+
class CustomErrorsGenerator < ActiveRecord::Generators::Base
|
|
5
|
+
desc 'Generate ErrorsController, template and configure the app to show our errors'
|
|
6
|
+
source_root File.expand_path('../templates', __FILE__)
|
|
7
|
+
argument :name, type: :string, default: 'default', require: false
|
|
8
|
+
|
|
9
|
+
def copy_errors_controller
|
|
10
|
+
copy_file 'errors_controller.rb', 'app/controllers/errors_controller.rb'
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def copy_errors_template
|
|
14
|
+
copy_file 'show.html.erb', 'app/views/errors/show.html.erb'
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def inject_errors_into_routes
|
|
18
|
+
inject_into_file 'config/routes.rb', before: "\nend\n" do
|
|
19
|
+
"\n get \"(errors)/:status\", to: \"errors#show\", constraints: { status: /\d{3}/ }"
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def inject_error_handling_app_in_configuration
|
|
24
|
+
inject_into_file 'config/application.rb', after: 'class Application < Rails::Application' do
|
|
25
|
+
"\n config.exceptions_app = -> (env) { ErrorsController.action(:show).call(env) }"
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
def print_messages
|
|
30
|
+
puts "The generator tried it's best to insert into config/routes.rb"
|
|
31
|
+
puts ' get "(errors)/:status", to: "errors#show", constraints: { status: /\d{3}/ }'
|
|
32
|
+
puts 'and into config/application.rb'
|
|
33
|
+
puts ' config.exceptions_app = -> (env) { ErrorsController.action(:show).call(env) }'
|
|
34
|
+
puts 'Make sure those lines are actually there. You can customize your messages in app/controllers/errors_controller.rb and in app/views/errors/show.html.erb'
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
class ErrorsController < ActionController::Base
|
|
2
|
+
# layout to show with your errors. make sure it's not that fancy because we're
|
|
3
|
+
# handling errors.
|
|
4
|
+
layout 'application'
|
|
5
|
+
|
|
6
|
+
def show
|
|
7
|
+
@exception = env['action_dispatch.exception']
|
|
8
|
+
@status = ActionDispatch::ExceptionWrapper.new(env, @exception).status_code
|
|
9
|
+
|
|
10
|
+
# @response = ActionDispatch::ExceptionWrapper.rescue_responses[@exception.class.name]
|
|
11
|
+
# response contains the error name ex: 404 => "not found"
|
|
12
|
+
render status: @status
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<h1><%= @status %> :'(</h1>
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
module Adminpanel
|
|
2
2
|
class <%= class_name %> < ActiveRecord::Base
|
|
3
|
-
|
|
4
|
-
# include Adminpanel::
|
|
3
|
+
include Adminpanel::Base
|
|
4
|
+
# include Adminpanel::SortableGallery
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
belongs_to :<%= reference_name %>
|
|
7
7
|
|
|
8
8
|
mount_uploader :file, <%= class_name %>Uploader
|
|
9
9
|
|
|
10
|
+
before_destroy :remove_attachment
|
|
10
11
|
|
|
11
12
|
# def self.relation_field
|
|
12
13
|
# '<%= reference_name %>_id'
|
|
@@ -16,5 +17,9 @@ module Adminpanel
|
|
|
16
17
|
# '<%= class_name %>'
|
|
17
18
|
# end
|
|
18
19
|
|
|
20
|
+
private
|
|
21
|
+
def remove_attachment
|
|
22
|
+
self.remove_file!
|
|
23
|
+
end
|
|
19
24
|
end
|
|
20
25
|
end
|
|
@@ -15,6 +15,9 @@ module Adminpanel
|
|
|
15
15
|
# Process files as they are uploaded:
|
|
16
16
|
# process resize_to_fill: [1366, 768]
|
|
17
17
|
|
|
18
|
+
# 70 as a good default, make sure you know what's your priority
|
|
19
|
+
process quality: 70
|
|
20
|
+
|
|
18
21
|
# THE THUMB VERSION IS NECESSARY BY ADMINPANEL, DON'T REMOVE IT!!!!
|
|
19
22
|
version :thumb do
|
|
20
23
|
process resize_to_limit: [80, 80]
|
|
@@ -25,7 +28,7 @@ module Adminpanel
|
|
|
25
28
|
# process reside_and_pad: [120, 900]
|
|
26
29
|
# end
|
|
27
30
|
|
|
28
|
-
# EXAMPLE:
|
|
31
|
+
# EXAMPLE:
|
|
29
32
|
# original 300 x 300 (this is a square, thanks)
|
|
30
33
|
# _________________
|
|
31
34
|
# | |
|
|
@@ -4,11 +4,6 @@ module Adminpanel
|
|
|
4
4
|
desc 'Generate the migrations necessary to start the gem'
|
|
5
5
|
source_root File.expand_path("../templates", __FILE__)
|
|
6
6
|
argument :name, type: :string, default: 'default', require: false
|
|
7
|
-
class_option :'skip-category',
|
|
8
|
-
type: :boolean,
|
|
9
|
-
aliases: '-c',
|
|
10
|
-
default: false,
|
|
11
|
-
desc: 'Skip category skeleton and migration for it if true'
|
|
12
7
|
class_option :'skip-section-uploader',
|
|
13
8
|
type: :boolean,
|
|
14
9
|
aliases: '-u',
|
|
@@ -31,13 +26,6 @@ module Adminpanel
|
|
|
31
26
|
end
|
|
32
27
|
end
|
|
33
28
|
|
|
34
|
-
def create_category
|
|
35
|
-
if !options[:'skip-category']
|
|
36
|
-
copy_file 'category_template.rb', 'app/models/adminpanel/category.rb'
|
|
37
|
-
migration_template 'create_adminpanel_categories_table.rb', 'db/migrate/create_adminpanel_categories_table.rb'
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
|
|
41
29
|
def create_section_uploader
|
|
42
30
|
if !options[:'skip-section-uploader']
|
|
43
31
|
copy_file 'section_uploader.rb', 'app/uploaders/adminpanel/section_uploader.rb'
|
|
@@ -7,16 +7,18 @@ module Adminpanel
|
|
|
7
7
|
source_root File.expand_path('../templates', __FILE__)
|
|
8
8
|
desc 'Generate the resource files necessary to use a model'
|
|
9
9
|
class_option :'skip-gallery',
|
|
10
|
-
:
|
|
11
|
-
:
|
|
12
|
-
:
|
|
10
|
+
type: :boolean,
|
|
11
|
+
default: true,
|
|
12
|
+
desc: 'Choose if we shoud create the gallery for this resource, default: true (skip gallery)'
|
|
13
13
|
|
|
14
|
-
argument :fields,
|
|
14
|
+
argument :fields,
|
|
15
|
+
type: :array,
|
|
16
|
+
default: [],
|
|
17
|
+
banner: 'field[:type][:index] field[:type][:index]'
|
|
15
18
|
|
|
16
19
|
def change_fields_aliases
|
|
17
20
|
fields.each do |attribute|
|
|
18
|
-
|
|
19
|
-
case type
|
|
21
|
+
case attribute.split(':').second
|
|
20
22
|
when 'wysiwyg'
|
|
21
23
|
fields.delete(attribute)
|
|
22
24
|
fields << attribute.split(':').first + ':' + 'text'
|
|
@@ -35,8 +37,17 @@ module Adminpanel
|
|
|
35
37
|
end
|
|
36
38
|
|
|
37
39
|
def generate_migration
|
|
38
|
-
parameters = fields
|
|
39
|
-
parameters.delete_if
|
|
40
|
+
parameters = fields.dup
|
|
41
|
+
parameters.delete_if do |pair|
|
|
42
|
+
pair.split(':').second == 'has_many'
|
|
43
|
+
end
|
|
44
|
+
parameters.each do |attribute|
|
|
45
|
+
case attribute.split(':').second
|
|
46
|
+
when 'file'
|
|
47
|
+
parameters.delete(attribute)
|
|
48
|
+
parameters << attribute.split(':').first + ':' + 'string'
|
|
49
|
+
end
|
|
50
|
+
end
|
|
40
51
|
parameters << 'created_at:datetime' << 'updated_at:datetime'
|
|
41
52
|
invoke :migration, ["create_adminpanel_#{pluralized_name}", parameters]
|
|
42
53
|
end
|
|
@@ -47,6 +58,16 @@ module Adminpanel
|
|
|
47
58
|
end
|
|
48
59
|
end
|
|
49
60
|
|
|
61
|
+
def generate_files_uploaders
|
|
62
|
+
fields.each do |attribute|
|
|
63
|
+
assign_attributes_variables(attribute)
|
|
64
|
+
case @attr_type
|
|
65
|
+
when 'file'
|
|
66
|
+
template '../../gallery/templates/uploader.rb', "app/uploaders/adminpanel/#{class_name.underscore}_uploader.rb"
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
50
71
|
def add_resource_to_config
|
|
51
72
|
if setup_is_found? && is_a_resource?
|
|
52
73
|
inject_into_file 'config/initializers/adminpanel_setup.rb',
|
|
@@ -8,6 +8,17 @@ module Adminpanel
|
|
|
8
8
|
end
|
|
9
9
|
end
|
|
10
10
|
|
|
11
|
+
def needs_name?
|
|
12
|
+
fields.each do |attribute|
|
|
13
|
+
return false if attribute.split(':').first == 'name'
|
|
14
|
+
end
|
|
15
|
+
true
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def class_name
|
|
19
|
+
"#{resource_name}_#{@attr_field}".camelize
|
|
20
|
+
end
|
|
21
|
+
|
|
11
22
|
def belongs_to_field(resource)
|
|
12
23
|
"#{resource.singularize.downcase}_id"
|
|
13
24
|
end
|
|
@@ -96,6 +107,10 @@ module Adminpanel
|
|
|
96
107
|
attribute_hash(@attr_field, 'number_field')
|
|
97
108
|
end
|
|
98
109
|
|
|
110
|
+
def file_form_hash
|
|
111
|
+
attribute_hash(@attr_field, 'file_field')
|
|
112
|
+
end
|
|
113
|
+
|
|
99
114
|
def boolean_form_hash
|
|
100
115
|
attribute_hash(@attr_field, 'boolean')
|
|
101
116
|
end
|
|
@@ -147,7 +162,12 @@ module Adminpanel
|
|
|
147
162
|
def has_associations?
|
|
148
163
|
fields.each do |attribute|
|
|
149
164
|
assign_attributes_variables(attribute)
|
|
150
|
-
if @attr_type ==
|
|
165
|
+
if( @attr_type == 'images' ||
|
|
166
|
+
@attr_type == 'belongs_to' ||
|
|
167
|
+
@attr_type == 'has_many' ||
|
|
168
|
+
@attr_type == 'has_many_through' ||
|
|
169
|
+
@attr_type == 'file' ||
|
|
170
|
+
has_gallery? )
|
|
151
171
|
return true
|
|
152
172
|
end
|
|
153
173
|
end
|
|
@@ -158,13 +178,20 @@ module Adminpanel
|
|
|
158
178
|
association = ""
|
|
159
179
|
fields.each do |attribute|
|
|
160
180
|
assign_attributes_variables(attribute)
|
|
161
|
-
|
|
181
|
+
case @attr_type
|
|
182
|
+
when 'belongs_to'
|
|
162
183
|
association = "#{association}#{belongs_to_association(@attr_field)}"
|
|
163
|
-
|
|
184
|
+
when 'has_many' || 'has_many_through'
|
|
164
185
|
association = "#{association}#{has_many_association(@attr_field)}"
|
|
186
|
+
when 'file'
|
|
187
|
+
association = "#{association}#{file_assocation(@attr_field)}"
|
|
165
188
|
end
|
|
189
|
+
end
|
|
166
190
|
|
|
191
|
+
if has_gallery?
|
|
192
|
+
association = "#{association}mount_images :#{gallery_name.pluralize}\n\t\t"
|
|
167
193
|
end
|
|
194
|
+
|
|
168
195
|
association
|
|
169
196
|
end
|
|
170
197
|
|
|
@@ -175,12 +202,12 @@ module Adminpanel
|
|
|
175
202
|
def has_many_association(field)
|
|
176
203
|
return "# has_many :#{@attr_field.downcase}zations\n\t\t" +
|
|
177
204
|
"# has_many :#{@attr_field.pluralize.downcase}, " +
|
|
178
|
-
":
|
|
179
|
-
":
|
|
205
|
+
"through: :#{@attr_field.downcase}zations, " +
|
|
206
|
+
"dependent: :destroy\n\t\t"
|
|
180
207
|
end
|
|
181
208
|
|
|
182
|
-
def
|
|
183
|
-
return "
|
|
209
|
+
def file_assocation(field)
|
|
210
|
+
return "mount_uploader :#{field}, #{class_name}Uploader\n\t\t"
|
|
184
211
|
end
|
|
185
212
|
|
|
186
213
|
end
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
module Adminpanel
|
|
2
|
-
class <%= camelized_resource
|
|
2
|
+
class <%= camelized_resource -%> < ActiveRecord::Base
|
|
3
3
|
include Adminpanel::Base
|
|
4
4
|
|
|
5
5
|
<%= associations if has_associations? -%>
|
|
6
|
-
|
|
6
|
+
|
|
7
|
+
<% if needs_name? -%>
|
|
8
|
+
def name
|
|
9
|
+
self.id.to_s
|
|
10
|
+
end
|
|
11
|
+
<% end -%>
|
|
7
12
|
|
|
8
13
|
def self.form_attributes
|
|
9
14
|
[
|