Files
nairobi/app/controllers/legislation/proposals/votes_controller.rb
Javi Martín 7070b0915b Allow liking/unliking when JavaScript is disabled
Even if pretty much nobody uses a browser with JavaScript disabled when
navigating our sites, there might be times where JavaScript isn't loaded
for reasons like a slow internet connections not getting the JavaScript
files or a technical issue.

So we're making it possible to still use the like/unlike buttons in
these cases.
2023-10-18 18:08:59 +02:00

32 lines
1.1 KiB
Ruby

module Legislation
module Proposals
class VotesController < ApplicationController
before_action :authenticate_user!
load_and_authorize_resource :process, class: "Legislation::Process"
load_and_authorize_resource :proposal, class: "Legislation::Proposal",
through: :process,
id_param: "legislation_proposal_id"
load_and_authorize_resource through: :proposal, through_association: :votes_for, only: :destroy
def create
authorize! :create, Vote.new(voter: current_user, votable: @proposal)
@proposal.vote_by(voter: current_user, vote: params[:value])
respond_to do |format|
format.html { redirect_to request.referer, notice: I18n.t("flash.actions.create.vote") }
format.js { render :show }
end
end
def destroy
@proposal.unvote_by(current_user)
respond_to do |format|
format.html { redirect_to request.referer, notice: I18n.t("flash.actions.destroy.vote") }
format.js { render :show }
end
end
end
end
end