Compare commits

..

No commits in common. "5fa73da51a9965b4b4df6cb2f82ff9307cc35a94" and "b41a0d041751399233aabbac57d7a8515d41b2aa" have entirely different histories.

13 changed files with 104 additions and 506 deletions

View file

@ -1,5 +0,0 @@
class AddAdminToUsers < ActiveRecord::Migration[7.2]
def change
add_column :users, :admin, :boolean
end
end

View file

@ -10,7 +10,7 @@
# #
# It's strongly recommended that you check this file into your version control system. # It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.2].define(version: 2025_06_08_223006) do ActiveRecord::Schema[7.2].define(version: 2025_06_07_233053) do
create_table "candidates", force: :cascade do |t| create_table "candidates", force: :cascade do |t|
t.integer "vote_id" t.integer "vote_id"
t.string "name" t.string "name"
@ -45,7 +45,6 @@ ActiveRecord::Schema[7.2].define(version: 2025_06_08_223006) do
t.datetime "created_at", null: false t.datetime "created_at", null: false
t.datetime "updated_at", null: false t.datetime "updated_at", null: false
t.string "reset" t.string "reset"
t.boolean "admin"
end end
create_table "votes", force: :cascade do |t| create_table "votes", force: :cascade do |t|

View file

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-06-08 20:44-0600\n" "POT-Creation-Date: 2025-06-08 15:49-0600\n"
"PO-Revision-Date: 2025-03-29 20:41-0600\n" "PO-Revision-Date: 2025-03-29 20:41-0600\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -41,140 +41,46 @@ msgstr "Bé"
msgid "Very good" msgid "Very good"
msgstr "Molt bé" msgstr "Molt bé"
#: ../vedia.rb:119 #: ../vedia.rb:118
msgid "Incorrect email or password." msgid "Incorrect email or password."
msgstr "Correu o contrasenya incorrecte." msgstr "Correu o contrasenya incorrecte."
#: ../vedia.rb:141 #: ../vedia.rb:140
msgid "Reset your password" msgid "Reset your password"
msgstr "Reiniciar contrasenya" msgstr "Reiniciar contrasenya"
#: ../views/admin.erb:1 ../views/admin_users.erb:1 ../views/admin_votes.erb:1 #: ../views/home.erb:1 ../views/layout.erb:23
#: ../views/layout.erb:26
msgid "Admin"
msgstr "Admin"
#: ../views/admin.erb:3
msgid "Users"
msgstr "Usuàries"
#: ../views/admin.erb:13 ../views/home.erb:3
msgid "Votes"
msgstr "Votacions"
#: ../views/admin.erb:21 ../views/home.erb:12 ../views/votes_show_draft.erb:1
msgid "(Draft)"
msgstr "(Esborrany)"
#: ../views/admin.erb:23 ../views/home.erb:16
msgid "(Open)"
msgstr "(Oberta)"
#: ../views/admin.erb:25 ../views/home.erb:20
msgid "(Closed)"
msgstr "(Tancada)"
#: ../views/admin_users.erb:5 ../views/admin_votes.erb:7
msgid "Created: %{date}"
msgstr "Creada: %{date}"
#: ../views/admin_users.erb:7 ../views/admin_votes.erb:9
msgid "Updated: %{date}"
msgstr "Modificada: %{date}"
#: ../views/admin_users.erb:9
msgid "Admin: %{admin}"
msgstr "Admin: %{admin}"
#: ../views/admin_users.erb:9
msgid "Yes"
msgstr "Sí"
#: ../views/admin_users.erb:9
msgid "No"
msgstr "No"
#: ../views/admin_users.erb:11
msgid "Organized votes"
msgstr "Votacions organitzades"
#: ../views/admin_users.erb:19 ../views/admin_users.erb:38
#: ../views/admin_votes.erb:27 ../views/admin_votes.erb:46
#: ../views/votes_edit.erb:21
msgid "Delete"
msgstr "Suprimir"
#: ../views/admin_users.erb:26
msgid "No vote organized."
msgstr "Cap votació organitzada."
#: ../views/admin_users.erb:30 ../views/admin_votes.erb:38
msgid "Ratings"
msgstr "Valoracions"
#: ../views/admin_users.erb:45 ../views/admin_votes.erb:53
msgid "No rating."
msgstr "Cap valoració."
#: ../views/admin_users.erb:52
msgid "Delete user"
msgstr "Suprimir usuària"
#: ../views/admin_votes.erb:5
msgid "View vote"
msgstr "Veure votació"
#: ../views/admin_votes.erb:11
msgid "Secure ID: %{secure_id}"
msgstr "ID segura"
#: ../views/admin_votes.erb:13
msgid "Description: %{description}"
msgstr "Descripció: %{description}"
#: ../views/admin_votes.erb:15 ../views/votes_open.erb:3
#: ../views/votes_show_closed.erb:4 ../views/votes_show_open.erb:4
msgid "Closing date: %{date}"
msgstr "Data de tancament: %{date}"
#: ../views/admin_votes.erb:15
msgid "None"
msgstr "Cap"
#: ../views/admin_votes.erb:17
msgid "State: %{state}"
msgstr "Estat: %{state}"
#: ../views/admin_votes.erb:19 ../views/votes_edit.erb:39
#: ../views/votes_show_closed.erb:79 ../views/votes_show_draft.erb:5
#: ../views/votes_show_open.erb:40
msgid "Organizers"
msgstr "Organitzadores"
#: ../views/admin_votes.erb:34
msgid "No organizer."
msgstr "Cap organitzadora."
#: ../views/admin_votes.erb:60 ../views/votes_edit.erb:68
msgid "Delete vote"
msgstr "Suprimir la votació"
#: ../views/home.erb:1 ../views/layout.erb:24
msgid "Home" msgid "Home"
msgstr "Inici" msgstr "Inici"
#: ../views/home.erb:3
msgid "Votes"
msgstr "Votacions"
#: ../views/home.erb:11 #: ../views/home.erb:11
msgid "(Draft, organized by you)" msgid "(Draft, organized by you)"
msgstr "(Esborrany, organitzada per tu)" msgstr "(Esborrany, organitzada per tu)"
#: ../views/home.erb:12 ../views/votes_show_draft.erb:1
msgid "(Draft)"
msgstr "(Esborrany)"
#: ../views/home.erb:15 #: ../views/home.erb:15
msgid "(Open, organized by you)" msgid "(Open, organized by you)"
msgstr "(Oberta, organitzada per tu)" msgstr "(Oberta, organitzada per tu)"
#: ../views/home.erb:16
msgid "(Open)"
msgstr "(Oberta)"
#: ../views/home.erb:19 #: ../views/home.erb:19
msgid "(Closed, organized by you)" msgid "(Closed, organized by you)"
msgstr "(Tancada, organitzada per tu)" msgstr "(Tancada, organitzada per tu)"
#: ../views/home.erb:20
msgid "(Closed)"
msgstr "(Tancada)"
#: ../views/home.erb:28 ../views/votes_new.erb:12 #: ../views/home.erb:28 ../views/votes_new.erb:12
msgid "Create new vote" msgid "Create new vote"
msgstr "Crear una nova votació" msgstr "Crear una nova votació"
@ -187,13 +93,13 @@ msgstr "Estàs connectada com a %{email}."
msgid "Logout" msgid "Logout"
msgstr "Desconnexió" msgstr "Desconnexió"
#: ../views/layout.erb:30 ../views/login.erb:1 ../views/login.erb:16 #: ../views/layout.erb:25 ../views/login.erb:1 ../views/login.erb:16
msgid "Login" msgid "Login"
msgstr "Connexió" msgstr "Connexió"
#: ../views/login.erb:9 ../views/reset.erb:5 ../views/reset_change.erb:13 #: ../views/login.erb:9 ../views/reset.erb:5 ../views/reset_change.erb:13
#: ../views/signup.erb:24 ../views/votes_edit.erb:51 #: ../views/signup.erb:24 ../views/votes_edit.erb:51
#: ../views/votes_show_closed.erb:99 ../views/votes_show_open.erb:66 #: ../views/votes_show_closed.erb:99 ../views/votes_show_open.erb:62
msgid "Email" msgid "Email"
msgstr "Correu" msgstr "Correu"
@ -277,6 +183,10 @@ msgstr "Guardar"
msgid "Candidates" msgid "Candidates"
msgstr "Opcions" msgstr "Opcions"
#: ../views/votes_edit.erb:21
msgid "Delete"
msgstr "Suprimir"
#: ../views/votes_edit.erb:25 ../views/votes_edit.erb:36 #: ../views/votes_edit.erb:25 ../views/votes_edit.erb:36
msgid "Add candidate" msgid "Add candidate"
msgstr "Afegeix una opció" msgstr "Afegeix una opció"
@ -285,14 +195,19 @@ msgstr "Afegeix una opció"
msgid "Name" msgid "Name"
msgstr "Nom" msgstr "Nom"
#: ../views/votes_edit.erb:39 ../views/votes_show_closed.erb:79
#: ../views/votes_show_draft.erb:5 ../views/votes_show_open.erb:38
msgid "Organizers"
msgstr "Organitzadores"
#: ../views/votes_edit.erb:47 ../views/votes_edit.erb:54 #: ../views/votes_edit.erb:47 ../views/votes_edit.erb:54
#: ../views/votes_show_closed.erb:95 ../views/votes_show_closed.erb:102 #: ../views/votes_show_closed.erb:95 ../views/votes_show_closed.erb:102
#: ../views/votes_show_open.erb:62 ../views/votes_show_open.erb:69 #: ../views/votes_show_open.erb:58 ../views/votes_show_open.erb:65
msgid "Add organizer" msgid "Add organizer"
msgstr "Afegeix organitzadora" msgstr "Afegeix organitzadora"
#: ../views/votes_edit.erb:57 ../views/votes_show_closed.erb:89 #: ../views/votes_edit.erb:57 ../views/votes_show_closed.erb:89
#: ../views/votes_show_open.erb:52 #: ../views/votes_show_open.erb:48
msgid "Actions for organizers" msgid "Actions for organizers"
msgstr "Accions per les organitzadores" msgstr "Accions per les organitzadores"
@ -305,6 +220,10 @@ msgstr "Obrir la votació als votants"
msgid "Add at least 2 candidates before opening the vote to participants." msgid "Add at least 2 candidates before opening the vote to participants."
msgstr "Afegeix com a mínim 2 opcions abans d'obrir la votació als votants." msgstr "Afegeix com a mínim 2 opcions abans d'obrir la votació als votants."
#: ../views/votes_edit.erb:68
msgid "Delete vote"
msgstr "Suprimir la votació"
#: ../views/votes_new.erb:1 #: ../views/votes_new.erb:1
msgid "New vote" msgid "New vote"
msgstr "Nova votació" msgstr "Nova votació"
@ -379,10 +298,10 @@ msgstr "Les teves valoracions"
msgid "Participants" msgid "Participants"
msgstr "Votants" msgstr "Votants"
#: ../views/votes_show_open.erb:55 #: ../views/votes_show_open.erb:51
msgid "Change back to draft vote" msgid "Change back to draft vote"
msgstr "Tornar a l'esborrany de votació" msgstr "Tornar a l'esborrany de votació"
#: ../views/votes_show_open.erb:59 #: ../views/votes_show_open.erb:55
msgid "Close votes and show results" msgid "Close votes and show results"
msgstr "Tancar la votació i veure els resultats" msgstr "Tancar la votació i veure els resultats"

