Move events index datatable row to a partial

- clean up columns
- tag unregistered submitters & speakers
- implement caching
This commit is contained in:
James Mason 2018-02-23 00:00:25 -08:00
parent 0d4c9e32cf
commit a2ed9c0074
7 changed files with 84 additions and 54 deletions

View file

@ -0,0 +1,63 @@
- cache ['admin', conference_id, program, event] do
%tr{ id: "event-#{event.id}" }
%td
= event.id
%td
= link_to event.title,
admin_conference_program_event_path(conference_id, event)
- if rating_enabled
%td.col-md-1{ data: { order: event.average_rating } }
= render 'datatable_row_rating',
event: event,
show_votes: show_votes,
max_rating: max_rating
- if event.submitter
%td
= link_to event.submitter.name, admin_user_path(event.submitter)
- unless event.submitter.registrations.for_conference(event.conference)
%span.label.label-warning Unregistered
- else
%td.bg-danger
Unknown submitter
%td
- event.speakers_ordered.each do |speaker|
.speaker
= link_to speaker.name, admin_user_path(speaker)
- unless speaker.registrations.for_conference(event.conference)
%span.label.label-danger Unregistered
- if @program.languages.present?
%td
= event.language
%td.text-center{ data: { order: event.require_registration.to_s } }
= event_switch_checkbox(event, :require_registration, conference_id)
- if event.require_registration
= link_to registered_text(event),
registrations_admin_conference_program_event_path(conference_id,
event),
class: 'btn btn-xs btn-default'
%td.text-center{ data: { order: event.is_highlight.to_s } }
= event_switch_checkbox(event, :is_highlight, conference_id)
%td
= event_type_dropdown(event, event_types, conference_id)
%td
= track_dropdown(event, tracks, conference_id)
%td
= difficulty_dropdown(event, difficulty_levels, conference_id)
%td
= state_dropdown(event, conference_id, email_settings)
%td.text-center
= link_to "#{event.comments_count}",
admin_conference_program_event_path(conference_id, event),
anchor: 'comments-div'

View file

@ -90,53 +90,14 @@
%th
.fa.fa-comment
- @events.each do |event|
%tr
%td
= event.id
%td
= link_to event.title, admin_conference_program_event_path(@conference.short_title, event)
- if @program.rating_enabled?
%td.col-md-1{ data: { order: event.average_rating } }
= render 'datatable_row_rating',
event: event,
show_votes: @program.show_voting?,
max_rating: @program.rating
- if event.submitter && event.submitter.registrations && event.submitter.registrations.count < 1
- bgcolor = '#F7819F'
- else
- bgcolor = ''
%td{ style: "background-color: #{bgcolor}" }
- unless event.submitter.nil?
= link_to event.submitter.name, admin_user_path(event.submitter)
- if event.submitter.registrations.count < 1
(Unregistered!)
- else
Unknown submitter
%td
- event.speakers_ordered.each do |speaker|
.speaker
= link_to speaker.name, admin_user_path(speaker)
- if @program.languages.present?
%td
= event.language
%td.text-center{ 'data-order' => "#{event.require_registration}" }
= event_switch_checkbox(event, :require_registration, @conference.short_title)
- if event.require_registration
= link_to registered_text(event), registrations_admin_conference_program_event_path(@conference.short_title, event), class: 'btn btn-xs btn-default'
%td.text-center{ 'data-order' => "#{event.is_highlight}" }
= event_switch_checkbox(event, :is_highlight, @conference.short_title)
%td
= event_type_dropdown(event, @event_types, @conference.short_title)
%td
= track_dropdown(event, @tracks, @conference.short_title)
%td
= difficulty_dropdown(event, @difficulty_levels, @conference.short_title)
%td
= state_dropdown(event, @conference.short_title, @conference.email_settings)
%td.text-center
= link_to "#{event.comments_count}", admin_conference_program_event_path(@conference.short_title, event), anchor: 'comments-div'
= render 'datatable_row',
event: event,
conference_id: @conference.short_title,
program: @program,
rating_enabled: @program.rating_enabled?,
show_votes: @program.show_voting?,
max_rating: @program.rating,
event_types: @event_types,
tracks: @tracks,
difficulty_levels: @difficulty_levels,
email_settings: @conference.email_settings