src/ldt/ldt/ldt_utils/views/project.py
changeset 644 94429061bbfa
parent 560 1cb2a4a573e1
child 646 97f5db87d71c
--- a/src/ldt/ldt/ldt_utils/views/project.py	Wed May 23 17:32:08 2012 +0200
+++ b/src/ldt/ldt/ldt_utils/views/project.py	Fri May 25 17:47:20 2012 +0200
@@ -16,6 +16,7 @@
                                 get_userlist_model)
 from ldt.user.forms import PictureForm
 import lxml.etree
+import math
 
 @login_required
 def create_ldt_view(request):
@@ -219,7 +220,10 @@
     if status == 2:
         url_templ = "ldt/ldt_utils/partial/publishedprojectslist.html"
     else:
-        url_templ = "ldt/ldt_utils/partial/projectslist.html"
+        if filter:
+            url_templ = "ldt/ldt_utils/partial/projectslist.html"
+        else:
+            return projects_page(request)
         
     return render_to_response(url_templ,
                               {'projects': project_list, 'show_username':show_username,
@@ -238,7 +242,27 @@
     ldt.unpublish()
     return HttpResponse(simplejson.dumps({'res':True, 'ldt': {'id': ldt.id, 'state':ldt.state, 'ldt_id': ldt.ldt_id}}, ensure_ascii=False), mimetype='application/json')
 
-
   
 def created_ldt(request):
     return render_to_response('ldt/ldt_utils/save_done.html', context_instance=RequestContext(request))
+
+@login_required
+def projects_page(request):
+    num_page = 0
+    if request.POST.has_key('num_page'):
+        num_page = int(request.POST["num_page"])
+    project_nb, nb_pj_pages, project_list = get_projects_page(num_page, request.user)
+    
+    is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1);
+    return render_to_response("ldt/ldt_utils/partial/projectslist.html",
+                              {'projects': project_list, 'nb_pj_pages': nb_pj_pages, 'content_nb': project_nb, 'current_project_page':float(num_page),
+                               'is_gecko': is_gecko
+                               },
+                              context_instance=RequestContext(request))
+    
+
+def get_projects_page(num_page, user):
+    project_nb = float(Project.safe_objects.filter(owner=user).count()) #@UndefinedVariable
+    nb_pj_pages = int(math.ceil(project_nb / settings.LDT_MAX_PROJECTS_PER_PAGE))
+    project_list = add_change_attr(user, Project.safe_objects.filter(owner=user)[(num_page*settings.LDT_MAX_PROJECTS_PER_PAGE):((num_page+1)*settings.LDT_MAX_PROJECTS_PER_PAGE)]) #@UndefinedVariable
+    return project_nb, nb_pj_pages, project_list