update lightboxupload javascript to work with new add-note partial
[oweals/karmaworld.git] / karmaworld / urls.py
1 #!/usr/bin/env python
2 # -*- coding:utf8 -*-
3 # Copyright (C) 2012  FinalsClub Foundation
4
5 from django.contrib import admin
6 from django.conf.urls.defaults import patterns, include, url
7 from django.views.generic import ListView
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 CourseSaveView
15 from karmaworld.apps.courses.views import CourseAjaxList
16 from karmaworld.apps.courses.views import school_list
17 from karmaworld.apps.notes.views import NoteView
18 from karmaworld.apps.notes.views import raw_file
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+)$', raw_file, 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     url(r'^course/post/$', CourseSaveView.as_view(), name='api_course_post'),
56     url(r'^course/list/$', CourseAjaxList.as_view(), name='api_course_list'),
57
58     # ---- end JSON views ----#
59
60     url(r'^$', ListView.as_view(model=Course), name='home'),
61 )