Registrations page
This commit is contained in:
		
							parent
							
								
									9c36cd5576
								
							
						
					
					
						commit
						fe107076af
					
				| @ -491,3 +491,18 @@ ul.tags, | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | .workshop { | ||||||
|  | 	list-style: none; | ||||||
|  | 	overflow: auto; | ||||||
|  | 
 | ||||||
|  | 	&:target { | ||||||
|  | 		background-color: $color-5; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .registrations .user { | ||||||
|  | 	&:target { | ||||||
|  | 		background-color: $color-5; | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | |||||||
| @ -2,7 +2,15 @@ require 'geocoder/calculations' | |||||||
| require 'rest_client' | require 'rest_client' | ||||||
| 
 | 
 | ||||||
| class ConferencesController < ApplicationController | class ConferencesController < ApplicationController | ||||||
| 	before_action :set_conference, only: [:show, :edit, :update, :destroy] | 	before_action :set_conference, only: [:show, :edit, :update, :destroy, :registrations] | ||||||
|  | 	before_filter :authenticate, only: [:registrations] | ||||||
|  | 
 | ||||||
|  | 	def authenticate | ||||||
|  | 		auth = get_secure_info(:registrations_access) | ||||||
|  | 		authenticate_or_request_with_http_basic('Administration') do |username, password| | ||||||
|  | 			username == auth[:username] && password == auth[:password] | ||||||
|  | 		end | ||||||
|  | 	end | ||||||
| 
 | 
 | ||||||
| 	# GET /conferences | 	# GET /conferences | ||||||
| 	def index | 	def index | ||||||
| @ -405,15 +413,6 @@ class ConferencesController < ApplicationController | |||||||
| 		{error: false, next_step: params[:cancel] ? 'cancel' : next_step} | 		{error: false, next_step: params[:cancel] ? 'cancel' : next_step} | ||||||
| 	end | 	end | ||||||
| 
 | 
 | ||||||
| 	def workshop_test |  | ||||||
| 		set_conference |  | ||||||
| 		@register_step = 'new_workshop' |  | ||||||
| 		@register_template = 'register_new_workshop' |  | ||||||
| 		session[:registration] = {:workshop => [Hash.new]} |  | ||||||
| 		session[:registration][:workshop_index] = 0 |  | ||||||
| 		render 'show' |  | ||||||
| 	end |  | ||||||
| 
 |  | ||||||
| 	def register | 	def register | ||||||
| 		is_post = request.post? || session[:registration_step] | 		is_post = request.post? || session[:registration_step] | ||||||
| 		set_conference | 		set_conference | ||||||
| @ -496,6 +495,11 @@ class ConferencesController < ApplicationController | |||||||
| 		end | 		end | ||||||
| 	end | 	end | ||||||
| 
 | 
 | ||||||
|  | 	def registrations | ||||||
|  | 		registrations = ConferenceRegistration.where(:conference_id => @conference.id) | ||||||
|  | 		@registrations = registrations | ||||||
|  | 	end | ||||||
|  | 
 | ||||||
| 	def register_confirm | 	def register_confirm | ||||||
| 		set_conference | 		set_conference | ||||||
| 		@conference_registration = ConferenceRegistration.find_by(confirmation_token: params[:confirmation_token]) | 		@conference_registration = ConferenceRegistration.find_by(confirmation_token: params[:confirmation_token]) | ||||||
|  | |||||||
							
								
								
									
										81
									
								
								app/views/conferences/registrations.html.haml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										81
									
								
								app/views/conferences/registrations.html.haml
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,81 @@ | |||||||
|  | - location = @conference.organizations.first.locations.first | ||||||
|  | - location_name = location.city + ', ' + (location.territory ? Carmen::Country.coded(location.country).subregions.coded(location.territory).name : location.country) | ||||||
|  | 
 | ||||||
|  | - title @conference.title | ||||||
|  | - description "#{@conference.title} conference in #{location_name} for DIY bicycle collectives, co-ops, and advocacy groups" | ||||||
|  | = render 'header' | ||||||
|  | - stats = {confirmed: 0, completed: 0, total: 0, paid: 0, collected: 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?' | ||||||
|  | 			- @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) | ||||||
|  | 					%td.user{rowspan: 2, 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' | ||||||
|  | 				- if user.present? | ||||||
|  | 					%tr | ||||||
|  | 						%th='Organizations' | ||||||
|  | 						%td{colspan: 2} | ||||||
|  | 							- 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: 2} | ||||||
|  | 							- 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 | ||||||
|  | 
 | ||||||
|  | 		%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 => '$') | ||||||
| @ -20,6 +20,7 @@ BikeBike::Application.routes.draw do | |||||||
|             match 'register/pay-registration/:confirmation_token' => 'conferences#register_pay_registration', via: [:get, :post] |             match 'register/pay-registration/:confirmation_token' => 'conferences#register_pay_registration', via: [:get, :post] | ||||||
|             get 'register/paypal-confirm/:confirmation_token' => 'conferences#register_paypal_confirm' |             get 'register/paypal-confirm/:confirmation_token' => 'conferences#register_paypal_confirm' | ||||||
|             get 'register/paypal-cancel/:confirmation_token' => 'conferences#register_paypal_cancel' |             get 'register/paypal-cancel/:confirmation_token' => 'conferences#register_paypal_cancel' | ||||||
|  |             get 'registrations' => 'conferences#registrations' | ||||||
|             #patch 'register/step/:step' => 'conferences#register_step' |             #patch 'register/step/:step' => 'conferences#register_step' | ||||||
| 			#resources :registrations, :path => 'registration' do | 			#resources :registrations, :path => 'registration' do | ||||||
| 			#	get :form, on: :collection | 			#	get :form, on: :collection | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user