View file

@ -8,8 +8,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-06-08 20:44-0600\n" "POT-Creation-Date: 2025-06-08 15:49-0600\n"
"PO-Revision-Date: 2025-06-08 20:44-0600\n" "PO-Revision-Date: 2025-06-08 15:49-0600\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n" "Language: \n"
@ -42,140 +42,46 @@ msgstr ""
msgid "Very good" msgid "Very good"
msgstr "" msgstr ""
#: ../vedia.rb:119 #: ../vedia.rb:118
msgid "Incorrect email or password." msgid "Incorrect email or password."
msgstr "" msgstr ""
#: ../vedia.rb:141 #: ../vedia.rb:140
msgid "Reset your password" msgid "Reset your password"
msgstr "" msgstr ""
#: ../views/admin.erb:1 ../views/admin_users.erb:1 ../views/admin_votes.erb:1 #: ../views/home.erb:1 ../views/layout.erb:23
#: ../views/layout.erb:26
msgid "Admin"
msgstr ""
#: ../views/admin.erb:3
msgid "Users"
msgstr ""
#: ../views/admin.erb:13 ../views/home.erb:3
msgid "Votes"
msgstr ""
#: ../views/admin.erb:21 ../views/home.erb:12 ../views/votes_show_draft.erb:1
msgid "(Draft)"
msgstr ""
#: ../views/admin.erb:23 ../views/home.erb:16
msgid "(Open)"
msgstr ""
#: ../views/admin.erb:25 ../views/home.erb:20
msgid "(Closed)"
msgstr ""
#: ../views/admin_users.erb:5 ../views/admin_votes.erb:7
msgid "Created: %{date}"
msgstr ""
#: ../views/admin_users.erb:7 ../views/admin_votes.erb:9
msgid "Updated: %{date}"
msgstr ""
#: ../views/admin_users.erb:9
msgid "Admin: %{admin}"
msgstr ""
#: ../views/admin_users.erb:9
msgid "Yes"
msgstr ""
#: ../views/admin_users.erb:9
msgid "No"
msgstr ""
#: ../views/admin_users.erb:11
msgid "Organized votes"
msgstr ""
#: ../views/admin_users.erb:19 ../views/admin_users.erb:38
#: ../views/admin_votes.erb:27 ../views/admin_votes.erb:46
#: ../views/votes_edit.erb:21
msgid "Delete"
msgstr ""
#: ../views/admin_users.erb:26
msgid "No vote organized."
msgstr ""
#: ../views/admin_users.erb:30 ../views/admin_votes.erb:38
msgid "Ratings"
msgstr ""
#: ../views/admin_users.erb:45 ../views/admin_votes.erb:53
msgid "No rating."
msgstr ""
#: ../views/admin_users.erb:52
msgid "Delete user"
msgstr ""
#: ../views/admin_votes.erb:5
msgid "View vote"
msgstr ""
#: ../views/admin_votes.erb:11
msgid "Secure ID: %{secure_id}"
msgstr ""
#: ../views/admin_votes.erb:13
msgid "Description: %{description}"
msgstr ""
#: ../views/admin_votes.erb:15 ../views/votes_open.erb:3
#: ../views/votes_show_closed.erb:4 ../views/votes_show_open.erb:4
msgid "Closing date: %{date}"
msgstr ""
#: ../views/admin_votes.erb:15
msgid "None"
msgstr ""
#: ../views/admin_votes.erb:17
msgid "State: %{state}"
msgstr ""
#: ../views/admin_votes.erb:19 ../views/votes_edit.erb:39
#: ../views/votes_show_closed.erb:79 ../views/votes_show_draft.erb:5
#: ../views/votes_show_open.erb:40
msgid "Organizers"
msgstr ""
#: ../views/admin_votes.erb:34
msgid "No organizer."
msgstr ""
#: ../views/admin_votes.erb:60 ../views/votes_edit.erb:68
msgid "Delete vote"
msgstr ""
#: ../views/home.erb:1 ../views/layout.erb:24
msgid "Home" msgid "Home"
msgstr "" msgstr ""
#: ../views/home.erb:3
msgid "Votes"
msgstr ""
#: ../views/home.erb:11 #: ../views/home.erb:11
msgid "(Draft, organized by you)" msgid "(Draft, organized by you)"
msgstr "" msgstr ""
#: ../views/home.erb:12 ../views/votes_show_draft.erb:1
msgid "(Draft)"
msgstr ""
#: ../views/home.erb:15 #: ../views/home.erb:15
msgid "(Open, organized by you)" msgid "(Open, organized by you)"
msgstr "" msgstr ""
#: ../views/home.erb:16
msgid "(Open)"
msgstr ""
#: ../views/home.erb:19 #: ../views/home.erb:19
msgid "(Closed, organized by you)" msgid "(Closed, organized by you)"
msgstr "" msgstr ""
#: ../views/home.erb:20
msgid "(Closed)"
msgstr ""
#: ../views/home.erb:28 ../views/votes_new.erb:12 #: ../views/home.erb:28 ../views/votes_new.erb:12
msgid "Create new vote" msgid "Create new vote"
msgstr "" msgstr ""
@ -188,13 +94,13 @@ msgstr ""
msgid "Logout" msgid "Logout"
msgstr "" msgstr ""
#: ../views/layout.erb:30 ../views/login.erb:1 ../views/login.erb:16 #: ../views/layout.erb:25 ../views/login.erb:1 ../views/login.erb:16
msgid "Login" msgid "Login"
msgstr "" msgstr ""
#: ../views/login.erb:9 ../views/reset.erb:5 ../views/reset_change.erb:13 #: ../views/login.erb:9 ../views/reset.erb:5 ../views/reset_change.erb:13
#: ../views/signup.erb:24 ../views/votes_edit.erb:51 #: ../views/signup.erb:24 ../views/votes_edit.erb:51
#: ../views/votes_show_closed.erb:99 ../views/votes_show_open.erb:66 #: ../views/votes_show_closed.erb:99 ../views/votes_show_open.erb:62
msgid "Email" msgid "Email"
msgstr "" msgstr ""
@ -276,6 +182,10 @@ msgstr ""
msgid "Candidates" msgid "Candidates"
msgstr "" msgstr ""
#: ../views/votes_edit.erb:21
msgid "Delete"
msgstr ""
#: ../views/votes_edit.erb:25 ../views/votes_edit.erb:36 #: ../views/votes_edit.erb:25 ../views/votes_edit.erb:36
msgid "Add candidate" msgid "Add candidate"
msgstr "" msgstr ""
@ -284,14 +194,19 @@ msgstr ""
msgid "Name" msgid "Name"
msgstr "" msgstr ""
#: ../views/votes_edit.erb:39 ../views/votes_show_closed.erb:79
#: ../views/votes_show_draft.erb:5 ../views/votes_show_open.erb:38
msgid "Organizers"
msgstr ""
#: ../views/votes_edit.erb:47 ../views/votes_edit.erb:54 #: ../views/votes_edit.erb:47 ../views/votes_edit.erb:54
#: ../views/votes_show_closed.erb:95 ../views/votes_show_closed.erb:102 #: ../views/votes_show_closed.erb:95 ../views/votes_show_closed.erb:102
#: ../views/votes_show_open.erb:62 ../views/votes_show_open.erb:69 #: ../views/votes_show_open.erb:58 ../views/votes_show_open.erb:65
msgid "Add organizer" msgid "Add organizer"
msgstr "" msgstr ""
#: ../views/votes_edit.erb:57 ../views/votes_show_closed.erb:89 #: ../views/votes_edit.erb:57 ../views/votes_show_closed.erb:89
#: ../views/votes_show_open.erb:52 #: ../views/votes_show_open.erb:48
msgid "Actions for organizers" msgid "Actions for organizers"
msgstr "" msgstr ""
@ -304,6 +219,10 @@ msgstr ""
msgid "Add at least 2 candidates before opening the vote to participants." msgid "Add at least 2 candidates before opening the vote to participants."
msgstr "" msgstr ""
#: ../views/votes_edit.erb:68
msgid "Delete vote"
msgstr ""
#: ../views/votes_new.erb:1 #: ../views/votes_new.erb:1
msgid "New vote" msgid "New vote"
msgstr "" msgstr ""
@ -376,10 +295,10 @@ msgstr ""
msgid "Participants" msgid "Participants"
msgstr "" msgstr ""
#: ../views/votes_show_open.erb:55 #: ../views/votes_show_open.erb:51
msgid "Change back to draft vote" msgid "Change back to draft vote"
msgstr "" msgstr ""
#: ../views/votes_show_open.erb:59 #: ../views/votes_show_open.erb:55
msgid "Close votes and show results" msgid "Close votes and show results"
msgstr "" msgstr ""

