biovision-poll 0.0.170908 → 0.1.180917.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +5 -5
  2. data/app/controllers/admin/poll_answers_controller.rb +1 -0
  3. data/app/controllers/admin/poll_questions_controller.rb +1 -0
  4. data/app/controllers/admin/polls_controller.rb +23 -0
  5. data/app/controllers/poll_answers_controller.rb +5 -5
  6. data/app/controllers/poll_questions_controller.rb +5 -5
  7. data/app/controllers/polls_controller.rb +36 -8
  8. data/app/helpers/polls_helper.rb +8 -3
  9. data/app/models/poll.rb +64 -5
  10. data/app/models/poll_answer.rb +5 -0
  11. data/app/models/poll_question.rb +4 -0
  12. data/app/models/poll_user.rb +10 -0
  13. data/app/views/admin/index/dashboard/_biovision_poll.html.erb +10 -0
  14. data/app/views/admin/poll_answers/entity/_in_list.html.erb +11 -12
  15. data/app/views/admin/poll_answers/show.html.erb +2 -2
  16. data/app/views/admin/poll_questions/entity/_in_list.html.erb +29 -8
  17. data/app/views/admin/poll_questions/show.html.erb +17 -4
  18. data/app/views/admin/poll_users/entity/_in_list.html.erb +18 -0
  19. data/app/views/admin/polls/_nav_item.html.erb +2 -6
  20. data/app/views/admin/polls/entity/_in_list.html.erb +30 -6
  21. data/app/views/admin/polls/entity/_user_filter.html.erb +85 -0
  22. data/app/views/admin/polls/show.html.erb +48 -17
  23. data/app/views/admin/polls/users.html.erb +21 -0
  24. data/app/views/admin/polls/users.jbuilder +10 -0
  25. data/app/views/poll_answers/_form.html.erb +39 -37
  26. data/app/views/poll_answers/_poll_answer.html.erb +6 -0
  27. data/app/views/poll_answers/edit.html.erb +1 -1
  28. data/app/views/poll_answers/new.html.erb +1 -1
  29. data/app/views/poll_questions/_form.html.erb +55 -47
  30. data/app/views/poll_questions/_poll_question.html.erb +10 -0
  31. data/app/views/poll_questions/edit.html.erb +1 -1
  32. data/app/views/poll_questions/new.html.erb +1 -1
  33. data/app/views/polls/_form.html.erb +49 -39
  34. data/app/views/polls/_list.html.erb +11 -0
  35. data/app/views/polls/_poll.html.erb +22 -0
  36. data/app/views/polls/edit.html.erb +1 -1
  37. data/app/views/polls/entity/_in_list.html.erb +20 -0
  38. data/app/views/polls/index.html.erb +9 -0
  39. data/app/views/polls/results.html.erb +6 -0
  40. data/app/views/polls/show.html.erb +3 -0
  41. data/config/locales/polls-ru.yml +36 -2
  42. data/config/routes.rb +27 -10
  43. data/db/migrate/20170906000001_create_polls.rb +19 -6
  44. data/db/migrate/20170906000002_create_poll_questions.rb +1 -1
  45. data/db/migrate/20170906000003_create_poll_answers.rb +1 -1
  46. data/db/migrate/20170906000004_create_poll_votes.rb +2 -2
  47. data/db/migrate/20180412000010_create_poll_users.rb +21 -0
  48. data/db/migrate/20180903111111_rename_vote_footprint.rb +11 -0
  49. data/lib/biovision/poll/engine.rb +10 -6
  50. data/lib/biovision/poll/version.rb +1 -1
  51. metadata +20 -6
  52. data/app/views/admin/poll_questions/_toggleable.html.erb +0 -7
  53. data/app/views/admin/polls/_toggleable.html.erb +0 -7
@@ -3,9 +3,9 @@ class CreatePolls < ActiveRecord::Migration[5.1]
3
3
  unless Poll.table_exists?
4
4
  create_table :polls do |t|
5
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
6
+ t.references :user, null: false, foreign_key: { on_update: :cascade, on_delete: :cascade }
7
+ t.integer :region_id, index: true
8
+ t.references :agent, foreign_key: { on_update: :cascade, on_delete: :nullify }
9
9
  t.inet :ip
10
10
  t.integer :pollable_id
11
11
  t.string :pollable_type
@@ -14,6 +14,7 @@ class CreatePolls < ActiveRecord::Migration[5.1]
14
14
  t.boolean :show_on_homepage, default: true, null: false
15
15
  t.boolean :anonymous_votes, default: true, null: false
16
16
  t.boolean :open_results, default: true, null: false
17
+ t.boolean :exclusive, default: false, null: false
17
18
  t.date :end_date
18
19
  t.integer :poll_questions_count, default: 0, null: false
19
20
  t.integer :comments_count, default: 0, null: false
@@ -22,6 +23,10 @@ class CreatePolls < ActiveRecord::Migration[5.1]
22
23
  t.string :description
23
24
  end
24
25
 
