parent
16d2ec77ed
commit
4ab670ed87
|
@ -1,5 +1,5 @@
|
|||
class MainController < ApplicationController
|
||||
before_action :set_user_room, only: [:join, :users, :stream]
|
||||
before_action :set_user_room, only: [:join, :users, :stream, :stemmen]
|
||||
|
||||
def index
|
||||
end
|
||||
|
@ -33,14 +33,18 @@ class MainController < ApplicationController
|
|||
end
|
||||
|
||||
def stemmen
|
||||
@votes = Vote.where(room_id: @room.id, user_id: @user.id)
|
||||
@votes = Vote.where(room_id: @room.id, user_id: @user.id).order(created_at: :desc)
|
||||
render :votes
|
||||
end
|
||||
|
||||
private
|
||||
def set_user_room
|
||||
@user = User.find_by token: params[:token]
|
||||
@room = Room.find(@user.room_id)
|
||||
if @user.nil?
|
||||
redirect_to 'https://bij1.org/', status: :unauthorized
|
||||
else
|
||||
@room = Room.find(@user.room_id)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -141,6 +141,9 @@ class UsersController < ApplicationController
|
|||
# DELETE /rooms/1/users.json
|
||||
def destroy_all
|
||||
@users.each do |user|
|
||||
Vote.where(user_id: user.id).each do |vote|
|
||||
vote.destroy
|
||||
end
|
||||
user.destroy
|
||||
end
|
||||
respond_to do |format|
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
class UsersController < ApplicationController
|
||||
class VotesController < ApplicationController
|
||||
http_basic_authenticate_with name: Rails.application.config.admin_name,
|
||||
password: Rails.application.config.admin_password
|
||||
|
||||
before_action :set_room, only: [:bulk]
|
||||
|
||||
# GET /rooms/:room_id/users/bulk
|
||||
# GET /rooms/:room_id/votes/bulk
|
||||
def bulk
|
||||
@sample = "voter_email,short_name,voter_login_id,voter_password\ninfo@bij1.org,mijn-stemming,1,abcdABCD1234\n"
|
||||
@sample = "info@bij1.org,mijn-stemming,1,abcdABCD1234"
|
||||
end
|
||||
|
||||
# POST /rooms/:room_id/users/bulk
|
||||
# POST /rooms/:room_id/users/bulk.json
|
||||
# POST /rooms/:room_id/votes/bulk
|
||||
# POST /rooms/:room_id/votes/bulk.json
|
||||
def create_bulk
|
||||
room_id = params[:room_id]
|
||||
votes_csv = params[:votes_csv]
|
||||
|
|
|
@ -3,14 +3,14 @@
|
|||
<h1>Stemmingen</h1>
|
||||
|
||||
<ul>
|
||||
<% @votes.each do |vote| %>
|
||||
<% @votes.each do |vote| %>
|
||||
<li>
|
||||
<a href="https://stemmen.bij1.org/helios/e/<%= vote.short_name %>/vote?voter_id=<%= vote.voter_login_id %>&password=<%= vote.voter_password %>">
|
||||
<%= vote.short_name %>
|
||||
<a href="https://stemmen.bij1.org/helios/e/<%= vote.election_slug %>/vote?voter_id=<%= vote.voter_login_id %>&password=<%= vote.voter_password %>">
|
||||
<%= vote.election_slug %>
|
||||
</a>
|
||||
</li>
|
||||
<% end %>
|
||||
</url>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
|
||||
|
|
|
@ -32,5 +32,7 @@
|
|||
|
||||
<%= link_to 'Show Users', room_users_path(@room) %> |
|
||||
<%= link_to 'Edit', edit_room_path(@room) %> |
|
||||
<%= link_to 'Import Users', bulk_new_room_users_path, method: :get %> |
|
||||
<%= link_to 'Import Votes', bulk_new_room_votes_path, method: :get %> |
|
||||
<%= link_to 'Present Users', room_present_users_path(@room) %> |
|
||||
<%= link_to 'Back', rooms_path %>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<h1>Bulk Users: <%= @room.name %></h1>
|
||||
|
||||
<p>
|
||||
csv formaat voor bulk import: email,name,moderator,vote,proxy,invited,presence. kolom volgorde maakt niet uit. komma-separated met header.
|
||||
csv formaat voor bulk import: <code>email,name,moderator,vote,proxy,invited,presence</code>. kolom volgorde maakt niet uit. komma-separated met header.
|
||||
<% if false %>
|
||||
download een sample <%= link_to "hier", "/bbb.csv" %>.
|
||||
<% end %>
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
<h1>Bulk Votes: <%= @room.name %></h1>
|
||||
|
||||
<p>
|
||||
csv formaat voor bulk import, in die volgorde, komma-separated en zonder header: <code>voter_email,short_name,voter_login_id,voter_password</code>
|
||||
<% if false %>
|
||||
download een sample <%= link_to "hier", "/votes.csv" %>.
|
||||
<% end %>
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li><code>voter_email</code> is het email adres van de stemmer, om de credentials terug te koppelen aan het juiste lid.</li>
|
||||
<li><code>short_name</code> is de naam van de stemming</li>
|
||||
<li><code>voter_login_id</code> is de login id van de stemmer in het stem systeem</li>
|
||||
<li><code>voter_password</code> is het wachtwoord van de stemmer in het stem systeem</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
De gegevens hiervoor zijn te verkrijgen via commando, gegeven SSH toegang tot de database server:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<code>ssh db.bij1.net "sudo psql -U postgres helios -c \"SELECT voter_email, short_name, voter_login_id, voter_password FROM helios_voter JOIN helios_election ON election_id = helios_election.id WHERE helios_election.uuid IN ('UUID1', 'UUID2', ...);\" -tAF,"</code>
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
... waar <code>'UUID1', 'UUID2', ...</code> vervangen dient te worden door de UUIDs van de stemmingen van deze kamer, in de URLs te vinden in <a href="https://stemmen.bij1.org/helios/elections/administered">Helios</a>.
|
||||
</p>
|
||||
<p>
|
||||
Gebruikers vinden vervolgens hun stem links op de volgende URL, waar <code>TOKEN</code> dient te worden vervangen door hun Ingang token:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<code>https://vergadering.bij1.org/ingang/TOKEN/stemmen</code>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<%= form_with(local: true) do |form| %>
|
||||
<div class="field">
|
||||
<%= form.text_area :votes_csv, value: @sample %>
|
||||
</div>
|
||||
|
||||
<div class="actions">
|
||||
<%= form.submit %>
|
||||
</div>
|
||||
<%= link_to 'Back', room_users_path %>
|
||||
<% end %>
|
|
@ -1,7 +1,6 @@
|
|||
class CreateVotes < ActiveRecord::Migration[6.0]
|
||||
def change
|
||||
create_table :votes do |t|
|
||||
t.primary_key :id
|
||||
t.references :room, null: false, foreign_key: true
|
||||
t.references :user, null: false, foreign_key: true
|
||||
t.string :election_slug
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
info@bij1.org,mijn-stemming,1,abcdABCD1234
|
|
Loading…
Reference in New Issue