View file

@ -91,7 +91,6 @@ post '/signup' do
@user.password = hash_password(params[:password]) @user.password = hash_password(params[:password])
end end
if @errors.empty? and @user.valid? if @errors.empty? and @user.valid?
@user.admin = true if @user.id == 1
@user.save @user.save
session.clear session.clear
session[:user_id] = @user.id session[:user_id] = @user.id
@ -193,71 +192,6 @@ post '/logout' do
redirect '/login' redirect '/login'
end end
get '/admin' do
require_admin
@users = User.all
@votes = Vote.all
erb :admin
end
get '/admin/users/:id' do
require_admin
@user = User.find(params[:id])
erb :admin_users
end
get '/admin/users/:id/organizers/:vote/delete' do
require_admin
rating = Organizer.where(user: params[:id]).where(vote: params[:vote]).each do |organizer|
organizer.destroy
end
redirect "/admin/users/#{params[:id]}"
end
get '/admin/users/:id/ratings/:vote/delete' do
require_admin
rating = Rating.where(user: params[:id]).where(vote: params[:vote]).each do |rating|
rating.destroy
end
redirect "/admin/users/#{params[:id]}"
end
post '/admin/users/:id/delete' do
require_admin
@user = User.find(params[:id])
@user.destroy
redirect '/admin'
end
get '/admin/votes/:id' do
require_admin
@vote = Vote.find(params[:id])
erb :admin_votes
end
get '/admin/votes/:id/organizers/:user/delete' do
require_admin
rating = Organizer.where(vote: params[:id]).where(user: params[:user]).each do |organizer|
organizer.destroy
end
redirect "/admin/votes/#{params[:id]}"
end
get '/admin/votes/:id/ratings/:user/delete' do
require_admin
rating = Rating.where(vote: params[:id]).where(user: params[:user]).each do |rating|
rating.destroy
end
redirect "/admin/votes/#{params[:id]}"
end
post '/admin/votes/:id/delete' do
require_admin
@vote = Vote.find(params[:id])
@vote.destroy
redirect '/admin'
end
get '/votes/new' do get '/votes/new' do
require_login require_login
erb :votes_new erb :votes_new
@ -436,18 +370,10 @@ helpers do
end end
end end
def is_admin
current_user and current_user.admin
end
def require_login def require_login
redirect '/login' unless current_user redirect '/login' unless current_user
end end
def require_admin
redirect '/' unless is_admin
end
def find_vote def find_vote
@vote = Vote.find_by(secure_id: params[:id]) @vote = Vote.find_by(secure_id: params[:id])
end end
@ -473,10 +399,6 @@ helpers do
end end
def format_date(timestamp) def format_date(timestamp)
"#{TZInfo::Timezone.get(session[:timezone]).to_local(timestamp).strftime('%F')}"
end
def format_date_and_time(timestamp)
"#{TZInfo::Timezone.get(session[:timezone]).to_local(timestamp).strftime('%F %R')} (#{session[:timezone].gsub('_', ' ')})" "#{TZInfo::Timezone.get(session[:timezone]).to_local(timestamp).strftime('%F %R')} (#{session[:timezone].gsub('_', ' ')})"
end end
end end