26
+ if Gem.loaded_specs.key?('biovision-regions')
27
+ add_foreign_key :polls, :regions, column: :region_id, on_update: :cascade, on_delete: :cascade
28
+ end
29
+
25
30
  create_privileges
26
31
  end
27
32
  end
@@ -32,20 +37,28 @@ class CreatePolls < ActiveRecord::Migration[5.1]
32
37
  end
33
38
  end
34
39
 
40
+ private
41
+
35
42
  def create_privileges
36
- Privilege.create(slug: 'chief_poll_manager', name: 'Главный управляющий опросами')
43
+ Privilege.create(
44
+ slug: 'chief_poll_manager',
45
+ name: 'Главный управляющий опросами',
46
+ administrative: true
47
+ )
37
48
  chief = Privilege.find_by!(slug: 'chief_poll_manager')
38
49
 
39
50
  Privilege.create(
40
51
  slug: 'poll_manager',
41
52
  name: 'Управляющий опросами центра',
42
- parent_id: chief
53
+ parent_id: chief,
54
+ administrative: true
43
55
  )
44
56
  Privilege.create(
45
57
  slug: 'regional_poll_manager',
46
58
  name: 'Управляющий опросами региона',
47
59
  parent_id: chief,
48
- regional: true
60
+ regional: true,
61
+ administrative: true
49
62
  )
50
63
 
51
64
  PrivilegeGroup.create(slug: 'poll_managers', name: 'Управляющие опросами')
@@ -3,7 +3,7 @@ class CreatePollQuestions < ActiveRecord::Migration[5.1]
3
3
  unless PollQuestion.table_exists?
4
4
  create_table :poll_questions do |t|
5
5
  t.timestamps
6
- t.references :poll, foreign_key: true, null: false, on_update: :cascade, on_delete: :cascade
6
+ t.references :poll, null: false, foreign_key: { on_update: :cascade, on_delete: :cascade }
7
7
  t.integer :priority, limit: 2, default: 1, null: false
8
8
  t.integer :poll_answers_count, default: 0, null: false
9
9
  t.boolean :multiple_choice, default: false, null: false
@@ -3,7 +3,7 @@ class CreatePollAnswers < ActiveRecord::Migration[5.1]
3
3
  unless PollAnswer.table_exists?
4
4
  create_table :poll_answers do |t|
5
5
  t.timestamps
6
- t.references :poll_question, foreign_key: true, null: false, on_update: :cascade, on_delete: :cascade
6
+ t.references :poll_question, null: false, foreign_key: { on_update: :cascade, on_delete: :cascade }
7
7
  t.integer :priority, limit: 2, default: 1, null: false
8
8
  t.integer :poll_votes_count, default: 0, null: false
9
9
  t.string :image
@@ -3,11 +3,11 @@ class CreatePollVotes < ActiveRecord::Migration[5.1]
3
3
  unless PollVote.table_exists?
4
4
  create_table :poll_votes do |t|
5
5
  t.timestamps
6
- t.references :poll_answer, foreign_key: true, null: false, on_update: :cascade, on_delete: :cascade
6
+ t.references :poll_answer, null: false, foreign_key: { on_update: :cascade, on_delete: :cascade }
7
7
  t.references :user, foreign_key: true, on_update: :cascade, on_delete: :cascade
8
8
  t.references :agent, foreign_key: true, on_update: :cascade, on_delete: :nullify
9
9
  t.inet :ip
10
- t.string :footprint
10
+ t.string :slug
11
11
  end
12
12
  end
13
13
  end
@@ -0,0 +1,21 @@
1
+ class CreatePollUsers < ActiveRecord::Migration[5.2]
2
+ def up
3
+ unless PollUser.table_exists?
4
+ create_table :poll_users do |t|
5
+ t.timestamps
6
+ t.references :poll, null: false, foreign_key: { on_update: :cascade, on_delete: :cascade }
7
+ t.references :user, null: false, foreign_key: { on_update: :cascade, on_delete: :cascade }
8
+ end
9
+ end
10
+
11
+ unless column_exists? :polls, :exclusive
12
+ add_column :polls, :exclusive, :boolean, default: false, null: false
13
+ end
14
+ end
15
+
16
+ def down
17
+ if PollUser.table_exists?
18
+ drop_table :poll_users
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,11 @@
1
+ class RenameVoteFootprint < ActiveRecord::Migration[5.2]
2
+ def up
3
+ if column_exists?(:poll_votes, :footprint)
4
+ rename_column :poll_votes, :footprint, :slug
5
+ end
6
+ end
7
+
8
+ def down
9
+ # No rollback needed
10
+ end
11
+ end
@@ -1,14 +1,18 @@
1
1
  module Biovision
2
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
3
  require 'biovision/base'
10
4
  require 'carrierwave'
11
5
  require 'carrierwave-bombshelter'
12
6
  require 'mini_magick'
7
+
8
+ class Engine < ::Rails::Engine
9
+ config.assets.precompile << %w(admin.scss)
10
+ config.assets.precompile << %w(biovision/base/**/*)
11
+
12
+ config.generators do |g|
13
+ g.test_framework :rspec
14
+ g.fixture_replacement :factory_bot, :dir => 'spec/factories'
15
+ end
16
+ end
13
17
  end
