From 3df77c84f6db5c1aeea48ec4b587601525c34600 Mon Sep 17 00:00:00 2001 From: raluka Date: Fri, 10 Jul 2015 15:40:11 +0200 Subject: [PATCH] Issue#690: fixed Attendance Button --- .../admin/registrations_controller.rb | 37 ++++++------------- app/views/admin/registrations/index.html.haml | 25 ++++--------- config/routes.rb | 4 +- 3 files changed, 21 insertions(+), 45 deletions(-) diff --git a/app/controllers/admin/registrations_controller.rb b/app/controllers/admin/registrations_controller.rb index 27dacfa4..9bafb828 100644 --- a/app/controllers/admin/registrations_controller.rb +++ b/app/controllers/admin/registrations_controller.rb @@ -36,27 +36,12 @@ module Admin end end - def present - @registration.attended = true + def toggle_attendance + @registration.attended = !@registration.attended if @registration.save - flash[:notice] = "#{@user.email} has attended" - redirect_to admin_conference_registrations_path(@conference.short_title) + head :ok else - flash[:notice] = "Update Attended for #{@user.email} failed!" \ - "#{@registration.errors.full_messages.join('. ')}" - redirect_to admin_conference_registrations_path(@conference.short_title) - end - end - - def absent - @registration.attended = false - if @registration.save - flash[:notice] = "#{@user.email} has not attended" - redirect_to admin_conference_registrations_path(@conference.short_title) - else - flash[:notice] = "Update Attended for #{@user.email} failed!" \ - "#{@registration.errors.full_messages.join('. ')}" - redirect_to admin_conference_registrations_path(@conference.short_title) + head :unprocessable_entity end end @@ -69,13 +54,13 @@ module Admin def registration_params params.require(:registration). permit( - :conference_id, :arrival, :departure, - :volunteer, - vchoice_ids: [], qanswer_ids: [], - qanswers_attributes: [], - user_attributes: [ - :id, :name, :tshirt, :mobile, :volunteer_experience, :languages, - :nickname, :affiliation ]) + :conference_id, :arrival, :departure, + :volunteer, + vchoice_ids: [], qanswer_ids: [], + qanswers_attributes: [], + user_attributes: [ + :id, :name, :tshirt, :mobile, :volunteer_experience, :languages, + :nickname, :affiliation]) end end end diff --git a/app/views/admin/registrations/index.html.haml b/app/views/admin/registrations/index.html.haml index eb89719a..ae48c678 100644 --- a/app/views/admin/registrations/index.html.haml +++ b/app/views/admin/registrations/index.html.haml @@ -44,24 +44,15 @@ %td = link_to 'Questions','#', class: 'btn btn-success question-btn', 'data-id' => index, 'data-name' => registration.name %td + = check_box_tag "#{@conference.short_title}_#{registration.id}", registration.id, registration.attended, + class: 'switch-checkbox', method: :patch, + url: toggle_attendance_admin_conference_registration_path(@conference.short_title, id: registration.id)+"?attended=", + data: { size: "small", + on_color: 'success', + off_color: 'warning', + on_text: 'Present', + off_text: 'Absent' } .btn-group - .btn-group - - if registration.attended - - btnclass = 'btn-success' - - else - - btnclass = 'btn-warning' - %button{type: "button", class: "btn #{btnclass} dropdown-toggle", "data-toggle" => "dropdown", "aria-expanded" => "false"} - - if registration.attended - Present - - else - Absent - %span.caret - %ul.dropdown-menu{role: "menu"} - %li - = link_to "Present", present_admin_conference_registration_path(@conference.short_title, id: registration.id), - method: :patch - = link_to "Absent" , absent_admin_conference_registration_path(@conference.short_title, id: registration.id), - method: :patch = link_to 'Edit', edit_admin_conference_registration_path(@conference.short_title, id: registration), method: :get, class: 'btn btn-primary' = link_to 'Delete', admin_conference_registration_path(@conference.short_title, registration), diff --git a/config/routes.rb b/config/routes.rb index 2a5cbcd0..5f8a59b6 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -35,8 +35,8 @@ Osem::Application.routes.draw do resources :registrations, except: [:create, :new] do member do - patch :present - patch :absent + patch :toggle_attendance + end end