c80_contest 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/.rspec +2 -0
  4. data/.ruby-gemset +1 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +5 -0
  7. data/CODE_OF_CONDUCT.md +74 -0
  8. data/Gemfile +4 -0
  9. data/LICENSE.txt +21 -0
  10. data/MIT-LICENSE +20 -0
  11. data/README.md +32 -0
  12. data/README.rdoc +3 -0
  13. data/Rakefile +23 -0
  14. data/app/admin/c80_contest/bids.rb +28 -0
  15. data/app/assets/images/c80_contest/.keep +0 -0
  16. data/app/assets/images/loading-sm.gif +0 -0
  17. data/app/assets/images/loading.gif +0 -0
  18. data/app/assets/javascripts/c80_contest/frontend/ajax_bid_form.js +157 -0
  19. data/app/assets/javascripts/c80_contest.js.coffee +2 -0
  20. data/app/assets/javascripts/lib/fileinput/fileinput.js +3833 -0
  21. data/app/assets/javascripts/lib/fileinput/themes/explorer/theme.js +58 -0
  22. data/app/assets/javascripts/lib/fileinput/themes/fa/theme.js +45 -0
  23. data/app/assets/javascripts/lib/fileinput/themes/gly/theme.js +45 -0
  24. data/app/assets/stylesheets/c80_contest/backend/bid_page.scss +22 -0
  25. data/app/assets/stylesheets/c80_contest/frontend/foo.scss +0 -0
  26. data/app/assets/stylesheets/c80_contest.scss +3 -0
  27. data/app/assets/stylesheets/c80_contest_active_admin.scss +2 -0
  28. data/app/assets/stylesheets/lib/fileinput/fileinput.scss +481 -0
  29. data/app/assets/stylesheets/lib/fileinput/themes/explorer/theme.scss +211 -0
  30. data/app/controllers/c80_contest/application_controller.rb +5 -0
  31. data/app/controllers/c80_contest/bid_controller.rb +26 -0
  32. data/app/controllers/c80_contest/site_controller.rb +13 -0
  33. data/app/helpers/c80_contest/application_helper.rb +26 -0
  34. data/app/models/c80_contest/bid.rb +17 -0
  35. data/app/models/c80_contest/setting.rb +53 -0
  36. data/app/uploaders/c80_contest/bid_photo_uploader.rb +32 -0
  37. data/app/views/c80_contest/bid/make_bid.js.erb +4 -0
  38. data/app/views/c80_contest/shared/_bid_form.html.erb +65 -0
  39. data/app/views/c80_contest/shared/_ok_message.html.erb +16 -0
  40. data/app/views/c80_contest/site/give_me_form.js.erb +4 -0
  41. data/app/views/layouts/c80_contest/application.html.erb +14 -0
  42. data/bin/console +14 -0
  43. data/bin/rails +12 -0
  44. data/bin/setup +8 -0
  45. data/c80_contest.gemspec +46 -0
  46. data/config/routes.rb +4 -0
  47. data/create_base.rb +25 -0
  48. data/db/migrate/20170510124400_create_c80_contest_bids.rb +12 -0
  49. data/db/migrate/20170511145501_create_c80_contest_settings.rb +19 -0
  50. data/db/seeds/c80_contest_fill_settings.rb +22 -0
  51. data/lib/c80_contest/engine.rb +20 -0
  52. data/lib/c80_contest/version.rb +3 -0
  53. data/lib/c80_contest.rb +8 -0
  54. data/lib/tasks/c80_contest_tasks.rake +4 -0
  55. metadata +335 -0