14
18
  end
@@ -1,5 +1,5 @@
1
1
  module Biovision
2
2
  module Poll
3
- VERSION = '0.0.170908'
3
+ VERSION = '0.1.180917.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: biovision-poll
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.170908
4
+ version: 0.1.180917.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maxim Khan-Magomedov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-08 00:00:00.000000000 Z
11
+ date: 2018-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -123,7 +123,7 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: factory_girl_rails
126
+ name: factory_bot_rails
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
@@ -193,35 +193,49 @@ files:
193
193
  - app/models/poll.rb
194
194
  - app/models/poll_answer.rb
195
195
  - app/models/poll_question.rb
196
+ - app/models/poll_user.rb
196
197
  - app/models/poll_vote.rb
197
198
  - app/uploaders/poll_image_uploader.rb
199
+ - app/views/admin/index/dashboard/_biovision_poll.html.erb
198
200
  - app/views/admin/poll_answers/entity/_in_list.html.erb
199
201
  - app/views/admin/poll_answers/show.html.erb
200
- - app/views/admin/poll_questions/_toggleable.html.erb
201
202
  - app/views/admin/poll_questions/entity/_in_list.html.erb
202
203
  - app/views/admin/poll_questions/show.html.erb
204
+ - app/views/admin/poll_users/entity/_in_list.html.erb
203
205
  - app/views/admin/poll_votes/entity/_in_list.html.erb
204
206
  - app/views/admin/polls/_nav_item.html.erb
205
- - app/views/admin/polls/_toggleable.html.erb
206
207
  - app/views/admin/polls/entity/_in_list.html.erb
208
+ - app/views/admin/polls/entity/_user_filter.html.erb
207
209
  - app/views/admin/polls/index.html.erb
208
210
  - app/views/admin/polls/show.html.erb
211
+ - app/views/admin/polls/users.html.erb
212
+ - app/views/admin/polls/users.jbuilder
209
213
  - app/views/layouts/biovision/poll/application.html.erb
210
214
  - app/views/poll_answers/_form.html.erb
215
+ - app/views/poll_answers/_poll_answer.html.erb
211
216
  - app/views/poll_answers/edit.html.erb
212
217
  - app/views/poll_answers/new.html.erb
213
218
  - app/views/poll_questions/_form.html.erb
219
+ - app/views/poll_questions/_poll_question.html.erb
214
220
  - app/views/poll_questions/edit.html.erb
215
221
  - app/views/poll_questions/new.html.erb
216
222
  - app/views/polls/_form.html.erb
223
+ - app/views/polls/_list.html.erb
224
+ - app/views/polls/_poll.html.erb
217
225
  - app/views/polls/edit.html.erb
226
+ - app/views/polls/entity/_in_list.html.erb
227
+ - app/views/polls/index.html.erb
218
228
  - app/views/polls/new.html.erb
229
+ - app/views/polls/results.html.erb
230
+ - app/views/polls/show.html.erb
219
231
  - config/locales/polls-ru.yml
220
232
  - config/routes.rb
221
233
  - db/migrate/20170906000001_create_polls.rb
222
234
  - db/migrate/20170906000002_create_poll_questions.rb
223
235
  - db/migrate/20170906000003_create_poll_answers.rb
224
236
  - db/migrate/20170906000004_create_poll_votes.rb
237
+ - db/migrate/20180412000010_create_poll_users.rb
238
+ - db/migrate/20180903111111_rename_vote_footprint.rb
225
239
  - lib/biovision/poll.rb
226
240
  - lib/biovision/poll/engine.rb
227
241
  - lib/biovision/poll/version.rb
@@ -246,7 +260,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
246
260
  version: '0'
247
261
  requirements: []
248
262
  rubyforge_project:
249
- rubygems_version: 2.6.11
263
+ rubygems_version: 2.7.6
250
264
  signing_key:
251
265
  specification_version: 4
252
266
  summary: Polls for biovision-based applications
@@ -1,7 +0,0 @@
1
- <div class="toggleable" data-url="<%= toggle_admin_poll_question_path(entity) %>">
2
- <% PollQuestion.toggleable_attributes.each do |flag| %>
3
- <span class="<%= entity.attributes[flag.to_s] ? 'active' : 'inactive' %>" data-flag="<%= flag %>">
4
- <%= t("activerecord.attributes.poll_question.#{flag}") %>
5
- </span>
6
- <% end %>
7
- </div>
@@ -1,7 +0,0 @@
1
- <div class="toggleable" data-url="<%= toggle_admin_poll_path(entity) %>">
2
- <% Poll.toggleable_attributes.each do |flag| %>
3
- <span class="<%= entity.attributes[flag.to_s] ? 'active' : 'inactive' %>" data-flag="<%= flag %>">
4
- <%= t("activerecord.attributes.poll.#{flag}") %>
5
- </span>
6
- <% end %>
7
- </div>