View file

@ -1,29 +0,0 @@
<h1><%= _("Admin") %></h1>
<h2><%= _("Users") %></h2>
<ul>
<% @users.reverse.each do |user| %>
<li>
<a href="/admin/users/<%= user.id %>"><%= user.email %></a>
</li>
<% end %>
</ul>
<h2><%= _("Votes") %></h2>
<ul>
<% @votes.reverse.each do |vote| %>
<li>
<a href="/admin/votes/<%= vote.id %>"><%= vote.title %></a>
<% case vote.state
when 'draft' %>
<%= _("(Draft)") %>
<% when 'open' %>
<%= _("(Open)") %>
<% when 'closed' %>
<%= _("(Closed)") %>
<% end %>
</li>
<% end %>
</ul>

View file

@ -1,55 +0,0 @@
<h1><%= _("Admin") %></h1>
<h2><%= @user.email %></h2>
<p><%= _("Created: %{date}") % { date: format_date(@user.created_at) } %></p>
<p><%= _("Updated: %{date}") % { date: format_date(@user.updated_at) } %></p>
<p><%= _("Admin: %{admin}") % { admin: @user.admin ? _("Yes") : _("No") } %></p>
<h2><%= _("Organized votes") %></h2>
<% unless @user.organizers.blank? %>
<ul>
<% @user.organizers.each do |organizer| %>
<li>
<%= organizer.user.email %>
<a href="/admin/users/<%= @user.id %>/organizers/<%= organizer.vote.id %>/delete"><%= _("Delete") %></a>
</li>
<% end %>
</ul>
<% else %>
<p><%= _("No vote organized.") %></p>
<% end %>
<h2><%= _("Ratings") %></h2>
<% unless @user.ratings.blank? %>
<ul>
<% @user.ratings.collect { |rating| rating.vote }.uniq.each do |vote| %>
<li>
<%= vote.title %>
<a href="/admin/users/<%= @user.id %>/ratings/<%= vote.id %>/delete"><%= _("Delete") %></a>
</li>
<% end %>
</ul>
<% else %>
<p><%= _("No rating.") %></p>
<% end %>
<% if @user.ratings.blank? and @user.organizers.blank? %>
<form action="/admin/users/<%= @user.id %>/delete" method="post">
<button type="submit"><%= _("Delete user") %></button>
</form>
<% end %>

