digital_heroes_startkit 0.1.1

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 (189) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +37 -0
  4. data/Rakefile +36 -0
  5. data/app/assets/config/digital_heroes_startkit_manifest.js +0 -0
  6. data/app/assets/javascripts/authorization.coffee +79 -0
  7. data/app/assets/javascripts/avatar.coffee +16 -0
  8. data/app/assets/javascripts/datepicker.js +2 -0
  9. data/app/assets/javascripts/digital_heroes_startkit/cable.js +13 -0
  10. data/app/assets/javascripts/digital_heroes_startkit/channels/pills.coffee +23 -0
  11. data/app/assets/javascripts/digital_heroes_startkit/input.coffee +5 -0
  12. data/app/assets/javascripts/digital_heroes_startkit/pills.coffee +2 -0
  13. data/app/assets/javascripts/digital_heroes_startkit/snap.svg-min.js +21 -0
  14. data/app/assets/javascripts/digital_heroes_startkit.js +26 -0
  15. data/app/assets/javascripts/profile.coffee +53 -0
  16. data/app/assets/javascripts/profile_geodata.coffee +68 -0
  17. data/app/assets/javascripts/reg_fields_checkup.coffee +96 -0
  18. data/app/assets/javascripts/registration.coffee +35 -0
  19. data/app/assets/javascripts/resurrection.coffee +20 -0
  20. data/app/channels/application_cable/channel.rb +4 -0
  21. data/app/channels/application_cable/connection.rb +4 -0
  22. data/app/channels/pills_channel.rb +10 -0
  23. data/app/controllers/avatars_controller.rb +11 -0
  24. data/app/controllers/clients_controller.rb +62 -0
  25. data/app/controllers/email_access_cards_controller.rb +28 -0
  26. data/app/controllers/geodata_controller.rb +84 -0
  27. data/app/controllers/nickname_access_cards_controller.rb +30 -0
  28. data/app/controllers/oauth_controller.rb +178 -0
  29. data/app/controllers/openid_controller.rb +124 -0
  30. data/app/controllers/phone_access_cards_controller.rb +28 -0
  31. data/app/controllers/profile_controller.rb +114 -0
  32. data/app/controllers/response_controller.rb +17 -0
  33. data/app/controllers/start_kit_controller.rb +86 -0
  34. data/app/controllers/user_cards_controller.rb +305 -0
  35. data/app/jobs/log_analyzer_job.rb +50 -0
  36. data/app/jobs/password_resurrection_kill_job.rb +9 -0
  37. data/app/mailers/admin_mailer.rb +9 -0
  38. data/app/mailers/client_mailer.rb +3 -0
  39. data/app/mailers/kreator_mailer.rb +9 -0
  40. data/app/mailers/manager_mailer.rb +9 -0
  41. data/app/mailers/prometeus_mailer.rb +16 -0
  42. data/app/mailers/user_cards_mailer.rb +9 -0
  43. data/app/models/admin.rb +3 -0
  44. data/app/models/avatar.rb +23 -0
  45. data/app/models/city.rb +7 -0
  46. data/app/models/client.rb +31 -0
  47. data/app/models/country.rb +7 -0
  48. data/app/models/delayed_job.rb +20 -0
  49. data/app/models/email_access_card.rb +30 -0
  50. data/app/models/kreator.rb +3 -0
  51. data/app/models/log_error.rb +56 -0
  52. data/app/models/log_error_type.rb +3 -0
  53. data/app/models/manager.rb +3 -0
  54. data/app/models/nickname_access_card.rb +18 -0
  55. data/app/models/oauth_access_card.rb +38 -0
  56. data/app/models/phone_access_card.rb +19 -0
  57. data/app/models/prometeus.rb +50 -0
  58. data/app/models/user_card.rb +158 -0
  59. data/app/views/admin_mailer/greetings_email.html.erb +191 -0
  60. data/app/views/client_mailer/greetings_email.html.erb +191 -0
  61. data/app/views/kreator_mailer/greetings_email.html.erb +191 -0
  62. data/app/views/manager_mailer/greetings_email.html.erb +191 -0
  63. data/app/views/oauth/verify.slim +1 -0
  64. data/app/views/profile/_add_avatar.slim +12 -0
  65. data/app/views/profile/_user_profile.slim +95 -0
  66. data/app/views/profile/index.slim +12 -0
  67. data/app/views/user_cards/authorization.slim +72 -0
  68. data/app/views/user_cards/confirmation_but_access_code.slim +7 -0
  69. data/app/views/user_cards/confirmation_complete.slim +7 -0
  70. data/app/views/user_cards/registration.slim +86 -0
  71. data/app/views/user_cards/resurrection.slim +19 -0
  72. data/app/views/user_cards/resurrection_but_access_code.slim +7 -0
  73. data/app/views/user_cards/resurrection_no_access_code.slim +7 -0
  74. data/app/views/user_cards_mailer/email.html.erb +191 -0
  75. data/app/views/user_cards_mailer/resurrection.html.erb +191 -0
  76. data/config/initializers/session_manager.rb +2 -0
  77. data/config/routes.rb +53 -0
  78. data/lib/access_control.rb +3 -0
  79. data/lib/digital_heroes_startkit/engine.rb +25 -0
  80. data/lib/digital_heroes_startkit/version.rb +3 -0
  81. data/lib/digital_heroes_startkit.rb +5 -0
  82. data/lib/generators/digital_heroes_startkit/install_generator.rb +61 -0
  83. data/lib/generators/project/Capfile +36 -0
  84. data/lib/generators/project/Procfile +3 -0
  85. data/lib/generators/project/app/assets/stylesheets/application.scss +16 -0
  86. data/lib/generators/project/app/assets/stylesheets/base/_auth.scss +37 -0
  87. data/lib/generators/project/app/assets/stylesheets/base/_buttons.scss +62 -0
  88. data/lib/generators/project/app/assets/stylesheets/base/_checkbox.scss +71 -0
  89. data/lib/generators/project/app/assets/stylesheets/base/_datepicker.scss +620 -0
  90. data/lib/generators/project/app/assets/stylesheets/base/_form.scss +81 -0
  91. data/lib/generators/project/app/assets/stylesheets/base/_notice.scss +14 -0
  92. data/lib/generators/project/app/assets/stylesheets/base/_pills.scss +39 -0
  93. data/lib/generators/project/app/assets/stylesheets/base/_profile.scss +67 -0
  94. data/lib/generators/project/app/assets/stylesheets/base/_reset.scss +49 -0
  95. data/lib/generators/project/app/assets/stylesheets/base/_social.scss +52 -0
  96. data/lib/generators/project/app/assets/stylesheets/base/_user.scss +0 -0
  97. data/lib/generators/project/app/assets/stylesheets/base/_user_avatar.scss +18 -0
  98. data/lib/generators/project/app/assets/stylesheets/base/styles.scss.txt +35 -0
  99. data/lib/generators/project/app/assets/stylesheets/plugins/sumoselect.scss +296 -0
  100. data/lib/generators/project/app/controllers/application_controller.rb +3 -0
  101. data/lib/generators/project/app/views/layouts/_counts.html.erb +29 -0
  102. data/lib/generators/project/app/views/layouts/_footer.slim +6 -0
  103. data/lib/generators/project/app/views/layouts/_head.slim +7 -0
  104. data/lib/generators/project/app/views/layouts/_header.slim +47 -0
  105. data/lib/generators/project/app/views/layouts/_mobile_menu.slim +11 -0
  106. data/lib/generators/project/app/views/layouts/application.slim +26 -0
  107. data/lib/generators/project/app/views/layouts/mailer.html.erb +13 -0
  108. data/lib/generators/project/app/views/layouts/mailer.text.erb +1 -0
  109. data/lib/generators/project/config/application.access.yml +66 -0
  110. data/lib/generators/project/config/application.db.yml +5 -0
  111. data/lib/generators/project/config/application.google.yml +3 -0
  112. data/lib/generators/project/config/application.oauth.yml +135 -0
  113. data/lib/generators/project/config/application.robokassa.yml +10 -0
  114. data/lib/generators/project/config/application.sendgrid.yml +3 -0
  115. data/lib/generators/project/config/application.telegram.yml +22 -0
  116. data/lib/generators/project/config/application.yml +28 -0
  117. data/lib/generators/project/config/cable.yml +6 -0
  118. data/lib/generators/project/config/capistrano.yml +78 -0
  119. data/lib/generators/project/config/database.yml +52 -0
  120. data/lib/generators/project/config/deploy/application.secrets.yml +4 -0
  121. data/lib/generators/project/config/deploy/domain.crt +92 -0
  122. data/lib/generators/project/config/deploy/domain.key +51 -0
  123. data/lib/generators/project/config/deploy/nginx.conf +50 -0
  124. data/lib/generators/project/config/deploy/production.rb +67 -0
  125. data/lib/generators/project/config/deploy/secrets.yml +32 -0
  126. data/lib/generators/project/config/deploy/secrets.yml.enc +1 -0
  127. data/lib/generators/project/config/deploy/secrets.yml.key +1 -0
  128. data/lib/generators/project/config/deploy/staging.rb +61 -0
  129. data/lib/generators/project/config/deploy/virgin_conf/database.yml +42 -0
  130. data/lib/generators/project/config/deploy/virgin_conf/nginx_site.conf +47 -0
  131. data/lib/generators/project/config/deploy/virgin_conf/nginx_site_ssl.conf +57 -0
  132. data/lib/generators/project/config/deploy/virgin_conf/postfix.cf +685 -0
  133. data/lib/generators/project/config/deploy/virgin_conf/production.rb +67 -0
  134. data/lib/generators/project/config/deploy/virgin_conf/puma.rb +66 -0
  135. data/lib/generators/project/config/deploy/virgin_sh/capistrano.sh +18 -0
  136. data/lib/generators/project/config/deploy/virgin_sh/foreman.sh +19 -0
  137. data/lib/generators/project/config/deploy/virgin_sh/rvm_install.sh +10 -0
  138. data/lib/generators/project/config/deploy.rb +377 -0
  139. data/lib/generators/project/config/environments/development.rb +91 -0
  140. data/lib/generators/project/config/environments/production.rb +142 -0
  141. data/lib/generators/project/config/initializers/session_store.rb +3 -0
  142. data/lib/generators/project/config/locales/ru.yml +444 -0
  143. data/lib/generators/project/db/migrate/10_create_user_cards.rb +19 -0
  144. data/lib/generators/project/db/migrate/12_create_email_access_cards.rb +15 -0
  145. data/lib/generators/project/db/migrate/13_create_nickname_access_cards.rb +15 -0
  146. data/lib/generators/project/db/migrate/14_create_phone_access_cards.rb +16 -0
  147. data/lib/generators/project/db/migrate/15_create_oauth_access_cards.rb +19 -0
  148. data/lib/generators/project/db/migrate/1_create_kreators.rb +9 -0
  149. data/lib/generators/project/db/migrate/21_create_avatars.rb +12 -0
  150. data/lib/generators/project/db/migrate/30_create_countries.rb +12 -0
  151. data/lib/generators/project/db/migrate/32_create_cities.rb +12 -0
  152. data/lib/generators/project/db/migrate/3_create_admins.rb +9 -0
  153. data/lib/generators/project/db/migrate/44_add_sessions_table.rb +12 -0
  154. data/lib/generators/project/db/migrate/4_create_managers.rb +10 -0
  155. data/lib/generators/project/db/migrate/5_create_clients.rb +17 -0
  156. data/lib/generators/project/db/migrate/60_create_log_error_types.rb +9 -0
  157. data/lib/generators/project/db/migrate/61_create_log_errors.rb +12 -0
  158. data/lib/generators/project/db/migrate/78_create_delayed_jobs.rb +22 -0
  159. data/lib/generators/project/db/seeds.rb +27 -0
  160. data/lib/generators/project/geodata/cities.csv +25305 -0
  161. data/lib/generators/project/geodata/countries.csv +250 -0
  162. data/lib/generators/project/public/401.html +75 -0
  163. data/lib/generators/project/public/404.html +67 -0
  164. data/lib/generators/project/public/422.html +67 -0
  165. data/lib/generators/project/public/500.html +66 -0
  166. data/lib/generators/project/public/_receiver.html +10 -0
  167. data/lib/generators/project/public/apple-touch-icon-precomposed.png +0 -0
  168. data/lib/generators/project/public/apple-touch-icon.png +0 -0
  169. data/lib/generators/project/public/favicon.ico +0 -0
  170. data/lib/generators/project/public/robots.txt +1 -0
  171. data/lib/happy_birthday.rb +5 -0
  172. data/lib/link.rb +16 -0
  173. data/lib/oauth/oauth.rb +72 -0
  174. data/lib/oauth/oauth_fb.rb +48 -0
  175. data/lib/oauth/oauth_gg.rb +50 -0
  176. data/lib/oauth/oauth_im.rb +51 -0
  177. data/lib/oauth/oauth_mr.rb +53 -0
  178. data/lib/oauth/oauth_vk.rb +3 -0
  179. data/lib/oauth/oauth_yx.rb +51 -0
  180. data/lib/openid/openid.rb +46 -0
  181. data/lib/openid/openid_st.rb +2 -0
  182. data/lib/phone_cutter.rb +9 -0
  183. data/lib/response.rb +51 -0
  184. data/lib/session_manager.rb +47 -0
  185. data/lib/sms_lib.rb +30 -0
  186. data/lib/social_networks.rb +328 -0
  187. data/lib/tasks/digital_heroes_startkit_tasks.rake +83 -0
  188. data/lib/telegram.rb +33 -0
  189. metadata +497 -0
