Allow changing closing date
This commit is contained in:
parent
b1a0b21c47
commit
0e291dc31c
2 changed files with 60 additions and 3 deletions
23
vedia.rb
23
vedia.rb
|
|
@ -260,7 +260,22 @@ get '/admin/votes/:id' do
|
|||
erb :admin_votes
|
||||
end
|
||||
|
||||
get '/admin/votes/:id/organizers/:user/delete' do
|
||||
post '/admin/votes/:id' do
|
||||
require_admin
|
||||
@vote = Vote.find(params[:id])
|
||||
if params.has_key?('year')
|
||||
new_expiry = TZInfo::Timezone.get(session[:timezone]).local_time(params['year'].to_i, params['month'].to_i, params['day'].to_i, params['hour'].to_i, params['minute'].to_i)
|
||||
if (@vote.state == 'open' or @vote.state == 'closed') and new_expiry > Time.now
|
||||
puts "change"
|
||||
@vote.expire_on = new_expiry
|
||||
@vote.state = 'open'
|
||||
@vote.save
|
||||
end
|
||||
end
|
||||
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
|
||||
|
|
@ -644,8 +659,12 @@ helpers do
|
|||
"#{TZInfo::Timezone.get(session[:timezone]).to_local(timestamp).strftime('%F')}"
|
||||
end
|
||||
|
||||
def format_timezone
|
||||
session[:timezone].gsub('_', ' ')
|
||||
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')} (#{format_timezone})"
|
||||
end
|
||||
|
||||
def markdown(markdown)
|
||||
|
|
|
|||
|
|
@ -12,7 +12,45 @@
|
|||
|
||||
<p><%= _("Description: %{description}") % { description: @vote.description } %></p>
|
||||
|
||||
<p><%= _("Closing date: %{date}") % { date: @vote.expire_on ? format_date_and_time(@vote.expire_on) : _("None") } %></p>
|
||||
<% if @vote.state == 'closed' or @vote.state == 'open' %>
|
||||
<form action="/admin/votes/<%= @vote.id %>" method="post">
|
||||
<p>
|
||||
<%= _("Closing date: ") %>
|
||||
<% year = Time.now.strftime('%Y').to_i %>
|
||||
<select name='year'>
|
||||
<% (-1..1).each do |i| %>
|
||||
<option value="<%= year + i %>"<% if TZInfo::Timezone.get(session[:timezone]).to_local(@vote.expire_on).strftime('%Y').to_i == year + i %> selected="selected"<% end %>><%= year + i %></option>
|
||||
<% end %>
|
||||
</select>
|
||||
-
|
||||
<select name='month'>
|
||||
<% (1..11).each do |m| %>
|
||||
<option value="<%= m %>"<% if TZInfo::Timezone.get(session[:timezone]).to_local(@vote.expire_on).strftime('%m').to_i == m %> selected="selected"<% end %>><%= m %></option>
|
||||
<% end %>
|
||||
</select>
|
||||
-
|
||||
<select name='day'>
|
||||
<% (1..31).each do |d| %>
|
||||
<option value="<%= d %>"<% if TZInfo::Timezone.get(session[:timezone]).to_local(@vote.expire_on).strftime('%d').to_i == d %> selected="selected"<% end %>><%= d %></option>
|
||||
<% end %>
|
||||
</select>
|
||||
|
||||
<select name='hour'>
|
||||
<% (0..23).each do |h| %>
|
||||
<option value="<%= h %>"<% if TZInfo::Timezone.get(session[:timezone]).to_local(@vote.expire_on).strftime('%H').to_i == h %> selected="selected"<% end %>><%= h %></option>
|
||||
<% end %>
|
||||
</select>
|
||||
:
|
||||
<select name='minute'>
|
||||
<% (0..59).each do |m| %>
|
||||
<option value="<%= m %>"<% if TZInfo::Timezone.get(session[:timezone]).to_local(@vote.expire_on).strftime('%M').to_i == m %> selected="selected"<% end %>><%= m %></option>
|
||||
<% end %>
|
||||
</select>
|
||||
(<%= format_timezone %>)
|
||||
<button type="submit" class="btn btn-link"><%= _("Change") %></button>
|
||||
</p>
|
||||
</form>
|
||||
<% end %>
|
||||
|
||||
<p class="mb-5"><%= _("State: %{state}") % { state: @vote.state } %></p>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue