biovision-poll 0.0.170908

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.md +28 -0
  4. data/Rakefile +26 -0
  5. data/app/assets/config/biovision_poll_manifest.js +2 -0
  6. data/app/assets/javascripts/biovision/poll/application.js +13 -0
  7. data/app/assets/stylesheets/biovision/poll/polls.scss +0 -0
  8. data/app/controllers/admin/poll_answers_controller.rb +23 -0
  9. data/app/controllers/admin/poll_questions_controller.rb +22 -0
  10. data/app/controllers/admin/polls_controller.rb +27 -0
  11. data/app/controllers/biovision/poll/application_controller.rb +7 -0
  12. data/app/controllers/poll_answers_controller.rb +55 -0
  13. data/app/controllers/poll_questions_controller.rb +55 -0
  14. data/app/controllers/polls_controller.rb +59 -0
  15. data/app/helpers/biovision/poll/application_helper.rb +6 -0
  16. data/app/helpers/polls_helper.rb +37 -0
  17. data/app/jobs/biovision/poll/application_job.rb +6 -0
  18. data/app/mailers/biovision/poll/application_mailer.rb +8 -0
  19. data/app/models/application_record.rb +3 -0
  20. data/app/models/biovision/poll/application_record.rb +7 -0
  21. data/app/models/poll.rb +56 -0
  22. data/app/models/poll_answer.rb +62 -0
  23. data/app/models/poll_question.rb +65 -0
  24. data/app/models/poll_vote.rb +21 -0
  25. data/app/uploaders/poll_image_uploader.rb +46 -0
  26. data/app/views/admin/poll_answers/entity/_in_list.html.erb +20 -0
  27. data/app/views/admin/poll_answers/show.html.erb +58 -0
  28. data/app/views/admin/poll_questions/_toggleable.html.erb +7 -0
  29. data/app/views/admin/poll_questions/entity/_in_list.html.erb +20 -0
  30. data/app/views/admin/poll_questions/show.html.erb +72 -0
  31. data/app/views/admin/poll_votes/entity/_in_list.html.erb +16 -0
  32. data/app/views/admin/polls/_nav_item.html.erb +6 -0
  33. data/app/views/admin/polls/_toggleable.html.erb +7 -0
  34. data/app/views/admin/polls/entity/_in_list.html.erb +20 -0
  35. data/app/views/admin/polls/index.html.erb +16 -0
  36. data/app/views/admin/polls/show.html.erb +61 -0
  37. data/app/views/layouts/biovision/poll/application.html.erb +14 -0
  38. data/app/views/poll_answers/_form.html.erb +42 -0
  39. data/app/views/poll_answers/edit.html.erb +19 -0
  40. data/app/views/poll_answers/new.html.erb +19 -0
  41. data/app/views/poll_questions/_form.html.erb +54 -0
  42. data/app/views/poll_questions/edit.html.erb +18 -0
  43. data/app/views/poll_questions/new.html.erb +18 -0
  44. data/app/views/polls/_form.html.erb +46 -0
  45. data/app/views/polls/edit.html.erb +17 -0
  46. data/app/views/polls/new.html.erb +15 -0
  47. data/config/locales/polls-ru.yml +131 -0
  48. data/config/routes.rb +18 -0
  49. data/db/migrate/20170906000001_create_polls.rb +57 -0
  50. data/db/migrate/20170906000002_create_poll_questions.rb +22 -0
  51. data/db/migrate/20170906000003_create_poll_answers.rb +20 -0
  52. data/db/migrate/20170906000004_create_poll_votes.rb +20 -0
  53. data/lib/biovision/poll.rb +7 -0
  54. data/lib/biovision/poll/engine.rb +14 -0
  55. data/lib/biovision/poll/version.rb +5 -0
  56. data/lib/tasks/biovision/poll_tasks.rake +4 -0
  57. metadata +253 -0
