# can be made available on the User that are not part of the Django
# User model. Let's try this for a bit see how this works out.
-class AnonymousUserExtensionHack(object):
- def unmoderated_courses():
- return Course.objects.filter(moderated=False)
-
-for k,v in [(k,v) for k,v in AnonymousUserExtensionHack.__dict__.items() \
- if not k.startswith('_')]:
- setattr(AnonymousUser, k, v)
-
class UserExtensionHack(object):
def courses(self):
return Course.objects.filter(member__user=self.id)
urlpatterns = patterns('conifer.syrup.views',
(r'^$', 'welcome'),
(r'^course/$', 'my_courses'),
+ (r'^opencourse/$', 'open_courses'),
(r'^course/(?P<course_id>\d+)/$', 'course_detail'),
)
from django.http import HttpResponse, HttpResponseRedirect
+from django.core.paginator import Paginator
from django.shortcuts import get_object_or_404
from django.contrib.auth.decorators import login_required
from django.contrib.auth import authenticate, login, logout
def welcome(request):
return g.render('welcome.xhtml')
+def open_courses(request):
+ pgstart = request.GET.get('start')
+ if not pgstart:
+ pgstart = 1
+ paginator = Paginator(models.Course.objects.filter(moderated=False), 5)
+ return g.render('open_courses.xhtml', paginator=paginator, pgstart=pgstart)
@login_required
def my_courses(request):
<body>
<div style="float: right; margin: 0 24; background-color: #feb; padding: 24;">
<p><a href="/accounts/login/?next=/syrup/">Log in</a></p>
+ <p><a href="opencourse">Browse Open Courses</a></p>
<p><a href="/public/search">Search the Reserves</a></p>
</div>
<h1>News</h1>