# HG changeset patch # User verrierj # Date 1323091521 -3600 # Node ID e00779f0dcba793e2a8bfe355b83cdfbb563c272 # Parent a35924820af77e4012af3e68173c84f3bad46012 Change form for group creation / update diff -r a35924820af7 -r e00779f0dcba src/ldt/ldt/ldt_utils/forms.py --- a/src/ldt/ldt/ldt_utils/forms.py Fri Dec 02 10:50:35 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/forms.py Mon Dec 05 14:25:21 2011 +0100 @@ -1,10 +1,13 @@ from django import forms from django.utils.translation import ugettext_lazy as _ from django.contrib.auth.models import User, Group +from django.forms.widgets import MultipleHiddenInput +from django.contrib.admin.widgets import FilteredSelectMultiple from ldt.forms import widgets as ldt_widgets from models import Project, Content, Media from utils import generate_uuid + class LdtImportForm(forms.Form): importFile = forms.FileField() videoPath = forms.CharField(required=False) @@ -94,8 +97,8 @@ class GroupAddForm(forms.ModelForm): name = forms.CharField(required=True) - members_list = forms.ModelMultipleChoiceField(User.objects.all(), required=False) - admin_list = forms.ModelMultipleChoiceField(User.objects.all(), required=False) + members_list = forms.ModelMultipleChoiceField(User.objects.all(), required=False, widget=MultipleHiddenInput()) + admin_list = forms.ModelMultipleChoiceField(User.objects.all(), required=False, widget=MultipleHiddenInput()) class Meta: model = Group diff -r a35924820af7 -r e00779f0dcba src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_group.html --- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_group.html Fri Dec 02 10:50:35 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_group.html Mon Dec 05 14:25:21 2011 +0100 @@ -17,31 +17,80 @@ + {% endblock %} {% block js_declaration %} {{ block.super }} @@ -88,27 +157,65 @@
{% if group_id %}{% trans "Update a group" %}{% else %}{% trans "Create a group" %}{% endif %}
-
-
loader
-
-
{% csrf_token %} - - - {{form.name}} - {% for error in form.errors.name %} - {{ error }} - {% endfor %} + +
+ + {{form.name}} + {% for error in form.errors.name %} + {{ error }} + {% endfor %} +
+ +
+
+ {% trans "User list" %}
+
loader
+


