| @@ -0,0 +1,6 @@ | |||
| %h1= @page_title = "Government Bodies" | |||
| - @bodies.each do |body| | |||
| %p | |||
| %a{ :href => "/bodies/#{body.slug}" } | |||
| = body.name | |||
| @@ -0,0 +1,24 @@ | |||
| .nav | |||
| %a{ :href => "/bodies" } | |||
| « Government bodies | |||
| %h1= @page_title = @body.name | |||
| %h2 Elections | |||
| %table | |||
| - @body.elections.each do |election| | |||
| %tr | |||
| %td | |||
| %a{ :href => "/bodies/#{@body.slug}/elections/#{election.d}" }< | |||
| = long_date(election.d) | |||
| %td | |||
| = election.kind | |||
| %h2 | |||
| = @body.districts_name.capitalize | |||
| - @body.districts.each do |district| | |||
| %p | |||
| %a{ :href => "/bodies/#{@body.slug}/#{@body.districts_name}/#{district.slug}" } | |||
| = district.name | |||
| @@ -0,0 +1,39 @@ | |||
| .nav | |||
| %a{ :href => "/candidates" } | |||
| « All candidates | |||
| %h1= @page_title = @candidate.name | |||
| %h2 Elections contested | |||
| %table | |||
| %tr | |||
| %th | |||
| %th date | |||
| %th party | |||
| %th body | |||
| %th district | |||
| %th votes | |||
| %th position | |||
| %th | |||
| - @candidate.candidacies.each do |ccy| | |||
| %tr | |||
| %td{ :style => "background-color: #{ccy.party.colour}" } | |||
| %td | |||
| %a{ :href => "/bodies/#{ccy.election.body.slug}/elections/#{ccy.election.d}" } | |||
| = long_date(ccy.election.d) | |||
| %td= ccy.party.name | |||
| %td | |||
| %a{ :href => "/bodies/#{ccy.election.body.slug}" } | |||
| = ccy.election.body.name | |||
| %td | |||
| %a{ :href => "/bodies/#{ccy.election.body.slug}/elections/#{ccy.election.d}/#{ccy.district.body.districts_name}/#{ccy.district.slug}" } | |||
| = ccy.district.name | |||
| = ccy.district.body.district_name | |||
| %td.right= commify(ccy.votes) | |||
| %td.right= to_ordinal(ccy.position) | |||
| %td= ccy.elected? ? "Elected" : "Not elected" | |||
| .warning | |||
| This might not be the complete electoral history for this candidate. They might have stood in elections outside Sutton and / or in Sutton elections for which we don't have data. | |||
| @@ -0,0 +1,23 @@ | |||
| %h1= @page_title = "Candidates" | |||
| - @first_letter = '' | |||
| %table | |||
| - @candidates.each do |c| | |||
| - if c.surname[0] != @first_letter | |||
| - @first_letter = c.surname[0] | |||
| %tr.noborder | |||
| %td | |||
| %td | |||
| %tr.noborder | |||
| %td.strong{ :style => "font-size: 300%;" }= @first_letter.upcase | |||
| %td | |||
| %tr | |||
| %td | |||
| %td | |||
| %tr | |||
| %td | |||
| %a{ :href => "/candidates/#{c.id}" } | |||
| = c.surname | |||
| %td= c.forenames | |||
| @@ -0,0 +1,40 @@ | |||
| - @page_title = "#{@district.name} #{@district.body.district_name}, #{@district.body.name}" | |||
| .nav | |||
| %p | |||
| %a{ :href => "/bodies/#{@district.body.slug}" } | |||
| « | |||
| = @district.body.name | |||
| %h1= "#{@district.name} #{@district.body.district_name}" | |||
| -# TODO % turnout plotted over time | |||
| -# TODO map of district shown within Sutton boundary | |||
| %h2 Candidates elected | |||
| - Election.all(:body => @district.body, :order => [:d.desc]).each do |election| | |||
| - ccys = Candidacy.all(:election_id => election.id, :district_id => @district.id, :elected => true, :order => [:votes.desc]) | |||
| - unless ccys == [] | |||
| %h3 | |||
| %a{ :href => "/bodies/#{@district.body.slug}/elections/#{election.d}/#{election.body.districts_name}/#{@district.slug}"} | |||
| = long_date election.d | |||
| = election.kind | |||
| %table | |||
| %tr | |||
| %th | |||
| %th | |||
| %th | |||
| %th | |||
| - ccys.each do |ccy| | |||
| %tr | |||
| %td= ccy.position | |||
| %td{ :style => "background-color: #{ccy.party.colour}" } | |||
| %td | |||
| %a{ :href => "/candidates/#{ccy.candidate.id}" } | |||
| = ccy.candidate.short_name | |||
| %td= ccy.party.name | |||
| @@ -0,0 +1,94 @@ | |||
| - @page_title = "#{@election.body.name} #{@election.kind} #{long_date(@election.d)}" | |||
| %h1 | |||
| = @election.body.name | |||
| = @election.kind | |||
| %br | |||
| = long_date(@election.d) | |||
| %p= @election.reason | |||
| - if @election.candidacies.count > 0 | |||
| %p | |||
| = @election.candidacies.count | |||
| = "candidate".pluralize(@election.candidacies.count) | |||
| contested | |||
| = @total_seats | |||
| = "seat".pluralize(@total_seats) | |||
| in | |||
| = @total_districts | |||
| = @election.body.district_name.pluralize(@total_districts) | |||
| in Sutton. | |||
| %h2 Seats, votes and candidates by party | |||
| %table | |||
| %tr.header | |||
| %th | |||
| %th | |||
| %th.highlight seats won | |||
| %th votes | |||
| %th % seats | |||
| %th % votes | |||
| %th votes per seat | |||
| %th candidates | |||
| %th votes per candidate | |||
| -# | |||
| %th relative popularity | |||
| - @max_votes_per_candidate = @results_by_party.first.votez.to_f / @results_by_party.first.cands.to_f # We really need to scan the array for the max value | |||
| - @results_by_party.each do |row| | |||
| %tr | |||
| %td{ :style => "background-color: #{row.colour}" } | |||
| %td.data_party= row.name | |||
| %td.data_seats.right.highlight= row.seatz | |||
| %td.data_votes.right= commify(row.votez) | |||
| %td.right= format_percent(row.seatz.to_f / @total_seats * 100) | |||
| %td.right= format_percent(row.votez.to_f / @total_votes * 100) | |||
| %td.data_votes_per_seat.right | |||
| - if row.seatz > 0 | |||
| = commify(row.votez / row.seatz) | |||
| - else | |||
| — | |||
| %td.data_candidates.right= row.cands | |||
| %td.right= commify(row.votez / row.cands) | |||
| -# | |||
| %td.right= format_percent( ( row.votez.to_f / row.cands.to_f ) / @max_votes_per_candidate * 100) | |||
| %tr.footer | |||
| %td | |||
| %td | |||
| %td.right.highlight= @total_seats | |||
| %td.right= commify(@total_votes) | |||
| %td | |||
| %td | |||
| %td | |||
| %td | |||
| %td | |||
| -# | |||
| %td | |||
| %h2 | |||
| Results by | |||
| = @election.body.district_name | |||
| %table | |||
| %tr.header | |||
| %th | |||
| %th seats | |||
| %th votes | |||
| - @results_by_district.each do |row| | |||
| %tr | |||
| %td | |||
| %a{ :href => "/bodies/#{@election.body.slug}/elections/#{@election.d}/#{@election.body.districts_name}/#{row.district_slug}"} | |||
| = row.name | |||
| %td.right= row.seats | |||
| %td.right= commify(row.votez) | |||
| %tr.footer | |||
| %td | |||
| %td.right= @total_seats | |||
| %td.right= commify(@total_votes) | |||
| - else | |||
| %p Full details and results will be available on this page. | |||
| @@ -0,0 +1,10 @@ | |||
| %h2 Register to vote | |||
| %p Register now so that you can vote in future elections. If you're not registered you can't vote. | |||
| %p | |||
| You can get a registration form at the | |||
| %a{ :href => "http://www.aboutmyvote.co.uk/" } About My Vote | |||
| website or by phoning Sutton Council on | |||
| %span.phone 020 8770 4888. | |||
| @@ -0,0 +1,74 @@ | |||
| - @page_title = "#{@district.name} #{@district.body.district_name} results, #{@body.name} election #{short_date(@election.d)}" | |||
| %p | |||
| %a{ :href => "/bodies/#{@district.body.slug}/elections/#{@election.d}" }< | |||
| = @body.name | |||
| election | |||
| = long_date(@election.d) | |||
| .nav | |||
| - if @districts_in_this_election.size > 1 | |||
| - @district_index = @districts_in_this_election.index(@district) | |||
| - unless @district_index == 0 | |||
| - @previous_district = @districts_in_this_election[@district_index - 1] | |||
| %a{ :href => "/bodies/#{@election.body.slug}/elections/#{@election.d}/#{@election.body.districts_name}/#{@previous_district.slug}" }< | |||
| « | |||
| = @previous_district.name | |||
| | |||
| - unless @district_index == @districts_in_this_election.size - 1 | |||
| - @next_district = @districts_in_this_election[@district_index + 1] | |||
| %a{ :href => "/bodies/#{@election.body.slug}/elections/#{@election.d}/#{@election.body.districts_name}/#{@next_district.slug}" }< | |||
| = @next_district.name | |||
| » | |||
| %p | |||
| %a{ :href => "/bodies/#{@district.body.slug}/#{@district.body.district_name.pluralize(2)}/#{@district.slug}" } | |||
| All elections in | |||
| = @district.name | |||
| » | |||
| %h1= @district.name + " " + @district.body.district_name | |||
| - count = 0 | |||
| %table | |||
| %tr.header | |||
| %th | |||
| %th | |||
| %th | |||
| %th.right votes | |||
| %th.right % votes | |||
| %th | |||
| - for candidacy in @candidacies | |||
| - count += 1 | |||
| %tr.vcard | |||
| %td= count | |||
| %td{ :style => "background-color: #{candidacy.party.colour}" } | |||
| %td | |||
| %span.candidate_name.fn | |||
| %a{ :href => "/candidates/#{candidacy.candidate.id}" } | |||
| = candidacy.candidate.short_name | |||
| %br | |||
| %span.candidate_party.org | |||
| = candidacy.party.name | |||
| %td.right= commify(candidacy.votes) | |||
| %td.right= format_percent(candidacy.votes.to_f / @total_votes * 100) | |||
| %td | |||
| - if candidacy.seats == 1 | |||
| .elected ELECTED | |||
| %tr.footer | |||
| %td | |||
| %td | |||
| %td | |||
| %td= commify(@total_votes) | |||
| %td | |||
| %td | |||
| %td | |||