--- 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 }}
- <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}/js/jquery.nyroModal.min.js"></script>
- {{ content_form.media.js }}
+ <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}/js/jquery.nyroModal.min.js"></script>
+ <script type="text/javascript" src="{{LDT_MEDIA_PREFIX}}js/projectscontents.js" ></script>
+ {{ 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);
+
});
</script>
{% endblock %}
{% block body %}
+
<div id="add_contribution" class="span-12 last">
<div class="projectscontentstitle span-12 last">{% if group_id %}{% trans "Update a group" %}{% else %}{% trans "Create a group" %}{% endif %}</div>
+
+ <div class="span-4 last searchfielddiv" style="margin-top: 15px;float: right;" >
+ <div class="searchfield rounded"><input style="background: white; width: 100px;" id="searchusersinput" class="searchfieldinput searchfieldinputbase" value="{% trans 'search' %}" type="text" /><img id="projectsajaxloader" class="searchajaxloader" src="{{LDT_MEDIA_PREFIX}}/img/ajax-loader-16x16.gif" alt="loader"/><img id="projecsclear" class="searchclear" src="{{LDT_MEDIA_PREFIX}}img/clear-left.png"/></div>
+ </div>
+
<form action="{% if group_id %}{% url ldt.ldt_utils.views.update_group group_id %} {% else %}{% url ldt.ldt_utils.views.create_group %}{% endif %}" method="POST" {% if target_parent %}target="_parent"{% endif %}>
{% csrf_token %}
<input type="hidden" name="form_status" value="{{form_status}}" id="project_form_status" />
+ <input type="hidden" name="id_group" value="{{ group_id }}" id="id_group"/>
<label for="name">{% trans "Name" %}:</label>
{{form.name}}
{% for error in form.errors.name %}
<span class="error">{{ error }}</span>
{% endfor %}
- <label>{% trans "List of members" %}:</label>
- <div class="span-12 last projectscontentsdiv" id="ldtcreatecontentslistcontainer">
- <div class="span-12 last projectscontentstablediv" id="ldtcreatecontentstablediv">
- <table class="projectscontentstable">
-
- <tr class="projectscontentsheader last" id="contentslistheader">
- <td class="cellcheckbox">
- {% if user_list|length > 1 %}
- <input class="selectallprojects" id="check_projects" type="checkbox" />
- {% endif %}
- </td>
- <td class="projectcontentsheadertitle">{% trans "name" %}</td>
- <td class="projectcontentsheadertitle">{% trans "admin" %}</td>
- </tr>
-
- <tbody class="projectscontentsbody">
- {% for user in user_list %}
- <td class="cellcheckbox"><input type="checkbox" name="members_list" value="{{ user.id }}" title="{% trans "Check to include this user in the group" %}" {% if user.member %}checked="checked"{% endif %}/></td>
- <td class="contenttitle">{{ user.username }}</td>
- <td class="cellcheckbox"><input type="checkbox" name="admin_list" value="{{ user.id }}" title="{% trans "Check to give this user the right to change the group" %}" {% if user.admin %}checked="checked"{% endif %}/></td>
- </tr>
- {% endfor %}
-
- </tbody>
- </table>
- </div>
+
+
+ <div id="userslistcontainer">
+ {% include "ldt/ldt_utils/partial/userslist.html" %}
</div>
<div id="submitcontent-buttons" class="span-12 last">
--- /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 %}
+
+<label>{% trans "List of members" %}:</label>
+<div class="span-12 last projectscontentsdiv" id="ldtcreatecontentslistcontainer">
+ <div class="span-12 last projectscontentstablediv">
+ <table class="projectscontentstable">
+
+ <tr class="projectscontentsheader last" id="contentslistheader">
+ <td class="cellcheckbox">
+ {% if user_list|length > 1 %}
+ <input class="selectallprojects" id="check_projects" type="checkbox" />
+ {% endif %}
+ </td>
+ <td class="projectcontentsheadertitle">{% trans "name" %}</td>
+ <td class="projectcontentsheadertitle">{% trans "admin" %}</td>
+ </tr>
+
+ <tbody class="projectscontentsbody">
+ {% for user in user_list %}
+ <td class="cellcheckbox"><input type="checkbox" name="members_list" value="{{ user.id }}" title="{% trans "Check to include this user in the group" %}" {% if user.member %}checked="checked"{% endif %}/></td>
+ <td class="contenttitle">{{ user.username }}</td>
+ <td class="cellcheckbox"><input type="checkbox" name="admin_list" value="{{ user.id }}" title="{% trans "Check to give this user the right to change the group" %}" {% if user.admin %}checked="checked"{% endif %}/></td>
+ </tr>
+ {% endfor %}
+
+ </tbody>
+ </table>
+ </div>
+</div>
--- 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<filter>[\w\%\_\-\+]*?)/(?P<is_owner>true|false)/(?P<status>\d)/(?P<id_group>.*)$', "views.projects_filter",),
url(r'^filtercontents/_(?P<filter>[\w\%\_\-\+]*?)/$', "views.contents_filter",),
url(r'^filtergroups/_(?P<filter>[\w\%\_\-\+]*?)/$', "views.groups_filter",),
+ url(r'filterusers/_(?P<filter>[\w\%\_\-\+]*?)/(?P<id_group>.*)$', "views.users_filter"),
(r'^embedpopup/?$', "views.popup_embed"),
url(r'^segment/(?P<project_id>.*)/(?P<content_id>.*)/(?P<ensemble_id>.*)/(?P<cutting_id>.*)/(?P<segment_id>.*)/$', 'views.index_segment'),
url(r'^segmentInit/(?P<project_id>.*)/(?P<content_id>.*)/(?P<ensemble_id>.*)/(?P<cutting_id>.*)/(?P<segment_id>.*)/$', 'views.init_segment'),
--- 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