"""Root Site URL Processing
"""
from django.conf import settings
from pycon import core
from django.views.generic.simple import direct_to_template, redirect_to
from django.conf.urls.defaults import *
from pycon.usermgr.views import login, logout
from pycon.restructuredtext.views import rststatic, rstpage, rstrecent, rstindex
from pycon.cachemgr.views import cache_list

urlpatterns = patterns('',
    ## redirect the root to /root/about/ to make the menu behave like we want.
    ('^%s$'%settings.ROOT_URL[1:], redirect_to, {'url': settings.ROOT_URL + 'about/'}),
    ## redirect for historic reasons
    ('^%sconference/openspace/$'%settings.ROOT_URL[1:], redirect_to, {'url': settings.ROOT_URL + 'openspace/'}),
    ('^%ssurvey/$'%settings.ROOT_URL[1:], redirect_to, {'url': 'http://www.surveymonkey.com/s.aspx?sm=4NXWNQSZuwq_2fr4aLcnu15Q_3d_3d'}),
    ('^%stutorialsurvey/$'%settings.ROOT_URL[1:], redirect_to, {'url': 'http://www.surveymonkey.com/s.aspx?sm=_2fxG94I6P_2bPpfGQmwmHKSuw_3d_3d'}),

# Account Management
    ('^%s?$'%settings.LOGIN_URL[1:],   login),
    ('^%s?$'%settings.LOGOUT_URL[1:],  logout,
        {'template_name':'registration/logged_out2.html'}),
    ('^%s'%settings.PROFILE_URL[1:],   include('pycon.usermgr.urls')),

## Site Applications
    ('^%sconference/proposals/'%settings.ROOT_URL[1:], include('pycon.propmgr.urls')),
    ('^%sconference/posters/'%settings.ROOT_URL[1:], include('pycon.poster.urls')),
    url('^%sconference/talks/'%settings.ROOT_URL[1:],     'pycon.propmgr.views.accepted_talks', name='accepted-talks'),
    ('^%ssurveys/'%settings.ROOT_URL[1:], include('pycon.survey.urls')),
    ('^%sconference/schedule/'%settings.ROOT_URL[1:],  include('pycon.schedule.urls')),
    #('^%sregistration/'%settings.ROOT_URL[1:],  include('pycon.registration.urls')),
#    ('^%sregistration/'%settings.ROOT_URL[1:],  include('pycon.attendeereg.urls')),
#    ('^%smailer/'%settings.ROOT_URL[1:],  include('pycon.mailer.urls')),
#    ('^%sbadges/'%settings.ROOT_URL[1:],  include('pycon.badges.urls')),
#    ('^%sjobboard/'%settings.ROOT_URL[1:],  include('jobboard.urls')),

# Django Admin:
    ('^%s' % settings.ADMIN_URL[1:],   include('django.contrib.admin.urls')),

# Cache Manager:
    ('^%ssite/cache/$'%settings.ROOT_URL[1:], cache_list),

# Open Space Wiki:
    ('^%sopenspace/recent/$'%settings.ROOT_URL[1:], rstrecent, {'login_type': 'anonymous',
                                                           'url': settings.ROOT_URL + 'openspace/'}),
    ('^%sopenspace/index/$'%settings.ROOT_URL[1:], rstindex, {'login_type': 'anonymous',
                                                           'url': settings.ROOT_URL + 'openspace/'}),
    ('^(?P<url>%sopenspace/.+/)$'%settings.ROOT_URL[1:], rstpage, {'login_type': 'anonymous',
                                                            'help_url': settings.ROOT_URL + 'openspace/instructions/'}),
# Sprints wiki pages:
    ('^%ssprints/projects/recent/$'%settings.ROOT_URL[1:], rstrecent, {'login_type': 'anonymous',
                                                           'url': settings.ROOT_URL + 'sprints/projects/'}),
    ('^%ssprints/projects/index/$'%settings.ROOT_URL[1:], rstindex, {'login_type': 'anonymous',
                                                           'url': settings.ROOT_URL + 'sprints/projects/'}),
    ('^(?P<url>%ssprints/projects/(.+/)?)$'%settings.ROOT_URL[1:], rstpage, {'login_type': 'authenticated',
                                                            'help_url': settings.ROOT_URL + 'sprints/signup/'}),

    ('^(?P<url>%ssprints/projects/(.+/)?)$'%settings.ROOT_URL[1:], rstpage, {'login_type': 'authenticated',
                                                            'help_url': settings.ROOT_URL + 'sprints/signup/'}),

# room sharing wiki page:
    ('^(?P<url>%sregistration/room_sharing/)$'%settings.ROOT_URL[1:], rstpage, {'login_type': 'anonymous',
                                                            'help_url': 'http://docutils.sourceforge.net/docs/user/rst/quickref.html'}),

# room volunteers wiki page:
    ('^(?P<url>%shelping/volunteers/)$'%settings.ROOT_URL[1:], rstpage, {'login_type': 'anonymous',
                                                            'help_url': 'http://docutils.sourceforge.net/docs/user/rst/quickref.html'}),
# room photos wiki page:
    ('^(?P<url>%shelping/photos/(.+/)?)$'%settings.ROOT_URL[1:], rstpage, {'login_type': 'authenticated',
                                                            'help_url': 'http://docutils.sourceforge.net/docs/user/rst/quickref.html'}),

# Catch all turning the rest of the site into a wiki (but requires staff access)
    ('^%sindex/$'%settings.ROOT_URL[1:], rstindex, {'login_type': 'staff',
                                                     'url': settings.ROOT_URL}),
    ('^%srecent/$'%settings.ROOT_URL[1:], rstrecent, {'login_type': 'staff',
                                                       'url': settings.ROOT_URL}),
    ('^%s.*$'%settings.ROOT_URL[1:], rstpage, {'login_type': 'staff',
                                               'help_url': settings.ROOT_URL + 'site/howto/'}),
)
