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.
- checksums.yaml +7 -0
- data/MIT-LICENSE +20 -0
- data/README.md +37 -0
- data/Rakefile +36 -0
- data/app/assets/config/digital_heroes_startkit_manifest.js +0 -0
- data/app/assets/javascripts/authorization.coffee +79 -0
- data/app/assets/javascripts/avatar.coffee +16 -0
- data/app/assets/javascripts/datepicker.js +2 -0
- data/app/assets/javascripts/digital_heroes_startkit/cable.js +13 -0
- data/app/assets/javascripts/digital_heroes_startkit/channels/pills.coffee +23 -0
- data/app/assets/javascripts/digital_heroes_startkit/input.coffee +5 -0
- data/app/assets/javascripts/digital_heroes_startkit/pills.coffee +2 -0
- data/app/assets/javascripts/digital_heroes_startkit/snap.svg-min.js +21 -0
- data/app/assets/javascripts/digital_heroes_startkit.js +26 -0
- data/app/assets/javascripts/profile.coffee +53 -0
- data/app/assets/javascripts/profile_geodata.coffee +68 -0
- data/app/assets/javascripts/reg_fields_checkup.coffee +96 -0
- data/app/assets/javascripts/registration.coffee +35 -0
- data/app/assets/javascripts/resurrection.coffee +20 -0
- data/app/channels/application_cable/channel.rb +4 -0
- data/app/channels/application_cable/connection.rb +4 -0
- data/app/channels/pills_channel.rb +10 -0
- data/app/controllers/avatars_controller.rb +11 -0
- data/app/controllers/clients_controller.rb +62 -0
- data/app/controllers/email_access_cards_controller.rb +28 -0
- data/app/controllers/geodata_controller.rb +84 -0
- data/app/controllers/nickname_access_cards_controller.rb +30 -0
- data/app/controllers/oauth_controller.rb +178 -0
- data/app/controllers/openid_controller.rb +124 -0
- data/app/controllers/phone_access_cards_controller.rb +28 -0
- data/app/controllers/profile_controller.rb +114 -0
- data/app/controllers/response_controller.rb +17 -0
- data/app/controllers/start_kit_controller.rb +86 -0
- data/app/controllers/user_cards_controller.rb +305 -0
- data/app/jobs/log_analyzer_job.rb +50 -0
- data/app/jobs/password_resurrection_kill_job.rb +9 -0
- data/app/mailers/admin_mailer.rb +9 -0
- data/app/mailers/client_mailer.rb +3 -0
- data/app/mailers/kreator_mailer.rb +9 -0
- data/app/mailers/manager_mailer.rb +9 -0
- data/app/mailers/prometeus_mailer.rb +16 -0
- data/app/mailers/user_cards_mailer.rb +9 -0
- data/app/models/admin.rb +3 -0
- data/app/models/avatar.rb +23 -0
- data/app/models/city.rb +7 -0
- data/app/models/client.rb +31 -0
- data/app/models/country.rb +7 -0
- data/app/models/delayed_job.rb +20 -0
- data/app/models/email_access_card.rb +30 -0
- data/app/models/kreator.rb +3 -0
- data/app/models/log_error.rb +56 -0
- data/app/models/log_error_type.rb +3 -0
- data/app/models/manager.rb +3 -0
- data/app/models/nickname_access_card.rb +18 -0
- data/app/models/oauth_access_card.rb +38 -0
- data/app/models/phone_access_card.rb +19 -0
- data/app/models/prometeus.rb +50 -0
- data/app/models/user_card.rb +158 -0
- data/app/views/admin_mailer/greetings_email.html.erb +191 -0
- data/app/views/client_mailer/greetings_email.html.erb +191 -0
- data/app/views/kreator_mailer/greetings_email.html.erb +191 -0
- data/app/views/manager_mailer/greetings_email.html.erb +191 -0
- data/app/views/oauth/verify.slim +1 -0
- data/app/views/profile/_add_avatar.slim +12 -0
- data/app/views/profile/_user_profile.slim +95 -0
- data/app/views/profile/index.slim +12 -0
- data/app/views/user_cards/authorization.slim +72 -0
- data/app/views/user_cards/confirmation_but_access_code.slim +7 -0
- data/app/views/user_cards/confirmation_complete.slim +7 -0
- data/app/views/user_cards/registration.slim +86 -0
- data/app/views/user_cards/resurrection.slim +19 -0
- data/app/views/user_cards/resurrection_but_access_code.slim +7 -0
- data/app/views/user_cards/resurrection_no_access_code.slim +7 -0
- data/app/views/user_cards_mailer/email.html.erb +191 -0
- data/app/views/user_cards_mailer/resurrection.html.erb +191 -0
- data/config/initializers/session_manager.rb +2 -0
- data/config/routes.rb +53 -0
- data/lib/access_control.rb +3 -0
- data/lib/digital_heroes_startkit/engine.rb +25 -0
- data/lib/digital_heroes_startkit/version.rb +3 -0
- data/lib/digital_heroes_startkit.rb +5 -0
- data/lib/generators/digital_heroes_startkit/install_generator.rb +61 -0
- data/lib/generators/project/Capfile +36 -0
- data/lib/generators/project/Procfile +3 -0
- data/lib/generators/project/app/assets/stylesheets/application.scss +16 -0
- data/lib/generators/project/app/assets/stylesheets/base/_auth.scss +37 -0
- data/lib/generators/project/app/assets/stylesheets/base/_buttons.scss +62 -0
- data/lib/generators/project/app/assets/stylesheets/base/_checkbox.scss +71 -0
- data/lib/generators/project/app/assets/stylesheets/base/_datepicker.scss +620 -0
- data/lib/generators/project/app/assets/stylesheets/base/_form.scss +81 -0
- data/lib/generators/project/app/assets/stylesheets/base/_notice.scss +14 -0
- data/lib/generators/project/app/assets/stylesheets/base/_pills.scss +39 -0
- data/lib/generators/project/app/assets/stylesheets/base/_profile.scss +67 -0
- data/lib/generators/project/app/assets/stylesheets/base/_reset.scss +49 -0
- data/lib/generators/project/app/assets/stylesheets/base/_social.scss +52 -0
- data/lib/generators/project/app/assets/stylesheets/base/_user.scss +0 -0
- data/lib/generators/project/app/assets/stylesheets/base/_user_avatar.scss +18 -0
- data/lib/generators/project/app/assets/stylesheets/base/styles.scss.txt +35 -0
- data/lib/generators/project/app/assets/stylesheets/plugins/sumoselect.scss +296 -0
- data/lib/generators/project/app/controllers/application_controller.rb +3 -0
- data/lib/generators/project/app/views/layouts/_counts.html.erb +29 -0
- data/lib/generators/project/app/views/layouts/_footer.slim +6 -0
- data/lib/generators/project/app/views/layouts/_head.slim +7 -0
- data/lib/generators/project/app/views/layouts/_header.slim +47 -0
- data/lib/generators/project/app/views/layouts/_mobile_menu.slim +11 -0
- data/lib/generators/project/app/views/layouts/application.slim +26 -0
- data/lib/generators/project/app/views/layouts/mailer.html.erb +13 -0
- data/lib/generators/project/app/views/layouts/mailer.text.erb +1 -0
- data/lib/generators/project/config/application.access.yml +66 -0
- data/lib/generators/project/config/application.db.yml +5 -0
- data/lib/generators/project/config/application.google.yml +3 -0
- data/lib/generators/project/config/application.oauth.yml +135 -0
- data/lib/generators/project/config/application.robokassa.yml +10 -0
- data/lib/generators/project/config/application.sendgrid.yml +3 -0
- data/lib/generators/project/config/application.telegram.yml +22 -0
- data/lib/generators/project/config/application.yml +28 -0
- data/lib/generators/project/config/cable.yml +6 -0
- data/lib/generators/project/config/capistrano.yml +78 -0
- data/lib/generators/project/config/database.yml +52 -0
- data/lib/generators/project/config/deploy/application.secrets.yml +4 -0
- data/lib/generators/project/config/deploy/domain.crt +92 -0
- data/lib/generators/project/config/deploy/domain.key +51 -0
- data/lib/generators/project/config/deploy/nginx.conf +50 -0
- data/lib/generators/project/config/deploy/production.rb +67 -0
- data/lib/generators/project/config/deploy/secrets.yml +32 -0
- data/lib/generators/project/config/deploy/secrets.yml.enc +1 -0
- data/lib/generators/project/config/deploy/secrets.yml.key +1 -0
- data/lib/generators/project/config/deploy/staging.rb +61 -0
- data/lib/generators/project/config/deploy/virgin_conf/database.yml +42 -0
- data/lib/generators/project/config/deploy/virgin_conf/nginx_site.conf +47 -0
- data/lib/generators/project/config/deploy/virgin_conf/nginx_site_ssl.conf +57 -0
- data/lib/generators/project/config/deploy/virgin_conf/postfix.cf +685 -0
- data/lib/generators/project/config/deploy/virgin_conf/production.rb +67 -0
- data/lib/generators/project/config/deploy/virgin_conf/puma.rb +66 -0
- data/lib/generators/project/config/deploy/virgin_sh/capistrano.sh +18 -0
- data/lib/generators/project/config/deploy/virgin_sh/foreman.sh +19 -0
- data/lib/generators/project/config/deploy/virgin_sh/rvm_install.sh +10 -0
- data/lib/generators/project/config/deploy.rb +377 -0
- data/lib/generators/project/config/environments/development.rb +91 -0
- data/lib/generators/project/config/environments/production.rb +142 -0
- data/lib/generators/project/config/initializers/session_store.rb +3 -0
- data/lib/generators/project/config/locales/ru.yml +444 -0
- data/lib/generators/project/db/migrate/10_create_user_cards.rb +19 -0
- data/lib/generators/project/db/migrate/12_create_email_access_cards.rb +15 -0
- data/lib/generators/project/db/migrate/13_create_nickname_access_cards.rb +15 -0
- data/lib/generators/project/db/migrate/14_create_phone_access_cards.rb +16 -0
- data/lib/generators/project/db/migrate/15_create_oauth_access_cards.rb +19 -0
- data/lib/generators/project/db/migrate/1_create_kreators.rb +9 -0
- data/lib/generators/project/db/migrate/21_create_avatars.rb +12 -0
- data/lib/generators/project/db/migrate/30_create_countries.rb +12 -0
- data/lib/generators/project/db/migrate/32_create_cities.rb +12 -0
- data/lib/generators/project/db/migrate/3_create_admins.rb +9 -0
- data/lib/generators/project/db/migrate/44_add_sessions_table.rb +12 -0
- data/lib/generators/project/db/migrate/4_create_managers.rb +10 -0
- data/lib/generators/project/db/migrate/5_create_clients.rb +17 -0
- data/lib/generators/project/db/migrate/60_create_log_error_types.rb +9 -0
- data/lib/generators/project/db/migrate/61_create_log_errors.rb +12 -0
- data/lib/generators/project/db/migrate/78_create_delayed_jobs.rb +22 -0
- data/lib/generators/project/db/seeds.rb +27 -0
- data/lib/generators/project/geodata/cities.csv +25305 -0
- data/lib/generators/project/geodata/countries.csv +250 -0
- data/lib/generators/project/public/401.html +75 -0
- data/lib/generators/project/public/404.html +67 -0
- data/lib/generators/project/public/422.html +67 -0
- data/lib/generators/project/public/500.html +66 -0
- data/lib/generators/project/public/_receiver.html +10 -0
- data/lib/generators/project/public/apple-touch-icon-precomposed.png +0 -0
- data/lib/generators/project/public/apple-touch-icon.png +0 -0
- data/lib/generators/project/public/favicon.ico +0 -0
- data/lib/generators/project/public/robots.txt +1 -0
- data/lib/happy_birthday.rb +5 -0
- data/lib/link.rb +16 -0
- data/lib/oauth/oauth.rb +72 -0
- data/lib/oauth/oauth_fb.rb +48 -0
- data/lib/oauth/oauth_gg.rb +50 -0
- data/lib/oauth/oauth_im.rb +51 -0
- data/lib/oauth/oauth_mr.rb +53 -0
- data/lib/oauth/oauth_vk.rb +3 -0
- data/lib/oauth/oauth_yx.rb +51 -0
- data/lib/openid/openid.rb +46 -0
- data/lib/openid/openid_st.rb +2 -0
- data/lib/phone_cutter.rb +9 -0
- data/lib/response.rb +51 -0
- data/lib/session_manager.rb +47 -0
- data/lib/sms_lib.rb +30 -0
- data/lib/social_networks.rb +328 -0
- data/lib/tasks/digital_heroes_startkit_tasks.rake +83 -0
- data/lib/telegram.rb +33 -0
- 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,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
|