| author | cavaliet |
| Tue, 04 Dec 2012 13:55:35 +0100 | |
| changeset 1013 | 7b5c49cab8f1 |
| parent 814 | fb232b3266b0 |
| child 1035 | 85322320d89c |
| permissions | -rw-r--r-- |
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
1 |
from django.conf import settings |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
2 |
from django.contrib.auth.decorators import login_required |
| 319 | 3 |
from django.contrib.auth.models import Group |
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
4 |
from django.core.urlresolvers import reverse |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
5 |
from django.db.models import Q |
| 319 | 6 |
from django.http import HttpResponse, HttpResponseRedirect, HttpResponseServerError |
7 |
from django.shortcuts import render_to_response, get_object_or_404 |
|
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
8 |
from django.template import RequestContext |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
9 |
from django.utils import simplejson |
| 319 | 10 |
from django.utils.translation import ugettext as _ |
11 |
from ldt.ldt_utils.forms import LdtAddForm, AddProjectForm, CopyProjectForm |
|
12 |
from guardian.shortcuts import get_objects_for_group, get_objects_for_user |
|
13 |
from ldt.ldt_utils.models import Content, Project |
|
14 |
from ldt.ldt_utils.utils import boolean_convert |
|
15 |
from ldt.security.utils import (assign_perm_to_obj, add_change_attr, get_userlist, |
|
16 |
get_userlist_model) |
|
|
333
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
17 |
from ldt.user.forms import PictureForm |
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
18 |
import lxml.etree |
|
644
94429061bbfa
First step of pagination for contents and projet in workspace home.
cavaliet
parents:
560
diff
changeset
|
19 |
import math |
| 1013 | 20 |
|
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
21 |
|
|
330
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
22 |
@login_required |
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
23 |
def create_ldt_view(request): |
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
24 |
redirect_to = '' |
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
25 |
if request.method == "POST" : |
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
26 |
form = LdtAddForm(request.POST) |
|
333
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
27 |
picture_form = PictureForm(None, request.POST, request.FILES) |
|
330
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
28 |
form_status = "none" |
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
29 |
contents = Content.safe_objects.all() |
|
333
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
30 |
|
|
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
31 |
if form.is_valid() and picture_form.is_valid(): |
|
330
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
32 |
|
|
333
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
33 |
user = request.user |
|
330
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
34 |
project = Project.create_project(title=form.cleaned_data['title'], user=user, |
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
35 |
contents=form.cleaned_data['contents'], |
|
333
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
36 |
description=form.cleaned_data['description'], |
|
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
37 |
set_icon=False) |
|
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
38 |
|
|
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
39 |
picture_form.model = project |
|
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
40 |
picture_form.save() |
|
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
41 |
|
|
330
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
42 |
if form.cleaned_data["share"]: |
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
43 |
assign_perm_to_obj(project, form.cleaned_data["read_list"], form.cleaned_data["write_list"], user) |
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
44 |
form_status = "saved" |
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
45 |
is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); |
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
46 |
if is_gecko : |
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
47 |
redirect_to = reverse('index_project_full', args=[project.ldt_id]) |
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
48 |
else: |
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
49 |
return HttpResponseRedirect(reverse('index_project', args=[project.ldt_id])) |
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
50 |
|
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
51 |
else: |
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
52 |
form = LdtAddForm() |
|
333
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
53 |
picture_form = PictureForm() |
|
330
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
54 |
contents = Content.safe_objects.all() |
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
55 |
form_status = "none" |
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
56 |
|
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
57 |
return render_to_response('ldt/ldt_utils/create_ldt.html', {'contents': contents, 'form': form, 'form_status':form_status, |
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
58 |
'redirect_to': redirect_to, 'create_project_action':reverse(create_ldt_view), 'language_code' : settings.LANGUAGE_CODE[2:], |
|
333
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
59 |
'elem_list': get_userlist(request.user), 'profile_picture_form': picture_form}, context_instance=RequestContext(request)) |
|
330
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
60 |
|
|
806188af5027
Projects have an icon identical to one of the media they contain, if this icon is different from the default icon. Icons can be set using ./manage.py setprojecticon once icons have been added to contents.
verrierj
parents:
323
diff
changeset
|
61 |
|
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
62 |
|
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
63 |
@login_required |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
64 |
def create_project(request, iri_id): |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
65 |
content = get_object_or_404(Content.safe_objects, iri_id=iri_id) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
66 |
contents = [ content, ] |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
67 |
groups = request.user.groups.exclude(name=settings.PUBLIC_GROUP_NAME) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
68 |
redirect_to = '' |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
69 |
form_status = "none" |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
70 |
|
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
71 |
if request.method == "POST" : |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
72 |
form = AddProjectForm(request.POST) |
|
333
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
73 |
picture_form = PictureForm(None, request.POST, request.FILES) |
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
74 |
|
|
333
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
75 |
if form.is_valid() and picture_form.is_valid(): |
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
76 |
user = request.user |
|
333
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
77 |
project = Project.create_project(title=form.cleaned_data['title'], |
|
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
78 |
user=user, contents=contents, |
|
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
79 |
description=form.cleaned_data['description'], |
|
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
80 |
set_icon=False) |
|
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
81 |
picture_form.model = project |
|
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
82 |
picture_form.save() |
|
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
83 |
|
|
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
84 |
form_status = "saved" |
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
85 |
if form.cleaned_data["share"]: |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
86 |
assign_perm_to_obj(project, form.cleaned_data["read_list"], form.cleaned_data["write_list"], user) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
87 |
|
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
88 |
# Modal window is not used with firefox |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
89 |
is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
90 |
if is_gecko : |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
91 |
redirect_to = reverse('index_project_full', args=[project.ldt_id]) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
92 |
else: |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
93 |
return HttpResponseRedirect(reverse('index_project', args=[project.ldt_id])) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
94 |
else: |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
95 |
form = AddProjectForm() |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
96 |
|
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
97 |
return render_to_response('ldt/ldt_utils/create_ldt.html', {'form':form, 'form_status': form_status, 'contents':contents,'groups' : groups, |
|
321
c68744402249
Change urls used in reverse to be compatible with the new organization
verrierj
parents:
319
diff
changeset
|
98 |
'redirect_to': redirect_to, 'elem_list': get_userlist(request.user), 'create_project_action':reverse("ldt.ldt_utils.views.project.create_project", args=[iri_id])}, context_instance=RequestContext(request)) |
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
99 |
|
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
100 |
@login_required |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
101 |
def update_project(request, ldt_id): |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
102 |
project = get_object_or_404(Project.safe_objects, ldt_id=ldt_id) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
103 |
contents = project.contents.all() |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
104 |
groups = request.user.groups.exclude(name=settings.PUBLIC_GROUP_NAME) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
105 |
member_list, admin_list = get_userlist_model(project, request.user) |
|
790
015f40d64d43
Update of "reinitialize" button : Test if a content have a front_project before catching its id
rougeronj
parents:
780
diff
changeset
|
106 |
display_reset= False |
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
107 |
|
|
790
015f40d64d43
Update of "reinitialize" button : Test if a content have a front_project before catching its id
rougeronj
parents:
780
diff
changeset
|
108 |
if contents[0].front_project != None: |
|
015f40d64d43
Update of "reinitialize" button : Test if a content have a front_project before catching its id
rougeronj
parents:
780
diff
changeset
|
109 |
if contents[0].front_project.ldt_id == ldt_id: |
|
015f40d64d43
Update of "reinitialize" button : Test if a content have a front_project before catching its id
rougeronj
parents:
780
diff
changeset
|
110 |
display_reset = True |
|
780
35631012b6d4
Commit Julien:
Julien Rougeron <julien.rougeron@iri.centrepompidou.fr>
parents:
646
diff
changeset
|
111 |
|
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
112 |
if request.method == "POST" : |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
113 |
submit_action = request.REQUEST.get("submit_button", False) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
114 |
if submit_action == "prepare_delete": |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
115 |
errors = [] |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
116 |
if project.state == 2: |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
117 |
errors.append(_("the project %(title)s is published. please unpublish before deleting.") % {'title':project.title}) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
118 |
message = _("can not delete the project. Please correct the following error") |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
119 |
title = _('title error deleting project') |
| 392 | 120 |
elif project.content_set.count() != 0: |
121 |
errors.append(_("the project %(title)s is the front project of %(content)s. please delete this content first.") % {'title':project.title, 'content':project.content_set.all()[0]}) |
|
122 |
message = _("can not delete the project. Please correct the following error") |
|
123 |
title = _('title error deleting project') |
|
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
124 |
else: |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
125 |
message = _("please confirm deleting project %(title)s") % {'title':project.title} |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
126 |
title = _("confirm deletion") |
|
808
0f8e34108677
Embed_player is now the same as Raphael's version
grandjoncl
parents:
790
diff
changeset
|
127 |
return render_to_response('ldt/ldt_utils/error_confirm_popup.html', {'errors':errors, 'message':message, 'title': title}, context_instance=RequestContext(request)) |
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
128 |
elif submit_action == "delete": |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
129 |
if project.state != 2: |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
130 |
project.delete() |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
131 |
form_status = 'deleted' |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
132 |
form = AddProjectForm() |
|
333
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
133 |
picture_form = PictureForm() |
|
780
35631012b6d4
Commit Julien:
Julien Rougeron <julien.rougeron@iri.centrepompidou.fr>
parents:
646
diff
changeset
|
134 |
elif submit_action == "prepare_reset": |
|
35631012b6d4
Commit Julien:
Julien Rougeron <julien.rougeron@iri.centrepompidou.fr>
parents:
646
diff
changeset
|
135 |
errors=[] |
|
35631012b6d4
Commit Julien:
Julien Rougeron <julien.rougeron@iri.centrepompidou.fr>
parents:
646
diff
changeset
|
136 |
message = _("please confirm reseting project %(title)s") % {'title':project.title} |
|
35631012b6d4
Commit Julien:
Julien Rougeron <julien.rougeron@iri.centrepompidou.fr>
parents:
646
diff
changeset
|
137 |
title = _("confirm reset") |
|
814
fb232b3266b0
Add "reset front project button" in the content creation/update form
rougeronj
parents:
808
diff
changeset
|
138 |
return render_to_response('ldt/ldt_utils/reset_confirm_popup.html', {'errors':errors, 'message':message, 'title': title}, context_instance=RequestContext(request)) |
|
780
35631012b6d4
Commit Julien:
Julien Rougeron <julien.rougeron@iri.centrepompidou.fr>
parents:
646
diff
changeset
|
139 |
elif submit_action == "reset": |
|
35631012b6d4
Commit Julien:
Julien Rougeron <julien.rougeron@iri.centrepompidou.fr>
parents:
646
diff
changeset
|
140 |
#TODO : verifier index de la recher maj |
|
35631012b6d4
Commit Julien:
Julien Rougeron <julien.rougeron@iri.centrepompidou.fr>
parents:
646
diff
changeset
|
141 |
contents[0].create_front_project() |
|
35631012b6d4
Commit Julien:
Julien Rougeron <julien.rougeron@iri.centrepompidou.fr>
parents:
646
diff
changeset
|
142 |
contents[0].save() |
|
35631012b6d4
Commit Julien:
Julien Rougeron <julien.rougeron@iri.centrepompidou.fr>
parents:
646
diff
changeset
|
143 |
project.delete() |
|
35631012b6d4
Commit Julien:
Julien Rougeron <julien.rougeron@iri.centrepompidou.fr>
parents:
646
diff
changeset
|
144 |
form_status= 'saved' |
|
35631012b6d4
Commit Julien:
Julien Rougeron <julien.rougeron@iri.centrepompidou.fr>
parents:
646
diff
changeset
|
145 |
form = AddProjectForm() |
|
35631012b6d4
Commit Julien:
Julien Rougeron <julien.rougeron@iri.centrepompidou.fr>
parents:
646
diff
changeset
|
146 |
picture_form = PictureForm() |
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
147 |
else: |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
148 |
form_status = 'none' |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
149 |
form = AddProjectForm(request.POST) |
|
333
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
150 |
picture_form = PictureForm(None, request.POST, request.FILES) |
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
151 |
|
|
333
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
152 |
if form.is_valid() and picture_form.is_valid(): |
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
153 |
if project.title != form.cleaned_data['title'] or project.description != form.cleaned_data['description']: |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
154 |
project.title = form.cleaned_data['title'] |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
155 |
project.description = form.cleaned_data['description'] |
|
560
1cb2a4a573e1
correct annoations api handler + ldt encoding
ymh <ymh.work@gmail.com>
parents:
549
diff
changeset
|
156 |
ldt = lxml.etree.fromstring(project.ldt_encoded) |
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
157 |
res = ldt.xpath("/iri/project") |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
158 |
res[0].set("title", project.title) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
159 |
res[0].set("abstract", project.description) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
160 |
project.ldt = lxml.etree.tostring(ldt, pretty_print=True) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
161 |
project.save() |
|
333
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
162 |
|
|
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
163 |
picture_form.model = project |
|
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
164 |
picture_form.save() |
| 549 | 165 |
assign_perm_to_obj(project, form.cleaned_data["read_list"], form.cleaned_data["write_list"], request.user) |
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
166 |
form_status = "saved" |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
167 |
else: |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
168 |
form = AddProjectForm({'title':unicode(project.title), 'description':unicode(project.get_description())}) |
|
333
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
169 |
picture_form = PictureForm() |
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
170 |
|
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
171 |
form_status = 'none' |
|
780
35631012b6d4
Commit Julien:
Julien Rougeron <julien.rougeron@iri.centrepompidou.fr>
parents:
646
diff
changeset
|
172 |
|
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
173 |
return render_to_response('ldt/ldt_utils/create_ldt.html', {'form':form, 'form_status':form_status, 'groups': groups, 'elem_list': get_userlist(request.user), |
|
780
35631012b6d4
Commit Julien:
Julien Rougeron <julien.rougeron@iri.centrepompidou.fr>
parents:
646
diff
changeset
|
174 |
'ldt_id': ldt_id, 'contents':contents, 'display_reset':display_reset, 'member_list': member_list, 'admin_list': admin_list, |
|
333
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
175 |
'create_project_action':reverse("ldt.ldt_utils.views.project.update_project", args=[ldt_id]), |
|
4ddf8c0eeab4
Image size is checked before save + project image can be set manually
verrierj
parents:
330
diff
changeset
|
176 |
'profile_picture_form': picture_form}, context_instance=RequestContext(request)) |
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
177 |
|
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
178 |
@login_required |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
179 |
def copy_project(request, ldt_id, group_id=0): |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
180 |
|
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
181 |
project = get_object_or_404(Project.safe_objects, ldt_id=ldt_id) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
182 |
if request.method == "POST" : |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
183 |
form = CopyProjectForm(request.POST) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
184 |
|
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
185 |
if form.is_valid(): |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
186 |
user = request.user |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
187 |
group_id = form.cleaned_data['group'] |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
188 |
group = Group.objects.get(id=group_id) if group_id and group_id > 0 else None |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
189 |
project = project.copy_project(title=form.cleaned_data['title'], user=user, group=group) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
190 |
is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
191 |
if is_gecko: |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
192 |
return HttpResponseRedirect(reverse('index_project_full', args=[project.ldt_id])) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
193 |
else: |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
194 |
return HttpResponseRedirect(reverse('index_project', args=[project.ldt_id])) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
195 |
else: |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
196 |
form = CopyProjectForm() |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
197 |
# Modal window is not used with firefox, so we ask to submit the form in _parent in firefox case. |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
198 |
target_parent = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
199 |
return render_to_response('ldt/ldt_utils/copy_ldt.html', {'form':form, 'project':project, 'group_id':group_id, 'target_parent':target_parent}, context_instance=RequestContext(request)) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
200 |
|
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
201 |
|
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
202 |
@login_required |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
203 |
def projects_filter(request, filter, is_owner=False, status=0, id_group=0): |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
204 |
is_owner = boolean_convert(is_owner) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
205 |
status = int(status) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
206 |
id_group = int(id_group) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
207 |
query = Q() |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
208 |
|
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
209 |
if is_owner: |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
210 |
owner = None |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
211 |
try: |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
212 |
owner = request.user |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
213 |
except: |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
214 |
return HttpResponseServerError("<h1>User not found</h1>") |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
215 |
query &= Q(owner=owner) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
216 |
|
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
217 |
if status > 0: |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
218 |
query &= Q(state=status) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
219 |
|
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
220 |
if filter: |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
221 |
if len(filter) > 0 and filter[0] == '_': |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
222 |
filter = filter[1:] |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
223 |
query &= Q(title__icontains=filter) |
| 392 | 224 |
|
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
225 |
is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
226 |
show_username = True |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
227 |
|
|
646
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
228 |
project_nb = None |
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
229 |
nb_pj_pages = None |
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
230 |
num_page = 0 |
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
231 |
if request.GET.has_key('num_page'): |
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
232 |
num_page = int(request.GET["num_page"]) |
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
233 |
|
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
234 |
if id_group > 0: # Search inside a group |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
235 |
grp = Group.objects.get(id=id_group) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
236 |
project_list = get_objects_for_group(grp, 'ldt_utils.view_project').filter(query) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
237 |
elif id_group == -1:# Search inside projects shared with a specific user |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
238 |
project_list = get_objects_for_user(request.user, 'ldt_utils.view_project', use_groups=False).exclude(owner=request.user) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
239 |
else: |
|
646
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
240 |
# We paginate in these cases : user's project or published |
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
241 |
if status==2: |
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
242 |
project_list = Project.safe_objects.filter(query).exclude(title__startswith='front') |
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
243 |
else: |
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
244 |
project_list = Project.safe_objects.filter(query) |
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
245 |
project_nb = float(project_list.count()) #@UndefinedVariable |
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
246 |
nb_pj_pages = int(math.ceil(project_nb / settings.LDT_MAX_PROJECTS_PER_PAGE)) |
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
247 |
project_list = project_list[(num_page*settings.LDT_MAX_PROJECTS_PER_PAGE):((num_page+1)*settings.LDT_MAX_PROJECTS_PER_PAGE)] #@UndefinedVariable |
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
248 |
show_username = False |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
249 |
|
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
250 |
project_list = add_change_attr(request.user, project_list) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
251 |
|
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
252 |
if status == 2: |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
253 |
url_templ = "ldt/ldt_utils/partial/publishedprojectslist.html" |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
254 |
else: |
|
646
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
255 |
url_templ = "ldt/ldt_utils/partial/projectslist.html" |
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
256 |
|
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
257 |
return render_to_response(url_templ, |
|
646
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
258 |
{'projects': project_list, 'nb_pj_pages': nb_pj_pages, 'project_nb': project_nb, 'current_project_page':float(num_page), |
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
259 |
'show_username':show_username, 'group_id':id_group, 'is_gecko': is_gecko |
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
260 |
}, |
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
261 |
context_instance=RequestContext(request)) |
| 323 | 262 |
|
|
315
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
263 |
@login_required |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
264 |
def publish(request, id): |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
265 |
ldt = get_object_or_404(Project.safe_objects, ldt_id=id) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
266 |
ldt.publish() |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
267 |
return HttpResponse(simplejson.dumps({'res':True, 'ldt': {'id': ldt.id, 'state':ldt.state, 'ldt_id': ldt.ldt_id}}, ensure_ascii=False), mimetype='application/json') |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
268 |
|
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
269 |
@login_required |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
270 |
def unpublish(request, id): |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
271 |
ldt = get_object_or_404(Project.safe_objects, ldt_id=id) |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
272 |
ldt.unpublish() |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
273 |
return HttpResponse(simplejson.dumps({'res':True, 'ldt': {'id': ldt.id, 'state':ldt.state, 'ldt_id': ldt.ldt_id}}, ensure_ascii=False), mimetype='application/json') |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
274 |
|
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
275 |
|
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
276 |
def created_ldt(request): |
|
877f89ec1efa
Split big views.py files into several views grouped by "make sense".
cavaliet
parents:
diff
changeset
|
277 |
return render_to_response('ldt/ldt_utils/save_done.html', context_instance=RequestContext(request)) |
|
644
94429061bbfa
First step of pagination for contents and projet in workspace home.
cavaliet
parents:
560
diff
changeset
|
278 |
|
|
94429061bbfa
First step of pagination for contents and projet in workspace home.
cavaliet
parents:
560
diff
changeset
|
279 |
|
|
94429061bbfa
First step of pagination for contents and projet in workspace home.
cavaliet
parents:
560
diff
changeset
|
280 |
def get_projects_page(num_page, user): |
|
94429061bbfa
First step of pagination for contents and projet in workspace home.
cavaliet
parents:
560
diff
changeset
|
281 |
project_nb = float(Project.safe_objects.filter(owner=user).count()) #@UndefinedVariable |
|
94429061bbfa
First step of pagination for contents and projet in workspace home.
cavaliet
parents:
560
diff
changeset
|
282 |
nb_pj_pages = int(math.ceil(project_nb / settings.LDT_MAX_PROJECTS_PER_PAGE)) |
|
94429061bbfa
First step of pagination for contents and projet in workspace home.
cavaliet
parents:
560
diff
changeset
|
283 |
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 |
|
94429061bbfa
First step of pagination for contents and projet in workspace home.
cavaliet
parents:
560
diff
changeset
|
284 |
return project_nb, nb_pj_pages, project_list |
|
646
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
285 |
|
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
286 |
|
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
287 |
def get_published_projects_page(num_page): |
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
288 |
project_nb = float(Project.safe_objects.filter(state=2).exclude(title__startswith='front').count()) #@UndefinedVariable |
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
289 |
nb_pj_pages = int(math.ceil(project_nb / settings.LDT_MAX_PROJECTS_PER_PAGE)) |
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
290 |
project_list = Project.safe_objects.filter(state=2).exclude(title__startswith='front')[(num_page*settings.LDT_MAX_PROJECTS_PER_PAGE):((num_page+1)*settings.LDT_MAX_PROJECTS_PER_PAGE)] #@UndefinedVariable |
|
97f5db87d71c
Enhance pagination with public project and quick search.
cavaliet
parents:
644
diff
changeset
|
291 |
return project_nb, nb_pj_pages, project_list |