@@ -0,0 +1,211 @@
1
+ /*!
2
+ * bootstrap-fileinput v4.4.0
3
+ * http://plugins.krajee.com/file-input
4
+ *
5
+ * Krajee Explorer theme style for bootstrap-fileinput. Load this theme file after loading `fileinput.css`.
6
+ *
7
+ * Author: Kartik Visweswaran
8
+ * Copyright: 2014 - 2017, Kartik Visweswaran, Krajee.com
9
+ *
10
+ * Licensed under the BSD 3-Clause
11
+ * https://github.com/kartik-v/bootstrap-fileinput/blob/master/LICENSE.md
12
+ */
13
+ .theme-explorer .file-preview .table {
14
+ margin: 0;
15
+ }
16
+
17
+ .theme-explorer .explorer-frame td {
18
+ vertical-align: middle;
19
+ text-align: left;
20
+ }
21
+
22
+ .explorer-frame .file-preview-text {
23
+ display: inline-block;
24
+ color: #428bca;
25
+ border: 1px solid #ddd;
26
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
27
+ outline: none;
28
+ padding: 8px;
29
+ resize: none;
30
+ }
31
+
32
+ .explorer-frame .file-preview-html {
33
+ display: inline-block;
34
+ border: 1px solid #ddd;
35
+ padding: 8px;
36
+ overflow: auto;
37
+ }
38
+
39
+ .explorer-frame .file-preview-other {
40
+ text-align: center;
41
+ }
42
+
43
+ .explorer-frame .file-other-icon {
44
+ font-size: 4.2em;
45
+ }
46
+
47
+ .theme-explorer .explorer-frame .kv-file-content {
48
+ width: 80px;
49
+ height: 80px;
50
+ padding: 5px;
51
+ text-align: center;
52
+ }
53
+
54
+ .theme-explorer .file-actions-cell {
55
+ width: 100px;
56
+ padding: 0;
57
+ }
58
+
59
+ .theme-explorer .file-thumb-progress .progress {
60
+ display: block;
61
+ margin-top: 5px;
62
+ }
63
+
64
+ .theme-explorer .file-thumb-progress .progress, .theme-explorer .file-thumb-progress .progress-bar {
65
+ height: 13px;
66
+ font-size: 11px;
67
+ line-height: 13px;
68
+ }
69
+
70
+ .theme-explorer .file-actions-cell {
71
+ position: relative;
72
+ }
73
+
74
+ .theme-explorer .file-upload-indicator, .theme-explorer .file-drag-handle {
75
+ position: absolute;
76
+ text-align: center;
77
+ top: 0;
78
+ right: 0;
79
+ padding-left: 5px;
80
+ padding-right: 2px;
81
+ border-right: none;
82
+ border-top: none;
83
+ border-left: 1px solid #8a6d3b;
84
+ border-bottom: 1px solid #8a6d3b;
85
+ border-bottom-left-radius: 11px;
86
+ font-size: 12px;
87
+ }
88
+
89
+ .theme-explorer .explorer-caption {
90
+ display: block;
91
+ color: #777;
92
+ }
93
+
94
+ .theme-explorer .file-actions {
95
+ text-align: center;
96
+ }
97
+
98
+ .theme-explorer .kvsortable-ghost {
99
+ opacity: 0.6;
100
+ background: #e1edf7;
101
+ border: 2px solid #a1abff;
102
+ }
103
+
104
+ .theme-explorer .file-upload-indicator {
105
+ font-size: 13px;
106
+ padding-left: 6px;
107
+ background-color: #fcf8e3;
108
+ border-color: #faebcc;
109
+ }
110
+
111
+ .theme-explorer .file-drag-handle {
112
+ right: -2px;
113
+ background-color: #d9edf7;
114
+ border-color: #bce8f1;
115
+ }
116
+
117
+ .theme-explorer .file-preview-error .file-upload-indicator {
118
+ background-color: #f2dede;
119
+ border-color: #ebccd1;
120
+ }
121
+
122
+ .theme-explorer .file-preview-success .file-upload-indicator {
123
+ background-color: #dff0d8;
124
+ border-color: #d6e9c6;
125
+ }
126
+
127
+ .theme-explorer .file-preview-loading .file-upload-indicator {
128
+ background-color: #e5e5e5;
129
+ border-color: #777;
130
+ }
131
+
132
+ .theme-explorer .file-error-message ul {
133
+ padding-left: 15px;
134
+ }
135
+
136
+ .theme-explorer .file-error-message .close {
137
+ margin-top: -5px;
138
+ margin-right: -5px;
139
+ }
140
+
141
+ /*
142
+ * mobile responsive styling
143
+ */
144
+ @media only screen and (max-width: 500px) {
145
+ .theme-explorer .table, .theme-explorer .table tbody, .theme-explorer .table tr, .theme-explorer .table td {
146
+ display: block;
147
+ width: 100% !important;
148
+ }
149
+
150
+ .theme-explorer .table {
151
+ border: none;
152
+ }
153
+
154
+ .theme-explorer .table tr {
155
+ margin-top: 5px;
156
+ }
157
+
158
+ .theme-explorer .table tr:first-child {
159
+ margin-top: 0;
160
+ }
161
+
162
+ .theme-explorer .table td {
163
+ text-align: center;
164
+ }
165
+
166
+ .theme-explorer .table .kv-file-content {
167
+ border-bottom: none;
168
+ padding: 4px;
169
+ margin: 0;
170
+ }
171
+
172
+ .theme-explorer .table .kv-file-content .file-preview-image {
173
+ max-width: 100%;
174
+ }
175
+
176
+ .theme-explorer .file-details-cell {
177
+ border-top: none;
178
+ border-bottom: none;
179
+ padding-top: 0;
180
+ margin: 0;
181
+ }
182
+
183
+ .theme-explorer .file-actions-cell {
184
+ border-top: none;
185
+ padding-bottom: 4px;
186
+ }
187
+
188
+ .theme-explorer .explorer-frame .explorer-caption {
189
+ white-space: nowrap;
190
+ text-overflow: ellipsis;
191
+ overflow: hidden;
192
+ left: 0;
193
+ right: 0;
194
+ margin: auto;
195
+ }
196
+
197
+ .theme-explorer .file-upload-indicator, .theme-explorer .file-drag-handle {
198
+ right: 0;
199
+ bottom: 0;
200
+ border-top-left-radius: 40px;
201
+ border-bottom-left-radius: 0;
202
+ padding: 12px 3px 0 6px;
203
+ }
204
+
205
+ .theme-explorer .file-actions-cell .btn-xs {
206
+ font-size: 0.9em;
207
+ padding: 2px 7px;
208
+ margin-right: 3px;
209
+ cursor: pointer;
210
+ }
211
+ }
@@ -0,0 +1,5 @@
1
+ module C80Contest
2
+ class ApplicationController < ActionController::Base
3
+ protect_from_forgery with: :exception
4
+ end
5
+ end
@@ -0,0 +1,26 @@
1
+ module C80Contest
2
+ class BidController < ApplicationController
3
+
4
+ def make_bid
5
+ m = Bid.new(mess_params)
6
+ respond_to do |format|
7
+ if m.save
8
+
9
+ # noinspection RubyResolve
10
+ format.js
11
+ settings = Setting.first
12
+ # MessageOrderMailer.send_mess(m, settings.message_letter_subj).deliver
13
+ else
14
+ # noinspection RubyResolve
15
+ format.js { render json: m.errors, status: :unprocessable_entity }
16
+ end
17
+ end
18
+ end
19
+
20
+ def mess_params
21
+ # noinspection RubyResolve
22
+ params.require(:bid).permit(:title, :phone, :photo)
23
+ end
24
+
25
+ end
26
+ end
@@ -0,0 +1,13 @@
1
+ module C80Contest
2
+ class SiteController < ApplicationController
3
+
4
+ def give_me_form
5
+ @bid = Bid.new
6
+ end
7
+
8
+ # def index
9
+ #
10
+ # end
11
+
12
+ end
13
+ end
@@ -0,0 +1,26 @@
1
+ module C80Contest
2
+ module ApplicationHelper
3
+
4
+ def render_bid_form(bid)
5
+
6
+ settings = Setting.first
7
+
8
+ render :partial => 'c80_contest/shared/bid_form',
9
+ :locals => {
10
+ bid: bid,
11
+ settings: settings
12
+ }
13
+
14
+ end
15
+
16
+ def render_ok_message
17
+ settings = Setting.first
18
+ render :partial => 'c80_contest/shared/ok_message',
19
+ :locals => {
20
+ ok_text: settings.ok_text,
21
+ ok_text_title: settings.ok_text_title
22
+ }
23
+ end
24
+
25
+ end
26
+ end
@@ -0,0 +1,17 @@
1
+ module C80Contest
2
+ # noinspection RailsParamDefResolve
3
+ class Bid < ActiveRecord::Base
4
+
5
+ validates :title,
6
+ :presence => true,
7
+ :length => { in: 5..100 }
8
+
9
+ validates :phone,
10
+ :presence => true,
11
+ :format => { with: /\A((8|\+?7)[\- ]?)?(\(?\d{3,5}\)?[\- ]?)?[\d\- ]{5,10}\z/}
12
+
13
+ validates_presence_of :photo
14
+
15
+ mount_uploader :photo, C80Contest::BidPhotoUploader
16
+ end
17
+ end
@@ -0,0 +1,53 @@
1
+ module C80Contest
2
+ class Setting < ActiveRecord::Base
3
+
4
+ validates :form_title,
5
+ :presence => true,
6
+ :length => { :in => 5..125 }
7
+
8
+ validates :form_label_name,
9
+ :presence => true,
10
+ :length => { :in => 3..49 }
11
+
12
+ validates :form_label_phone,
13
+ :presence => true,
14
+ :length => { :in => 3..80 }
15
+
16
+ validates :form_label_photo,
17
+ :presence => true,
18
+ :length => { :in => 3..80 }
19
+
20
+ validates :form_label_button_send,
21
+ :presence => true,
22
+ :length => { :in => 3..15 }
23
+
24
+ validates :form_label_button_sending,
25
+ :presence => true,
26
+ :length => { :in => 3..20 }
27
+
28
+ validates :ok_text,
29
+ :presence => true,
30
+ :length => { :in => 2..125 }
31
+
32
+ validates :ok_text_title,
33
+ :presence => true,
34
+ :length => { :in => 2..125 }
35
+
36
+ validates :admin_label_menu,
37
+ :presence => true,
38
+ :length => { :in => 2..20 }
39
+
40
+ validates :rules,
41
+ # :presence => true,
42
+ :length => { :in => 0..1000 }
43
+
44
+ validates :message_letter_subj,
45
+ :presence => true,
46
+ :length => { :in => 10..125 }
47
+
48
+ validates :message_text,
49
+ :presence => true,
50
+ :length => { :in => 20..499 }
51
+
52
+ end
53
+ end
@@ -0,0 +1,32 @@
1
+ module C80Contest
2
+
3
+ class BidPhotoUploader < ::CarrierWave::Uploader::Base
4
+
5
+ include ::CarrierWave::MiniMagick
6
+
7
+ storage :file
8
+ process :resize_to_limit => [1024,1024]
9
+
10
+ version :thumb do
11
+ process :resize_to_fit => [500,500]
12
+ end
13
+
14
+ def store_dir
15
+ 'uploads/bids/'
16
+ end
17
+
18
+ def filename
19
+ if original_filename
20
+ "photo_#{secure_token(4)}.#{file.extension}"
21
+ end
22
+ end
23
+
24
+ protected
25
+ def secure_token(length=16)
26
+ var = :"@#{mounted_as}_secure_token"
27
+ model.instance_variable_get(var) or model.instance_variable_set(var, SecureRandom.hex(length/2))
28
+ end
29
+
30
+ end
31
+
32
+ end
@@ -0,0 +1,4 @@
1
+ bidForm.hide();
2
+ setTimeout(function(){
3
+ okMessage.show();
4
+ },400);
@@ -0,0 +1,65 @@
1
+ <%# application_helper.rb: render_bid_form %>
2
+
3
+ <%= render_ok_message %>
4
+
5
+ <div id="bid_form" class="modal fade">
6
+ <div class="modal-dialog">
7
+ <div class="modal-content">
8
+ <div class="modal-header">
9
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
10
+ <h4 class="modal-title medium" id="myModalLabel"><%= settings.form_title %></h4>
11
+ </div>
12
+ <div class="modal-body regular">
13
+
14
+ <%= # noinspection RailsParamDefResolve
15
+ form_for :bid,
16
+ :url => '/make_bid',
17
+ :remote => true,
18
+ html: {
19
+ multipart: true,
20
+ :role => :form,
21
+ :id => 'form_bid',
22
+ :data => {
23
+ :model => 'bid'
24
+ }
25
+ } do |f| %>
26
+ <%= hidden_field_tag :authenticity_token, '', :value => form_authenticity_token %>
27
+ <div class="form-group clearfix">
28
+ <%= f.label :title, settings.form_label_name, class: 'control-label must' %>
29
+ <%= f.text_field :title, class: 'form-control' %>
30
+ <span class="help-block col-md-12"></span>
31
+ </div>
32
+
33
+ <div class="form-group clearfix">
34
+ <%= f.label :phone, settings.form_label_phone, class: 'control-label must' %>
35
+ <%= f.text_field :phone, class: 'form-control' %>
36
+ <span class="help-block col-md-12"></span>
37
+ </div>
38
+
39
+ <div class="form-group clearfix">
40
+ <%= f.label :photo, settings.form_label_photo, class: 'control-label must' %>
41
+ <%= f.text_field :photo, :type => 'file', data: { preview_Type_File: 'text' }, class: 'form-control' %>
42
+ <span class="help-block col-md-12"></span>
43
+ </div>
44
+
45
+ <div class="actions clearfix">
46
+ <%= f.label ' ', class: 'control-label' %>
47
+ <%= f.submit settings.form_label_button_send,
48
+ class: 'btn btn-success',
49
+ data: {
50
+ disable_with: settings.form_label_button_sending
51
+ }
52
+ %>
53
+ </div>
54
+
55
+ <% end %>
56
+
57
+ </div>
58
+
59
+ <div class="modal-footer">
60
+ <button type="button" class="btn btn_close btn-default" data-dismiss="modal">Закрыть</button>
61
+ </div>
62
+
63
+ </div>
64
+ </div>
65
+ </div>
@@ -0,0 +1,16 @@
1
+ <div class="modal fade" id="bid_ok">
2
+ <div class="modal-dialog">
3
+ <div class="modal-content">
4
+ <div class="modal-header">
5
+ <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
6
+ <h4 class="modal-title" id="myModalLabel"><%= ok_text_title %></h4>
7
+ </div>
8
+ <div class="modal-body">
9
+ <p><%= ok_text %></p>
10
+ </div>
11
+ <div class="modal-footer">
12
+ <button type="button" class="btn btn-default" data-dismiss="modal">Закрыть</button>
13
+ </div>
14
+ </div>
15
+ </div>
16
+ </div>
@@ -0,0 +1,4 @@
1
+ var html_str = "<%= # noinspection RubyResolve
2
+ j render_bid_form(@bid) %>";
3
+ bidForm.show(html_str);
4
+
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>C80Contest</title>
5
+ <%= stylesheet_link_tag "c80_contest/application", media: "all" %>
6
+ <%= javascript_include_tag "c80_contest/application" %>
7
+ <%= csrf_meta_tags %>
8
+ </head>
9
+ <body>
10
+
11
+ <%= yield %>
12
+
13
+ </body>
14
+ </html>
data/bin/console ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "c80_contest"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
data/bin/rails ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 4 gems installed from the root of your application.
3
+
4
+ ENGINE_ROOT = File.expand_path('../..', __FILE__)
5
+ ENGINE_PATH = File.expand_path('../../lib/c80_contest/engine', __FILE__)
6
+
7
+ # Set up gems listed in the Gemfile.
8
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', __FILE__)
9
+ require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
10
+
11
+ require 'rails/all'
12
+ require 'rails/engine/commands'
data/bin/setup ADDED
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -0,0 +1,46 @@
1
+ # coding: utf-8
2
+
3
+ lib = File.expand_path('../lib', __FILE__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require 'c80_contest/version'
6
+
7
+ Gem::Specification.new do |spec|
8
+ spec.name = 'c80_contest'
9
+ spec.version = C80Contest::VERSION
10
+ spec.authors = ['C80609A']
11
+ spec.email = ['c080609a@gmail.com']
12
+
13
+ spec.summary = 'Конкурс'
14
+ spec.description = 'Пришли чек и участвуй в розыгрыше 500 литров бензина'
15
+ spec.homepage = 'https://github.com/c80609a/c80_contest'
16
+ spec.license = 'MIT'
17
+
18
+ spec.files = `git ls-files -z`.split("\x0").reject do |f|
19
+ f.match(%r{^(test|spec|features)/})
20
+ end
21
+ spec.bindir = 'exe'
22
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
23
+ spec.require_paths = ['lib']
24
+
25
+ spec.add_development_dependency 'bundler', '~> 1.14.6'
26
+ spec.add_development_dependency 'rake', '~> 10.0'
27
+ spec.add_development_dependency 'rspec-rails', '~> 3.0'
28
+ spec.add_development_dependency 'rails', '~> 4.0'
29
+ spec.add_development_dependency 'activeadmin', '~> 1.0'
30
+ spec.add_development_dependency 'mysql2', '~> 0.3.18'
31
+ spec.add_development_dependency 'dotenv-rails', '~> 2.2.1'
32
+ spec.add_development_dependency 'shoulda-matchers', '~> 3.1'
33
+ spec.add_development_dependency 'execjs', '~> 2.7.0'
34
+ spec.add_development_dependency 'therubyracer', '~> 0.12.3'
35
+ spec.add_development_dependency 'mini_magick', '~> 4.3.3'
36
+ spec.add_development_dependency 'carrierwave', '~> 0.10.0'
37
+
38
+ spec.add_development_dependency 'jquery-rails', '~> 4.3.1'
39
+ spec.add_development_dependency 'bootstrap-sass', '>= 3.3.5.1'
40
+ spec.add_development_dependency 'sass-rails', '>= 5.0.4'
41
+ spec.add_development_dependency 'c80_modal_forms', '~> 0.1.0.1'
42
+ spec.add_development_dependency 'byebug', '~> 9.0.6'
43
+
44
+ # spec.add_development_dependency 'combustion', '~> 0.6.0'
45
+
46
+ end
data/config/routes.rb ADDED
@@ -0,0 +1,4 @@
1
+ C80Contest::Engine.routes.draw do
2
+ match '/give_me_bid_form', :to => 'site#give_me_form', :via => :post, :defaults => { :format => 'js' }
3
+ match '/make_bid', :to => 'bid#make_bid', :via => :post, :defaults => { :format => 'js' }
4
+ end
data/create_base.rb ADDED
@@ -0,0 +1,25 @@
1
+
2
+ require 'mysql2'
3
+ require 'dotenv/load'
4
+
5
+ user_name = 'dummy'
6
+ env = 'test'
7
+ db_name = "#{user_name}_#{env}_db"
8
+ pass = ENV['DB_PASS']
9
+
10
+ puts '---[ CREATE DATABASE ]------------------ '
11
+ puts "\t\t user_name = #{user_name}"
12
+ puts "\t\t env = #{env}"
13
+ puts "\t\t db_name = #{db_name}"
14
+
15
+ begin
16
+ client = Mysql2::Client.new(:host => "localhost", :username => "root", :password => pass)
17
+ client.query("CREATE DATABASE #{db_name};")
18
+ client.query("GRANT ALL PRIVILEGES ON #{db_name}.* TO #{user_name}@localhost IDENTIFIED by '#{pass}';")
19
+ client.query("FLUSH PRIVILEGES;")
20
+ rescue => e
21
+ puts "\t\t #{e}"
22
+ end
23
+
24
+ # puts '---[ FILL DATABASE ]-------------------- '
25
+ # %x`mysql -uroot -p #{db_name} < db.sql`
@@ -0,0 +1,12 @@
1
+ class CreateC80ContestBids < ActiveRecord::Migration
2
+ def change
3
+ create_table :c80_contest_bids, :options => 'COLLATE=utf8_unicode_ci' do |t|
4
+ t.string :title
5
+ t.string :photo
6
+ t.string :phone
7
+ t.string :comment
8
+ t.boolean :marked
9
+ t.timestamps
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,19 @@
1
+ class CreateC80ContestSettings < ActiveRecord::Migration
2
+ def change
3
+ create_table :c80_contest_settings, :options => 'COLLATE=utf8_unicode_ci' do |t|
4
+ t.string :form_title
5
+ t.string :form_label_name
6
+ t.string :form_label_phone
7
+ t.string :form_label_photo
8
+ t.string :form_label_button_send
9
+ t.string :form_label_button_sending
10
+ t.string :ok_text
11
+ t.string :ok_text_title
12
+ t.string :admin_label_menu
13
+ t.text :rules
14
+ t.string :message_letter_subj
15
+ t.text :message_text
16
+ t.timestamps
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,22 @@
1
+ # rake db:seed:c80_contest_fill_settings
2
+
3
+ C80Contest::Setting.delete_all
4
+ C80Contest::Setting.create!({
5
+ :form_title => 'Участвуй в конкурсе: пришли чек и выиграй 500 литров бензина!',
6
+ :form_label_name => 'Ваше имя',
7
+ :form_label_phone => 'Номер телефона',
8
+ :form_label_photo => 'Фото чека',
9
+ :form_label_button_send => 'Отправить',
10
+ :form_label_button_sending => 'Отправляется...',
11
+ :ok_text => 'Ваша заявка принята',
12
+ :ok_text_title => 'Ваша заявка отправлена',
13
+ :admin_label_menu => 'Розыгрыш',
14
+ :rules => 'Акция проводится с 18 мая по 18 июня. В розыгрыше участвуют чеки на покупки, совершённые в цетре "7авто".',
15
+ :message_letter_subj => 'Заявка на участие',
16
+ :message_text => ' • Имя: {name}<br>' +
17
+ ' • Номер телефона: {phone}<br>' +
18
+ ' • Фото чека: <br>' +
19
+ ' <img src="http://google.com/uploads/bids/{photo_url}" />' +
20
+ ' --------------------------------------<br>' +
21
+ " Просмотреть заявку: <a href='http://google.com/admin/bids/{subj_id}'>http://google.com/admin/bids/{subj_id}</a><br>"
22
+ })