3 # Copyright (C) 2012 FinalsClub Foundation
5 from django.contrib import admin
6 from django.conf.urls.defaults import patterns, include, url
7 from django.views.generic import ListView, DetailView
8 from django.views.generic.simple import direct_to_template
10 from karmaworld.apps.ajaxuploader.views import ajax_uploader
11 from karmaworld.apps.courses.models import Course
12 from karmaworld.apps.courses.views import CourseDetailView
13 from karmaworld.apps.notes.views import NoteDetailView, RawNoteDetailView, raw_file
15 # See: https://docs.djangoproject.com/en/dev/ref/contrib/admin/#hooking-adminsite-instances-into-your-urlconf
18 # See: https://docs.djangoproject.com/en/dev/topics/http/urls/
19 urlpatterns = patterns('',
20 # Admin panel and documentation:
21 url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
22 url(r'^admin/', include(admin.site.urls)),
24 url(r'^about/$', direct_to_template, { 'template': 'about.html' }, name='about'),
26 # the raw route must come before routes with a capture group after the
28 url(r'^raw/(?P<pk>\d+)$', raw_file, name='note_raw'),
29 url(r'^(?P<school_slug>[^/]+)/(?P<slug>[^/]+)$', \
30 CourseDetailView.as_view(), name='course_detail'),
32 url(r'^(?P<school_slug>[^/]+)/(?P<course_slug>[^/]+)/(?P<pk>[\d^/]+)$', \
33 NoteDetailView.as_view(), name='note_detail'),
34 # note file by note.slug
35 url(r'^(?P<school_slug>[^/]+)/(?P<course_slug>[^/]+)/(?P<slug>[^/]+)$', \
36 NoteDetailView.as_view(), name='note_detail'),
39 url(r'ajax-upload$', ajax_uploader, name='ajax_upload'),
41 url(r'^$', ListView.as_view(model=Course), name='home'),