c80_push 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (34) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +97 -0
  4. data/Rakefile +24 -0
  5. data/app/admin/c80_push/dealers.rb +96 -0
  6. data/app/admin/c80_push/regions.rb +42 -0
  7. data/app/admin/c80_push/x_c80_push.rb +5 -0
  8. data/app/assets/config/c80_push_manifest.js +2 -0
  9. data/app/assets/javascripts/backend/dealers.js +14 -0
  10. data/app/assets/javascripts/c80_push.js.coffee +3 -0
  11. data/app/assets/javascripts/lib_backend/init.js +28 -0
  12. data/app/assets/javascripts/lib_backend/init_select_picker.js +13 -0
  13. data/app/assets/stylesheets/c80_push/application.css +15 -0
  14. data/app/helpers/c80_push/admin_helper.rb +60 -0
  15. data/app/helpers/c80_push/application_helper.rb +4 -0
  16. data/app/models/c80_push/application_record.rb +5 -0
  17. data/app/models/c80_push/dealer.rb +21 -0
  18. data/app/models/c80_push/office.rb +23 -0
  19. data/app/models/c80_push/region.rb +17 -0
  20. data/config/locales/dealer/ru.yml +22 -0
  21. data/config/locales/office/ru.yml +22 -0
  22. data/config/locales/region/ru.yml +16 -0
  23. data/config/locales/ru.yml +5 -0
  24. data/config/routes.rb +2 -0
  25. data/db/migrate/20170626123939_create_c80_push_dealers.rb +11 -0
  26. data/db/migrate/20170626125252_create_c80_push_offices.rb +16 -0
  27. data/db/migrate/20170626125858_create_c80_push_regions.rb +9 -0
  28. data/db/migrate/20170626130000_create_c80_push_join_table_dealers_regions.rb +12 -0
  29. data/db/migrate/20170626130303_create_c80_push_join_table_offices_regions.rb +12 -0
  30. data/lib/c80_push/engine.rb +25 -0
  31. data/lib/c80_push/version.rb +3 -0
  32. data/lib/c80_push.rb +7 -0
  33. data/lib/tasks/c80_push_tasks.rake +4 -0
  34. metadata +90 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ba1fbec25d65fb7ac76579aa964df7eac47f9e4f
