You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by fa...@apache.org on 2009/03/27 11:33:07 UTC
svn commit: r759091 [2/8] - in /labs/consite: ./ trunk/ trunk/conferences/
trunk/conferences/app/ trunk/conferences/app/controllers/
trunk/conferences/app/controllers/admin/
trunk/conferences/app/controllers/admin/con/ trunk/conferences/app/helpers/
tr...
Added: labs/consite/trunk/conferences/app/helpers/admin/con/sponsor_types_helper.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/helpers/admin/con/sponsor_types_helper.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/helpers/admin/con/sponsor_types_helper.rb (added)
+++ labs/consite/trunk/conferences/app/helpers/admin/con/sponsor_types_helper.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,2 @@
+module Admin::Con::SponsorTypesHelper
+end
Propchange: labs/consite/trunk/conferences/app/helpers/admin/con/sponsor_types_helper.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/helpers/admin/con/sponsors_helper.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/helpers/admin/con/sponsors_helper.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/helpers/admin/con/sponsors_helper.rb (added)
+++ labs/consite/trunk/conferences/app/helpers/admin/con/sponsors_helper.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,3 @@
+module Admin::Con::SponsorsHelper
+ include Admin::Con::DescriptionColumnHelper
+end
Propchange: labs/consite/trunk/conferences/app/helpers/admin/con/sponsors_helper.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/helpers/admin/con/submissions_helper.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/helpers/admin/con/submissions_helper.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/helpers/admin/con/submissions_helper.rb (added)
+++ labs/consite/trunk/conferences/app/helpers/admin/con/submissions_helper.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,23 @@
+module Admin::Con::SubmissionsHelper
+ def report_title
+ "#{@conference.name} Submissions"
+ end
+
+ include Admin::Con::DescriptionColumnHelper
+
+ def presenter_column(record)
+ record.presenter.name
+ end
+
+ def scheduled_sessions_column(record)
+ sessions = []
+ if record.scheduled_sessions
+ record.scheduled_sessions.each do |session|
+ track = session.track
+ start = session.start_time_local
+ sessions << h("#{start.to_formatted_s(:time)} on #{track.date.to_formatted_s(:short)} in #{track.name}")
+ end
+ end
+ return sessions.join(', ')
+ end
+end
Propchange: labs/consite/trunk/conferences/app/helpers/admin/con/submissions_helper.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/helpers/admin/con/time_column_helper.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/helpers/admin/con/time_column_helper.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/helpers/admin/con/time_column_helper.rb (added)
+++ labs/consite/trunk/conferences/app/helpers/admin/con/time_column_helper.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,5 @@
+module Admin::Con::TimeColumnHelper
+
+
+
+end
Propchange: labs/consite/trunk/conferences/app/helpers/admin/con/time_column_helper.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/helpers/admin/con/tracks_helper.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/helpers/admin/con/tracks_helper.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/helpers/admin/con/tracks_helper.rb (added)
+++ labs/consite/trunk/conferences/app/helpers/admin/con/tracks_helper.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,2 @@
+module Admin::Con::TracksHelper
+end
Propchange: labs/consite/trunk/conferences/app/helpers/admin/con/tracks_helper.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/helpers/admin/con/venues_helper.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/helpers/admin/con/venues_helper.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/helpers/admin/con/venues_helper.rb (added)
+++ labs/consite/trunk/conferences/app/helpers/admin/con/venues_helper.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,3 @@
+module Admin::Con::VenuesHelper
+ include Admin::Con::DescriptionColumnHelper
+end
Propchange: labs/consite/trunk/conferences/app/helpers/admin/con/venues_helper.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/activity.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/activity.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/activity.rb (added)
+++ labs/consite/trunk/conferences/app/models/activity.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,66 @@
+class Activity < ActiveRecord::Base
+
+ acts_as_taggable
+ acts_as_cache_clearing
+
+ belongs_to :type, :class_name => "PresentationType", :foreign_key => "presentation_type_id"
+ belongs_to :presenter, :class_name => "User", :foreign_key => "presenter_id"
+ belongs_to :location
+ belongs_to :track
+ belongs_to :conference
+
+ before_validation :update_conference
+
+ def duration
+ (end_time - start_time) / 60
+ end
+
+ def start_time_local
+ if conference
+ tz = TimeZone[conference.time_zone]
+ return tz.utc_to_local(start_time)
+ else
+ return start_time
+ end
+ end
+
+ def end_time_local
+ if conference
+ tz = TimeZone[conference.time_zone]
+ return tz.utc_to_local(end_time)
+ else
+ return end_time
+ end
+ end
+
+ def update_conference
+ if track and not conference
+ self.conference = track.conference
+ end
+ if track and not location
+ self.location = track.location
+ end
+ end
+
+ def validate
+
+ if end_time < start_time
+ errors.add_to_base "The ending time must be after the start time."
+ end
+
+
+ if track and conference
+ if track.conference != conference
+ errors.add_to_base "The selected track is not part of the selected conference."
+ end
+ end
+
+ if track and location
+ if track.location != location
+ errors.add_to_base "The selected location differs from the selected track location."
+ end
+ end
+ end
+
+
+end
Propchange: labs/consite/trunk/conferences/app/models/activity.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/conference.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/conference.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/conference.rb (added)
+++ labs/consite/trunk/conferences/app/models/conference.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,130 @@
+class Conference < ActiveRecord::Base
+
+ acts_as_cache_clearing
+
+ file_column :logo
+
+ belongs_to :venue
+
+ has_many :conference_roles
+ has_many :presenters, :through => :conference_roles, :order => ['name'], :class_name => 'User', :foreign_key => 'presenter_id'
+ has_many :capacities, :through => :roles
+ has_many :sponsors
+ has_many :submissions
+ has_many :tracks, :order => ["date"]
+ has_many :scheduled_sessions, :through => :tracks, :order => 'start_time'
+ has_many :activities, :order => ['start_time']
+ has_many :emails
+
+ validates_presence_of :name, :short_name, :venue
+ validates_uniqueness_of :short_name
+
+ after_create :generate_pages
+
+ def validate
+ if end_date < start_date
+ errors.add_to_base "The end_date must be after the start_date"
+ end
+ end
+
+
+ def first_session(date=self.start_date)
+ first_session = ScheduledSession.find(:first, :include => [:track],
+ :order => ["scheduled_sessions.start_time"],
+ :conditions => ["tracks.conference_id = ? and tracks.date = ?",
+ self.id, date])
+ first_activity = Activity.find(:first, :order => ['activities.start_time'],
+ :conditions => ["activities.conference_id = ? and activities.start_time > ? ",
+ self.id, date])
+ if first_session and first_activity
+ if first_session.start_time < first_activity.start_time
+ return first_session
+ else
+ return first_activity
+ end
+ elsif first_session
+ return first_session
+ elsif first_activity
+ return first_activity
+ else
+ return nil
+ end
+ end
+
+ def last_session(date=self.start_date)
+ # first_session = ScheduledSession.find(:first, :include => [:track],
+ # :order => ["scheduled_sessions.start_time DESC"],
+ # :conditions => ["tracks.conference_id = ? and tracks.date = ?",
+ # self.id, date])
+
+ last_session = ScheduledSession.find(:first, :include => [:track],
+ :order => ["scheduled_sessions.start_time DESC"],
+ :conditions => ["tracks.conference_id = ? and tracks.date = ?",
+ self.id, date])
+
+ last_activity = Activity.find(:first, :order => ['activities.start_time DESC'],
+ :conditions => ["activities.conference_id = ? and activities.start_time < ? ",
+ self.id, date.tomorrow])
+ if last_session and last_activity
+ if last_session.start_time > last_activity.start_time
+ return last_session
+ else
+ return last_activity
+ end
+ elsif last_session
+ return last_session
+ elsif last_activity
+ return last_activity
+ else
+ return nil
+ end
+ end
+
+
+ def start_time_for_date(date=self.start_date)
+ session = first_session(date)
+ return session.start_time if session
+ end
+
+ def end_time_for_date(date=self.start_date)
+ session = last_session(date)
+ return session.end_time if session
+ end
+
+ def cross_track_activities(day=nil)
+ where = "conference_id = ? and track_id is NULL "
+ where << " and start_time >= ? and start_time < ? " if day
+ conditions = [where, self.id ]
+ if day
+ conditions << day if day
+ conditions << (day + 1)
+ end
+ return Activity.find(:all,:order => 'activities.start_time', :conditions => conditions)
+ end
+
+ def cross_track_activities_in_range(start_time,end_time,inclusive=false)
+ where = "conference_id = ? and track_id is NULL "
+ if inclusive
+ where << " and start_time <= ? and end_time > ? "
+ else
+ where << " and start_time >= ? and start_time < ? "
+ end
+ conditions = [where, self.id ]
+ if inclusive
+ conditions << end_time
+ conditions << start_time
+ else
+ conditions << start_time
+ conditions << end_time
+ end
+ return Activity.find(:all,:order => 'activities.start_time', :conditions => conditions)
+ end
+
+ def in_the_past?
+ self.start_date < Time.now.to_date
+ end
+
+ def generate_pages
+ ConferenceGenerator.new(self).generate
+ end
+end
Propchange: labs/consite/trunk/conferences/app/models/conference.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/conference_role.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/conference_role.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/conference_role.rb (added)
+++ labs/consite/trunk/conferences/app/models/conference_role.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,46 @@
+require 'fastercsv'
+class ConferenceRole < ActiveRecord::Base
+
+ acts_as_cache_clearing
+
+ belongs_to :conference
+ belongs_to :presenter, :class_name => "User", :foreign_key => "presenter_id"
+ # belongs_to :event, :polymorphic => true
+
+ def event
+ @event ||= event_type.singularize.camelize.constantize.find_by_id(event_id)
+ end
+
+ alias :session :event
+
+ def self.to_csv(collection=[])
+ field_names = %w(Name UploadedPhoto ReceivedAgreement UploadedPresentation)
+ header_row = FasterCSV::Row.new(field_names, field_names, true)
+ table = FasterCSV::Table.new([header_row])
+ collection.each do |cr|
+ table << [
+ cr.to_label,
+ (cr.presenter.photo? rescue false),
+ (cr.event.submission.agreement_form_received? rescue false),
+ (cr.event.submission.presentation.materials? rescue false)
+ ]
+ end
+ table.to_csv
+ end
+
+ def session_name
+ case self.event
+ when ScheduledSession: self.event.submission.presentation.name
+ when Activity: self.event.name
+ when PanelMember: "#{self.event.submission.presentation.name} [PANEL]"
+ end
+ end
+
+ def to_label
+ if presenter
+ "#{presenter.name}: #{session_name}"
+ else
+ session_name
+ end
+ end
+end
Propchange: labs/consite/trunk/conferences/app/models/conference_role.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/email.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/email.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/email.rb (added)
+++ labs/consite/trunk/conferences/app/models/email.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,14 @@
+class Email < ActiveRecord::Base
+
+ belongs_to :conference
+
+ def recipients
+ return ['Speakers','Unaccepted Submitters','All']
+ end
+
+ def send
+ self.save
+
+ end
+
+end
Propchange: labs/consite/trunk/conferences/app/models/email.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/location.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/location.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/location.rb (added)
+++ labs/consite/trunk/conferences/app/models/location.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,11 @@
+class Location < ActiveRecord::Base
+
+ acts_as_cache_clearing
+
+ belongs_to :venue
+ has_many :activities
+
+ validates_presence_of :name, :venue
+
+
+end
Propchange: labs/consite/trunk/conferences/app/models/location.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/organization.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/organization.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/organization.rb (added)
+++ labs/consite/trunk/conferences/app/models/organization.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,15 @@
+class Organization < ActiveRecord::Base
+
+ acts_as_cache_clearing
+
+ file_column :logo
+
+ has_many :sponsors, :dependent => :destroy
+
+ validates_presence_of :name
+
+ # regex wrong?
+# validates_format_of :url, :allow_nil => true, :allow_blank => true,
+# :with => /(^(http|https):\/\/[a-z0-9]+([-.]{1}[a-z0-9]*)+. [a-z]{2,5}(([0-9]{1,5})?\/.*)?$)/
+
+end
Propchange: labs/consite/trunk/conferences/app/models/organization.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/panel_member.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/panel_member.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/panel_member.rb (added)
+++ labs/consite/trunk/conferences/app/models/panel_member.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,14 @@
+class PanelMember < ActiveRecord::Base
+
+ acts_as_cache_clearing
+
+ belongs_to :presenter, :class_name => "User", :foreign_key => "presenter_id"
+ belongs_to :submission
+
+ validates_presence_of :submission, :presenter
+
+ def to_label
+ "#{self.presenter.name} on #{self.submission ? self.submission.name : '*MISSING SUBMISSION*'}"
+ end
+
+end
Propchange: labs/consite/trunk/conferences/app/models/panel_member.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/person.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/person.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/person.rb (added)
+++ labs/consite/trunk/conferences/app/models/person.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,35 @@
+class Person < ActiveRecord::Base
+
+ acts_as_cache_clearing
+
+ file_column :photo
+
+ has_one :user
+
+ has_many :conference_roles
+ has_many :conferences, :through => :conferences_roles
+ has_many :presentations
+ has_many :panel_members
+ has_many :submissions, :through => :presentations
+ has_many :activities
+
+ def scheduled_sessions(conference=nil, include_panels=true)
+ sessions = [ ]
+ conference_roles.each do |role|
+ inc = true
+ if conference
+ inc = role.conference == conference
+ end
+
+ case role.session
+ when ScheduledSession then sessions << role.session if inc
+ when PanelMember
+ if include_panels and inc
+ sessions << role.session.submission.scheduled_session
+ end
+ end
+ end
+ return sessions
+ end
+
+end
Propchange: labs/consite/trunk/conferences/app/models/person.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/presentation.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/presentation.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/presentation.rb (added)
+++ labs/consite/trunk/conferences/app/models/presentation.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,17 @@
+class Presentation < ActiveRecord::Base
+
+ acts_as_cache_clearing
+
+ acts_as_taggable
+ file_column :materials
+
+# belongs_to :presenter, :class_name => "Person", :foreign_key => "presenter_id"
+
+ belongs_to :presenter, :class_name => "User", :foreign_key => "presenter_id"
+ belongs_to :type, :class_name => "PresentationType", :foreign_key => "type_id"
+
+ has_many :submissions
+
+ validates_presence_of :presenter
+
+end
Propchange: labs/consite/trunk/conferences/app/models/presentation.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/presentation_type.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/presentation_type.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/presentation_type.rb (added)
+++ labs/consite/trunk/conferences/app/models/presentation_type.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,9 @@
+class PresentationType < ActiveRecord::Base
+
+ acts_as_cache_clearing
+
+ has_many :presentations, :class_name => "Presentation", :foreign_key => "type_id"
+ has_one :presentation_capacity
+ has_many :activities
+
+end
Propchange: labs/consite/trunk/conferences/app/models/presentation_type.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/presenter_mailer.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/presenter_mailer.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/presenter_mailer.rb (added)
+++ labs/consite/trunk/conferences/app/models/presenter_mailer.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,13 @@
+class PresenterMailer < ActionMailer::Base
+
+
+ def notification presenter, submission, title, content
+ recipients presenter.email
+ subject title
+ # configure this via conference
+ from "planners@apachecon.com"
+ body content
+
+ end
+
+end
Propchange: labs/consite/trunk/conferences/app/models/presenter_mailer.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/schedule_day_page.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/schedule_day_page.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/schedule_day_page.rb (added)
+++ labs/consite/trunk/conferences/app/models/schedule_day_page.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,18 @@
+class ScheduleDayPage < Page
+ include ScheduleTags
+
+ before_validation {|r| r.virtual = true }
+
+ def virtual?
+ true
+ end
+
+ def render
+ lazy_initialize_parser_and_context
+ year, month, day = $1, $2, $3 if request_uri =~ %r{#{parent.url}(\d{4})/(\d{2})/(\d{2})$}
+ @context.globals.schedule_date = Date.new(year.to_i,month.to_i,day.to_i)
+ super
+ end
+
+
+end
Propchange: labs/consite/trunk/conferences/app/models/schedule_day_page.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/schedule_page.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/schedule_page.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/schedule_page.rb (added)
+++ labs/consite/trunk/conferences/app/models/schedule_page.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,26 @@
+class SchedulePage < Page
+ include ScheduleTags
+
+
+ def find_by_url(url, live = true, clean = false)
+ url = clean_url(url) if clean
+ if url =~ %r{^#{ self.url }(\d{4})(?:/(\d{2})(?:/(\d{2}))?)?/?$}
+ year, month, day = $1, $2, $3
+ children.find_by_class_name(
+ case
+ when day
+ 'ScheduleDayPage'
+ when month
+ 'ScheduleMonthPage'
+ else
+ 'ScheduleYearPage'
+ end
+ )
+ else
+ super
+ end
+ end
+
+
+
+end
Propchange: labs/consite/trunk/conferences/app/models/schedule_page.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/scheduled_session.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/scheduled_session.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/scheduled_session.rb (added)
+++ labs/consite/trunk/conferences/app/models/scheduled_session.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,116 @@
+class ScheduledSession < ActiveRecord::Base
+
+ # NOTES
+ # stored times should ALWAYS be in UTC in the database
+ # timezone convertion happens in the active_scaffold controller
+ # callbacks keep the end_time in-synch with the duration
+ # and the dates in-synch with the track date
+
+ # uses the tzinfo_timezone plugin and tzinfo gem
+ # http://tzinfo.rubyforge.org/
+
+ acts_as_cache_clearing
+
+ belongs_to :submission
+# has_one :presentation, :through => :submission
+ belongs_to :track
+
+ before_validation :update_date_and_times
+
+ [:name, :description, :duration ].each do |field|
+ define_method field do
+ if submission && submission.presentation
+ return submission.presentation[field]
+ end
+ end
+ end
+
+ def presenter
+ if submission && submission.presentation
+ return submission.presentation.presenter
+ end
+ end
+
+ def type
+ if submission && submission.presentation
+ return submission.presentation.type
+ end
+ end
+
+ def tag_list
+ if submission && submission.presentation
+ return submission.presentation.tag_list
+ end
+ end
+
+
+ def validate
+
+# if start_time > end_time
+# errors.add_to_base("The start time must be before the end time.")
+# end
+
+# if start_time.to_date != track.date or end_time.to_date != track.date
+# errors.add_to_base("The start and end time dates must match the date of the track (#{track.date}).")
+# end
+
+ if submission.conference != track.conference
+ errors.add_to_base("The presentation was submitted to a different conference than the selected track. (#{submission.conference.name} vs. #{track.conference.name}")
+ end
+ end
+
+ def to_label
+ "#{self.submission.presentation.name} @ #{self.track.conference.name}"
+ end
+
+ def start_time_local
+ if track
+ tz = TimeZone[track.conference.time_zone]
+ return tz.utc_to_local(start_time)
+ else
+ return start_time
+ end
+ end
+
+ def end_time_local
+ if track
+ tz = TimeZone[track.conference.time_zone]
+ return tz.utc_to_local(end_time)
+ else
+ return end_time
+ end
+ end
+
+
+ def update_date_and_times
+ # issue with doing this after local/utc conversion
+ # what happens when the converted date is after midnight?
+ # calculate_end_time_from_duration
+ # calculate_dates_from_track
+ end
+
+ def calculate_end_time_from_duration
+ if duration
+ self.end_time = start_time + (duration * 60)
+ end
+ end
+
+ def calculate_dates_from_track
+ if track
+
+ [:start_time, :end_time].each do |time|
+
+ # now set the date portion to the same date
+ # as the associated track
+
+ self[time] = Time.utc( track.date.year,
+ track.date.month,
+ track.date.day,
+ self[time].hour,
+ self[time].min,
+ self[time].sec,0)
+ end
+ end
+ end
+
+end
Propchange: labs/consite/trunk/conferences/app/models/scheduled_session.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/session_page.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/session_page.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/session_page.rb (added)
+++ labs/consite/trunk/conferences/app/models/session_page.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,16 @@
+class SessionPage < Page
+ include SessionTags
+
+ before_validation {|r| r.virtual = true }
+
+ def virtual?
+ true
+ end
+
+ def render
+ lazy_initialize_parser_and_context
+ # @context.globals.scheduled_session = ScheduledSession.find(get_session_from_url)
+ super
+ end
+
+end
Propchange: labs/consite/trunk/conferences/app/models/session_page.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/sessions_page.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/sessions_page.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/sessions_page.rb (added)
+++ labs/consite/trunk/conferences/app/models/sessions_page.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,15 @@
+class SessionsPage < Page
+ include SessionTags
+
+ def find_by_url(url, live=true,clean=false)
+ url = clean_url(url) if clean
+ if url =~ %r{#{self.url}(\w+)}
+ prefix = $1
+ children.find_by_class_name 'SessionPage'
+ else
+ super
+ end
+ end
+
+
+end
Propchange: labs/consite/trunk/conferences/app/models/sessions_page.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/speaker_page.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/speaker_page.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/speaker_page.rb (added)
+++ labs/consite/trunk/conferences/app/models/speaker_page.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,82 @@
+class SpeakerPage < Page
+ include SpeakerTags
+
+ before_validation {|r| r.virtual = true }
+
+ def virtual?
+ true
+ end
+
+ def render
+ lazy_initialize_parser_and_context
+ @context.globals.speaker = User.find(get_speaker_from_url)
+ super
+ end
+
+ tag "conference:speaker" do |tag|
+ if tag.globals.speaker
+ tag.locals.speaker = tag.globals.speaker
+ else
+ tag.locals.speaker = User.find(get_speaker_from_url)
+ end
+ tag.expand
+ end
+
+ tag "conference:speaker:bio" do | tag |
+ tag.locals.speaker.notes
+ end
+
+ [:name, :url, :notes].each do |column|
+ desc %{ Renders the '#{column}' attribute of the current speaker.}
+ tag "conference:speaker:#{column}" do |tag|
+ tag.locals.speaker[column] if tag.locals.speaker
+ end
+ end
+
+ desc %{ Image for speakers }
+ tag "conference:speaker:photo" do |tag|
+ @speaker = tag.locals.speaker
+ "<img src='#{url_for_file_column("speaker", "photo")}' alt='#{@speaker.name}'/>"
+ end
+
+
+ desc %{ Scheduled session names for this speaker }
+ tag "conference:speaker:sessions" do |tag|
+ delimiter = tag.attr['delim']? tag.attr['delim'] : ","
+ if tag.attr['prefix']
+ prefix = tag.attr['prefix']
+ else
+ prefix = "#{tag.locals.conference.short_name}/sessions"
+ end
+ sessions = tag.locals.speaker.scheduled_sessions(tag.locals.conference)
+ presentation_names = [ ]
+ sessions.each do | session |
+ link = "<a href='/#{prefix}/#{session.id}'>"
+ link << "#{session.submission.presentation.name}</a>"
+ presentation_names << link
+ end
+ presentation_names.join(delimiter)
+ end
+
+ desc %{ Associated activities for this presenter }
+ tag "conference:speaker:activities" do |tag|
+ delimiter = tag.attr['delim']? tag.attr['delim'] : ","
+ activities = Activity.find(:all, :conditions => ['conference_id = ? and user_id = ?',
+ tag.locals.conference.id,
+ tag.locals.speaker.id])
+ names = [ ]
+ activities.each { |a| names << a.name }
+ names.join(delimiter)
+ end
+
+
+ private
+ def request_uri
+ request.request_uri unless request.nil?
+ end
+
+ def get_speaker_from_url
+ $1 if request_uri =~ %r{#{parent.url}/?(\w+)/?$}
+ end
+
+end
Propchange: labs/consite/trunk/conferences/app/models/speaker_page.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/speakers_page.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/speakers_page.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/speakers_page.rb (added)
+++ labs/consite/trunk/conferences/app/models/speakers_page.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,14 @@
+class SpeakersPage < Page
+ include SpeakerTags
+
+ def find_by_url(url, live=true,clean=false)
+ url = clean_url(url) if clean
+ if url =~ %r{#{self.url}(\w+)}
+ prefix = $1
+ children.find_by_class_name 'SpeakerPage'
+ else
+ super
+ end
+ end
+
+end
Propchange: labs/consite/trunk/conferences/app/models/speakers_page.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/sponsor.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/sponsor.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/sponsor.rb (added)
+++ labs/consite/trunk/conferences/app/models/sponsor.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,18 @@
+class Sponsor < ActiveRecord::Base
+
+ acts_as_cache_clearing
+
+ belongs_to :organization
+ belongs_to :sponsor_type
+ belongs_to :conference
+ belongs_to :sponsor_level
+
+ def to_label
+ if organization
+ return "#{organization.name} @ #{conference.name}"
+ else
+ return super.to_s
+ end
+ end
+
+end
Propchange: labs/consite/trunk/conferences/app/models/sponsor.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/sponsor_level.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/sponsor_level.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/sponsor_level.rb (added)
+++ labs/consite/trunk/conferences/app/models/sponsor_level.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,8 @@
+class SponsorLevel < ActiveRecord::Base
+
+ acts_as_cache_clearing
+
+ validates_presence_of :name
+ validates_uniqueness_of :name
+
+end
Propchange: labs/consite/trunk/conferences/app/models/sponsor_level.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/sponsor_type.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/sponsor_type.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/sponsor_type.rb (added)
+++ labs/consite/trunk/conferences/app/models/sponsor_type.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,10 @@
+class SponsorType < ActiveRecord::Base
+
+ acts_as_cache_clearing
+
+ has_many :sponsors
+
+ validates_presence_of :name
+ validates_uniqueness_of :name
+
+end
Propchange: labs/consite/trunk/conferences/app/models/sponsor_type.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/sponsor_type_page.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/sponsor_type_page.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/sponsor_type_page.rb (added)
+++ labs/consite/trunk/conferences/app/models/sponsor_type_page.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,31 @@
+class SponsorTypePage < Page
+ include ConferenceTags
+
+ before_validation {|r| r.virtual = true }
+
+ def virtual?
+ true
+ end
+
+ def render
+ lazy_initialize_parser_and_context
+ type_name = get_type_from_url.singularize.humanize.titlecase
+ @context.globals.sponsor_type = SponsorType.find_by_name(type_name)
+ super
+ end
+
+ desc %{ Prints the name of the current sponsor type }
+ tag "sponsor_type_name" do |tag|
+ tag.globals.sponsor_type.name
+ end
+
+ private
+ def request_uri
+ request.request_uri unless request.nil?
+ end
+
+ def get_type_from_url
+ $1 if request_uri =~ %r{#{parent.url}/?(\w+)/?$}
+ end
+
+end
Propchange: labs/consite/trunk/conferences/app/models/sponsor_type_page.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/sponsors_page.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/sponsors_page.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/sponsors_page.rb (added)
+++ labs/consite/trunk/conferences/app/models/sponsors_page.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,25 @@
+class SponsorsPage < Page
+ include ConferenceTags
+
+
+ def find_by_url(url, live=true,clean=false)
+ url = clean_url(url) if clean
+ if url =~ %r{#{self.url}(\w+)}
+ prefix = $1
+ children.find_by_class_name 'SponsorTypePage'
+ else
+ super
+ end
+ end
+
+ private
+ def request_uri
+ request.request_uri unless request.nil?
+ end
+
+ def get_conference_from_url
+ m = request_uri.match /^\/([^\/]*)\/.*$/
+ m[1] if m
+ end
+
+end
Propchange: labs/consite/trunk/conferences/app/models/sponsors_page.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/submission.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/submission.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/submission.rb (added)
+++ labs/consite/trunk/conferences/app/models/submission.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,78 @@
+require 'fastercsv'
+class Submission < ActiveRecord::Base
+
+ acts_as_cache_clearing
+
+ belongs_to :presentation
+ belongs_to :conference
+ has_many :scheduled_sessions
+ has_many :panel_members
+
+ validates_presence_of :presentation
+ validates_presence_of :conference
+
+ after_create :send_notification
+ after_update :update_agreement_form_received
+# do we want to check if they've already submitted a presentation to a conference?
+# validates_uniqueness_of :presentation, :scope => [:conference_id]
+
+ extend ActionView::Helpers::SanitizeHelper
+
+ def self.to_csv(collection)
+ field_names = %w(Conference Name Presenter Email Type Duration Status Scheduled)
+ header_row = FasterCSV::Row.new(field_names, field_names, true)
+ table = FasterCSV::Table.new([header_row])
+ collection.each do |sub|
+ scheduled = sub.scheduled_sessions.collect {|ss| ss.start_time_local.to_formatted_s(:short)}
+ table << [
+ sub.conference.name,
+ sub.presentation.name,
+ sub.presenter.name,
+ sub.presenter.email,
+ sub.presentation.type.name,
+ sub.presentation.duration,
+ sub.accepted?,
+ scheduled.join(';')
+# strip_tags(sub.presentation.description),
+# strip_tags(sub.presentation.presenter.notes)
+ ]
+ end
+ table.to_csv
+ end
+
+ def presenter
+ self.presentation ? self.presentation.presenter : nil
+ end
+
+ def name
+ self.presentation ? self.presentation.name : nil
+ end
+
+ def to_label
+ "#{self.name} to #{self.conference ? self.conference.name : 'UNSPECIFIED CONFERENCE'}"
+ end
+
+ def new_presentation_attributes=(presentation_attributes)
+ params = presentation_attributes.first
+ self.presentation = Presentation.new
+ self.presentation.build( params )
+ end
+
+ def existing_presentation_attributes=(presentation_attributes)
+ params = presentation_attributes[self.presentation.id.to_s]
+ self.presentation.update_attributes(params)
+ self.presentation.save
+ end
+
+ def send_notification
+ if conference && !conference.submission_notification_email.blank?
+ SubmissionNotifier.deliver_notification(:submission => self, :to => conference.submission_notification_email)
+ end
+ end
+
+ def update_agreement_form_received
+ presentation_ids = presentation.presenter.presentation_ids
+ Submission.update_all({:agreement_form_received => agreement_form_received},
+ :conference_id => conference_id, :presentation_id => presentation_ids)
+ end
+end
Propchange: labs/consite/trunk/conferences/app/models/submission.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/submission_notifier.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/submission_notifier.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/submission_notifier.rb (added)
+++ labs/consite/trunk/conferences/app/models/submission_notifier.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,9 @@
+class SubmissionNotifier < ActionMailer::Base
+ include ActionController::UrlWriter
+
+ def notification(options={})
+ @from = "notification@apachecon.com"
+ @to = options[:to]
+ @body = options
+ end
+end
\ No newline at end of file
Propchange: labs/consite/trunk/conferences/app/models/submission_notifier.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/track.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/track.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/track.rb (added)
+++ labs/consite/trunk/conferences/app/models/track.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,60 @@
+class Track < ActiveRecord::Base
+
+ acts_as_cache_clearing
+
+ belongs_to :conference
+ belongs_to :location
+ has_many :scheduled_sessions, :order => ["start_time"]
+ has_many :activities, :order => ["start_time"]
+
+ validates_presence_of :name, :date, :conference, :location
+ validates_uniqueness_of :date, :scope => [:conference_id, :location_id]
+
+ def to_label
+ "#{name} [#{date.strftime('%a %b %d')}]"
+ end
+
+ def validate
+ if date > conference.end_date or date < conference.start_date
+ errors.add_to_base("The track date must be within the start and end dates of the conference")
+ end
+
+ unless conference.venue.locations.index(location)
+ errors.add_to_base("The track location must be a location at the conference venue.")
+ end
+ end
+
+ def all_events
+ events = []
+ events << self.scheduled_sessions
+ events << self.activities
+ events << self.conference.cross_track_activities( self.date )
+ events.flatten!
+ events.sort do |a,b|
+ a.start_time <=> b.start_time
+ end
+ end
+
+ def events_starting_in_slot(start_time, end_time)
+ conditions = ["track_id = ? and (start_time >= ? and start_time < ?)",id,start_time, end_time]
+ events = []
+ events << ScheduledSession.find(:all,:conditions => conditions)
+ events << Activity.find(:all, :conditions => conditions)
+ events << conference.cross_track_activities_in_range( start_time, end_time )
+ events.flatten!
+ events.sort do |a,b|
+ a.start_time <=> b.start_time
+ end
+ end
+
+ def events_in_slot?(start_time, end_time)
+ conditions = ["track_id = ? and (start_time <= ? and end_time > ?)",id,end_time, start_time]
+ events = []
+ events << ScheduledSession.find(:all,:conditions => conditions)
+ events << Activity.find(:all, :conditions => conditions)
+ events << conference.cross_track_activities_in_range( start_time, end_time, true )
+ events.flatten!
+ events.size > 0
+ end
+
+end
Propchange: labs/consite/trunk/conferences/app/models/track.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/models/venue.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/models/venue.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/models/venue.rb (added)
+++ labs/consite/trunk/conferences/app/models/venue.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,10 @@
+class Venue < ActiveRecord::Base
+
+ acts_as_cache_clearing
+
+ has_many :locations, :dependent => :destroy
+ has_many :conferences
+
+ validates_presence_of :name
+
+end
Propchange: labs/consite/trunk/conferences/app/models/venue.rb
------------------------------------------------------------------------------
svn:eol-style = native
Added: labs/consite/trunk/conferences/app/views/admin/con/cfp/_presentation.html.erb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/views/admin/con/cfp/_presentation.html.erb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/views/admin/con/cfp/_presentation.html.erb (added)
+++ labs/consite/trunk/conferences/app/views/admin/con/cfp/_presentation.html.erb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,51 @@
+<% new_or_existing = presentation.new_record? ? 'new' : 'existing' %>
+<% prefix = "submission[#{new_or_existing}_presentation_attributes][]" %>
+<% fields_for prefix, presentation do | form | -%>
+
+ <p class="title">
+ <label>Presentation Name</label>
+ <%= form.text_field :name, :class => 'textbox' %>
+ </p>
+ <p> </p>
+
+ <div id="tab-control">
+ <div id="tabs" class="tab">
+ <div id="tab-toolbar"><strong><em>250 Words, Plain Text Only</em></strong></div>
+ <label class="tab here">Abstract</label>
+ </div></div>
+
+ <div id="pages" class="pages">
+ <div class="page"><div class="part">
+
+ <div><%= form.text_area :description, :class => 'textarea', :style => 'width:100%;' %></div>
+ </div></div>
+ </div>
+
+ <p> </p>
+
+ <table style="cellspacing:10px;">
+ <tr>
+ <td><label>Type</label></td>
+ <td><%= form.select :type_id, PresentationType.find(:all).collect {|p| [ p.name, p.id ] } %></td>
+ </tr>
+ <tr>
+ <td><label>Duration</label></td>
+ <td><%= form.select :duration, [['60 minutes',60],['3 hours',180],['6 hours',180],['12 hours',180]] %></td>
+ </tr>
+ <% unless presentation.new_record? %>
+ <tr>
+ <td><label>Slides</label></td>
+ <td><%= file_column_field "submission[#{new_or_existing}_presentation_attributes][#{presentation.new_record? ? '' : presentation.id}]", "materials" %>
+ <% if presentation.materials %>
+ Current: <%= link_to presentation.materials.split('/').last, url_for_file_column(presentation, "materials", :absolute => "true") %>
+ <% end %>
+ <em>(Optional)</em></td>
+ </tr>
+ <% end %>
+ </table>
+
+ <p> </p>
+
+ <%= form.hidden_field :id %>
+ <%= form.hidden_field :presenter_id %>
+<% end -%>
Added: labs/consite/trunk/conferences/app/views/admin/con/cfp/_submission.html.erb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/views/admin/con/cfp/_submission.html.erb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/views/admin/con/cfp/_submission.html.erb (added)
+++ labs/consite/trunk/conferences/app/views/admin/con/cfp/_submission.html.erb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,25 @@
+<div class="form-area">
+ <% form_for(@submission, :url => {:action => action}, :html => {:multipart => true}) do |f| %>
+ <%= render :partial => 'presentation', :object => @submission.presentation %>
+
+
+ <div id="tab-control">
+ <div id="tabs" class="tab">
+ <div id="tab-toolbar"><strong><em>Special Needs/Equipment, Availability, etc.</em></strong></div>
+ <label class="tab here">Additional Comments</label>
+ </div></div>
+
+ <div id="pages" class="pages">
+ <div class="page"><div class="part">
+ <div><%= f.text_area :comments, :class => 'textarea', :style => 'width:100%;' %></div>
+ </div></div>
+ </div>
+
+ <div>
+ <br/><br/>
+ <%= f.hidden_field :conference_id %>
+ <%= f.hidden_field :id %>
+ <%= f.submit "Submit Presentation" %> <%= link_to "Cancel", :action => 'index' %>
+ </div>
+ <% end %>
+</div>
Added: labs/consite/trunk/conferences/app/views/admin/con/cfp/edit.html.erb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/views/admin/con/cfp/edit.html.erb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/views/admin/con/cfp/edit.html.erb (added)
+++ labs/consite/trunk/conferences/app/views/admin/con/cfp/edit.html.erb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,3 @@
+<h1>Edit Submission</h1>
+<%= render :partial => 'submission', :locals => {:action => 'update'} %>
+
Added: labs/consite/trunk/conferences/app/views/admin/con/cfp/index.html.erb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/views/admin/con/cfp/index.html.erb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/views/admin/con/cfp/index.html.erb (added)
+++ labs/consite/trunk/conferences/app/views/admin/con/cfp/index.html.erb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,42 @@
+
+ <h1>Conference Presentation Submissions</h1>
+
+<% @submissions_per_conference.each do | c | %>
+<%
+ conference = c[0]
+ submissions = c[1]
+%>
+
+ <h3><%= conference.name %> [<%= conference.start_date.to_formatted_s(:rfc822) %>]</h3>
+ <table class='index'>
+ <thead>
+ <th>Submission Name</th>
+ <th>Accepted</th>
+ <th>Scheduled</th>
+ </thead>
+ <% submissions.each do |submission| %>
+
+ <tr class='level-0 no-children node'>
+ <td class='page'><span class='title'>
+ <%= link_to submission.presentation.name, :action => 'edit', :id => submission.id %>
+ </span></td>
+ <td><%= submission.accepted ? 'Yes' : 'No' %></td>
+ <td>
+ <% submission.scheduled_sessions.each do | ss | %>
+ <%= ss.track.date.to_formatted_s(:short) %> <%= ss.start_time_local.to_formatted_s(:time) %>
+ <% end %>
+ </td>
+ </tr>
+
+ <% end %>
+ <% if conference.cfp_open %>
+ <tr class='level-0 no-children node'>
+ <Td class='page'><span class='title'>
+ <%= link_to "Submit new presentation", :action => 'new', :cid => conference.id %>
+ </span></td>
+ <td></td><td></td>
+ </tr>
+ <% end %>
+ </table>
+
+<% end %>
Added: labs/consite/trunk/conferences/app/views/admin/con/cfp/new.html.erb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/views/admin/con/cfp/new.html.erb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/views/admin/con/cfp/new.html.erb (added)
+++ labs/consite/trunk/conferences/app/views/admin/con/cfp/new.html.erb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,19 @@
+<% if @presentations.size > 0 %>
+<h1>Previous Submissions</h1>
+<div class="form-area">
+<p>
+You may resubmit a previous presentation to the conference.
+</p>
+<% form_for :submission, :url => {:action => 'create'} do |f| %>
+ <%= f.error_messages %>
+ <%= f.select "presentation_id" ,@presentations.collect {|p| [ p.name, p.id ] } %>
+ <%= f.hidden_field :conference_id %><br/><br/>
+ <%= f.submit "Submit presentation"%>
+<% end %>
+</div>
+<% end %>
+<br/><br/>
+
+<h1>New Submission</h1>
+<%= render :partial => 'submission', :locals => {:action => 'create'} %>
+
Added: labs/consite/trunk/conferences/app/views/admin/con/conference_roles/compose.html.haml
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/views/admin/con/conference_roles/compose.html.haml?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/views/admin/con/conference_roles/compose.html.haml (added)
+++ labs/consite/trunk/conferences/app/views/admin/con/conference_roles/compose.html.haml Fri Mar 27 10:32:54 2009
@@ -0,0 +1,33 @@
+- form_for(@email,:url => {:controller => 'admin/con/conference_roles', :action => 'email'}) do |f|
+
+ %div{:class => 'form-area'}
+ %h2 Compose Email
+
+ %p{:class => 'title'}
+ %label To
+ = select 'email', 'recipient', @email.recipients.collect {|r| [r,r]}
+
+ %br
+
+ %p{:class => 'title'}
+ %label Subject
+ = f.text_field 'subject', :class=> 'textbox'
+
+ %br
+
+ #tab-control
+ #tabs{:class=>'tabs'}
+ %a{:href=>'#', :class=>'tab here'}
+ %span Body
+ #pages{:class=>'pages'}
+ #page-1{:class=>'page'}
+ #part-1{:class=>'part'}
+ %div
+ = f.text_area 'body', :style => 'width:100%;', :class=>'textarea'
+
+
+ %p{:class=>'buttons'}
+ = f.hidden_field 'conference_id'
+ %input{:type=>'button', :class=>'submit', :value=>'Send'}
+ or
+ %a{ :href=>"#"} Cancel
Added: labs/consite/trunk/conferences/app/views/admin/con/conference_roles/report.html.haml
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/views/admin/con/conference_roles/report.html.haml?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/views/admin/con/conference_roles/report.html.haml (added)
+++ labs/consite/trunk/conferences/app/views/admin/con/conference_roles/report.html.haml Fri Mar 27 10:32:54 2009
@@ -0,0 +1,18 @@
+%p#links
+ = link_to "« Back to list", :action => 'index', :con_id => params[:con_id]
+ = link_to "Download CSV", :format => 'csv', :con_id => params[:con_id]
+
+%table.report
+ %thead
+ %tr
+ %th Name
+ %th Uploaded Photo
+ %th Agreement Form Received
+ %th Uploaded Materials
+ %tbody
+ - @conference_roles.each_with_index do |role, index|
+ %tr{:class => index % 2 == 0 ? 'even': 'odd'}[role]
+ %td.name= h role.to_label
+ %td.photo= image_tag 'icons/tick.png' if role.presenter && role.presenter.photo?
+ %td.agreement= image_tag 'icons/tick.png' if role.event.respond_to?(:submission) && role.event.submission.agreement_form_received?
+ %td.materials= image_tag 'icons/tick.png' if role.event.respond_to?(:submission) && role.event.submission.presentation.materials?
\ No newline at end of file
Added: labs/consite/trunk/conferences/app/views/admin/con/dashboard/help.html.erb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/views/admin/con/dashboard/help.html.erb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/views/admin/con/dashboard/help.html.erb (added)
+++ labs/consite/trunk/conferences/app/views/admin/con/dashboard/help.html.erb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,37 @@
+<hr/>
+<h1>Help</h1>
+
+<h2>Terminology</h2>
+
+<img src="/images/conferences/help_model.png" alt="Simple Model Diagram"/>
+
+<p>
+ <em>Conferences</em> are held at a <em>venue</em> which has one or
+ more <em>locations.</em> A conference may have one or
+ more <em>tracks</em> which take place on a single conference day at
+ a venue location.
+</p>
+<p>
+ A <em>person</em> can create one or more <em>presentations</em>.
+ Presentations are then <em>submitted</em> to a conference, creating
+ a <em>presentation submission</em> (via the CFP process). A
+ presentation can be submitted to more than one conference, but each
+ submission is recorded seperately. A presentation can then
+ be <em>scheduled</em> by assigning a start and end time during a
+ specified conference track. Presentation types are matched to
+ conference <em>capacities</em>, resulting in a
+ person's <em>role</em> at a given conference. That is, when one
+ schedules a session at a conference, the session presenter becomes a
+ conference <code>speaker</code>. Likewise, scheduling a training
+ results in the presenter becoming a <code>trainer</code>. <em>Panel
+ members</em> can be added to any submission, thus allowing more than
+ one presenter to be associated with a given presentation.
+</p>
+<p>
+ In addition to scheduled sessions, conferences can
+ have <em>activities</em> which are more free-form events that may or
+ may not have a person or track associated with them. <em>NOTE:<em>
+ Activities which do not have an associated track are considered to
+ run across <em>all</em> tracks at that given time slot.
+</p>
+
Added: labs/consite/trunk/conferences/app/views/admin/con/dashboard/index.html.erb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/views/admin/con/dashboard/index.html.erb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/views/admin/con/dashboard/index.html.erb (added)
+++ labs/consite/trunk/conferences/app/views/admin/con/dashboard/index.html.erb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,130 @@
+
+<%
+ if @current_conference
+ con_id = @current_conference.id
+ table_class = " "
+ else
+ con_id = -1
+ table_class = "disabled"
+ end
+%>
+
+<style>
+ .disabled {
+ color:#cccccc;
+ }
+ .disabled a {
+ color:#cccccc;
+ }
+</style>
+
+
+<table class="index <%= table_class %>">
+ <thead>
+ <tr>
+ <th>Manage</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+ <tr class="level-0 no-children node">
+ <td class="page"><%= link_to "Conference Details", :controller => 'admin/con/conferences',
+ :action => 'edit', :_method => 'get', :con_id => con_id %></td>
+ <td class="">Edit conference details such as dates, venue and short description.</td>
+ </tr>
+
+ <tr class="level-0 no-children node">
+ <td class="page"><%= link_to "Tracks", :controller => 'admin/con/tracks', :con_id => @current_conference.id %></td>
+ <td class="">Define conference tracks. Tracks have a date and a location at the venue.</td>
+ </tr>
+
+
+ <tr class="level-0 no-children node">
+ <td class="page"><%= link_to "Submissions", :controller => 'admin/con/submissions', :con_id => @current_conference.id %></td>
+ <td class="">Review all presentation submissions for this conference.</td>
+ </tr>
+
+<!-- <tr class="level-0 no-children node">
+ <td class="page"><%= link_to "Schedule", :controller => 'admin/con/scheduled_sessions', :con_id => @current_conference.id %></td>
+ <td class="">Manage the scheduled conference sessions.</td>
+ </tr>
+-->
+
+ <tr class="level-0 no-children node">
+ <td class="page"><%= link_to "Activities", :controller => 'admin/con/activities', :con_id => @current_conference.id %></td>
+ <td class="">Schedule special activities (breaks, BoFs, keynotes...).</td>
+ </tr>
+
+ <tr class="level-0 no-children node">
+ <td class="page"><%= link_to "Speakers", :controller => 'admin/con/conference_roles', :con_id => con_id %></td>
+ <td class="">Manage speakers for this conference.</td>
+ </tr>
+
+ <tr class="level-0 no-children node">
+ <td class="page"><%= link_to "Sponsors", :controller => 'admin/con/sponsors', :con_id => con_id %></td>
+ <td class="">Manage conference sponsor list.</td>
+ </tr>
+
+ <tr class="level-0 no-children node">
+ <td class="page"><%= link_to "Help", :action => 'help', :con_id => con_id %></td>
+ <td class="">Instructions.</td>
+ </tr>
+
+</table>
+
+
+
+
+<h4 style="padding-top:40px;">Global Configuration</h4>
+
+<table class="index">
+ <thead>
+ <tr>
+ <th>Manage</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+ <tr class="level-0 no-children node">
+ <td class="page"><%= link_to "Venues", :controller => 'admin/con/venues' %></td>
+ <td class="">Edit venue addresses and room names.</td>
+ </tr>
+
+ <tr class="level-0 no-children node">
+ <td class="page"><%= link_to "Presentation Types", :controller => 'admin/con/presentation_types' %></td>
+ <td class="">Define the types of sessions for any conference.</td>
+ </tr>
+
+ <tr class="level-0 no-children node">
+ <td class="page"><%= link_to "Sponsor Types", :controller => 'admin/con/sponsor_types' %></td>
+ <td class="">Define the type of sponsors for any conference</td>
+ </tr>
+
+ <tr class="level-0 no-children node">
+ <td class="page"><%= link_to "Sponsor Levels", :controller => 'admin/con/sponsor_levels' %></td>
+ <td class="">Define the sponsor classes (i.e.- ranks) for any conference</td>
+ </tr>
+
+ <tr class="level-0 no-children node">
+ <td class="page"><%= link_to "All User Accounts", :controller => 'admin/con/users'%></td>
+ <td class="">Browse and manage all user accounts and speaker information for all conferences.</td>
+ </tr>
+
+ <tr class="level-0 no-children node">
+ <td class="page"><%= link_to "All Organizations", :controller => 'admin/con/organizations'%></td>
+ <td class="">Edit all sponsorship organizations.</td>
+ </tr>
+
+ <tr class="level-0 no-children node">
+ <td class="page"><%= link_to "All Presentations", :controller => 'admin/con/presentations'%></td>
+ <td class="">Browse all presentations for any conference.</td>
+ </tr>
+
+ <tr class="level-0 no-children node">
+ <td class="page"><%= link_to "All Conferences", :controller => 'admin/con/conferences'%></td>
+ <td class="">Browse all conferences.</td>
+ </tr>
+
+</table>
+
+
+
+
Added: labs/consite/trunk/conferences/app/views/admin/con/schedule/index.html.erb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/views/admin/con/schedule/index.html.erb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/views/admin/con/schedule/index.html.erb (added)
+++ labs/consite/trunk/conferences/app/views/admin/con/schedule/index.html.erb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,32 @@
+
+<h2>Schedule Management</h2>
+
+<table class="index">
+ <thead>
+ <tr>
+ <th>Manage</th>
+ <th>Description</th>
+ </tr>
+ </thead>
+
+ <tr class="level-0 no-children node">
+ <td class="page"><%= link_to "Tracks", :controller => 'admin/con/tracks', :con_id => @current_conference.id %></td>
+ <td class="">Define conference tracks. Tracks have a date and a location at the venue.</td>
+ </tr>
+
+
+ <tr class="level-0 no-children node">
+ <td class="page"><%= link_to "Submitted Presentations", :controller => 'admin/con/submissions', :con_id => @current_conference.id %></td>
+ <td class="">Review all presentation submissions for this conference.</td>
+ </tr>
+
+ <tr class="level-0 no-children node">
+ <td class="page"><%= link_to "Scheduled Sessions", :controller => 'admin/con/scheduled_sessions', :con_id => @current_conference.id %></td>
+ <td class="">Manage the scheduled conference sessions.</td>
+ </tr>
+
+</table>
+
+
+
+
Added: labs/consite/trunk/conferences/app/views/admin/con/submissions/report.html.haml
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/views/admin/con/submissions/report.html.haml?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/views/admin/con/submissions/report.html.haml (added)
+++ labs/consite/trunk/conferences/app/views/admin/con/submissions/report.html.haml Fri Mar 27 10:32:54 2009
@@ -0,0 +1,21 @@
+%p#links
+ = link_to "« Back to list", :action => 'index', :con_id => params[:con_id]
+ = link_to "Download CSV", :format => 'csv', :con_id => params[:con_id]
+
+- @submissions.each do |submission|
+ %div.page[submission]
+ %h1
+ %strong= submission.presentation.name
+ %em
+ = surround('[',']') do
+ = submission.conference.name
+ %h2== by #{submission.presenter}
+ %p
+ = submission.presentation.type.name
+ —
+ = submission.presentation.duration
+ minutes
+ %h3 Description
+ = submission.presentation.description
+ %h3 Presenter Bio
+ = submission.presentation.presenter.notes
\ No newline at end of file
Added: labs/consite/trunk/conferences/app/views/layouts/cfp.html.haml
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/views/layouts/cfp.html.haml?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/views/layouts/cfp.html.haml (added)
+++ labs/consite/trunk/conferences/app/views/layouts/cfp.html.haml Fri Mar 27 10:32:54 2009
@@ -0,0 +1,57 @@
+!!!
+%html{html_attrs}
+ %head
+ %meta{"http-equiv"=>"Content-type", :content=>"text/html; charset=utf-8"}/
+ %title= @page_title || default_page_title
+ - @stylesheets.uniq.each do |stylesheet|
+ = stylesheet_link_tag stylesheet
+ - @javascripts.uniq.each do |javascript|
+ = javascript_include_tag javascript
+ = javascript_include_tag "extensions/conferences/tiny_mce_for_active_scaffold"
+ = active_scaffold_includes
+ /[if lt IE 7]
+ %script{:type=>"text/javascript", :src=>"/admin/javascripts/pngfix.js"}
+ - if @content_for_page_scripts
+ = javascript_tag @content_for_page_scripts
+ - if @content_for_page_css
+ %style{:type => "text/css"}= @content_for_page_css
+ = stylesheet_link_tag "extensions/conferences"
+ %body
+ #page
+ #header
+ #site-title= link_to_unless_current title, admin_url
+ #site-subtitle= subtitle
+ - if logged_in?
+ #navigation= links_for_navigation
+ %hr{:class=>"hidden"}/
+ #main
+ - if flash[:notice]
+ #notice
+ %p= flash[:notice]
+ - if flash[:error]
+ #error
+ %p= flash[:error]
+ #content
+ = yield
+ %hr{:class=>"hidden"}/
+ #footer
+ %p
+ This site was made with Ruby and is powered by
+ %a{:href=>"http://radiantcms.org"} Radiant CMS
+ version
+ = Radiant.loaded_via_gem? ? "#{Radiant::Version} (gem)." : "#{Radiant::Version}."
+ %p#site-links
+ - if logged_in?
+ - if admin?
+ = nav_link_to 'Users', user_index_url
+ %span.separator=" | "
+ = nav_link_to 'Extensions', extension_index_url
+ - else
+ = nav_link_to 'Preferences', user_preferences_url
+ %span.separator=" | "
+ = nav_link_to 'Log Out', logout_url
+ %span.separator=" | "
+ = link_to image('view-site.gif', :alt => "View Site", :title => ''), homepage_url
+ - if @content_for_popups
+ #popups
+ = yield :popups
Added: labs/consite/trunk/conferences/app/views/layouts/conferences.html.haml
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/views/layouts/conferences.html.haml?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/views/layouts/conferences.html.haml (added)
+++ labs/consite/trunk/conferences/app/views/layouts/conferences.html.haml Fri Mar 27 10:32:54 2009
@@ -0,0 +1,85 @@
+!!!
+%html{html_attrs}
+ %head
+ %meta{"http-equiv"=>"Content-type", :content=>"text/html; charset=utf-8"}/
+ %title= @page_title || default_page_title
+ - @stylesheets.uniq.each do |stylesheet|
+ = stylesheet_link_tag stylesheet
+ = javascript_include_tag "extensions/tiny_mce/tiny_mce"
+ = javascript_include_tag "extensions/tiny_mce/tiny_mce_settings"
+ - @javascripts.uniq.each do |javascript|
+ = javascript_include_tag javascript
+ = javascript_include_tag "application"
+ = active_scaffold_includes
+ /[if lt IE 7]
+ %script{:type=>"text/javascript", :src=>"/admin/javascripts/pngfix.js"}
+ - if @content_for_page_scripts
+ = javascript_tag @content_for_page_scripts
+ - if @content_for_page_css
+ %style{:type => "text/css"}= @content_for_page_css
+ = stylesheet_link_tag "extensions/conferences"
+ %body
+ #page
+ #header
+ #site-title= link_to_unless_current title, admin_url
+ #site-subtitle= subtitle
+ - if logged_in?
+ #navigation= links_for_navigation
+ %hr{:class=>"hidden"}/
+ #main
+ - if flash[:notice]
+ #notice
+ %p= flash[:notice]
+ - if flash[:error]
+ #error
+ %p= flash[:error]
+ #content
+ #conference_header
+ #conference_navigation{:style=>"float:right; padding:0px; margin-top:-10px;"}
+ - if @controller.controller_name =~ /dashboard/
+ %p
+ = select "current_conference", "id", @conferences.collect {|c| [ c.name, c.id ] }, {}, { :onchange => "document.location = '/admin/con/dashboard/index/'+$('current_conference_id').value" }
+ |
+ = link_to(image_tag('conferences/calendar_plus.png', :alt => 'Add a new conference'), :controller => 'admin/con/conferences', :action => 'new', :_method => 'get')
+ - else
+ %p
+ = link_to image_tag('conferences/arrow_180.png', :alt => 'Return to dashboard'), :controller => 'admin/con/dashboard', :action => 'index', :id => @current_conference.id
+ - if @controller.controller_name =~ /conference_roles|submissions/
+ = link_to image_tag('conferences/printer.png'), :action => 'report', :con_id => params[:con_id]
+ = link_to image_tag('conferences/report.png'), :action => 'report', :format => 'csv', :con_id => params[:con_id]
+ - if @controller.controller_name =~ /conference_roles/
+ = link_to image_tag('conferences/email.png'), :action => 'compose', :con_id => params[:con_id]
+ - if @current_conference
+ %h1= @current_conference.name
+ %h4
+ = @current_conference.start_date.to_date.to_formatted_s(:rfc822)
+ \-
+ = @current_conference.end_date.to_date.to_formatted_s(:rfc822)
+ @
+ = @current_conference.venue.name
+ - else
+ %h1 Conference Management
+ %h4 No conferences configured. Create a new conference.
+ = yield
+ %hr{:class=>"hidden"}/
+ #footer
+ %p
+ This site was made with Ruby and is powered by
+ %a{:href=>"http://radiantcms.org"} Radiant CMS
+ version
+ = Radiant.loaded_via_gem? ? "#{Radiant::Version} (gem)." : "#{Radiant::Version}."
+ %p#site-links
+ - if logged_in?
+ - if admin?
+ = nav_link_to 'Users', user_index_url
+ %span.separator=" | "
+ = nav_link_to 'Extensions', extension_index_url
+ - else
+ = nav_link_to 'Preferences', user_preferences_url
+ %span.separator=" | "
+ = nav_link_to 'Log Out', logout_url
+ %span.separator=" | "
+ = link_to image('view-site.gif', :alt => "View Site", :title => ''), root_url
+ - if @content_for_popups
+ #popups
+ = yield :popups
Added: labs/consite/trunk/conferences/app/views/layouts/configuration.html.haml
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/views/layouts/configuration.html.haml?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/views/layouts/configuration.html.haml (added)
+++ labs/consite/trunk/conferences/app/views/layouts/configuration.html.haml Fri Mar 27 10:32:54 2009
@@ -0,0 +1,62 @@
+!!!
+%html{html_attrs}
+ %head
+ %meta{"http-equiv"=>"Content-type", :content=>"text/html; charset=utf-8"}/
+ %title= @page_title || default_page_title
+ - @stylesheets.uniq.each do |stylesheet|
+ = stylesheet_link_tag stylesheet
+ = javascript_include_tag "extensions/tiny_mce/tiny_mce"
+ - @javascripts.uniq.each do |javascript|
+ = javascript_include_tag javascript
+ = javascript_include_tag "extensions/conferences/tiny_mce_for_active_scaffold"
+ = active_scaffold_includes
+ /[if lt IE 7]
+ %script{:type=>"text/javascript", :src=>"/admin/javascripts/pngfix.js"}
+ - if @content_for_page_scripts
+ = javascript_tag @content_for_page_scripts
+ - if @content_for_page_css
+ %style{:type => "text/css"}= @content_for_page_css
+ = stylesheet_link_tag "extensions/conferences"
+ %body
+ #page
+ #header
+ #site-title= link_to_unless_current title, admin_url
+ #site-subtitle= subtitle
+ - if logged_in?
+ #navigation= links_for_navigation
+ %hr{:class=>"hidden"}/
+ #main
+ - if flash[:notice]
+ #notice
+ %p= flash[:notice]
+ - if flash[:error]
+ #error
+ %p= flash[:error]
+ #content
+ #conference_header
+ #conference_navigation{:style=>"float:right; padding:0px; margin-top:-10px;"}
+ = link_to image_tag('conferences/arrow_180.png', :alt => 'Return to dashboard'), :controller => 'admin/con/dashboard'
+ %h1 Configuration
+ = yield
+ %hr{:class=>"hidden"}/
+ #footer
+ %p
+ This site was made with Ruby and is powered by
+ %a{:href=>"http://radiantcms.org"} Radiant CMS
+ version
+ = Radiant.loaded_via_gem? ? "#{Radiant::Version} (gem)." : "#{Radiant::Version}."
+ %p#site-links
+ - if logged_in?
+ - if admin?
+ = nav_link_to 'Users', user_index_url
+ %span.separator=" | "
+ = nav_link_to 'Extensions', extension_index_url
+ - else
+ = nav_link_to 'Preferences', user_preferences_url
+ %span.separator=" | "
+ = nav_link_to 'Log Out', logout_url
+ %span.separator=" | "
+ = link_to image('view-site.gif', :alt => "View Site", :title => ''), root_url
+ - if @content_for_popups
+ #popups
+ = yield :popups
Added: labs/consite/trunk/conferences/app/views/layouts/report.html.haml
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/views/layouts/report.html.haml?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/views/layouts/report.html.haml (added)
+++ labs/consite/trunk/conferences/app/views/layouts/report.html.haml Fri Mar 27 10:32:54 2009
@@ -0,0 +1,11 @@
+!!!
+%html{html_attrs}
+ %head
+ %title
+ Report:
+ = report_title
+ = stylesheet_link_tag 'report'
+ = stylesheet_link_tag 'report-print', :media => 'print'
+ = javascript_include_tag 'prototype'
+ %body
+ = yield
\ No newline at end of file
Added: labs/consite/trunk/conferences/app/views/submission_notifier/notification.erb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/app/views/submission_notifier/notification.erb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/app/views/submission_notifier/notification.erb (added)
+++ labs/consite/trunk/conferences/app/views/submission_notifier/notification.erb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,5 @@
+The following submission was received at <%= @submission.created_at.to_s(:rfc822) %>:
+
+Conference: <%= @submission.conference.name %>
+Presenter: <%= @submission.presenter %>
+Title: <%= @submission.name %>
\ No newline at end of file
Added: labs/consite/trunk/conferences/conferences_extension.rb
URL: http://svn.apache.org/viewvc/labs/consite/trunk/conferences/conferences_extension.rb?rev=759091&view=auto
==============================================================================
--- labs/consite/trunk/conferences/conferences_extension.rb (added)
+++ labs/consite/trunk/conferences/conferences_extension.rb Fri Mar 27 10:32:54 2009
@@ -0,0 +1,94 @@
+# Uncomment this if you reference any of your controllers in activate
+# require_dependency 'application'
+
+require File.dirname(__FILE__) + "/lib/acts_as_cache_clearing"
+
+class ConferencesExtension < Radiant::Extension
+ version "1.0"
+ description "Manage conference events, speakers, presentations and tracks."
+ url "http://cubiclemuses.com/cm"
+
+ define_routes do |map|
+ map.connect 'admin/con', :controller => 'admin/con/dashboard'
+ map.connect 'admin/con/conferences/:action', :controller => 'admin/con/conferences'
+ map.connect 'admin/con/venues/:action', :controller => 'admin/con/venues'
+ map.connect 'admin/con/locations/:action', :controller => 'admin/con/locations'
+ map.connect 'admin/con/organizations/:action', :controller => 'admin/con/organizations'
+ map.connect 'admin/con/sponsor_types/:action', :controller => 'admin/con/sponsor_types'
+ map.connect 'admin/con/sponsor_levels/:action', :controller => 'admin/con/sponsor_levels'
+ map.connect 'admin/con/presentation_types/:action', :controller => 'admin/con/presentation_types'
+ map.connect 'admin/con/session_types/:action', :controller => 'admin/con/session_types'
+ map.connect 'admin/con/users/:action', :controller => 'admin/con/users'
+ map.connect 'admin/con/cfp/:action', :controller => 'admin/con/cfp'
+ map.connect 'admin/con/presentations/:action', :controller => 'admin/con/presentations'
+
+ map.connect 'admin/con/:con_id/dashboard/:action/:id', :controller => 'admin/con/dashboard'
+ map.connect 'admin/con/:con_id/activities/:action', :controller => 'admin/con/activities'
+ map.connect 'admin/con/:con_id/conference_roles/:action', :controller => 'admin/con/conference_roles'
+ map.connect 'admin/con/:con_id/conference_roles/:action.:format', :controller => 'admin/con/conference_roles'
+ map.connect 'admin/con/:con_id/panel_members/:action', :controller => 'admin/con/panel_members'
+ map.connect 'admin/con/:con_id/schedule/:action', :controller => 'admin/con/schedule'
+ map.connect 'admin/con/:con_id/scheduled_sessions/:action', :controller => 'admin/con/scheduled_sessions'
+ map.connect 'admin/con/:con_id/speakers/:action', :controller => 'admin/con/speakers'
+ map.connect 'admin/con/:con_id/sponsors/:action', :controller => 'admin/con/sponsors'
+ map.connect 'admin/con/:con_id/submissions/:action', :controller => 'admin/con/submissions'
+ map.connect 'admin/con/:con_id/submissions/:action.:format', :controller => 'admin/con/submissions'
+ map.connect 'admin/con/:con_id/tracks/:action', :controller => 'admin/con/tracks'
+ end
+
+ def activate
+
+ admin.tabs.add "Conferences", "/admin/con", :before => "Pages", :visibility => [:developer, :admin]
+ admin.tabs.add "Submissions", "/admin/con/cfp", :before => "Conferences", :visibility => [:all]
+
+ ActiveRecord::Base.send(:include, Con::CacheClearing)
+ Page.send :include, ConferenceTags
+
+ User.class_eval {
+
+ acts_as_cache_clearing
+
+ has_many :conference_roles, :foreign_key => 'presenter_id'
+ has_many :conferences, :through => :conferences_roles, :foreign_key => 'presenter_id'
+ has_many :presentations, :foreign_key => 'presenter_id'
+ has_many :panel_members
+ has_many :submissions, :through => :presentations
+ has_many :activities
+
+ def scheduled_sessions(conference=nil, include_panels=true)
+ sessions = [ ]
+ conference_roles.each do |role|
+ inc = true
+ if conference
+ inc = role.conference == conference
+ end
+
+ case role.session
+ when ScheduledSession then sessions << role.session if inc
+ when PanelMember
+ if include_panels and inc
+ sessions << role.session.submission.scheduled_session
+ end
+ end
+ end
+ return sessions
+ end
+
+ }
+
+
+ SpeakersPage
+ SpeakerPage
+ SponsorsPage
+ SponsorTypePage
+ SchedulePage
+ ScheduleDayPage
+ SessionsPage
+ SessionPage
+ end
+
+ def deactivate
+ admin.tabs.remove "Conferences"
+ end
+
+end
Propchange: labs/consite/trunk/conferences/conferences_extension.rb
------------------------------------------------------------------------------
svn:eol-style = native
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org