View file

@ -1,63 +0,0 @@
<h1><%= _("Admin") %></h1>
<h2><%= @vote.title %></h2>
<p><a href="/votes/<%= @vote.secure_id %>"><%= _("View vote") %></a></p>
<p><%= _("Created: %{date}") % { date: format_date(@vote.created_at) } %></p>
<p><%= _("Updated: %{date}") % { date: format_date(@vote.updated_at) } %></p>
<p><%= _("Secure ID: %{secure_id}") % { secure_id: @vote.secure_id } %></p>
<p><%= _("Description: %{description}") % { description: @vote.description } %></p>
<p><%= _("Closing date: %{date}") % { date: @vote.expire_on ? format_date_and_time(@vote.expire_on) : _("None") } %></p>
<p><%= _("State: %{state}") % { state: @vote.state } %></p>
<h2><%= _("Organizers") %></h2>
<% unless @vote.organizers.blank? %>
<ul>
<% @vote.organizers.each do |organizer| %>
<li>
<%= organizer.user.email %>
<a href="/admin/votes/<%= @vote.id %>/organizers/<%= organizer.user.id %>/delete"><%= _("Delete") %></a>
</li>
<% end %>
</ul>
<% else %>
<p><%= _("No organizer.") %></p>
<% end %>
<h2><%= _("Ratings") %></h2>
<% unless @vote.ratings.blank? %>
<ul>
<% @vote.ratings.collect { |rating| rating.user }.uniq.each do |user| %>
<li>
<%= user.email %>
<a href="/admin/votes/<%= @vote.id %>/ratings/<%= user.id %>/delete"><%= _("Delete") %></a>
</li>
<% end %>
</ul>
<% else %>
<p><%= _("No rating.") %></p>
<% end %>
<% if @vote.ratings.blank? and @vote.organizers.blank? %>
<form action="/admin/votes/<%= @vote.id %>/delete" method="post">
<button type="submit"><%= _("Delete vote") %></button>
</form>
<% end %>

