|
|
@ -6,117 +6,117 @@ |
|
|
|
= render 'header' |
|
|
|
- stats = {confirmed: 0, completed: 0, total: 0, paid: 0, collected: 0, housing_total: 0, housing_beds: 0, housing_couches: 0, housing_campers: 0, bikes: 0, small_bikes: 0, large_bikes: 0} |
|
|
|
%article.row |
|
|
|
.columns.large-10 |
|
|
|
%h2=_'conference.registrations.title','Registrations' |
|
|
|
%table.registrations |
|
|
|
%tr |
|
|
|
%th='Email' |
|
|
|
%th='First Name' |
|
|
|
%th='Last Name' |
|
|
|
%th='Preferred Name' |
|
|
|
%th='Confirmed?' |
|
|
|
%th='Completed?' |
|
|
|
%th='Paid?' |
|
|
|
%th='Housing' |
|
|
|
%th='Bike' |
|
|
|
- @registrations.each do |registration| |
|
|
|
%tr |
|
|
|
- data = YAML.load(registration.data) |
|
|
|
- user = User.find_by(:email => registration.email) |
|
|
|
- stats[:total] += 1 |
|
|
|
- stats[:confirmed] += (registration.is_confirmed ? 1 : 0) |
|
|
|
- stats[:completed] += (registration.completed ? 1 : 0) |
|
|
|
- stats[:paid] += (registration.registration_fees_paid ? 1 : 0) |
|
|
|
- stats[:collected] += (registration.registration_fees_paid || 0) |
|
|
|
- stats[:housing_total] += (data[:questions][:housing] == 'none' ? 0 : 1) |
|
|
|
- stats[:housing_beds] += (data[:questions][:housing] == 'bed' ? 1 : 0) |
|
|
|
- stats[:housing_couches] += (data[:questions][:housing] == 'couch' ? 1 : 0) |
|
|
|
- stats[:housing_campers] += (data[:questions][:housing] == 'camp' ? 1 : 0) |
|
|
|
- stats[:bikes] += (data[:questions][:housing] == 'no' ? 0 : 1) |
|
|
|
- stats[:small_bikes] += (data[:questions][:housing] == 'small' ? 1 : 0) |
|
|
|
- stats[:large_bikes] += (data[:questions][:housing] == 'large' ? 1 : 0) |
|
|
|
- rows = 1 + (user.present? ? 1 : 0) + (data[:questions][:housing_extra].present? ? 1 :0) + (data[:questions][:other].present? ? 1 :0) |
|
|
|
%td.user{rowspan: (rows > 1 ? rows : nil), id: user ? "user-#{user.id}" : nil}=registration.email |
|
|
|
%td=data[:user][:firstname] |
|
|
|
%td=data[:user][:lastname] |
|
|
|
%td=data[:user][:username] |
|
|
|
%td=registration.is_confirmed ? 'Yes' : 'No' |
|
|
|
%td=registration.completed ? 'Yes' : 'No' |
|
|
|
%td=registration.registration_fees_paid.nil? ? 'No' : 'Yes' |
|
|
|
%td=data[:questions][:housing] |
|
|
|
%td=data[:questions][:loaner_bike] |
|
|
|
- if user.present? |
|
|
|
%tr |
|
|
|
%th='Organizations' |
|
|
|
%td{colspan: 3} |
|
|
|
- UserOrganizationRelationship.where(:user_id => user.id).each do |rel| |
|
|
|
- org = Organization.find(rel.organization_id) |
|
|
|
- location_name = "#{org.locations[0].city}, #{org.locations[0].territory}" |
|
|
|
= link_to "#{org.name} (#{location_name})", org |
|
|
|
%th='Workshops' |
|
|
|
%td{colspan: 3} |
|
|
|
- Workshop.where('workshop_facilitators.user_id' => user.id, :conference_id => @conference.id).joins(:workshop_facilitators).each do | workshop | |
|
|
|
%a{href: "#workshop-#{workshop.slug}"}= workshop.title |
|
|
|
- if data[:questions][:housing_extra].present? |
|
|
|
%tr |
|
|
|
%th='Housing Notes' |
|
|
|
%td{colspan: 7}=data[:questions][:housing_extra] |
|
|
|
- if data[:questions][:other].present? |
|
|
|
%tr |
|
|
|
%th='Other Notes' |
|
|
|
%td{colspan: 7}=data[:questions][:other] |
|
|
|
.columns.large-10 |
|
|
|
%h2=_'conference.registrations.title','Registrations' |
|
|
|
%table.registrations |
|
|
|
%tr |
|
|
|
%th='Email' |
|
|
|
%th='First Name' |
|
|
|
%th='Last Name' |
|
|
|
%th='Preferred Name' |
|
|
|
%th='Confirmed?' |
|
|
|
%th='Completed?' |
|
|
|
%th='Paid?' |
|
|
|
%th='Housing' |
|
|
|
%th='Bike' |
|
|
|
- @registrations.each do |registration| |
|
|
|
%tr |
|
|
|
- data = YAML.load(registration.data) |
|
|
|
- user = User.find_user(registration.email) |
|
|
|
- stats[:total] += 1 |
|
|
|
- stats[:confirmed] += (registration.is_confirmed ? 1 : 0) |
|
|
|
- stats[:completed] += (registration.completed ? 1 : 0) |
|
|
|
- stats[:paid] += (registration.registration_fees_paid ? 1 : 0) |
|
|
|
- stats[:collected] += (registration.registration_fees_paid || 0) |
|
|
|
- stats[:housing_total] += (data[:questions][:housing] == 'none' ? 0 : 1) |
|
|
|
- stats[:housing_beds] += (data[:questions][:housing] == 'bed' ? 1 : 0) |
|
|
|
- stats[:housing_couches] += (data[:questions][:housing] == 'couch' ? 1 : 0) |
|
|
|
- stats[:housing_campers] += (data[:questions][:housing] == 'camp' ? 1 : 0) |
|
|
|
- stats[:bikes] += (data[:questions][:housing] == 'no' ? 0 : 1) |
|
|
|
- stats[:small_bikes] += (data[:questions][:housing] == 'small' ? 1 : 0) |
|
|
|
- stats[:large_bikes] += (data[:questions][:housing] == 'large' ? 1 : 0) |
|
|
|
- rows = 1 + (user.present? ? 1 : 0) + (data[:questions][:housing_extra].present? ? 1 :0) + (data[:questions][:other].present? ? 1 :0) |
|
|
|
%td.user{rowspan: (rows > 1 ? rows : nil), id: user ? "user-#{user.id}" : nil}=registration.email |
|
|
|
%td=data[:user][:firstname] |
|
|
|
%td=data[:user][:lastname] |
|
|
|
%td=data[:user][:username] |
|
|
|
%td=registration.is_confirmed ? 'Yes' : 'No' |
|
|
|
%td=registration.completed ? 'Yes' : 'No' |
|
|
|
%td=registration.registration_fees_paid.nil? ? 'No' : 'Yes' |
|
|
|
%td=data[:questions][:housing] |
|
|
|
%td=data[:questions][:loaner_bike] |
|
|
|
- if user.present? |
|
|
|
%tr |
|
|
|
%th='Organizations' |
|
|
|
%td{colspan: 3} |
|
|
|
- UserOrganizationRelationship.where(:user_id => user.id).each do |rel| |
|
|
|
- org = Organization.find(rel.organization_id) |
|
|
|
- location_name = "#{org.locations[0].city}, #{org.locations[0].territory}" |
|
|
|
= link_to "#{org.name} (#{location_name})", org |
|
|
|
%th='Workshops' |
|
|
|
%td{colspan: 3} |
|
|
|
- Workshop.where('workshop_facilitators.user_id' => user.id, :conference_id => @conference.id).joins(:workshop_facilitators).each do | workshop | |
|
|
|
%a{href: "#workshop-#{workshop.slug}"}= workshop.title |
|
|
|
- if data[:questions][:housing_extra].present? |
|
|
|
%tr |
|
|
|
%th='Housing Notes' |
|
|
|
%td{colspan: 7}=data[:questions][:housing_extra] |
|
|
|
- if data[:questions][:other].present? |
|
|
|
%tr |
|
|
|
%th='Other Notes' |
|
|
|
%td{colspan: 7}=data[:questions][:other] |
|
|
|
|
|
|
|
%h3=_'conference.registrations.workshops.title','Workshops' |
|
|
|
%ul |
|
|
|
- Workshop.where(:conference_id => @conference.id).each do |workshop| |
|
|
|
%li.workshop{id: "workshop-#{workshop.slug}"} |
|
|
|
.columns |
|
|
|
%h4=workshop.title |
|
|
|
.columns.medium-10.medium-offset-1.end |
|
|
|
= workshop.info.html_safe |
|
|
|
.columns.medium-8.medium-offset-2.end |
|
|
|
%h5='Facilitators' |
|
|
|
- workshop.workshop_facilitators.each do |facilitator| |
|
|
|
- user = User.find(facilitator.user_id) |
|
|
|
%div |
|
|
|
%a{href: "#user-#{user.id}"}="#{user.username} (#{user.email})" |
|
|
|
%h3=_'conference.registrations.workshops.title','Workshops' |
|
|
|
%ul |
|
|
|
- Workshop.where(:conference_id => @conference.id).each do |workshop| |
|
|
|
%li.workshop{id: "workshop-#{workshop.slug}"} |
|
|
|
.columns |
|
|
|
%h4=workshop.title |
|
|
|
.columns.medium-10.medium-offset-1.end |
|
|
|
= workshop.info.html_safe |
|
|
|
.columns.medium-8.medium-offset-2.end |
|
|
|
%h5='Facilitators' |
|
|
|
- workshop.workshop_facilitators.each do |facilitator| |
|
|
|
- user = User.find(facilitator.user_id) |
|
|
|
%div |
|
|
|
%a{href: "#user-#{user.id}"}="#{user.username} (#{user.email})" |
|
|
|
|
|
|
|
- content_for :side_bar do |
|
|
|
%h5='Stats' |
|
|
|
%table |
|
|
|
%tr |
|
|
|
%th='Confirmed Registrations:' |
|
|
|
%td=stats[:confirmed] |
|
|
|
%tr |
|
|
|
%th='Unconfirmed Registrations:' |
|
|
|
%td=(stats[:total] - stats[:confirmed]) |
|
|
|
%tr |
|
|
|
%th='Completed Registrations:' |
|
|
|
%td=stats[:completed] |
|
|
|
%tr |
|
|
|
%th='Incomplete Registrations:' |
|
|
|
%td=(stats[:total] - stats[:completed]) |
|
|
|
%tr |
|
|
|
%th='Fees Collected:' |
|
|
|
%td=number_to_currency(stats[:collected], :unit => '$') |
|
|
|
%tr |
|
|
|
%th='Housing Total:' |
|
|
|
%td=stats[:housing_total] |
|
|
|
%tr |
|
|
|
%th='Beds:' |
|
|
|
%td=stats[:housing_beds] |
|
|
|
%tr |
|
|
|
%th='Couch / Floorspace:' |
|
|
|
%td=stats[:housing_couches] |
|
|
|
%tr |
|
|
|
%th='Campers:' |
|
|
|
%td=stats[:housing_campers] |
|
|
|
%tr |
|
|
|
%th='Bikes Required:' |
|
|
|
%td=stats[:bikes] |
|
|
|
%tr |
|
|
|
%th='Small Bikes:' |
|
|
|
%td=stats[:small_bikes] |
|
|
|
%tr |
|
|
|
%th='Large Bikes:' |
|
|
|
%td=stats[:large_bikes] |
|
|
|
%h5='Stats' |
|
|
|
%table |
|
|
|
%tr |
|
|
|
%th='Confirmed Registrations:' |
|
|
|
%td=stats[:confirmed] |
|
|
|
%tr |
|
|
|
%th='Unconfirmed Registrations:' |
|
|
|
%td=(stats[:total] - stats[:confirmed]) |
|
|
|
%tr |
|
|
|
%th='Completed Registrations:' |
|
|
|
%td=stats[:completed] |
|
|
|
%tr |
|
|
|
%th='Incomplete Registrations:' |
|
|
|
%td=(stats[:total] - stats[:completed]) |
|
|
|
%tr |
|
|
|
%th='Fees Collected:' |
|
|
|
%td=number_to_currency(stats[:collected], :unit => '$') |
|
|
|
%tr |
|
|
|
%th='Housing Total:' |
|
|
|
%td=stats[:housing_total] |
|
|
|
%tr |
|
|
|
%th='Beds:' |
|
|
|
%td=stats[:housing_beds] |
|
|
|
%tr |
|
|
|
%th='Couch / Floorspace:' |
|
|
|
%td=stats[:housing_couches] |
|
|
|
%tr |
|
|
|
%th='Campers:' |
|
|
|
%td=stats[:housing_campers] |
|
|
|
%tr |
|
|
|
%th='Bikes Required:' |
|
|
|
%td=stats[:bikes] |
|
|
|
%tr |
|
|
|
%th='Small Bikes:' |
|
|
|
%td=stats[:small_bikes] |
|
|
|
%tr |
|
|
|
%th='Large Bikes:' |
|
|
|
%td=stats[:large_bikes] |
|
|
|