64 |
64 |
65 @login_required |
65 @login_required |
66 def groups(request): |
66 def groups(request): |
67 |
67 |
68 # get list of all published projects |
68 # get list of all published projects |
69 group_list = request.user.groups.exclude(name=settings.PUBLIC_GROUP_NAME) #@UndefinedVariable |
69 group_list = request.user.groups.exclude(name=settings.PUBLIC_GROUP_NAME) |
70 checker = ObjectPermissionChecker(request.user) |
70 checker = ObjectPermissionChecker(request.user) |
71 |
71 |
72 group_list = list(group_list.all()) |
72 group_list = sorted(group_list.all(), key=lambda group: group.name.lower()) |
|
73 |
73 for group in group_list: |
74 for group in group_list: |
74 if checker.has_perm('change_group', group): |
75 if checker.has_perm('change_group', group): |
75 group.change = True |
76 group.change = True |
76 |
77 |
77 is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); |
78 is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); |
231 group_list = request.user.groups.filter(title__icontains=filter) |
232 group_list = request.user.groups.filter(title__icontains=filter) |
232 else: |
233 else: |
233 group_list = request.user.groups.all() |
234 group_list = request.user.groups.all() |
234 |
235 |
235 group_list = group_list.exclude(name=settings.PUBLIC_GROUP_NAME) |
236 group_list = group_list.exclude(name=settings.PUBLIC_GROUP_NAME) |
|
237 group_list = sorted(group_list.all(), key=lambda group: group.name.lower()) |
236 checker = ObjectPermissionChecker(request.user) |
238 checker = ObjectPermissionChecker(request.user) |
237 for g in group_list: |
239 for g in group_list: |
238 if checker.has_perm('change_group', g): |
240 if checker.has_perm('change_group', g): |
239 g.change = True |
241 g.change = True |
240 |
242 |
377 #if edition is not None: |
379 #if edition is not None: |
378 # ids_editions = map(lambda t:t[0], filter(lambda id: id[0] is not None, Speak.objects.filter(session__day__edition=edition).order_by("session__start_ts", "order").values_list("content__iri_id"))) |
380 # ids_editions = map(lambda t:t[0], filter(lambda id: id[0] is not None, Speak.objects.filter(session__day__edition=edition).order_by("session__start_ts", "order").values_list("content__iri_id"))) |
379 # id_list = filter(lambda id: id in id_list, ids_editions) |
381 # id_list = filter(lambda id: id in id_list, ids_editions) |
380 |
382 |
381 contentList = Content.objects.filter(iri_id__in=id_list) #@UndefinedVariable |
383 contentList = Content.objects.filter(iri_id__in=id_list) #@UndefinedVariable |
382 projectList = Project.safe_objects.filter(ldt_id__in=projId_list) |
384 projectList = Project.safe_objects.filter(ldt_id__in=projId_list) |
383 |
|
384 |
385 |
385 ldtgen = LdtUtils() |
386 ldtgen = LdtUtils() |
386 # generate_ldt(contentList, title=u"", author=u"IRI Web", web_url=u"", startSegment=None, projects=None): |
387 # generate_ldt(contentList, title=u"", author=u"IRI Web", web_url=u"", startSegment=None, projects=None): |
387 doc = ldtgen.generate_ldt(contentList, title=u"Recherche : " + queryStr, projects=projectList) |
388 doc = ldtgen.generate_ldt(contentList, title=u"Recherche : " + queryStr, projects=projectList) |
388 doc = set_forbidden_stream(doc, request.user) |
389 doc = set_forbidden_stream(doc, request.user) |
453 redirect_to = '' |
454 redirect_to = '' |
454 if request.method == "POST" : |
455 if request.method == "POST" : |
455 form = LdtAddForm(request.POST) |
456 form = LdtAddForm(request.POST) |
456 form_status = "none" |
457 form_status = "none" |
457 contents = Content.safe_objects.all() |
458 contents = Content.safe_objects.all() |
458 |
|
459 group_form = permission_formset(request.POST) |
459 group_form = permission_formset(request.POST) |
460 management_form = None |
|
461 |
460 |
462 if form.is_valid() and group_form.is_valid(): |
461 if form.is_valid() and group_form.is_valid(): |
463 user = request.user |
462 user = request.user |
464 |
463 |
465 project = Project.create_project(title=form.cleaned_data['title'], user=user, contents=form.cleaned_data['contents'], |
464 project = Project.create_project(title=form.cleaned_data['title'], user=user, |
466 description=form.cleaned_data['description']) |
465 contents=form.cleaned_data['contents'], |
467 |
466 description=form.cleaned_data['description']) |
|
467 |
468 assign_object_to_groups(project, group_form.cleaned_data) |
468 assign_object_to_groups(project, group_form.cleaned_data) |
469 form_status = "saved" |
469 form_status = "saved" |
470 is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); |
470 is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); |
471 if is_gecko : |
471 if is_gecko : |
472 redirect_to = reverse('index_project_full', args=[project.ldt_id]) |
472 redirect_to = reverse('index_project_full', args=[project.ldt_id]) |
611 ldtgen = LdtUtils() |
611 ldtgen = LdtUtils() |
612 |
612 |
613 doc = ldtgen.generate_init([url], 'ldt.ldt_utils.views.' + method, None) |
613 doc = ldtgen.generate_init([url], 'ldt.ldt_utils.views.' + method, None) |
614 |
614 |
615 library = doc.xpath('/iri/files/library')[0] |
615 library = doc.xpath('/iri/files/library')[0] |
616 for c in Content.objects.all(): |
616 for c in Content.safe_objects.all(): |
617 elem = lxml.etree.SubElement(library, 'file') |
617 elem = lxml.etree.SubElement(library, 'file') |
618 elem.set('src', c.iri_url()) |
618 elem.set('src', c.iri_url()) |
619 elem.set('video', c.videopath) |
619 elem.set('video', c.videopath) |
620 elem.set('title', c.title) |
620 elem.set('title', c.title) |
621 elem.set('author', '') |
621 elem.set('author', '') |
1340 assign('change_group', request.user, group) |
1340 assign('change_group', request.user, group) |
1341 user_list = User.objects.filter(id__in=members_list) |
1341 user_list = User.objects.filter(id__in=members_list) |
1342 |
1342 |
1343 for user in user_list: |
1343 for user in user_list: |
1344 user.groups.add(group) |
1344 user.groups.add(group) |
1345 if user in admin_list: |
1345 if user in admin_list and user.get_profile().is_regular: |
1346 assign('change_group', user, group) |
1346 assign('change_group', user, group) |
1347 request.user.groups.add(group) |
1347 request.user.groups.add(group) |
1348 form_status = 'saved' |
1348 form_status = 'saved' |
1349 |
1349 |
1350 else: |
1350 else: |
1353 return render_to_response("ldt/ldt_utils/create_group.html", {'form' : form, 'form_status' : form_status, 'user_list' : user_list, 'admin_list': user_list}, context_instance=RequestContext(request)) |
1353 return render_to_response("ldt/ldt_utils/create_group.html", {'form' : form, 'form_status' : form_status, 'user_list' : user_list, 'admin_list': user_list}, context_instance=RequestContext(request)) |
1354 |
1354 |
1355 @login_required |
1355 @login_required |
1356 def update_group(request, group_id): |
1356 def update_group(request, group_id): |
1357 if not request.user.is_regular: |
1357 if not request.user.is_regular: |
1358 return HttpResponseServerError('<h1>User can leave a group.</h1>') |
1358 return HttpResponseServerError('<h1>User can not leave a group.</h1>') |
1359 |
1359 |
1360 group = get_object_or_404(Group, id=group_id) |
1360 group = get_object_or_404(Group, id=group_id) |
1361 query = Q(id=settings.ANONYMOUS_USER_ID) | Q(id=request.user.id) | Q(is_superuser=True) |
1361 query = Q(id=settings.ANONYMOUS_USER_ID) | Q(id=request.user.id) | Q(is_superuser=True) |
1362 user_list = User.objects.exclude(query) |
1362 user_list = User.objects.exclude(query) |
1363 members_list = User.objects.filter(groups__id=group_id) |
1363 members_list = User.objects.filter(groups__id=group_id) |
1391 group.name = name |
1391 group.name = name |
1392 |
1392 |
1393 for user in User.objects.all().exclude(username=request.user.username): |
1393 for user in User.objects.all().exclude(username=request.user.username): |
1394 if user in members_list: |
1394 if user in members_list: |
1395 group.user_set.add(user) |
1395 group.user_set.add(user) |
1396 if user in admin_list: |
1396 if user in admin_list and user.get_profile().is_regular: |
1397 assign('change_group', user, group) |
1397 assign('change_group', user, group) |
1398 else: |
1398 else: |
1399 remove_perm('change_group', user, group) |
1399 remove_perm('change_group', user, group) |
1400 else: |
1400 else: |
1401 group.user_set.remove(user) |
1401 group.user_set.remove(user) |