# HG changeset patch # User verrierj # Date 1322579068 -3600 # Node ID 14b59dcd2731bf7fa55a77577d9a279f08c72972 # Parent 3d9cb9b6ff8d6f7055cfe4113bfb8b603db86cbc Add user search bar during group edition diff -r 3d9cb9b6ff8d -r 14b59dcd2731 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 Tue Nov 29 12:08:11 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_group.html Tue Nov 29 16:04:28 2011 +0100 @@ -6,8 +6,10 @@ {% block js_import %} {{ block.super }} - - {{ content_form.media.js }} + + + {{ content_form.media.js }} + {% endblock %} {% block css_import %} @@ -31,7 +33,7 @@ var uncheck_all = '{% trans "uncheck all" %}'; $("#check_projects").attr('title', uncheck_all); - $("#check_projects").change(function () { + $("#check_projects").live("change", function () { var members_checkboxes = $("input[name=members_list]"); if ($("#check_projects").is(":checked")) { @@ -50,7 +52,7 @@ var is_member = $('input[name=members_list]', line) if ($(this).is(':checked') && !is_member.is(':checked')) { - is_member.attr('checked', 'checked'); + is_member.prop('checked', 'checked'); } }); @@ -63,48 +65,40 @@ } }); + var user_filter_url = "{% url ldt.ldt_utils.views.users_filter filter='__FILTER__' id_group='__ID_GROUP__'%}"; + + input_list_init = [ + {'input_selector':"#searchusersinput", 'container_selector':"#userslistcontainer", 'url':user_filter_url} + ]; + searchFieldInit(input_list_init); + }); {% endblock %} {% block body %} +
{% 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 %} - -
-
- - - - - - - - - - {% for user in user_list %} - - - - - {% endfor %} - - -
- {% if user_list|length > 1 %} - - {% endif %} - {% trans "name" %}{% trans "admin" %}
{{ user.username }}
-
+ + +
+ {% include "ldt/ldt_utils/partial/userslist.html" %}
diff -r 3d9cb9b6ff8d -r 14b59dcd2731 src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/userslist.html --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/userslist.html Tue Nov 29 16:04:28 2011 +0100 @@ -0,0 +1,29 @@ +{% load i18n %} + + +
+
+ + + + + + + + + + {% for user in user_list %} + + + + + {% endfor %} + + +
+ {% if user_list|length > 1 %} + + {% endif %} + {% trans "name" %}{% trans "admin" %}
{{ user.username }}
+
+
diff -r 3d9cb9b6ff8d -r 14b59dcd2731 src/ldt/ldt/ldt_utils/urls.py --- a/src/ldt/ldt/ldt_utils/urls.py Tue Nov 29 12:08:11 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/urls.py Tue Nov 29 16:04:28 2011 +0100 @@ -32,6 +32,7 @@ url(r'^filterprojects/_(?P[\w\%\_\-\+]*?)/(?Ptrue|false)/(?P\d)/(?P.*)$', "views.projects_filter",), url(r'^filtercontents/_(?P[\w\%\_\-\+]*?)/$', "views.contents_filter",), url(r'^filtergroups/_(?P[\w\%\_\-\+]*?)/$', "views.groups_filter",), + url(r'filterusers/_(?P[\w\%\_\-\+]*?)/(?P.*)$', "views.users_filter"), (r'^embedpopup/?$', "views.popup_embed"), url(r'^segment/(?P.*)/(?P.*)/(?P.*)/(?P.*)/(?P.*)/$', 'views.index_segment'), url(r'^segmentInit/(?P.*)/(?P.*)/(?P.*)/(?P.*)/(?P.*)/$', 'views.init_segment'), diff -r 3d9cb9b6ff8d -r 14b59dcd2731 src/ldt/ldt/ldt_utils/views.py --- a/src/ldt/ldt/ldt_utils/views.py Tue Nov 29 12:08:11 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/views.py Tue Nov 29 16:04:28 2011 +0100 @@ -179,6 +179,26 @@ {'projects': project_list, 'show_username':show_username, 'is_gecko': is_gecko, 'group_id':id_group}, context_instance=RequestContext(request)) + +def users_filter(request, filter, id_group=None): + if filter and len(filter) > 0 and filter[0] == '_': + filter = filter[1:] + + query = Q(id=settings.ANONYMOUS_USER_ID) | Q(id=request.user.id) + filter_query = Q(username__icontains=filter) if filter else Q() + user_list = User.objects.exclude(query).filter(filter_query) + + if id_group: + group = Group.objects.get(id=id_group) + members_list = group.user_set.all() + for u in user_list: + if u in members_list: + u.member = True + if u.has_perm('change_group', group): + u.admin = True + + return render_to_response("ldt/ldt_utils/partial/userslist.html", {'user_list': user_list}, + context_instance=RequestContext(request)) @login_required def contents_filter(request, filter): @@ -1107,8 +1127,7 @@ media.save() - if form_status != "error": - #try: + if form_status != "error": content_defaults = {} content_defaults.update(content_form.cleaned_data) content_defaults['media_obj'] = media