Show tracks differently on home page.
[demoscenemusic.git] / data / views.py
index 1ca48df..bb3b52c 100644 (file)
@@ -1,12 +1,19 @@
 # encoding: utf-8
+from collections import defaultdict
 from django.shortcuts import render_to_response
 from django.http import HttpResponse
 
 from DemosceneMusic.data.models import Track
 
 def home(request):
-       tracks = Track.objects.all()
-       return render_to_response('templates/home.html', { 'tracks': tracks })
+       tracks = Track.objects.all().annotate().order_by('releases__party', 'trackartist__artist__name', 'name', 'remix')
+       partyCompoTracks = defaultdict(lambda: defaultdict(list))
+       for track in tracks:
+               for release in track.releases.all():
+                       partyCompoTracks[release.party][release.compo].append(track)
+       for party, compoTracks in partyCompoTracks.iteritems():
+               partyCompoTracks[party] = dict(compoTracks)
+       return render_to_response('templates/home.html', {'partyTracks': dict(partyCompoTracks)})
 
 def track(request, trackId):
        return HttpResponse('Track: %s' % trackId)