From ae3c7c73e1322c3a871619a6ff86648ab42e11c8 Mon Sep 17 00:00:00 2001 From: sto Date: Fri, 21 Nov 2025 10:53:23 +0100 Subject: [PATCH] Add admin action to regenerate QR codes --- app/controllers/users_controller.rb | 9 +++++++++ app/models/contestant.rb | 4 ++++ app/policies/user_policy.rb | 4 ++++ app/views/users/index.html.slim | 3 ++- config/routes.rb | 1 + 5 files changed, 20 insertions(+), 1 deletion(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 9fe3c88..dbc2a4a 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -73,6 +73,15 @@ class UsersController < ApplicationController redirect_to users_path, notice: "Updated contestants: #{updated}/#{total}" end + def regenerate_qrcodes + authorize :user + + Contestant.all.each do |contestant| + contestant.regenerate_qrcode + contestant.save + end + end + private def set_user diff --git a/app/models/contestant.rb b/app/models/contestant.rb index 0a895ec..9e270d8 100644 --- a/app/models/contestant.rb +++ b/app/models/contestant.rb @@ -43,6 +43,10 @@ class Contestant < ApplicationRecord end end + def regenerate_qrcode + generate_qrcode + end + private def initialize_time_seconds_if_empty diff --git a/app/policies/user_policy.rb b/app/policies/user_policy.rb index bb8eacd..b30538f 100644 --- a/app/policies/user_policy.rb +++ b/app/policies/user_policy.rb @@ -30,4 +30,8 @@ class UserPolicy < ApplicationPolicy def update_contestants? user.admin? end + + def regenerate_qrcodes? + user.admin? + end end diff --git a/app/views/users/index.html.slim b/app/views/users/index.html.slim index 80968df..38d4a1f 100644 --- a/app/views/users/index.html.slim +++ b/app/views/users/index.html.slim @@ -25,4 +25,5 @@ table.table.table-striped.table-hover .col a.btn.btn-primary href=new_user_path | New user - = button_to "Update contestants", "/update_contestants", method: :post, class: "mt-3 btn btn-success" \ No newline at end of file + = button_to "Update contestants", "/update_contestants", method: :post, class: "mt-3 btn btn-success" + = button_to "Regenerate QR codes", "/regenerate_qrcodes", method: :post, class: "mt-3 btn btn-success" \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 74fdf94..df34e7b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -37,6 +37,7 @@ Rails.application.routes.draw do post "connect", to: "messages#connect" post "message", to: "messages#create" + post "regenerate_qrcodes", to: "users#regenerate_qrcodes" post "update_contestants", to: "users#update_contestants" get "public/:id", to: "contests#scoreboard"