Browse Source

Registrations page

development
Godwin 10 years ago
parent
commit
fe107076af
  1. 15
      app/assets/stylesheets/sass/_base.scss
  2. 24
      app/controllers/conferences_controller.rb
  3. 81
      app/views/conferences/registrations.html.haml
  4. 1
      config/routes.rb

15
app/assets/stylesheets/sass/_base.scss

@ -491,3 +491,18 @@ ul.tags,
} }
} }
} }
.workshop {
list-style: none;
overflow: auto;
&:target {
background-color: $color-5;
}
}
.registrations .user {
&:target {
background-color: $color-5;
}
}

24
app/controllers/conferences_controller.rb

@ -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
@ -404,15 +412,6 @@ class ConferencesController < ApplicationController
#end #end
{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]
@ -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

@ -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 => '$')

1
config/routes.rb

@ -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…
Cancel
Save