+ + +
+
+
+ +
+
+
+ {% trans "Members list" %} +
+ + +
-
- {% include "ldt/ldt_utils/partial/userslist.html" %} +
+ {% for user in admin_list %} + + {% endfor %}
- + +
+ {% for user in member_list %} + + {% endfor %} +
+
- + {% if group_id %} diff -r a35924820af7 -r e00779f0dcba src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/userslist.html --- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/userslist.html Fri Dec 02 10:50:35 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/userslist.html Mon Dec 05 14:25:21 2011 +0100 @@ -1,33 +1,5 @@ {% load i18n %} - -
-
- - - - - - - - - - {% for user in user_list %} - - - - - {% endfor %} - - -
- {% if user_list|length > 1 %} - - {% endif %} - {% trans "name" %}{% trans "admin" %}
{{ user.username }} - {% if user.get_profile.is_regular %} - - {% endif %} -
-
-
+{% for user in user_list %} + +{% endfor %} \ No newline at end of file diff -r a35924820af7 -r e00779f0dcba src/ldt/ldt/ldt_utils/views.py --- a/src/ldt/ldt/ldt_utils/views.py Fri Dec 02 10:50:35 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/views.py Mon Dec 05 14:25:21 2011 +0100 @@ -188,7 +188,7 @@ query = Q(id=settings.ANONYMOUS_USER_ID) | Q(id=request.user.id) | Q(is_superuser=True) filter_query = Q(username__icontains=filter) if filter else Q() - user_list = User.objects.exclude(query).filter(filter_query) + user_list = User.objects.exclude(query).filter(filter_query)[0:20] if id_group: group = Group.objects.get(id=id_group) @@ -1331,58 +1331,55 @@ @login_required def create_group(request): if not request.user.is_regular: - return HttpResponseServerError('

User can leave a group.

') + return HttpResponseServerError('

User can not leave a group.

') query = Q(id=settings.ANONYMOUS_USER_ID) | Q(id=request.user.id) | Q(is_superuser=True) - user_list = User.objects.exclude(query) + user_list = User.objects.exclude(query)[0:20] form_status = '' if request.method == 'POST': form = GroupAddForm(request.POST) - if form.is_valid(): + if form.is_valid(): name = form.cleaned_data['name'] members_list = form.cleaned_data['members_list'] - admin_list = form.cleaned_data['admin_list'] + admin_list = form.cleaned_data['admin_list'] group = Group.objects.create(name=name) group.save() assign('change_group', request.user, group) - user_list = User.objects.filter(id__in=members_list) - for user in user_list: + for user in members_list: user.groups.add(group) - if user in admin_list and user.get_profile().is_regular: + if user in admin_list: assign('change_group', user, group) request.user.groups.add(group) form_status = 'saved' else: - form = GroupAddForm() + form = GroupAddForm() + form.fields['members_list'].queryset = user_list 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)) @login_required def update_group(request, group_id): if not request.user.is_regular: - return HttpResponseServerError('

User can not leave a group.

') + return HttpResponseServerError('

User can not update a group.

') - group = get_object_or_404(Group, id=group_id) + group = get_object_or_404(Group, id=group_id) + member_list = group.user_set.exclude(id=request.user.id) query = Q(id=settings.ANONYMOUS_USER_ID) | Q(id=request.user.id) | Q(is_superuser=True) - user_list = User.objects.exclude(query) - members_list = User.objects.filter(groups__id=group_id) + user_list = User.objects.exclude(query)[0:20] + admin_list = [] form_status = '' if not request.user.has_perm('change_group', group): - user_list = [] form_status = 'saved' - form = GroupAddForm() - return render_to_response("ldt/ldt_utils/create_group.html", {'group_id' : group_id, 'form' : form, 'form_status' : form_status, 'user_list' : user_list}, context_instance=RequestContext(request)) + return render_to_response("ldt/ldt_utils/create_group.html", {'form_status' : form_status}, context_instance=RequestContext(request)) - for u in user_list: - if u in members_list: - u.member = True + for u in member_list: if u.has_perm('change_group', group): - u.admin = True + u.change = True if request.method == "POST": form = GroupAddForm(request.POST, instance=group) @@ -1395,18 +1392,19 @@ else: if form.is_valid(): name = form.cleaned_data['name'] - members_list = form.cleaned_data['members_list'] + new_member_list = form.cleaned_data['members_list'] admin_list = form.cleaned_data['admin_list'] group.name = name - - for user in User.objects.all().exclude(username=request.user.username): - if user in members_list: - group.user_set.add(user) - if user in admin_list and user.get_profile().is_regular: - assign('change_group', user, group) - else: - remove_perm('change_group', user, group) + + for user in new_member_list: + group.user_set.add(user) + if user in admin_list and user.get_profile().is_regular: + assign('change_group', user, group) else: + remove_perm('change_group', user, group) + + for user in member_list: + if user not in new_member_list: group.user_set.remove(user) remove_perm('change_group', user, group) @@ -1414,9 +1412,11 @@ form_status = 'saved' else: - form = GroupAddForm(initial={'name':unicode(group.name), 'members_list':members_list}) + form = GroupAddForm(initial={'name':unicode(group.name), 'members_list':member_list}) - return render_to_response("ldt/ldt_utils/create_group.html", {'group_id' : group_id, 'form' : form, 'form_status' : form_status, 'user_list' : user_list}, context_instance=RequestContext(request)) + return render_to_response("ldt/ldt_utils/create_group.html", {'group_id' : group_id, 'form' : form, 'form_status' : form_status, + 'user_list' : user_list, 'member_list': member_list, + 'admin_list' : admin_list}, context_instance=RequestContext(request)) @login_required def leave_group(request, group_id, redirect=True): diff -r a35924820af7 -r e00779f0dcba src/ldt/ldt/static/ldt/js/projectscontents.js --- a/src/ldt/ldt/static/ldt/js/projectscontents.js Fri Dec 02 10:50:35 2011 +0100 +++ b/src/ldt/ldt/static/ldt/js/projectscontents.js Mon Dec 05 14:25:21 2011 +0100 @@ -206,6 +206,7 @@ $('.contenttitlelink').each(function(i){ $(this).attr("target","_blank"); }); + $('.contenttitlelink').nyroModal({ filters: ['iframe'], sizes: { @@ -279,7 +280,7 @@ function init_events_base_projects(base_node, embed_url, searchprojectfilterurl, publishprojecturl, unpublishprojecturl) { init_modal_window ('.ldt_link_open_ldt', 1035, 670, 1025, 660, base_node, searchprojectfilterurl); - init_modal_window ('.ldt_link_create_project', 950, 700, 940, 690, base_node, searchprojectfilterurl); + init_modal_window ('.ldt_link_create_project', 800, 700, 820, 690, base_node, searchprojectfilterurl); init_modal_window ('.ldt_link_copy_project', 500, 150, 500, 150, base_node, searchprojectfilterurl); $('.publishedproject', base_node).click(function(e) { @@ -330,7 +331,7 @@ $('.projecttitlelink').nyroModal({ filters: ['iframe'], sizes: { - minW: '950', + minW: '800', minH: '710' }, closeOnClick:false, @@ -347,7 +348,7 @@ } }); - nm.store.iframe.width(940); + nm.store.iframe.width(820); nm.store.iframe.height(700); } } @@ -369,7 +370,7 @@ filters: ['iriIframe'], sizes: { minW: '520', - minH: '530' + minH: '460' }, showCloseButton: true, closeOnEscape:false, @@ -385,7 +386,7 @@ }); nm.store.iframe.width(510); - nm.store.iframe.height(520); + nm.store.iframe.height(450); }, afterClose: function(nm) { searchCallback($("#searchprojectsinput"), $("#groupslistcontainer"), groupfilterurl, 0);