4
+ data.tar.gz: cfe8de83b8d9a2717e8e4a1e5b70aed41d7989fd
5
+ SHA512:
6
+ metadata.gz: a3fb805974f58a22f39e483839878b31d919780511c0188f1a8f26d6685b48b32fe9da5da0e4794e566184513165c7a520252a99386ae4614e448a15b1e4a614
7
+ data.tar.gz: f3d557be622dcd8c03f749c5ea3a2d01103846480d4c30e6f2e8d465989c45ae9edc7d8d8205ca196d743cf1eac65141f3cc117729240059bce4892ec102accd
data/MIT-LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright 2017 C80609A
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,97 @@
1
+ # C80Push
2
+
3
+ Добавляет функционал дилеров и офисов продаж.
4
+ Это *ActiveAdmin* plugin.
5
+ Использует *Bootstrap* и *Bootstrap Select*.
6
+
7
+ Содержит модели:
8
+
9
+ * Дилер
10
+ * Офис
11
+ * Регион
12
+
13
+ Добавляет пункт меню:
14
+
15
+ * Дилеры
16
+ * Список дилеров
17
+ * Регионы
18
+
19
+ ## Usage
20
+
21
+
22
+ ## Installation
23
+
24
+ Add this line to your application's Gemfile:
25
+
26
+ ```ruby
27
+ gem 'c80_push'
28
+ ```
29
+
30
+ And then execute:
31
+
32
+ ```bash
33
+ $ bundle
34
+ $ rake db:migrate
35
+ ```
36
+
37
+ Add this line to host app's `application_controller.rb`:
38
+
39
+ ```ruby
40
+ helper C80Push::Engine.helpers
41
+ ```
42
+
43
+ Add these to host app's `active_admin.js.coffee`:
44
+
45
+ ```js
46
+ #= require bootstrap
47
+ #= require bootstrap-select
48
+ #= require c80_yax
49
+ #= require c80_push
50
+ ```
51
+
52
+ ## Цитата из ТЗ
53
+
54
+ > Данный раздел представляет собой список компаний, у которых указаны
55
+ > адреса офисов продаж и другие контактные данные.
56
+ >
57
+ > Эти данные пользователь видит на интерактивной карте
58
+ > (от GoogleMaps или Яндекс. Карты - на выбор).
59
+ >
60
+ > Попадая на данную страницу, пользователь сначала видит интерактивную
61
+ > карту (на которой отмечены все адреса офисов продаж и дилеров) и
62
+ > селект, с помощью которого можно выбрать один из регионов.
63
+ >
64
+ > Выбрав тот или иной регион, пользователь видит слева от
65
+ > интерактивной карты список компаний, а также адреса их офисов продаж.
66
+ >
67
+ > Офисы продаж ORIMA и копании-дилеры (и адреса их офисов продаж)
68
+ > разграничены на интерактивной карте маркерами разного цвета.
69
+ >
70
+ > В списке слева от интерактивной карты сначала отображаются офисы
71
+ > продаж компании ORIMA, а затем список компаний-дилеров
72
+ > (и адресов их офисов продаж).
73
+ >
74
+ > С помощью инструментов панели управления сайтом можно создавать
75
+ > редактировать и удалять компании, задавать/изменять/удалять
76
+ > адреса офисов продаж и другие характеристики характеристики:
77
+ >
78
+ > - Название*
79
+ > - Офисы продаж (как минимум один):
80
+ > - Название*
81
+ > - Адрес*
82
+ > - gps*
83
+ > - Телефон*
84
+ > - Сайт
85
+ > - Принадлежность к региону (офиса)
86
+ > - Принадлежность к региону (дилера)
87
+ >
88
+ > По клику на один из пунктов в списке слева пользователю на
89
+ > карте демонстрируется только один маркер, который соответствует
90
+ > данному пункту.
91
+ >
92
+ > На странице присутсвует возможность фильтрации по региону.
93
+ > Выбрав регион пользователь видит в списке слева и на
94
+ > интерактивной карте только те офисы продаж/склады и дилеров,
95
+ > которые соответствую данному региону.
96
+ > Каждая компания имеет заранее предопределенное свойство "id".
97
+
data/Rakefile ADDED
@@ -0,0 +1,24 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'C80Push'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.md')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ end
16
+
17
+
18
+
19
+ load 'rails/tasks/statistics.rake'
20
+
21
+
22
+
23
+ require 'bundler/gem_tasks'
24
+
@@ -0,0 +1,96 @@
1
+ ActiveAdmin.register C80Push::Dealer, as: 'Dealer' do
2
+
3
+ menu :label => proc{ I18n.t('c80_push.active_admin.menu.dealer')},
4
+ :parent => 'x_c80_push',
5
+ :priority => 1
6
+
7
+ permit_params :title,
8
+ :ord,
9
+ :site,
10
+ :email,
11
+ :region_ids => [],
12
+ :offices_attributes => [
13
+ :id,
14
+ :ord,
15
+ :title,
16
+ :addr,
17
+ :gps,
18
+ :tel,
19
+ :site,
20
+ :email,
21
+ :_destroy,
22
+ :region_ids => []
23
+ ]
24
+
25
+ config.batch_actions = false
26
+ config.sort_order = 'ord_asc'
27
+ before_filter :skip_sidebar!, :only => :index
28
+
29
+ index do
30
+ id_column
31
+ column :ord
32
+ column :title do |dealer|
33
+ dealer_col_title(dealer)
34
+ end
35
+ # column :site
36
+ # column :email
37
+ column :regions do |dealer|
38
+ first_region(dealer)
39
+ end
40
+ column :offices do |dealer|
41
+ ul_offices(dealer)
42
+ end
43
+
44
+ actions
45
+ end
46
+
47
+ form(:html => {:multipart => true}) do |f|
48
+
49
+ f.inputs 'Свойства' do
50
+ f.input :title
51
+ f.input :ord
52
+ f.input :site, hint: I18n.t('c80_push.active_admin.hints.site')
53
+ f.input :email, hint: I18n.t('c80_push.active_admin.hints.email')
54
+ f.input :regions,
55
+ :as => :select,
56
+ :input_html => {
57
+ :title => '',
58
+ :class => 'selectpicker',
59
+ :data => {
60
+ :size => 10,
61
+ :width => '600px'
62
+ },
63
+ :multiple => false
64
+ },
65
+ :include_blank => true
66
+
67
+ f.has_many :offices,
68
+ :allow_destroy => true,
69
+ :heading => I18n.t('activerecord.models.office.other') do |office|
70
+ office.input :title
71
+ office.input :ord
72
+ office.input :addr
73
+ office.input :gps
74
+ office.input :tel, hint: I18n.t('c80_push.active_admin.hints.tel')
75
+ office.input :site, hint: I18n.t('c80_push.active_admin.hints.site')
76
+ office.input :email, hint: I18n.t('c80_push.active_admin.hints.email')
77
+ office.input :regions,
78
+ :as => :select,
79
+ :input_html => {
80
+ :title => '',
81
+ :class => 'selectpicker',
82
+ :data => {
83
+ :size => 10,
84
+ :width => '600px'
85
+ },
86
+ :multiple => false
87
+ },
88
+ :include_blank => true
89
+ end
90
+
91
+ end
92
+
93
+ f.actions
94
+ end
95
+
96
+ end
@@ -0,0 +1,42 @@
1
+ ActiveAdmin.register C80Push::Region, as: 'Region' do
2
+
3
+ menu :label => proc{ I18n.t('c80_push.active_admin.menu.region')},
4
+ :parent => 'x_c80_push',
5
+ :priority => 2
6
+
7
+ permit_params :title,
8
+ :ord,
9
+ :office_ids => [],
10
+ :dealer_ids => []
11
+
12
+ config.batch_actions = false
13
+ config.sort_order = 'ord_asc'
14
+ before_filter :skip_sidebar!, :only => :index
15
+
16
+ index do
17
+ id_column
18
+ column :title
19
+ column :ord
20
+ column :offices do |region|
21
+ ul_offices(region)
22
+ end
23
+ column :dealers do |region|
24
+ ul_dealers(region)
25
+ end
26
+
27
+ actions
28
+ end
29
+
30
+ form(:html => {:multipart => true}) do |f|
31
+
32
+ f.inputs 'Свойства' do
33
+ f.input :title
34
+ f.input :ord
35
+ f.input :offices, :as => :check_boxes
36
+ f.input :dealers, :as => :check_boxes
37
+ end
38
+
39
+ f.actions
40
+ end
41
+
42
+ end
@@ -0,0 +1,5 @@
1
+ ActiveAdmin.register_page 'x_c80_push' do
2
+ menu :label => proc{ I18n.t("c80_push.active_admin.menu.core_item") },
3
+ :priority => 3,
4
+ :url => '#'
5
+ end
@@ -0,0 +1,2 @@
1
+ //= link_directory ../javascripts/c80_push .js
2
+ //= link_directory ../stylesheets/c80_push .css
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ var f_edit = function (){
4
+ init_select_picker();
5
+ };
6
+
7
+ var f_new = function (){
8
+ init_select_picker();
9
+ };
10
+
11
+ C80_PUSH.dealers = {
12
+ edit: f_edit,
13
+ "new": f_new
14
+ };
@@ -0,0 +1,3 @@
1
+ #= require lib_backend/init
2
+ #= require lib_backend/init_select_picker
3
+ #= require_tree ./backend
@@ -0,0 +1,28 @@
1
+ // initialize your global object will all your model names
2
+ var C80_PUSH = {
3
+
4
+ };
5
+
6
+ jQuery(document).ready(function ($) {
7
+ // get the page action
8
+ var action, model, b = $("body");
9
+ if (b.hasClass("edit")) {
10
+ action = "edit";
11
+ } else if (b.hasClass("view")) {
12
+ action = "view";
13
+ } else if (b.hasClass("index")) {
14
+ action = "index"
15
+ } else if (b.hasClass("new")) {
16
+ action = "new"
17
+ }
18
+
19
+ // run the code specific to a model and an action
20
+ for (var m in C80_PUSH) {
21
+ if (b.hasClass("admin_" + m)) {
22
+ if (C80_PUSH[m][action] && typeof C80_PUSH[m][action] == "function") {
23
+ C80_PUSH[m][action]();
24
+ break;
25
+ }
26
+ }
27
+ }
28
+ });
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ // при клике по habtm кнопке "добавить",
4
+ // на всякий случай,
5
+ // инициализируем в появившемся на экране блоке
6
+ // возможный bootstrap select picker
7
+ var init_select_picker = function (){
8
+ $('.has_many_add').on('click', function (){
9
+ setTimeout(function() {
10
+ $('.selectpicker').selectpicker();
11
+ }, 40);
12
+ });
13
+ };
@@ -0,0 +1,15 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
10
+ * files in this directory. Styles in this file should be added after the last require_* statement.
11
+ * It is generally better to create a new file per style scope.
12
+ *
13
+ *= require_tree .
14
+ *= require_self
15
+ */
@@ -0,0 +1,60 @@
1
+ module C80Push
2
+ module AdminHelper
3
+
4
+ # noinspection RubyResolve
5
+ def first_region(subj)
6
+ res = '-'
7
+ unless subj.regions.count.zero?
8
+ res = subj.regions.first.title
9
+ end
10
+ res.html_safe
11
+ end
12
+
13
+ # noinspection RubyResolve
14
+ def ul_offices(subj)
15
+ res = '-'
16
+ unless subj.offices.count.zero?
17
+ res = ''
18
+ subj.offices.def_order.each do |office|
19
+ e = "<li>#{office.title}</li>"
20
+ res += e
21
+ end
22
+ res = "<ul>#{res}</ul>".html_safe
23
+ end
24
+ res
25
+ end
26
+
27
+ # noinspection RubyResolve
28
+ def ul_dealers(subj)
29
+ res = '-'
30
+ unless subj.dealers.count.zero?
31
+ res = ''
32
+ subj.dealers.def_order.each do |dealer|
33
+ e = "<li>#{dealer.title}</li>"
34
+ res += e
35
+ end
36
+ res = "<ul>#{res}</ul>".html_safe
37
+ end
38
+ res
39
+ end
40
+
41
+ def dealer_col_title(dealer)
42
+ res = "#{dealer.title}"
43
+ res += "<br><sub>email: #{format_val(dealer.email)}</sub>"
44
+ res += "<br><sub>site: #{format_val(dealer.site)}</sub>"
45
+ res.html_safe
46
+ end
47
+
48
+ private
49
+
50
+ def format_val(val)
51
+ res = '-'
52
+ unless val.blank?
53
+ res = val
54
+ end
55
+ "<span class='c80_md_link_color'>#{res}</span>".html_safe
56
+ end
57
+
58
+ end
59
+
60
+ end
@@ -0,0 +1,4 @@
1
+ module C80Push
2
+ module ApplicationHelper
3
+ end
4
+ end
@@ -0,0 +1,5 @@
1
+ module C80Push
2
+ class ApplicationRecord < ActiveRecord::Base
3
+ self.abstract_class = true
4
+ end
5
+ end
@@ -0,0 +1,21 @@
1
+ module C80Push
2
+ class Dealer < ActiveRecord::Base
3
+ has_and_belongs_to_many :regions
4
+ has_many :offices, :dependent => :destroy
5
+ accepts_nested_attributes_for :offices,
6
+ :reject_if => lambda { |attributes|
7
+ !attributes.present?
8
+ },
9
+ :allow_destroy => true
10
+
11
+ validates :title,
12
+ :uniqueness => true,
13
+ :presence => true
14
+
15
+ validates :ord,
16
+ :presence => true
17
+
18
+ scope :def_order, -> { order(:ord => :asc) }
19
+
20
+ end
21
+ end
@@ -0,0 +1,23 @@
1
+ module C80Push
2
+ class Office < ActiveRecord::Base
3
+ has_and_belongs_to_many :regions
4
+ belongs_to :dealer
5
+
6
+ scope :def_order, -> { order(:ord => :asc) }
7
+
8
+ validates :ord,
9
+ :presence => true
10
+
11
+ validates :title,
12
+ :presence => true
13
+
14
+ validates :addr,
15
+ :presence => true
16
+
17
+ validates :gps,
18
+ :presence => true
19
+
20
+ validates :tel,
21
+ :presence => true
22
+ end
23
+ end
@@ -0,0 +1,17 @@
1
+ module C80Push
2
+ class Region < ActiveRecord::Base
3
+ has_and_belongs_to_many :dealers
4
+ has_and_belongs_to_many :offices
5
+
6
+ scope :def_order, -> { order(:ord => :asc) }
7
+
8
+ validates :title,
9
+ :uniqueness => true,
10
+ :presence => true,
11
+ :length => { in: 2..90 }
12
+
13
+ validates :ord,
14
+ :presence => true
15
+
16
+ end
17
+ end
@@ -0,0 +1,22 @@
1
+ ru:
2
+ c80_push:
3
+ active_admin:
4
+ hints:
5
+ site: 'Если сайтов несколько, перечислите их через запятую'
6
+ email: 'Если адресов несколько, перечислите их через запятую'
7
+ menu:
8
+ dealer: 'Список дилеров'
9
+ activerecord:
10
+ models:
11
+ dealer:
12
+ one: 'дилера'
13
+ other: 'Дилеры'
14
+ attributes:
15
+ c80_push/dealer:
16
+ id: 'id'
17
+ ord: 'Порядковый №'
18
+ title: 'Название'
19
+ site: 'Сайт(ы)'
20
+ email: 'Email адрес(а)'
21
+ regions: 'Регион'
22
+ offices: 'Офисы'
@@ -0,0 +1,22 @@
1
+ ru:
2
+ c80_push:
3
+ active_admin:
4
+ hints:
5
+ tel: 'Если номеров несколько, перечислите их через запятую'
6
+ site: 'Если сайтов несколько, перечислите их через запятую'
7
+ email: 'Если адресов несколько, перечислите их через запятую'
8
+ activerecord:
9
+ models:
10
+ office:
11
+ one: 'офис'
12
+ other: 'Офисы'
13
+ attributes:
14
+ c80_push/office:
15
+ ord: 'Порядковый №'
16
+ title: 'Название'
17
+ addr: 'Адрес'
18
+ gps: 'GPS-координаты'
19
+ tel: 'Телефон(ы)'
20
+ site: 'Сайт(ы)'
21
+ email: 'Email адрес(а)'
22
+ regions: 'Регион'
@@ -0,0 +1,16 @@
1
+ ru:
2
+ c80_push:
3
+ active_admin:
4
+ menu:
5
+ region: 'Регионы'
6
+ activerecord:
7
+ models:
8
+ region:
9
+ one: 'регион'
10
+ other: 'Регионы'
11
+ attributes:
12
+ c80_push/region:
13
+ ord: 'Порядковый №'
14
+ title: 'Название'
15
+ dealers: 'Дилеры'
16
+ offices: 'Офисы'
@@ -0,0 +1,5 @@
1
+ ru:
2
+ c80_push:
3
+ active_admin:
4
+ menu:
5
+ core_item: 'Дилеры'
data/config/routes.rb ADDED
@@ -0,0 +1,2 @@
1
+ C80Push::Engine.routes.draw do
2
+ end
@@ -0,0 +1,11 @@
1
+ class CreateC80PushDealers < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :c80_push_dealers do |t|
4
+ t.integer :ord, null: false, default: 0
5
+ t.string :title, null: false, limit: 90
6
+ t.string :site
7
+ t.string :email
8
+ t.timestamps null: false
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,16 @@
1
+ class CreateC80PushOffices < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :c80_push_offices do |t|
4
+ t.string :ord, null: false, default: 0
5
+ t.string :title, null: false
6
+ t.string :addr, null: false
7
+ t.string :gps, null: false
8
+ t.string :tel, null: false
9
+ t.string :email
10
+ t.string :site
11
+ t.references :dealer, index: true
12
+
13
+ t.timestamps null: false
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,9 @@
1
+ class CreateC80PushRegions < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :c80_push_regions do |t|
4
+ t.integer :ord, null: false, default: 0
5
+ t.string :title, null: false, limit: 90
6
+ t.timestamps null: false
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,12 @@
1
+ class CreateC80PushJoinTableDealersRegions < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :c80_push_dealers_regions, :id => false do |t|
4
+ t.integer :dealer_id, :null => false
5
+ t.integer :region_id, :null => false
6
+ end
7
+
8
+ add_index :c80_push_dealers_regions, [:dealer_id, :region_id], name: 'too_long_push1'
9
+ add_index :c80_push_dealers_regions, [:region_id, :dealer_id], name: 'too_long_push2'
10
+
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ class CreateC80PushJoinTableOfficesRegions < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_table :c80_push_offices_regions, :id => false do |t|
4
+ t.integer :office_id, :null => false
5
+ t.integer :region_id, :null => false
6
+ end
7
+
8
+ add_index :c80_push_offices_regions, [:office_id, :region_id], name: 'too_long_push3'
9
+ add_index :c80_push_offices_regions, [:region_id, :office_id], name: 'too_long_push4'
10
+
11
+ end
12
+ end
@@ -0,0 +1,25 @@
1
+ module C80Push
2
+ class Engine < ::Rails::Engine
3
+ config.i18n.load_path += Dir[config.root.join('config', 'locales', '*','*.{yml}').to_s]
4
+ isolate_namespace C80Push
5
+
6
+ initializer :c80_push_engine do
7
+ if defined?(ActiveAdmin)
8
+ ActiveAdmin.application.load_paths += Dir["#{config.root}/app/helpers/**/"]
9
+ ActiveAdmin.application.load_paths += Dir["#{config.root}/app/models/**/"]
10
+ #ActiveAdmin.application.load_paths += Dir["#{config.root}/app/models/concerns/**/"]
11
+ ActiveAdmin.application.load_paths += Dir["#{config.root}/app/admin/c80_push/**/"]
12
+ # ActiveAdmin.application.load_paths += Dir["#{config.root}/app/jobs/**/"]
13
+ end
14
+ end
15
+
16
+ initializer :append_migrations do |app|
17
+ unless app.root.to_s.match root.to_s
18
+ config.paths['db/migrate'].expanded.each do |expanded_path|
19
+ app.config.paths['db/migrate'] << expanded_path
20
+ end
21
+ end
22
+ end
23
+
24
+ end
25
+ end
@@ -0,0 +1,3 @@
1
+ module C80Push
2
+ VERSION = '0.1.0'
3
+ end
data/lib/c80_push.rb ADDED
@@ -0,0 +1,7 @@
1
+ require 'c80_push/engine'
2
+
3
+ module C80Push
4
+ def self.table_name_prefix
5
+ 'c80_push_'
6
+ end
7
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :c80_push do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,90 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: c80_push
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - C80609A
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-06-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ description: Добавляет функционал дилеров и офисов продаж
28
+ email:
29
+ - c080609a@gmail.com
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - MIT-LICENSE
35
+ - README.md
36
+ - Rakefile
37
+ - app/admin/c80_push/dealers.rb
38
+ - app/admin/c80_push/regions.rb
39
+ - app/admin/c80_push/x_c80_push.rb
40
+ - app/assets/config/c80_push_manifest.js
41
+ - app/assets/javascripts/backend/dealers.js
42
+ - app/assets/javascripts/c80_push.js.coffee
43
+ - app/assets/javascripts/lib_backend/init.js
44
+ - app/assets/javascripts/lib_backend/init_select_picker.js
45
+ - app/assets/stylesheets/c80_push/application.css
46
+ - app/helpers/c80_push/admin_helper.rb
47
+ - app/helpers/c80_push/application_helper.rb
48
+ - app/models/c80_push/application_record.rb
49
+ - app/models/c80_push/dealer.rb
50
+ - app/models/c80_push/office.rb
51
+ - app/models/c80_push/region.rb
52
+ - config/locales/dealer/ru.yml
53
+ - config/locales/office/ru.yml
54
+ - config/locales/region/ru.yml
55
+ - config/locales/ru.yml
56
+ - config/routes.rb
57
+ - db/migrate/20170626123939_create_c80_push_dealers.rb
58
+ - db/migrate/20170626125252_create_c80_push_offices.rb
59
+ - db/migrate/20170626125858_create_c80_push_regions.rb
60
+ - db/migrate/20170626130000_create_c80_push_join_table_dealers_regions.rb
61
+ - db/migrate/20170626130303_create_c80_push_join_table_offices_regions.rb
62
+ - lib/c80_push.rb
63
+ - lib/c80_push/engine.rb
64
+ - lib/c80_push/version.rb
65
+ - lib/tasks/c80_push_tasks.rake
66
+ homepage: https://github.com/c80609a/c80_push
67
+ licenses:
68
+ - MIT
69
+ metadata: {}
70
+ post_install_message:
71
+ rdoc_options: []
72
+ require_paths:
73
+ - lib
74
+ required_ruby_version: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '0'
79
+ required_rubygems_version: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ requirements: []
85
+ rubyforge_project:
86
+ rubygems_version: 2.6.11
87
+ signing_key:
88
+ specification_version: 4
89
+ summary: Пушеры
90
+ test_files: []