From d9540599476f80724a872c95aee1537af13f5383 Mon Sep 17 00:00:00 2001 From: Nishanth Vijayan Date: Mon, 26 Sep 2016 17:01:39 +0530 Subject: [PATCH] Show missing speakers in reports --- app/controllers/admin/events_controller.rb | 4 +++ app/views/admin/events/reports.html.haml | 31 ++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/app/controllers/admin/events_controller.rb b/app/controllers/admin/events_controller.rb index 90d9b5ba..8c1526df 100644 --- a/app/controllers/admin/events_controller.rb +++ b/app/controllers/admin/events_controller.rb @@ -144,6 +144,10 @@ module Admin @events_commercials = Commercial.where(commercialable_type: 'Event', commercialable_id: @events.pluck(:id)) @events_missing_commercial = @events.where.not(id: @events_commercials.pluck(:commercialable_id)) @events_with_requirements = @events.where.not(description: ['', nil]) + + attended_registrants_ids = @conference.registrations.where(attended: true).pluck(:user_id) + @missing_event_speakers = EventUser.joins(:event).where('event_role = ? and program_id = ?', 'submitter', @program.id). + where.not(user_id: attended_registrants_ids).includes(:user, :event) end private diff --git a/app/views/admin/events/reports.html.haml b/app/views/admin/events/reports.html.haml index 0b31f685..228c4d0b 100644 --- a/app/views/admin/events/reports.html.haml +++ b/app/views/admin/events/reports.html.haml @@ -13,6 +13,12 @@ %span.label.label-success{style: 'border-radius: 1em;'} = @events_with_requirements.length + %li + %a{href: '#missing-speakers', 'data-toggle' => 'tab'} + Missing Speakers + %span.label.label-danger{style: 'border-radius: 1em;'} + = @missing_event_speakers.length + .tab-content #all.tab-pane.active .row @@ -94,3 +100,28 @@ %td= link_to event.title, edit_conference_program_proposal_path(@conference.short_title, event) %td #{event.speaker_names} %td= event.description + + #missing-speakers.tab-pane + .row + .col-md-12 + .page-header + %h1 + Missing Speakers + = "(#{@missing_event_speakers.length})" + %p.text-muted + All event speakers who haven't checked in + .col-md-12 + %table.table.table-striped.table-bordered.table-hover.datatable + %thead + %th Speaker Name + %th Registered? + %th Event + %th Start Time + %tbody + - @missing_event_speakers.each do |speaker| + %tr + %td= speaker.user.name + %td= @conference.user_registered?(speaker.user) ? 'Yes' : 'No' + %td= link_to speaker.event.title, edit_conference_program_proposal_path(@conference.short_title, speaker.event) + - event_start_time = speaker.event.time + %td= event_start_time.present? ? event_start_time : '-'