adding a url for testing pdfs
[oweals/karmaworld.git] / karmaworld / urls.py
1 #!/usr/bin/env python
2 # -*- coding:utf8 -*-
3 # Copyright (C) 2012  FinalsClub Foundation
4 """ Controller for the KarmaNotes website """
5
6 from django.contrib import admin
7 from django.conf.urls.defaults import patterns, include, url
8 from django.views.generic.simple import direct_to_template
9
10 from karmaworld.apps.ajaxuploader.views import ajax_uploader
11 from karmaworld.apps.courses.models import Course
12 from karmaworld.apps.courses.views import AboutView
13 from karmaworld.apps.courses.views import CourseDetailView
14 from karmaworld.apps.courses.views import CourseListView
15 from karmaworld.apps.courses.views import school_list
16 from karmaworld.apps.notes.views import NoteView
17 from karmaworld.apps.notes.views import RawNoteDetailView
18 from karmaworld.apps.notes.views import PDFView
19
20 # See: https://docs.djangoproject.com/en/dev/ref/contrib/admin/#hooking-adminsite-instances-into-your-urlconf
21 admin.autodiscover()
22
23 # See: https://docs.djangoproject.com/en/dev/topics/http/urls/
24 urlpatterns = patterns('',
25     ## Administrative URLpatterns
26     # Admin panel and documentation:
27     url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
28     url(r'^admin/', include(admin.site.urls)),
29     # Grappelli django-admin improvment suite
30     url(r'^grappelli/', include('grappelli.urls')),
31
32     ## Single-serving page URLpatterns
33     url(r'^terms/$', direct_to_template, { 'template': 'terms.html' }, name='terms'),
34     url(r'^about/$', AboutView.as_view(), name='about'),
35
36     # VIEW for viewing a Note's gdrive generated html, used as iframe
37     url(r'^raw/(?P<pk>\d+)$', RawNoteDetailView.as_view(), name='note_raw'),
38
39     # VIEW for displaying a single Course
40     url(r'^(?P<school_slug>[^/]+)/(?P<slug>[-A-Za-z0-9_]+)$', \
41         CourseDetailView.as_view(), name='course_detail'),
42
43     # note file as id, for notes without titles yet
44     url(r'^(?P<school_slug>[^/]+)/(?P<course_slug>[^/]+)/(?P<pk>[\d^/]+)$', \
45         NoteView.as_view(), name='note_detail_pk'),
46     # note file by note.slug
47     url(r'^(?P<school_slug>[^/]+)/(?P<course_slug>[^/]+)/(?P<slug>[^/]+)$', \
48         NoteView.as_view(), name='note_detail'),
49
50     # ---- JSON views ----#
51     # uploading files
52     url(r'^ajax-upload$', ajax_uploader, name='ajax_upload'),
53     # return json list of schools
54     url(r'^school/list/$', school_list, name='json_school_list'),
55     # ---- end JSON views ----#
56
57     url(r'^pdftest$', PDFView.as_view(), name='pdf'),
58     url(r'^$', CourseListView.as_view(model=Course), name='home'),
59 )