# HG changeset patch # User verrierj # Date 1322671062 -3600 # Node ID 47c83e79e3c495a1e8b2a959662a9e4f822b8496 # Parent eba92ea3228147eed7608e0fcc1578e981f0b346 Improve css + fix minor bugs diff -r eba92ea32281 -r 47c83e79e3c4 src/ldt/ldt/ldt_utils/models.py --- a/src/ldt/ldt/ldt_utils/models.py Wed Nov 30 14:15:17 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/models.py Wed Nov 30 17:37:42 2011 +0100 @@ -386,7 +386,6 @@ assign('change_project', user, project) for content in contents: project.contents.add(content) - project.save() return create_ldt(project, user) def copy_project(self, user, title, description='', group=None): @@ -398,7 +397,6 @@ assign('view_project', group, project) for content in self.contents.all(): project.contents.add(content) - project.save() return project def publish(self): diff -r eba92ea32281 -r 47c83e79e3c4 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 Wed Nov 30 14:15:17 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_group.html Wed Nov 30 17:37:42 2011 +0100 @@ -8,8 +8,7 @@ {{ block.super }} - {{ content_form.media.js }} - + {{ content_form.media.js }} {% endblock %} {% block css_import %} @@ -42,13 +41,7 @@ is_admin.prop('checked', false); } }); - - 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); + } $(document).ready(function() { @@ -75,6 +68,13 @@ members_checkboxes.trigger("change"); }); + 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); + init_events(null); @@ -85,11 +85,11 @@ {% block body %} -
+
{% if group_id %}{% trans "Update a group" %}{% else %}{% trans "Create a group" %}{% endif %}
-
-
loader
+
+
loader
diff -r eba92ea32281 -r 47c83e79e3c4 src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_ldt.html --- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_ldt.html Wed Nov 30 14:15:17 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_ldt.html Wed Nov 30 17:37:42 2011 +0100 @@ -68,7 +68,7 @@ theme_advanced_buttons3 : "", theme_advanced_toolbar_location : "top", theme_advanced_toolbar_align : "left", - width: "630", + width: "665", height: "150" }); @@ -91,11 +91,11 @@ {{form.description}} -
+
-
-
+
+
diff -r eba92ea32281 -r 47c83e79e3c4 src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/permissions.html --- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/permissions.html Wed Nov 30 14:15:17 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/permissions.html Wed Nov 30 17:37:42 2011 +0100 @@ -6,6 +6,7 @@ $("#grouplist tr").each(function (e) { if ($("input[type=checkbox]", $(this)).is(":checked")) { var perm = $(".perm_field", $(this)).val(); + var line = $(this).closest("tr"); if (perm) { $(".perm_read, .perm_write", $(this)).addClass("pointer"); } @@ -39,6 +40,8 @@ $(".checkbox_group").bind("change", function() { var line = $(this).closest('tr'); + $(".perm_read, .perm_write", line).removeClass("bold"); + if (!$(this).is(":checked")) { $(".bold", line).removeClass('bold'); $(".perm_read, .perm_write", line).removeClass('pointer'); @@ -55,11 +58,11 @@ -
+
-
-
+
+
{{ management_form }} diff -r eba92ea32281 -r 47c83e79e3c4 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 Wed Nov 30 14:15:17 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/userslist.html Wed Nov 30 17:37:42 2011 +0100 @@ -19,7 +19,11 @@ {% for user in user_list %} - + {% endfor %} diff -r eba92ea32281 -r 47c83e79e3c4 src/ldt/ldt/ldt_utils/views.py --- a/src/ldt/ldt/ldt_utils/views.py Wed Nov 30 14:15:17 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/views.py Wed Nov 30 17:37:42 2011 +0100 @@ -66,10 +66,11 @@ def groups(request): # get list of all published projects - group_list = request.user.groups.exclude(name=settings.PUBLIC_GROUP_NAME) #@UndefinedVariable + group_list = request.user.groups.exclude(name=settings.PUBLIC_GROUP_NAME) checker = ObjectPermissionChecker(request.user) - group_list = list(group_list.all()) + group_list = sorted(group_list.all(), key=lambda group: group.name.lower()) + for group in group_list: if checker.has_perm('change_group', group): group.change = True @@ -233,6 +234,7 @@ group_list = request.user.groups.all() group_list = group_list.exclude(name=settings.PUBLIC_GROUP_NAME) + group_list = sorted(group_list.all(), key=lambda group: group.name.lower()) checker = ObjectPermissionChecker(request.user) for g in group_list: if checker.has_perm('change_group', g): @@ -379,8 +381,7 @@ # id_list = filter(lambda id: id in id_list, ids_editions) contentList = Content.objects.filter(iri_id__in=id_list) #@UndefinedVariable - projectList = Project.safe_objects.filter(ldt_id__in=projId_list) - + projectList = Project.safe_objects.filter(ldt_id__in=projId_list) ldtgen = LdtUtils() # generate_ldt(contentList, title=u"", author=u"IRI Web", web_url=u"", startSegment=None, projects=None): @@ -455,16 +456,15 @@ form = LdtAddForm(request.POST) form_status = "none" contents = Content.safe_objects.all() - group_form = permission_formset(request.POST) - management_form = None if form.is_valid() and group_form.is_valid(): user = request.user - project = Project.create_project(title=form.cleaned_data['title'], user=user, contents=form.cleaned_data['contents'], - description=form.cleaned_data['description']) - + project = Project.create_project(title=form.cleaned_data['title'], user=user, + contents=form.cleaned_data['contents'], + description=form.cleaned_data['description']) + assign_object_to_groups(project, group_form.cleaned_data) form_status = "saved" is_gecko = ((request.META['HTTP_USER_AGENT'].lower().find("firefox")) > -1); @@ -613,7 +613,7 @@ doc = ldtgen.generate_init([url], 'ldt.ldt_utils.views.' + method, None) library = doc.xpath('/iri/files/library')[0] - for c in Content.objects.all(): + for c in Content.safe_objects.all(): elem = lxml.etree.SubElement(library, 'file') elem.set('src', c.iri_url()) elem.set('video', c.videopath) @@ -1342,7 +1342,7 @@ for user in user_list: user.groups.add(group) - if user in admin_list: + if user in admin_list and user.get_profile().is_regular: assign('change_group', user, group) request.user.groups.add(group) form_status = 'saved' @@ -1355,7 +1355,7 @@ @login_required def update_group(request, group_id): if not request.user.is_regular: - return HttpResponseServerError('

User can leave a group.

') + return HttpResponseServerError('

User can not leave a group.

') group = get_object_or_404(Group, id=group_id) query = Q(id=settings.ANONYMOUS_USER_ID) | Q(id=request.user.id) | Q(is_superuser=True) @@ -1393,7 +1393,7 @@ 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: + if user in admin_list and user.get_profile().is_regular: assign('change_group', user, group) else: remove_perm('change_group', user, group) diff -r eba92ea32281 -r 47c83e79e3c4 src/ldt/ldt/security/middleware.py --- a/src/ldt/ldt/security/middleware.py Wed Nov 30 14:15:17 2011 +0100 +++ b/src/ldt/ldt/security/middleware.py Wed Nov 30 17:37:42 2011 +0100 @@ -1,13 +1,8 @@ -from django.conf import settings from django.core.exceptions import MiddlewareNotUsed from ldt.security.utils import protect_models, unprotect_models, _thread_locals class SecurityMiddleware(object): - def __init__(self): - if not hasattr(settings, 'USE_GROUP_PERMISSIONS') or not settings.USE_GROUP_PERMISSIONS: - raise MiddlewareNotUsed() - def process_request(self, request): if not hasattr(_thread_locals, 'user'): _thread_locals.user = request.user diff -r eba92ea32281 -r 47c83e79e3c4 src/ldt/ldt/security/utils.py --- a/src/ldt/ldt/security/utils.py Wed Nov 30 14:15:17 2011 +0100 +++ b/src/ldt/ldt/security/utils.py Wed Nov 30 17:37:42 2011 +0100 @@ -15,9 +15,12 @@ return getattr(_thread_locals, 'user', None) def protect_models(): - user = get_current_user() - for cls in ToProtect.get_models(): - protect_model(cls, user) + cls_list = ToProtect.get_models() + if cls_list: + user = get_current_user() + for cls in ToProtect.get_models(): + protect_model(cls, user) + def unprotect_models(): for cls in ToProtect.get_models(): @@ -44,8 +47,8 @@ cls.old_save = cls.save cls.old_delete = cls.delete class_name = cls.__name__.lower() - cls.save = change_security(user, class_name)(cls.save) - cls.delete = change_security(user, class_name)(cls.delete) + cls.save = change_security(class_name)(cls.save) + cls.delete = change_security(class_name)(cls.delete) def unprotect_model(cls): if hasattr(cls, 'old_save'): @@ -55,12 +58,12 @@ del cls.old_delete cls.safe_objects.user = None -def change_security(user, cls_name): +def change_security(cls_name): def wrapper(func): def wrapped(self, *args, **kwargs): - if self.pk and not user.has_perm('change_%s' % cls_name, self): - raise AttributeError('User %s is not allowed to change object %s' % (user, self)) + if self.pk and not get_current_user().has_perm('change_%s' % cls_name, self): + raise AttributeError('User %s is not allowed to change object %s' % (get_current_user(), self)) return func(self, *args, **kwargs) return wrapped @@ -98,8 +101,7 @@ else: obj.change = False - return obj_list - + return obj_list def assign_object_to_groups(object, permissions): name = object.__class__.__name__.lower() diff -r eba92ea32281 -r 47c83e79e3c4 src/ldt/ldt/static/ldt/css/ldtform.css --- a/src/ldt/ldt/static/ldt/css/ldtform.css Wed Nov 30 14:15:17 2011 +0100 +++ b/src/ldt/ldt/static/ldt/css/ldtform.css Wed Nov 30 17:37:42 2011 +0100 @@ -4,7 +4,7 @@ min-width: 0; } -#add_content, #add_contribution { +#add_content, #add_contribution, #add_group { padding: 10px; } @@ -36,6 +36,16 @@ border: none; } +#add_group .searchfieldinput { + background: white; + width: 100px; +} + +#add_group .searchfielddiv { + margin-top: 15px; + float: right; +} + label { display: block; margin-top: 0.5em; diff -r eba92ea32281 -r 47c83e79e3c4 src/ldt/ldt/static/ldt/css/workspace.css --- a/src/ldt/ldt/static/ldt/css/workspace.css Wed Nov 30 14:15:17 2011 +0100 +++ b/src/ldt/ldt/static/ldt/css/workspace.css Wed Nov 30 17:37:42 2011 +0100 @@ -162,9 +162,6 @@ padding-right: 16px; } -.permissionscol { -} - .cellimg { width: 18px; text-align: center; @@ -205,4 +202,4 @@ .next_icon, .grouplink { display: none; -} +} \ No newline at end of file
{{ user.username }} + {% if user.get_profile.is_regular %} + + {% endif %} +