data/config/routes.rb ADDED
@@ -0,0 +1,18 @@
1
+ Biovision::Poll::Engine.routes.draw do
2
+ resources :polls
3
+ resources :poll_questions, :poll_answers, except: [:index, :new, :show]
4
+
5
+ namespace :admin do
6
+ resources :polls, only: [:index, :show] do
7
+ member do
8
+ post 'toggle', defaults: { format: :json }
9
+ end
10
+ end
11
+ resources :poll_questions, only: [:show] do
12
+ member do
13
+ post 'toggle', defaults: { format: :json }
14
+ end
15
+ end
16
+ resources :poll_answers, only: [:show]
17
+ end
18
+ end
@@ -0,0 +1,57 @@
1
+ class CreatePolls < ActiveRecord::Migration[5.1]
2
+ def up
3
+ unless Poll.table_exists?
4
+ create_table :polls do |t|
5
+ t.timestamps
6
+ t.references :user, foreign_key: true, null: false, on_update: :cascade, on_delete: :cascade
7
+ t.references :region, foreign_key: true, on_update: :cascade, on_delete: :cascade
8
+ t.references :agent, foreign_key: true, on_update: :cascade, on_delete: :nullify
9
+ t.inet :ip
10
+ t.integer :pollable_id
11
+ t.string :pollable_type
12
+ t.boolean :visible, default: true, null: false
13
+ t.boolean :active, default: true, null: false
14
+ t.boolean :show_on_homepage, default: true, null: false
15
+ t.boolean :anonymous_votes, default: true, null: false
16
+ t.boolean :open_results, default: true, null: false
17
+ t.date :end_date
18
+ t.integer :poll_questions_count, default: 0, null: false
19
+ t.integer :comments_count, default: 0, null: false
20
+ t.string :image
21
+ t.string :name
22
+ t.string :description
23
+ end
24
+
25
+ create_privileges
26
+ end
27
+ end
28
+
29
+ def down
30
+ if Poll.table_exists?
31
+ drop_table :polls
32
+ end
33
+ end
34
+
35
+ def create_privileges
36
+ Privilege.create(slug: 'chief_poll_manager', name: 'Главный управляющий опросами')
37
+ chief = Privilege.find_by!(slug: 'chief_poll_manager')
38
+
39
+ Privilege.create(
40
+ slug: 'poll_manager',
41
+ name: 'Управляющий опросами центра',
42
+ parent_id: chief
43
+ )
44
+ Privilege.create(
45
+ slug: 'regional_poll_manager',
46
+ name: 'Управляющий опросами региона',
47
+ parent_id: chief,
48
+ regional: true
49
+ )
50
+
51
+ PrivilegeGroup.create(slug: 'poll_managers', name: 'Управляющие опросами')
52
+ group = PrivilegeGroup.find_by!(slug: 'poll_managers')
53
+
54
+ group.add_privilege(chief)
55
+ chief.children.each { |privilege| group.add_privilege(privilege) }
56
+ end
57
+ end
@@ -0,0 +1,22 @@
1
+ class CreatePollQuestions < ActiveRecord::Migration[5.1]
2
+ def up
3
+ unless PollQuestion.table_exists?
4
+ create_table :poll_questions do |t|
5
+ t.timestamps
6
+ t.references :poll, foreign_key: true, null: false, on_update: :cascade, on_delete: :cascade
7
+ t.integer :priority, limit: 2, default: 1, null: false
8
+ t.integer :poll_answers_count, default: 0, null: false
9
+ t.boolean :multiple_choice, default: false, null: false
10
+ t.string :image
11
+ t.string :text, null: false
12
+ t.string :comment
13
+ end
14
+ end
15
+ end
16
+
17
+ def down
18
+ if PollQuestion.table_exists?
19
+ drop_table :poll_questions
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,20 @@
1
+ class CreatePollAnswers < ActiveRecord::Migration[5.1]
2
+ def up
3
+ unless PollAnswer.table_exists?
4
+ create_table :poll_answers do |t|
5
+ t.timestamps
6
+ t.references :poll_question, foreign_key: true, null: false, on_update: :cascade, on_delete: :cascade
7
+ t.integer :priority, limit: 2, default: 1, null: false
8
+ t.integer :poll_votes_count, default: 0, null: false
9
+ t.string :image
10
+ t.string :text, null: false
11
+ end
12
+ end
13
+ end
14
+
15
+ def down
16
+ if PollAnswer.table_exists?
17
+ drop_table :poll_answers
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,20 @@
1
+ class CreatePollVotes < ActiveRecord::Migration[5.1]
2
+ def up
3
+ unless PollVote.table_exists?
4
+ create_table :poll_votes do |t|
5
+ t.timestamps
6
+ t.references :poll_answer, foreign_key: true, null: false, on_update: :cascade, on_delete: :cascade
7
+ t.references :user, foreign_key: true, on_update: :cascade, on_delete: :cascade
8
+ t.references :agent, foreign_key: true, on_update: :cascade, on_delete: :nullify
9
+ t.inet :ip
10
+ t.string :footprint
11
+ end
12
+ end
13
+ end
14
+
15
+ def down
16
+ if PollVote.table_exists?
17
+ drop_table :poll_votes
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,7 @@
1
+ require "biovision/poll/engine"
2
+
3
+ module Biovision
4
+ module Poll
5
+ # Your code goes here...
6
+ end
7
+ end
@@ -0,0 +1,14 @@
1
+ module Biovision
2
+ module Poll
3
+ class Engine < ::Rails::Engine
4
+ config.assets.precompile << %w(admin.scss)
5
+ config.assets.precompile << %w(biovision/base/icons/*)
6
+ config.assets.precompile << %w(biovision/base/placeholders/*)
7
+ end
8
+
9
+ require 'biovision/base'
10
+ require 'carrierwave'
11
+ require 'carrierwave-bombshelter'
12
+ require 'mini_magick'
13
+ end
14
+ end
@@ -0,0 +1,5 @@
1
+ module Biovision
2
+ module Poll
3
+ VERSION = '0.0.170908'
4
+ end
5
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :biovision_poll do
3
+ # # Task goes here
4
+ # end
metadata ADDED
@@ -0,0 +1,253 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: biovision-poll
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.170908
5
+ platform: ruby
6
+ authors:
7
+ - Maxim Khan-Magomedov
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-09-08 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: '5.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '5.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rails-i18n
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '5.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '5.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: biovision-base
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: carrierwave
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: carrierwave-bombshelter
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: kaminari
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: mini_magick
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: database_cleaner
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: factory_girl_rails
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: pg
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: rspec-rails
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ description: Polls for biovision-based applications
168
+ email:
169
+ - maxim.km@gmail.com
170
+ executables: []
171
+ extensions: []
172
+ extra_rdoc_files: []
173
+ files:
174
+ - MIT-LICENSE
175
+ - README.md
176
+ - Rakefile
177
+ - app/assets/config/biovision_poll_manifest.js
178
+ - app/assets/javascripts/biovision/poll/application.js
179
+ - app/assets/stylesheets/biovision/poll/polls.scss
180
+ - app/controllers/admin/poll_answers_controller.rb
181
+ - app/controllers/admin/poll_questions_controller.rb
182
+ - app/controllers/admin/polls_controller.rb
183
+ - app/controllers/biovision/poll/application_controller.rb
184
+ - app/controllers/poll_answers_controller.rb
185
+ - app/controllers/poll_questions_controller.rb
186
+ - app/controllers/polls_controller.rb
187
+ - app/helpers/biovision/poll/application_helper.rb
188
+ - app/helpers/polls_helper.rb
189
+ - app/jobs/biovision/poll/application_job.rb
190
+ - app/mailers/biovision/poll/application_mailer.rb
191
+ - app/models/application_record.rb
192
+ - app/models/biovision/poll/application_record.rb
193
+ - app/models/poll.rb
194
+ - app/models/poll_answer.rb
195
+ - app/models/poll_question.rb
196
+ - app/models/poll_vote.rb
197
+ - app/uploaders/poll_image_uploader.rb
198
+ - app/views/admin/poll_answers/entity/_in_list.html.erb
199
+ - app/views/admin/poll_answers/show.html.erb
200
+ - app/views/admin/poll_questions/_toggleable.html.erb
201
+ - app/views/admin/poll_questions/entity/_in_list.html.erb
202
+ - app/views/admin/poll_questions/show.html.erb
203
+ - app/views/admin/poll_votes/entity/_in_list.html.erb
204
+ - app/views/admin/polls/_nav_item.html.erb
205
+ - app/views/admin/polls/_toggleable.html.erb
206
+ - app/views/admin/polls/entity/_in_list.html.erb
207
+ - app/views/admin/polls/index.html.erb
208
+ - app/views/admin/polls/show.html.erb
209
+ - app/views/layouts/biovision/poll/application.html.erb
210
+ - app/views/poll_answers/_form.html.erb
211
+ - app/views/poll_answers/edit.html.erb
212
+ - app/views/poll_answers/new.html.erb
213
+ - app/views/poll_questions/_form.html.erb
214
+ - app/views/poll_questions/edit.html.erb
215
+ - app/views/poll_questions/new.html.erb
216
+ - app/views/polls/_form.html.erb
217
+ - app/views/polls/edit.html.erb
218
+ - app/views/polls/new.html.erb
219
+ - config/locales/polls-ru.yml
220
+ - config/routes.rb
221
+ - db/migrate/20170906000001_create_polls.rb
222
+ - db/migrate/20170906000002_create_poll_questions.rb
223
+ - db/migrate/20170906000003_create_poll_answers.rb
224
+ - db/migrate/20170906000004_create_poll_votes.rb
225
+ - lib/biovision/poll.rb
226
+ - lib/biovision/poll/engine.rb
227
+ - lib/biovision/poll/version.rb
228
+ - lib/tasks/biovision/poll_tasks.rake
229
+ homepage: https://github.com/Biovision/biovision-poll
230
+ licenses:
231
+ - MIT
232
+ metadata: {}
233
+ post_install_message:
234
+ rdoc_options: []
235
+ require_paths:
236
+ - lib
237
+ required_ruby_version: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - ">="
240
+ - !ruby/object:Gem::Version
241
+ version: '0'
242
+ required_rubygems_version: !ruby/object:Gem::Requirement
243
+ requirements:
244
+ - - ">="
245
+ - !ruby/object:Gem::Version
246
+ version: '0'
247
+ requirements: []
248
+ rubyforge_project:
249
+ rubygems_version: 2.6.11
250
+ signing_key:
251
+ specification_version: 4
252
+ summary: Polls for biovision-based applications
253
+ test_files: []