Source

Ochs / staff / views.py

import itertools

from django.http import HttpResponse, Http404
from django.template import RequestContext
from django.shortcuts import render_to_response, get_object_or_404

from staff.models import Profile
from news.models import Byline

def create_class(request):
    pass

def edit_profile(request):
    pass

def profile(request, username):
    user = get_object_or_404(Profile, username=username)
    bylines = Byline.objects.filter(user=user).order_by('position__position')
    groups = []
    for k, g in itertools.groupby(bylines, lambda x: x.position.get_position_display):
        groups.append((k(), list(g)))
    context = dict(
        profile=user,
        groups=groups
    )
    return render_to_response('staff/profile.html', context,
        context_instance=RequestContext(request))