from django.conf.urls import patterns, include, url
from django.contrib.auth.views import logout
from django.conf import settings

from django.views.generic import RedirectView

import modules.core.views as core_views
import modules.members.checkviews as check_views
import modules.members.listingviews as listing_views
import modules.pages.views as page_views

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',

    url(r'^$', core_views.home, name='home'),

    #general website
    url(r'^mediacentre/',include('modules.mediacentre.urls')),
    url(r'^resources/',include('modules.resources.urls')),
    url(r'^contact-us/$','modules.contact.views.contact', name="contact"),

    url(r'^search/$', core_views.search, name="search"),
    url(r'^audience-search/$', core_views.audience_search, name="audience_search"),
    url(r'^sitemap/$', core_views.sitemap, name="sitemap"),
    url(r'^sitemap\.xml$', core_views.sitemap_xml, name="sitemap_xml"),

    url(r'^register/', include('modules.members.registrationurls')), 

    url(r'^meeting-booking/', include('modules.meeting_booking.urls')),
    url(r'^abstracts/', include('modules.abstracts.urls')),
    url(r'^elections/', include('modules.elections.urls')),
    url(r'^donate/', include('modules.donations.urls')),
    url(r'^exam-application/', include('modules.exam_application.urls')),
    url(r'^theory-exam/', include('modules.theory_exam.urls')),
    url(r'^jobs/', include('modules.jobs.urls')),

    url(r'^avs-search/$', listing_views.avs_search, name='avs_search'),

    #login and forgot pass
    url(r'^login/$',  core_views.login_view, name='login'),
    url(r'^logout/$', logout, {'template_name': 'public/login/logout.html'},name="logout"),

    url(r'^forgot-password/$', core_views.forgot_password, name='forgot_password'),
    url(r'^forgot-password/(?P<forgot_key>[-\w]+)/$', core_views.forgot_password_confirm, name='forgot_password_confirm'),

    url(r'^my-locker/',include('modules.members.accounturls')),

    #member check
    url(r'^check-members/(?P<key>[-\w]+)/$', check_views.check_members, name='check_members'),

    url(r'^member-required/$', core_views.member_required, name='member_required'),
    #url(r'^member-expired/$','modules.core.views.member_expired',name='member_expired'),
    #url(r'^disabled/$','modules.core.views.member_disabled',name='member_disabled'),
    #url(r'^not-approved/$','modules.core.views.member_notapproved',name='member_notapproved'),

    url(r'^dadmin/doc/', include('django.contrib.admindocs.urls')),
    url(r'^dadmin/', include(admin.site.urls)),

    url(r'^admin/', include('modules.core.adminurls')),

    url(r'^impersonate/', include('impersonate.urls')),

)

if settings.DEVELOPMENT:
    urlpatterns += patterns('',
        url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {
            'document_root': settings.MEDIA_ROOT
        }),
    )

urlpatterns += patterns('',
    #fallback to pages
    url(r'(?P<address>[-\w/]+)$', page_views.page, name='page'),
)

handler404 = 'modules.core.urldefaults.page_not_found'
handler500 = 'modules.core.urldefaults.server_error'