View file

@ -3,7 +3,7 @@
<h2><%= _("Votes") %></h2> <h2><%= _("Votes") %></h2>
<ul> <ul>
<% @votes.reverse.each do |vote| %> <% @votes.reverse.each do |vote| %>
<li> <li>
<a href="/votes/<%= vote.secure_id %>"><%= vote.title %></a> <a href="/votes/<%= vote.secure_id %>"><%= vote.title %></a>
<% case vote.state <% case vote.state
@ -21,7 +21,7 @@
<% end %> <% end %>
<% end %> <% end %>
</li> </li>
<% end %> <% end %>
</ul> </ul>
<form action="/votes/new" method="get"> <form action="/votes/new" method="get">

View file

@ -20,12 +20,7 @@
<body> <body>
<% if current_user %> <% if current_user %>
<p><%= _("Logged in as %{email}.") % { email: current_user.email } %> <a href="/logout"><%= _("Logout") %></a></p> <p><%= _("Logged in as %{email}.") % { email: current_user.email } %> <a href="/logout"><%= _("Logout") %></a></p>
<p> <p><a href="/"><%= _("Home") %></a></p>
<a href="/"><%= _("Home") %></a>
<% if is_admin %>
<a href="/admin"><%= _("Admin") %></a>
<% end %>
</p>
<% else %> <% else %>
<p><a href="/login"><%= _("Login") %></a></p> <p><a href="/login"><%= _("Login") %></a></p>
<% end %> <% end %>