@@ -0,0 +1,142 @@
1
+ Rails.application.configure do
2
+ # Settings specified here will take precedence over those in config/application.rb.
3
+
4
+
5
+
6
+ # не требуется железной связи!
7
+ Rails.application.config.active_record.belongs_to_required_by_default = false
8
+
9
+ config.time_zone = 'Moscow'
10
+ config.active_record.default_timezone = :local
11
+ config.action_mailer.default_url_options = { :host => CONFIG[:domain] }
12
+
13
+ config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '*.{rb,yml}').to_s]
14
+ config.i18n.default_locale = :ru
15
+ config.encoding = 'utf-8'
16
+
17
+ config.active_job.queue_adapter = :delayed_job
18
+
19
+ config.autoload_paths += %W(#{config.root}/lib)
20
+
21
+ config.action_view.embed_authenticity_token_in_remote_forms = true
22
+
23
+ config.after_initialize do
24
+ Delayed::Worker.logger = Logger.new(File.join(Rails.root, 'log', 'dj.log'))
25
+
26
+ begin
27
+ # запуск jobs
28
+ if ActiveRecord::Migrator.get_all_versions.any?
29
+ Delayed::Backend::ActiveRecord::Job.where(queue: :log_analyzer).destroy_all
30
+
31
+ LogAnalyzerJob.set(wait_until: DateTime.now).perform_later
32
+ end
33
+ # уничтожение сессий
34
+ ActiveRecord::SessionStore::Session.delete_all
35
+ rescue Exception => error
36
+ p error.message
37
+ end
38
+
39
+ end
40
+
41
+
42
+ # Code is not reloaded between requests.
43
+ config.cache_classes = true
44
+
45
+ # Eager load code on boot. This eager loads most of Rails and
46
+ # your application in memory, allowing both threaded web servers
47
+ # and those relying on copy on write to perform better.
48
+ # Rake tasks automatically ignore this option for performance.
49
+ config.eager_load = true
50
+
51
+ # Full error reports are disabled and caching is turned on.
52
+ config.consider_all_requests_local = false
53
+ config.action_controller.perform_caching = true
54
+
55
+ # Attempt to read encrypted secrets from `config/secrets.yml.enc`.
56
+ # Requires an encryption key in `ENV["RAILS_MASTER_KEY"]` or
57
+ # `config/secrets.yml.key`.
58
+ config.read_encrypted_secrets = true
59
+
60
+ # Disable serving static files from the `/public` folder by default since
61
+ # Apache or NGINX already handles this.
62
+ config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present?
63
+
64
+ # Compress JavaScripts and CSS.
65
+ config.assets.js_compressor = :uglifier
66
+ # config.assets.css_compressor = :sass
67
+
68
+ # Do not fallback to assets pipeline if a precompiled asset is missed.
69
+ config.assets.compile = false
70
+
71
+ # `config.assets.precompile` and `config.assets.version` have moved to config/initializers/assets.rb
72
+
73
+ # Enable serving of images, stylesheets, and JavaScripts from an asset server.
74
+ # config.action_controller.asset_host = 'http://assets.example.com'
75
+
76
+ # Specifies the header that your server uses for sending files.
77
+ # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache
78
+ # config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX
79
+
80
+ config.action_cable.mount_path = '/cable/'
81
+ # config.action_cable.url = 'wss://139.59.131.213/cable/'
82
+ config.action_cable.allowed_request_origins = [ "https://#{CONFIG[:domain]}", /https:\/\/#{CONFIG[:domain]}.*/ ]
83
+
84
+
85
+ # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
86
+ config.force_ssl = true
87
+
88
+ # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies.
89
+ # config.force_ssl = true
90
+
91
+ # Use the lowest log level to ensure availability of diagnostic information
92
+ # when problems arise.
93
+ config.log_level = :debug
94
+
95
+ # Prepend all log lines with the following tags.
96
+ config.log_tags = [ :request_id ]
97
+
98
+ # Use a different cache store in production.
99
+ # config.cache_store = :mem_cache_store
100
+
101
+ # Use a real queuing backend for Active Job (and separate queues per environment)
102
+ # config.active_job.queue_adapter = :resque
103
+ # config.active_job.queue_name_prefix = "iamrealtor_#{Rails.env}"
104
+ config.action_mailer.perform_caching = false
105
+
106
+ # Ignore bad email addresses and do not raise email delivery errors.
107
+ # Set this to true and configure the email server for immediate delivery to raise delivery errors.
108
+ # config.action_mailer.raise_delivery_errors = false
109
+
110
+ # Enable locale fallbacks for I18n (makes lookups for any locale fall back to
111
+ # the I18n.default_locale when a translation cannot be found).
112
+ config.i18n.fallbacks = true
113
+
114
+ # Send deprecation notices to registered listeners.
115
+ config.active_support.deprecation = :notify
116
+
117
+ # Use default logging formatter so that PID and timestamp are not suppressed.
118
+ config.log_formatter = ::Logger::Formatter.new
119
+
120
+ # Use a different logger for distributed setups.
121
+ # require 'syslog/logger'
122
+ # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'app-name')
123
+
124
+ if ENV["RAILS_LOG_TO_STDOUT"].present?
125
+ ActiveRecord::Base.logger = ActiveSupport::Logger.new(STDOUT)
126
+ ActiveRecord::Base.logger.formatter = config.log_formatter
127
+ config.logger = ActiveSupport::TaggedLogging.new(logger)
128
+ end
129
+
130
+ # Do not dump schema after migrations.
131
+ config.active_record.dump_schema_after_migration = false
132
+
133
+ ActionMailer::Base.smtp_settings = {
134
+ :user_name => CONFIG[:sendgrid][:user_name],
135
+ :password => CONFIG[:sendgrid][:password],
136
+ :domain => CONFIG[:domain],
137
+ :address => 'smtp.sendgrid.net',
138
+ :port => 587,
139
+ :authentication => :plain,
140
+ :enable_starttls_auto => true
141
+ }
142
+ end
@@ -0,0 +1,3 @@
1
+ # Be sure to restart your server when you modify this file.
2
+
3
+ Rails.application.config.session_store :active_record_store, {key: '_digital_heroes_startkit_session', expire_after: 1.week}
@@ -0,0 +1,444 @@
1
+ ru:
2
+ male: мужчина
3
+ female: женщина
4
+ other: другое
5
+
6
+ access_cards:
7
+ nickname: никнейм
8
+ phone: телефон
9
+ email: email
10
+ errors_handler:
11
+ record_not_found: 'не найдена запись'
12
+ routing_error: 'кто-то лазает'
13
+ standard_error: 'проблема'
14
+ show_disclaimer:
15
+ few: "Показать %{count} предмета"
16
+ many: "Показать %{count} предметов"
17
+ one: "Показать %{count} предмет"
18
+ other: "Показать %{count} предмета"
19
+ show_products_count:
20
+ few: "предмета"
21
+ many: "предметов"
22
+ one: "предмет"
23
+ other: "предмета"
24
+ show_companies_count:
25
+ few: "салона"
26
+ many: "салонов"
27
+ one: "салон"
28
+ other: "салона"
29
+ days_left_count:
30
+ few: "%{count} дня"
31
+ many: "%{count} дней"
32
+ one: "%{count} день"
33
+ other: "%{count} дня"
34
+ filter:
35
+ show_word: Показать
36
+ shown_word: Показано
37
+ show_products: ! '%{param} предметов'
38
+ selection_request: Оформить запрос на подбор мебели?
39
+ search:
40
+ empty: Не найдено
41
+ placeholder: Поиск итальянской мебели
42
+ top_menu:
43
+ stock: Мебель в наличии
44
+ catalog: Каталог
45
+ factories: Фабрики
46
+ portfolio: Портфолио
47
+ services: Услуги
48
+ contacts: Контакты
49
+ favorites: Избранное
50
+ add_product: Добавить предмет
51
+ yet: Еще
52
+ all_content: Все содержимое
53
+ add: Добавить
54
+ user:
55
+ sign_out: Выйти
56
+ products_card:
57
+ find_out_the_price: Узнать цену
58
+ remember: Запомнить
59
+ product_show:
60
+ specify_the_price: Уточнить цену
61
+ price_of_the_item: Уточните цену на
62
+ additionally: Добавить комментарий или файлы
63
+ add_to_list: Добавить в список
64
+ find_out_the_price: Узнать цену
65
+ find_out_the_price_and_delivery: Уточните цену на
66
+ product_form:
67
+ factory: Фабрика
68
+ type: Тип предмета
69
+ style: Стиль предмета
70
+ location: Расположение предмета
71
+ novelty: Новинка какого года?
72
+ controllers:
73
+ catalog:
74
+ factory_names: Фабрики
75
+ furniture_locations: Мебель по расположению
76
+ furniture_style: Мебель по стилю
77
+ novelty: Новинки
78
+ object_type: По типу
79
+ default: Каталог предметов
80
+ portfolio: Портфолио
81
+ sale: Распродажа итальянской мебели
82
+ stock: Итальянская мебель в наличии
83
+ search_furniture: Поиск
84
+ activerecord:
85
+ models:
86
+ dictionaries/factory_name:
87
+ one: Фабрика
88
+ other: Фабрики
89
+ genitive: Фабрику
90
+ dictionaries/furniture_style:
91
+ one: Стиль
92
+ other: Стили
93
+ genitive: Стиль
94
+ dictionaries/object_type:
95
+ one: Предмет
96
+ other: Предметы
97
+ genitive: Предмет
98
+ dictionaries/furniture_location:
99
+ one: Расположение
100
+ other: Расположение
101
+ genitive: Расположение
102
+ dictionaries/novelty_year:
103
+ one: Год новинки
104
+ other: Год новинки
105
+ genitive: Год новинки
106
+ image:
107
+ one: Изображение
108
+ other: Изображения
109
+ product:
110
+ one: Предмет
111
+ other: Предметы
112
+ factory_collection:
113
+ one: Коллекция фабрики
114
+ other: Коллекции фабрик
115
+ genitive: Коллекцию
116
+ attributes:
117
+ product:
118
+ public: Опубликовать
119
+ title: Заголовок
120
+ mini_description: Мини описание
121
+ description: Описание
122
+ furniture_collection: Коллекция
123
+ furniture_model: Модель
124
+ furniture_length: Длина
125
+ furniture_width: Ширина
126
+ furniture_height: Высота
127
+ furniture_depth: Глубина
128
+ furniture_diameter: Диаметр
129
+ discontinued: Снято с производства
130
+ price_rub: Цена в руб
131
+ price_discount_rub: Цена скидки в руб
132
+ furniture_in_stock: В наличии
133
+ furniture_sold: Продан
134
+ object_types: Типы объекта
135
+ factory_names: Названия фабрик
136
+ novelty_year: Год новизны
137
+ novelty_year_id: Год новизны
138
+ image: Главное изображение
139
+ main_image_id: Главная
140
+ factory_collection:
141
+ factory_name_id: Фабрика
142
+ title: Заголовок
143
+ true_title: Истинный заголовок
144
+ description: Описание
145
+ bottom_description: Нижнее описание
146
+ dictionaries/object_type:
147
+ title: Заголовок
148
+ true_title: Истинный заголовок
149
+ description: Описание
150
+ bottom_description: Нижнее описание
151
+ dictionaries/factory_name:
152
+ title: Заголовок
153
+ true_title: Истинный заголовок
154
+ description: Описание
155
+ bottom_description: Нижнее описание
156
+ dictionaries/furniture_location:
157
+ title: Заголовок
158
+ true_title: Истинный заголовок
159
+ description: Описание
160
+ bottom_description: Нижнее описание
161
+ dictionaries/furniture_style:
162
+ title: Заголовок
163
+ true_title: Истинный заголовок
164
+ description: Описание
165
+ bottom_description: Нижнее описание
166
+ dictionaries/novelty_year:
167
+ title: Заголовок
168
+ true_title: Истинный заголовок
169
+ description: Описание
170
+ bottom_description: Нижнее описание
171
+ errors:
172
+ models:
173
+ image:
174
+ attributes:
175
+ product:
176
+ required: 'Product не может быть пустым'
177
+ custom_actions:
178
+ destroy: Удалить
179
+ save: Сохранить
180
+ edit: Редактировать %{param}
181
+ show: Показать
182
+ back: Назад
183
+ create: Создать %{model}
184
+ add: Добавить %{model}
185
+ upload: Загрузить
186
+ cancel: Отменить
187
+ are_you_sure: Вы уверены?
188
+ date:
189
+ abbr_day_names:
190
+ - Вс
191
+ - Пн
192
+ - Вт
193
+ - Ср
194
+ - Чт
195
+ - Пт
196
+ - Сб
197
+ abbr_month_names:
198
+ -
199
+ - янв.
200
+ - февр.
201
+ - марта
202
+ - апр.
203
+ - мая
204
+ - июня
205
+ - июля
206
+ - авг.
207
+ - сент.
208
+ - окт.
209
+ - нояб.
210
+ - дек.
211
+ day_names:
212
+ - воскресенье
213
+ - понедельник
214
+ - вторник
215
+ - среда
216
+ - четверг
217
+ - пятница
218
+ - суббота
219
+ formats:
220
+ default: ! '%d.%m.%Y'
221
+ long: ! '%d %B %Y'
222
+ short: ! '%d %b'
223
+ month_names:
224
+ -
225
+ - января
226
+ - февраля
227
+ - марта
228
+ - апреля
229
+ - мая
230
+ - июня
231
+ - июля
232
+ - августа
233
+ - сентября
234
+ - октября
235
+ - ноября
236
+ - декабря
237
+ order:
238
+ - :day
239
+ - :month
240
+ - :year
241
+ datetime:
242
+ distance_in_words:
243
+ about_x_hours:
244
+ few: около %{count} часов
245
+ many: около %{count} часов
246
+ one: около %{count} часа
247
+ other: около %{count} часа
248
+ about_x_months:
249
+ few: около %{count} месяцев
250
+ many: около %{count} месяцев
251
+ one: около %{count} месяца
252
+ other: около %{count} месяца
253
+ about_x_years:
254
+ few: около %{count} лет
255
+ many: около %{count} лет
256
+ one: около %{count} года
257
+ other: около %{count} лет
258
+ almost_x_years:
259
+ one: почти 1 год
260
+ few: почти %{count} года
261
+ many: почти %{count} лет
262
+ other: почти %{count} лет
263
+ half_a_minute: меньше минуты
264
+ less_than_x_minutes:
265
+ few: меньше %{count} минут
266
+ many: меньше %{count} минут
267
+ one: меньше %{count} минуты
268
+ other: меньше %{count} минуты
269
+ less_than_x_seconds:
270
+ few: меньше %{count} секунд
271
+ many: меньше %{count} секунд
272
+ one: меньше %{count} секунды
273
+ other: меньше %{count} секунды
274
+ over_x_years:
275
+ few: больше %{count} лет
276
+ many: больше %{count} лет
277
+ one: больше %{count} года
278
+ other: больше %{count} лет
279
+ x_days:
280
+ few: ! '%{count} дня'
281
+ many: ! '%{count} дней'
282
+ one: ! '%{count} день'
283
+ other: ! '%{count} дня'
284
+ x_minutes:
285
+ few: ! '%{count} минуты'
286
+ many: ! '%{count} минут'
287
+ one: ! '%{count} минуту'
288
+ other: ! '%{count} минуты'
289
+ x_months:
290
+ few: ! '%{count} месяца'
291
+ many: ! '%{count} месяцев'
292
+ one: ! '%{count} месяц'
293
+ other: ! '%{count} месяца'
294
+ x_seconds:
295
+ few: ! '%{count} секунды'
296
+ many: ! '%{count} секунд'
297
+ one: ! '%{count} секундy'
298
+ other: ! '%{count} секунды'
299
+ prompts:
300
+ day: День
301
+ hour: Часов
302
+ minute: Минут
303
+ month: Месяц
304
+ second: Секунд
305
+ year: Год
306
+ errors:
307
+ format: ! '%{attribute} %{message}'
308
+ messages:
309
+ extension_whitelist_error: Неверный формат изображения
310
+ accepted: нужно подтвердить
311
+ blank: не может быть пустым
312
+ present: нужно оставить пустым
313
+ confirmation: 'не совпадает со значением поля %{attribute}'
314
+ empty: не может быть пустым
315
+ equal_to: может иметь лишь значение, равное %{count}
316
+ even: может иметь лишь нечетное значение
317
+ exclusion: имеет зарезервированное значение
318
+ greater_than: может иметь значение большее %{count}
319
+ greater_than_or_equal_to: может иметь значение большее или равное %{count}
320
+ inclusion: имеет непредусмотренное значение
321
+ invalid: имеет неверное значение
322
+ less_than: может иметь значение меньшее чем %{count}
323
+ less_than_or_equal_to: может иметь значение меньшее или равное %{count}
324
+ not_a_number: не является числом
325
+ not_an_integer: не является целым числом
326
+ odd: может иметь лишь четное значение
327
+ record_invalid: ! 'Возникли ошибки: %{errors}'
328
+ restrict_dependent_destroy:
329
+ has_one: "Невозможно удалить запись, так как существует зависимость: %{record}"
330
+ has_many: "Невозможно удалить запись, так как существуют зависимости: %{record}"
331
+ taken: уже существует
332
+ too_long:
333
+ few: слишком большой длины (не может быть больше чем %{count} символа)
334
+ many: слишком большой длины (не может быть больше чем %{count} символов)
335
+ one: слишком большой длины (не может быть больше чем %{count} символ)
336
+ other: слишком большой длины (не может быть больше чем %{count} символа)
337
+ too_short:
338
+ few: недостаточной длины (не может быть меньше %{count} символов)
339
+ many: недостаточной длины (не может быть меньше %{count} символов)
340
+ one: недостаточной длины (не может быть меньше %{count} символа)
341
+ other: недостаточной длины (не может быть меньше %{count} символа)
342
+ wrong_length:
343
+ few: неверной длины (может быть длиной ровно %{count} символа)
344
+ many: неверной длины (может быть длиной ровно %{count} символов)
345
+ one: неверной длины (может быть длиной ровно %{count} символ)
346
+ other: неверной длины (может быть длиной ровно %{count} символа)
347
+ other_than: "должно отличаться от %{count}"
348
+ template:
349
+ body: ! 'Проблемы возникли со следующими полями:'
350
+ header:
351
+ few: ! '%{model}: сохранение не удалось из-за %{count} ошибок'
352
+ many: ! '%{model}: сохранение не удалось из-за %{count} ошибок'
353
+ one: ! '%{model}: сохранение не удалось из-за %{count} ошибки'
354
+ other: ! '%{model}: сохранение не удалось из-за %{count} ошибки'
355
+ helpers:
356
+ select:
357
+ prompt: ! 'Выберите...'
358
+ submit:
359
+ create: Создать %{model}
360
+ submit: Сохранить %{model}
361
+ update: Сохранить %{model}
362
+ number:
363
+ currency:
364
+ format:
365
+ delimiter: ! ' '
366
+ format: ! '%n %u'
367
+ precision: 2
368
+ separator: ','
369
+ significant: false
370
+ strip_insignificant_zeros: true
371
+ unit: руб.
372
+ format:
373
+ delimiter: ! ' '
374
+ precision: 3
375
+ separator: ','
376
+ significant: false
377
+ strip_insignificant_zeros: false
378
+ human:
379
+ decimal_units:
380
+ format: ! '%n %u'
381
+ units:
382
+ billion:
383
+ few: миллиардов
384
+ many: миллиардов
385
+ one: миллиард
386
+ other: миллиардов
387
+ million:
388
+ few: миллионов
389
+ many: миллионов
390
+ one: миллион
391
+ other: миллионов
392
+ quadrillion:
393
+ few: квадриллионов
394
+ many: квадриллионов
395
+ one: квадриллион
396
+ other: квадриллионов
397
+ thousand:
398
+ few: тысяч
399
+ many: тысяч
400
+ one: тысяча
401
+ other: тысяч
402
+ trillion:
403
+ few: триллионов
404
+ many: триллионов
405
+ one: триллион
406
+ other: триллионов
407
+ unit: ''
408
+ format:
409
+ delimiter: ''
410
+ precision: 1
411
+ significant: false
412
+ strip_insignificant_zeros: false
413
+ storage_units:
414
+ format: ! '%n %u'
415
+ units:
416
+ byte:
417
+ few: байта
418
+ many: байт
419
+ one: байт
420
+ other: байта
421
+ gb: ГБ
422
+ kb: КБ
423
+ mb: МБ
424
+ tb: ТБ
425
+ percentage:
426
+ format:
427
+ delimiter: ''
428
+ format: "%n%"
429
+ precision:
430
+ format:
431
+ delimiter: ''
432
+ support:
433
+ array:
434
+ last_word_connector: ! ' и '
435
+ two_words_connector: ! ' и '
436
+ words_connector: ! ', '
437
+ time:
438
+ am: утра
439
+ formats:
440
+ default: ! '%a, %d %b %Y, %H:%M:%S %z'
441
+ long: ! '%d %B %Y, %H:%M'
442
+ short: ! '%d %b, %H:%M'
443
+ xshort: ! '%d %b'
444
+ pm: вечера
@@ -0,0 +1,19 @@
1
+ class CreateUserCards < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :user_cards do |t|
4
+ t.references :userable, polymorphic: true, index: true
5
+ t.integer :userable_id
6
+ t.string :userable_type
7
+ t.string :access_level, null: true, limit: 32
8
+
9
+ t.string :password_digest
10
+ t.string :resurrection, null: true
11
+
12
+ t.integer :status, null: true, unsigned: true, index: true, limit: 1, default: 0
13
+ t.boolean :online, null: true, unsigned: true, index: true, default: 0
14
+
15
+ t.timestamps null: false
16
+ end
17
+
18
+ end
19
+ end
@@ -0,0 +1,15 @@
1
+ class CreateEmailAccessCards < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :email_access_cards do |t|
4
+ t.belongs_to :user_card, index: true, null: false, foreign_key: true
5
+
6
+ t.string :value, null: true, index: true, unique: true
7
+ t.boolean :active
8
+
9
+ t.timestamps
10
+ end
11
+
12
+ add_index :email_access_cards, :value, name: :ivalue, type: :fulltext
13
+
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ class CreateNicknameAccessCards < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :nickname_access_cards do |t|
4
+ t.belongs_to :user_card, index: true, null: false, foreign_key: true
5
+
6
+ t.string :value, null: true, index: true, unique: true, limit: 14
7
+ t.boolean :active
8
+
9
+ t.timestamps
10
+ end
11
+
12
+ add_index :nickname_access_cards, :value, name: :ivalue, type: :fulltext
13
+
14
+ end
15
+ end
@@ -0,0 +1,16 @@
1
+ class CreatePhoneAccessCards < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :phone_access_cards do |t|
4
+ t.belongs_to :user_card, index: true, null: false, foreign_key: true
5
+
6
+ t.string :value, null: true, index: true, unique: true, limit: 24
7
+ t.integer :verified, null: true, index: true, limit: 1, default: 0
8
+ t.boolean :active
9
+
10
+ t.timestamps
11
+ end
12
+
13
+ add_index :phone_access_cards, :value, name: :ivalue, type: :fulltext
14
+
15
+ end
16
+ end
@@ -0,0 +1,19 @@
1
+ class CreateOauthAccessCards < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :oauth_access_cards do |t|
4
+ t.belongs_to :user_card, index: true, null: false, foreign_key: true
5
+
6
+ t.string :photourl
7
+
8
+ t.boolean :active
9
+
10
+ t.string :oauth_name, null: true, index: true
11
+ t.string :oauth_uid, null: true, index: true
12
+ t.string :access_token, null: true
13
+ t.datetime :token_expired, null: true
14
+
15
+ t.timestamps
16
+ end
17
+
18
+ end
19
+ end
@@ -0,0 +1,9 @@
1
+ class CreateKreators < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :kreators do |t|
4
+ t.string :name, null: true, limit: 64
5
+
6
+ t.timestamps
7
+ end
8
+ end
9
+ end