rails_voter 0.0.3 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/rails_voter/application.js +4 -0
- data/app/assets/javascripts/rails_voter/voting_results.js +2 -0
- data/app/assets/stylesheets/rails_voter/{application.css → application.scss} +3 -2
- data/app/assets/stylesheets/rails_voter/voting_results.css +4 -0
- data/app/controllers/rails_voter/elections_controller.rb +39 -0
- data/app/controllers/rails_voter/voting_results_controller.rb +17 -0
- data/app/models/rails_voter/{ballot_form.rb → election.rb} +3 -3
- data/app/models/rails_voter/election_detail.rb +6 -0
- data/app/models/rails_voter/voting_result.rb +14 -1
- data/app/views/layouts/rails_voter/_menu.html.haml +12 -0
- data/app/views/layouts/rails_voter/{application.html.erb → aaaapplication.html.erb} +0 -0
- data/app/views/layouts/rails_voter/application.html.haml +32 -0
- data/app/views/rails_voter/{ballot_forms/_ballot_form_detail_record.html.haml → elections/_election_detail_record.html.haml} +1 -1
- data/app/views/rails_voter/elections/_form.html.haml +9 -0
- data/app/views/rails_voter/{ballot_forms → elections}/edit.html.haml +0 -0
- data/app/views/rails_voter/elections/index.html.haml +8 -0
- data/app/views/rails_voter/{ballot_forms → elections}/new.html.haml +0 -0
- data/app/views/rails_voter/elections/show_result.html.haml +5 -0
- data/app/views/rails_voter/elections/vote.html.haml +9 -0
- data/app/views/rails_voter/voting_results/create.html.haml +2 -0
- data/config/locales/en.yml +2 -2
- data/config/locales/pl.yml +2 -2
- data/config/routes.rb +7 -2
- data/db/migrate/20160707113355_change_ballot_form_name.rb +9 -0
- data/db/migrate/20160707114814_change_ballot_form_detail_name.rb +9 -0
- data/db/migrate/20160707131546_change_ballot_form_detail_id_name.rb +9 -0
- data/db/migrate/20160707143841_change_ballot_form_id_column_name.rb +9 -0
- data/db/seeds.rb +24 -14
- data/lib/rails_voter/engine.rb +3 -0
- data/lib/rails_voter/version.rb +1 -1
- metadata +72 -18
- data/app/controllers/rails_voter/ballot_forms_controller.rb +0 -36
- data/app/models/rails_voter/ballot_form_detail.rb +0 -6
- data/app/views/rails_voter/ballot_forms/_form.html.haml +0 -9
- data/app/views/rails_voter/ballot_forms/index.html.haml +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2cdf2dab644d3921613e5a11d4525a0f63b08f22
|
4
|
+
data.tar.gz: d5b0a6487b627b7baf10820855d6cacba596f655
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b03b5bf021633675bd766a500dfa3436b4881e57d8a082aeed2ae3f22b2f9f92f4b97cf58fb7a17577bf61548ee08dc620bc4fdc5aed9bc23c4f476676b176d
|
7
|
+
data.tar.gz: 5c4c983b59ffa845a488db1d356dcb13c16ffe1daabdb784fb763b2e6e866bda44fe1f458c30828eaeb06d08971ba346e445c92ee455debd426c9b574e803e9b
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require_dependency "rails_voter/application_controller"
|
2
|
+
|
3
|
+
module RailsVoter
|
4
|
+
class ElectionsController < ApplicationController
|
5
|
+
expose :elections, -> { Election.all }
|
6
|
+
expose :election, model: RailsVoter::Election
|
7
|
+
expose :election_details, -> { ElectionDetail.where(election_id: params[:id]) }
|
8
|
+
expose :voting_result, -> { RailsVoter::VotingResult.new }
|
9
|
+
expose :voting_result_show, -> { RailsVoter::VotingResult.show(params[:id]) }
|
10
|
+
|
11
|
+
def new
|
12
|
+
10.times do
|
13
|
+
election.election_details.new
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def create
|
18
|
+
if election.save
|
19
|
+
redirect_to elections_path
|
20
|
+
else
|
21
|
+
render :new
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def update
|
26
|
+
if election.update(election_params)
|
27
|
+
redirect_to elections_path
|
28
|
+
else
|
29
|
+
render :new
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
private
|
34
|
+
|
35
|
+
def election_params
|
36
|
+
params.require(:election).permit(:name, election_details_attributes: [:name, :id])
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require_dependency "rails_voter/application_controller"
|
2
|
+
|
3
|
+
module RailsVoter
|
4
|
+
class VotingResultsController < ApplicationController
|
5
|
+
expose :voting_result, model: RailsVoter::VotingResult
|
6
|
+
|
7
|
+
def create
|
8
|
+
voting_result.save
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def voting_result_params
|
14
|
+
params.require(:voting_result).permit(:election_detail_id)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -1,9 +1,9 @@
|
|
1
1
|
module RailsVoter
|
2
|
-
class
|
3
|
-
has_many :
|
2
|
+
class Election < ActiveRecord::Base
|
3
|
+
has_many :election_details
|
4
4
|
|
5
5
|
accepts_nested_attributes_for(
|
6
|
-
:
|
6
|
+
:election_details,
|
7
7
|
reject_if: proc { |bfd| bfd["name"].blank? },
|
8
8
|
allow_destroy: true
|
9
9
|
)
|
@@ -1,5 +1,18 @@
|
|
1
1
|
module RailsVoter
|
2
2
|
class VotingResult < ActiveRecord::Base
|
3
|
-
belongs_to :
|
3
|
+
belongs_to :election_detail
|
4
|
+
|
5
|
+
scope :show, lambda { |election_id|
|
6
|
+
where(
|
7
|
+
"election_detail_id IN (?)", RailsVoter::Election.
|
8
|
+
find(election_id).
|
9
|
+
election_details.pluck(:id)
|
10
|
+
).
|
11
|
+
group(:election_detail_id).
|
12
|
+
count.
|
13
|
+
sort_by { |_, v| v }.
|
14
|
+
reverse.
|
15
|
+
to_h
|
16
|
+
}
|
4
17
|
end
|
5
18
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
.navbar.navbar-default
|
2
|
+
.container
|
3
|
+
%button.navbar-toggle{ type: "button", 'data-toggle': "collapse", 'data-target': ".navbar-responsive-collapse" }
|
4
|
+
%span.icon-bar
|
5
|
+
%span.icon-bar
|
6
|
+
%span.icon-bar
|
7
|
+
|
8
|
+
%a.navbar-brand{ href: "/rails_voter" } Rails Voter
|
9
|
+
.navbar-collapse.collapse.navbar-responsive-collapse
|
10
|
+
%ul.nav.navbar-nav
|
11
|
+
%li= link_to "position 1", "#"
|
12
|
+
%li= link_to "position 2", "#"
|
File without changes
|
@@ -0,0 +1,32 @@
|
|
1
|
+
!!! 5
|
2
|
+
%html{ lang: "en" }
|
3
|
+
%head
|
4
|
+
%meta{ charset: "utf-8" }
|
5
|
+
%meta{ 'http-equiv': "X-UA-Compatible", content: "IE=Edge,chrome=1" }
|
6
|
+
%meta{ name: "viewport", content: "width=device-width, initial-scale=1.0" }
|
7
|
+
%title= content_for?(:title) ? yield(:title) : "Rails Voter"
|
8
|
+
= csrf_meta_tags
|
9
|
+
= stylesheet_link_tag "rails_voter/application", media: "all"
|
10
|
+
= favicon_link_tag "apple-touch-icon-144x144-precomposed.png", rel: "apple-touch-icon-precomposed", type: "image/png", sizes: "144x144"
|
11
|
+
= favicon_link_tag "apple-touch-icon-114x114-precomposed.png", rel: "apple-touch-icon-precomposed", type: "image/png", sizes: "114x114"
|
12
|
+
= favicon_link_tag "apple-touch-icon-72x72-precomposed.png", rel: "apple-touch-icon-precomposed", type: "image/png", sizes: "72x72"
|
13
|
+
= favicon_link_tag "apple-touch-icon-precomposed.png", rel: "apple-touch-icon-precomposed", type: "image/png"
|
14
|
+
= favicon_link_tag "favicon.ico", rel: "shortcut icon"
|
15
|
+
= javascript_include_tag "rails_voter/application"
|
16
|
+
/ Le HTML5 shim, for IE6-8 support of HTML elements
|
17
|
+
/[if lt IE 9]
|
18
|
+
= javascript_include_tag "//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.2/html5shiv.min.js"
|
19
|
+
|
20
|
+
|
21
|
+
%body
|
22
|
+
= render "layouts/rails_voter/menu"
|
23
|
+
.container
|
24
|
+
.row
|
25
|
+
.col-lg-9
|
26
|
+
/ = bootstrap_flash
|
27
|
+
= yield
|
28
|
+
.col-lg-3
|
29
|
+
.well.sidebar-nav
|
30
|
+
%h3= t("stats")
|
31
|
+
%footer
|
32
|
+
%p © Company 2016
|
File without changes
|
File without changes
|
data/config/locales/en.yml
CHANGED
data/config/locales/pl.yml
CHANGED
data/config/routes.rb
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
RailsVoter::Engine.routes.draw do
|
2
|
-
resources :
|
2
|
+
resources :elections do
|
3
|
+
get "vote", on: :member
|
4
|
+
get "show_result", on: :member
|
5
|
+
end
|
3
6
|
|
4
|
-
|
7
|
+
resources :voting_results, only: [:create]
|
8
|
+
|
9
|
+
root to: "elections#index"
|
5
10
|
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
class ChangeBallotFormDetailIdName < ActiveRecord::Migration
|
2
|
+
def up
|
3
|
+
rename_column "rails_voter_voting_results", :ballot_form_detail_id, :election_detail_id
|
4
|
+
end
|
5
|
+
|
6
|
+
def down
|
7
|
+
rename_column "rails_voter_voting_results", :election_detail_id, :ballot_form_detail_id
|
8
|
+
end
|
9
|
+
end
|
data/db/seeds.rb
CHANGED
@@ -1,26 +1,20 @@
|
|
1
1
|
require "faker"
|
2
2
|
|
3
|
+
p "Remove seeds"
|
4
|
+
RailsVoter::VotingResult.destroy_all
|
5
|
+
RailsVoter::ElectionDetail.destroy_all
|
6
|
+
RailsVoter::Election.destroy_all
|
7
|
+
|
3
8
|
separator = ">>>>>>>><<<<<<<<<<"
|
4
9
|
|
5
10
|
p separator
|
6
11
|
|
7
|
-
ballot_form_id = 0
|
8
|
-
ballot_form_detail_id = 0
|
9
|
-
|
10
12
|
5.times do
|
11
|
-
|
12
|
-
RailsVoter::BallotForm.create(name: Faker::StarWars.planet)
|
13
|
-
|
13
|
+
bf = RailsVoter::Election.create(name: Faker::StarWars.planet)
|
14
14
|
2.times do
|
15
|
-
|
16
|
-
|
17
|
-
RailsVoter::BallotFormDetail.create(
|
18
|
-
name: Faker::StarWars.character,
|
19
|
-
ballot_form_id: ballot_form_id
|
20
|
-
)
|
21
|
-
|
15
|
+
bfd = bf.election_details.create(name: Faker::StarWars.character)
|
22
16
|
3.times do
|
23
|
-
|
17
|
+
bfd.voting_results.create
|
24
18
|
end
|
25
19
|
end
|
26
20
|
end
|
@@ -29,3 +23,19 @@ message = "5 ballot forms, 10 ballot form details and 30 voting results created.
|
|
29
23
|
p separator
|
30
24
|
p message
|
31
25
|
p separator
|
26
|
+
|
27
|
+
p "United States presidential election, 2016 seeds"
|
28
|
+
|
29
|
+
bf = RailsVoter::Election.create(name: "United States presidential election, 2016")
|
30
|
+
|
31
|
+
bfd = bf.election_details.create(name: "Hillary Clinton")
|
32
|
+
4.times { bfd.voting_results.create }
|
33
|
+
|
34
|
+
bfd = bf.election_details.create(name: "Donald Trump")
|
35
|
+
3.times { bfd.voting_results.create }
|
36
|
+
|
37
|
+
bfd = bf.election_details.create(name: "Gary Johnson")
|
38
|
+
2.times { bfd.voting_results.create }
|
39
|
+
|
40
|
+
bfd = bf.election_details.create(name: "Jill Stein")
|
41
|
+
2.times { bfd.voting_results.create }
|
data/lib/rails_voter/engine.rb
CHANGED
data/lib/rails_voter/version.rb
CHANGED
metadata
CHANGED
@@ -1,43 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_voter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sunny Rails Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-07-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 4.2.6
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 4.2.6
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: decent_exposure
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 3.0.0
|
33
|
+
version: 3.0.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 3.0.0
|
40
|
+
version: 3.0.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: draper
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,6 +80,34 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: bootstrap-sass
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 3.3.6
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 3.3.6
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: jquery-rails
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '4.1'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '4.1'
|
83
111
|
- !ruby/object:Gem::Dependency
|
84
112
|
name: sqlite3
|
85
113
|
requirement: !ruby/object:Gem::Requirement
|
@@ -220,6 +248,20 @@ dependencies:
|
|
220
248
|
- - ">="
|
221
249
|
- !ruby/object:Gem::Version
|
222
250
|
version: '0'
|
251
|
+
- !ruby/object:Gem::Dependency
|
252
|
+
name: haml_lint
|
253
|
+
requirement: !ruby/object:Gem::Requirement
|
254
|
+
requirements:
|
255
|
+
- - ">="
|
256
|
+
- !ruby/object:Gem::Version
|
257
|
+
version: '0'
|
258
|
+
type: :development
|
259
|
+
prerelease: false
|
260
|
+
version_requirements: !ruby/object:Gem::Requirement
|
261
|
+
requirements:
|
262
|
+
- - ">="
|
263
|
+
- !ruby/object:Gem::Version
|
264
|
+
version: '0'
|
223
265
|
description: ''
|
224
266
|
email:
|
225
267
|
- grafska@gmail.com
|
@@ -231,20 +273,28 @@ files:
|
|
231
273
|
- Rakefile
|
232
274
|
- app/assets/javascripts/rails_voter/application.js
|
233
275
|
- app/assets/javascripts/rails_voter/ballot_forms.js
|
234
|
-
- app/assets/
|
276
|
+
- app/assets/javascripts/rails_voter/voting_results.js
|
277
|
+
- app/assets/stylesheets/rails_voter/application.scss
|
235
278
|
- app/assets/stylesheets/rails_voter/ballot_forms.css
|
279
|
+
- app/assets/stylesheets/rails_voter/voting_results.css
|
236
280
|
- app/controllers/rails_voter/application_controller.rb
|
237
|
-
- app/controllers/rails_voter/
|
281
|
+
- app/controllers/rails_voter/elections_controller.rb
|
282
|
+
- app/controllers/rails_voter/voting_results_controller.rb
|
238
283
|
- app/helpers/rails_voter/application_helper.rb
|
239
|
-
- app/models/rails_voter/
|
240
|
-
- app/models/rails_voter/
|
284
|
+
- app/models/rails_voter/election.rb
|
285
|
+
- app/models/rails_voter/election_detail.rb
|
241
286
|
- app/models/rails_voter/voting_result.rb
|
242
|
-
- app/views/layouts/rails_voter/
|
243
|
-
- app/views/rails_voter/
|
244
|
-
- app/views/rails_voter/
|
245
|
-
- app/views/rails_voter/
|
246
|
-
- app/views/rails_voter/
|
247
|
-
- app/views/rails_voter/
|
287
|
+
- app/views/layouts/rails_voter/_menu.html.haml
|
288
|
+
- app/views/layouts/rails_voter/aaaapplication.html.erb
|
289
|
+
- app/views/layouts/rails_voter/application.html.haml
|
290
|
+
- app/views/rails_voter/elections/_election_detail_record.html.haml
|
291
|
+
- app/views/rails_voter/elections/_form.html.haml
|
292
|
+
- app/views/rails_voter/elections/edit.html.haml
|
293
|
+
- app/views/rails_voter/elections/index.html.haml
|
294
|
+
- app/views/rails_voter/elections/new.html.haml
|
295
|
+
- app/views/rails_voter/elections/show_result.html.haml
|
296
|
+
- app/views/rails_voter/elections/vote.html.haml
|
297
|
+
- app/views/rails_voter/voting_results/create.html.haml
|
248
298
|
- config/locales/en.yml
|
249
299
|
- config/locales/pl.yml
|
250
300
|
- config/routes.rb
|
@@ -253,6 +303,10 @@ files:
|
|
253
303
|
- db/migrate/20160607180028_add_ref_to_ballot_form_details.rb
|
254
304
|
- db/migrate/20160608141052_create_rails_voter_voting_results.rb
|
255
305
|
- db/migrate/20160608145149_add_ref_to_rails_voter_voting_result.rb
|
306
|
+
- db/migrate/20160707113355_change_ballot_form_name.rb
|
307
|
+
- db/migrate/20160707114814_change_ballot_form_detail_name.rb
|
308
|
+
- db/migrate/20160707131546_change_ballot_form_detail_id_name.rb
|
309
|
+
- db/migrate/20160707143841_change_ballot_form_id_column_name.rb
|
256
310
|
- db/seeds.rb
|
257
311
|
- lib/generators/rails_voter/install/install_generator.rb
|
258
312
|
- lib/generators/rails_voter/install/templates/seeds.rb
|
@@ -1,36 +0,0 @@
|
|
1
|
-
require_dependency "rails_voter/application_controller"
|
2
|
-
|
3
|
-
module RailsVoter
|
4
|
-
class BallotFormsController < ApplicationController
|
5
|
-
expose :ballot_forms, -> { BallotForm.all }
|
6
|
-
expose :ballot_form, model: RailsVoter::BallotForm
|
7
|
-
|
8
|
-
def new
|
9
|
-
10.times do
|
10
|
-
ballot_form.ballot_form_details.new
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
def create
|
15
|
-
if ballot_form.save
|
16
|
-
redirect_to ballot_forms_path
|
17
|
-
else
|
18
|
-
render :new
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
def update
|
23
|
-
if ballot_form.update(ballot_form_params)
|
24
|
-
redirect_to ballot_forms_path
|
25
|
-
else
|
26
|
-
render :new
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
private
|
31
|
-
|
32
|
-
def ballot_form_params
|
33
|
-
params.require(:ballot_form).permit(:name, ballot_form_details_attributes: [:name, :id])
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|