View file

@ -1,6 +1,6 @@
<h1><%= _("Open vote") %></h1> <h1><%= _("Open vote") %></h1>
<p><%= _("Closing date: %{date}" % { date: format_date_and_time(@expire_on) }) %></p> <p><%= _("Closing date: #{format_date(@expire_on)}") %></p>
<p><%= _("The vote will automatically close on that date and the results will <p><%= _("The vote will automatically close on that date and the results will
be sent to all users by email.") %></p> be sent to all users by email.") %></p>

View file

@ -1,12 +1,12 @@
<h1><%= @vote.title %></h1> <h1><%= @vote.title %></h1>
<% if @vote.expire_on %> <% if @vote.expire_on %>
<p><%= _("Closing date: %{date}" % { date: format_date_and_time(@vote.expire_on) }) %></p> <p><%= _("Closing date: #{format_date(@vote.expire_on)}") %></p>
<% end %> <% end %>
<p><%= @vote.description %></p> <p><%= @vote.description %></p>
<% unless @vote.ratings.blank? %> <% if @vote.ratings.length > 0 %>
<h2><%= _("All ratings") %></h2> <h2><%= _("All ratings") %></h2>

View file

@ -1,7 +1,7 @@
<h1><%= @vote.title %></h1> <h1><%= @vote.title %></h1>
<% if @vote.expire_on %> <% if @vote.expire_on %>
<p><%= _("Closing date: %{date}" % { date: format_date_and_time(@vote.expire_on) }) %></p> <p><%= _("Closing date: #{format_date(@vote.expire_on)}") %></p>
<% end %> <% end %>
<p><%= @vote.description %></p> <p><%= @vote.description %></p>
@ -35,8 +35,6 @@
<% end %> <% end %>
</ul> </ul>
<% unless @vote.organizers.blank? %>
<h2><%= _("Organizers") %></h2> <h2><%= _("Organizers") %></h2>
<ul> <ul>
@ -45,8 +43,6 @@
<% end %> <% end %>
</ul> </ul>
<% end %>
<% if @vote.users.exists?(current_user.id) and @vote.expire_on.nil? %> <% if @vote.users.exists?(current_user.id) and @vote.expire_on.nil? %>
<h3><%= _("Actions for organizers") %></h3> <h3><%= _("Actions for organizers") %></h3>