28 |
28 |
29 def home(request): |
29 def home(request): |
30 |
30 |
31 # We force list() because if not, img_id_list is a valuelistqueryset and not a list of values. |
31 # We force list() because if not, img_id_list is a valuelistqueryset and not a list of values. |
32 # We separate image requests and make requests with select_related to optimize database hits. |
32 # We separate image requests and make requests with select_related to optimize database hits. |
33 img_id_list = list(Image.objects.values_list('id', flat=True).annotate(date_modif=Max('fragment__date_saved')).exclude(date_modif=None).order_by('-date_modif')[:12]) |
33 nb_display = 4 |
|
34 img_id_list = list(Image.objects.values_list('id', flat=True).annotate(date_modif=Max('fragment__date_saved')).exclude(date_modif=None).order_by('-date_modif')[:nb_display]) |
34 img_list = Image.objects.filter(id__in=img_id_list).select_related('info', 'metadata') |
35 img_list = Image.objects.filter(id__in=img_id_list).select_related('info', 'metadata') |
35 frg_list = Fragment.objects.all().order_by('-date_saved').select_related('image', 'image__info', 'image__metadata','author')[:12] |
36 frg_list = Fragment.objects.all().order_by('-date_saved').select_related('image', 'image__info', 'image__metadata','author')[:nb_display] |
36 |
37 |
37 return render_to_response("egonomy_home.html", |
38 return render_to_response("egonomy_home.html", |
38 {'img_list':img_list, 'fragment_list':frg_list}, |
39 {'img_list':img_list, 'fragment_list':frg_list}, |
39 context_instance=RequestContext(request)) |
40 context_instance=RequestContext(request)) |
40 |
41 |