# HG changeset patch # User verrierj # Date 1320399107 -3600 # Node ID 535ce952e51cda588038658aeb11ecfec539ef1f # Parent 39d97d561c60e846e38c6159c0deb70310a99eca Stub of html template for project creation containing a group selection diff -r 39d97d561c60 -r 535ce952e51c src/ldt/ldt/ldt_utils/models.py --- a/src/ldt/ldt/ldt_utils/models.py Fri Oct 28 16:45:37 2011 +0200 +++ b/src/ldt/ldt/ldt_utils/models.py Fri Nov 04 10:31:47 2011 +0100 @@ -114,7 +114,7 @@ class Meta: ordering = ["title"] permissions = ( - ('view_content', 'View Content'), + ('view_content', 'Can view Content'), ) def natural_key(self): @@ -291,11 +291,19 @@ return locals() external_id = property(**external_id()) + +class MyManager(models.Manager): + + def get_query_set(self, *args, **kwargs): + return super(MyManager, self).get_query_set(*args, **kwargs) class SafeManager(models.Manager): - user = None - checker = None + def __init__(self, model_name): + super(SafeManager, self).__init__() + self.user = None + self.checker = None + self.model_name = model_name def check_perm_for(self, user): self.user = user @@ -312,7 +320,7 @@ if not self.has_user(): raise AttributeError("A user has to be chosen to check permissions.") - res = get_objects_for_user(self.user, 'ldt_utils.view_project') + res = get_objects_for_user(self.user, 'ldt_utils.view_%s' % self.model_name) return res @@ -335,12 +343,12 @@ state = models.IntegerField(choices=STATE_CHOICES, default=1) description = models.TextField(null=True, blank=True) objects = models.Manager() - objects_safe = SafeManager() + objects_safe = SafeManager('project') class Meta: ordering = ["title"] permissions = ( - ('view_project', 'View Project'), + ('view_project', 'Can view project'), ) @@ -393,11 +401,11 @@ project.changed_by = user.username project.state = 1 project.save() + assign('view_project', user, project) + assign('change_project', user, project) for content in contents: project.contents.add(content) project.save() - assign('view_project', user, project) - assign('change_project', user, project) return create_ldt(project, user) def copy_project(self, user, title, description=''): diff -r 39d97d561c60 -r 535ce952e51c 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 Fri Oct 28 16:45:37 2011 +0200 +++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_ldt.html Fri Nov 04 10:31:47 2011 +0100 @@ -21,32 +21,80 @@ width:390px; height: 100px; } - + + #lefttable { + float: left; + } + + #righttable { + } + + .choice { + font-weight: bold; + } + + .permission { + cursor: pointer; + text-decoration: none; + color: black; + } + + .permcol { + width: 100px; + } + {% endblock %} {% block js_declaration %} {{ block.super }} @@ -72,8 +120,9 @@ {% endblock %} {% block body %} -
-
{% if ldt_id %}{% trans "Update your project" %}{% else %}{% trans "Create your project" %}{% endif %}
+
+ +
{% if ldt_id %}{% trans "Update your project" %}{% else %}{% trans "Create your project" %}{% endif %}
{% csrf_token %} @@ -81,37 +130,75 @@ {{form.title}} {{form.description}} - -
-
- - - - - - - - - {% for content in contents %} - - - - - {% endfor %} - -
- {% if not ldt_id %} - {% if contents|length > 1 %} - - {% endif %} - {% endif %} - {% trans "name" %}
{{ content.title }}
+ +
+ + +
+
+ + + + + + + + + {% for content in contents %} + + + + + {% endfor %} + +
+ {% if not ldt_id %} + {% if contents|length > 1 %} + + {% endif %} + {% endif %} + {% trans "name" %}
{{ content.title }}
+
- - -
+
+ + +
+ -
+
+
+ + + + + + + + + + + {% for group in groups %} + + + + + + {% endfor %} + + +
+ {% if groups|length > 1 %} + + {% endif %} + {% trans "nom" %}{% trans "Permissions" %}
{{ group.name }}{% trans "perm.read" %} {% trans "perm.write" %}
+
+
+ +
+ + +
{% if ldt_id %} @@ -119,9 +206,12 @@ {% else %} {% endif %} -
- -
+
+ + +
+ +
{% endblock %} diff -r 39d97d561c60 -r 535ce952e51c src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/groups.html --- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/groups.html Fri Oct 28 16:45:37 2011 +0200 +++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/groups.html Fri Nov 04 10:31:47 2011 +0100 @@ -22,10 +22,10 @@ $(".update_group_projects").click(function(){ //alert("group id = " + $(this).attr('id') + ", url = " + get_group_projects_url); id_group = $(this).attr('id'); - // Remove the icons from all the lines - $(".next_icon").hide(); - // Display the icon from the good line - $(".next_icon",this).show(); + // Remove icons from all the lines + $(".next_icon, td .create_group").hide(); + // Display icons from the good line + $(".next_icon, .create_group",this).show(); // Show the search textfield and update the id_group in the hidden input $('#search_div').show(); $('#id_group').val(id_group); @@ -44,8 +44,6 @@ }, error: function(jqXHR, textStatus, errorThrown) { alert(jqXHR.responseText); - resp = $.parseJSON(jqXHR.responseText); - alert(resp.message); } }); }); @@ -91,6 +89,9 @@
{% trans "The group's projects" %}
+
{% include "ldt/ldt_utils/partial/projectslist.html" %} diff -r 39d97d561c60 -r 535ce952e51c src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/projectslist.html --- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/projectslist.html Fri Oct 28 16:45:37 2011 +0200 +++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/projectslist.html Fri Nov 04 10:31:47 2011 +0100 @@ -25,9 +25,9 @@ {% ifequal project.state 2 %} - {% if show_username %}{{ project.owner.username }} : {% endif %} {{ project.title }} + {% if show_username %}{{ project.owner.username }} : {% endif %}{{ project.title }} {% else %} - {% if show_username %}{{ project.owner.username }} : {% endif %}{{ project.title }} + {% if show_username %}{{ project.owner.username }} : {% endif %}{{ project.title }} {% endifequal %} diff -r 39d97d561c60 -r 535ce952e51c src/ldt/ldt/ldt_utils/views.py --- a/src/ldt/ldt/ldt_utils/views.py Fri Oct 28 16:45:37 2011 +0200 +++ b/src/ldt/ldt/ldt_utils/views.py Fri Nov 04 10:31:47 2011 +0100 @@ -41,7 +41,6 @@ import re import datetime - @login_required @group_security def workspace(request): @@ -397,6 +396,7 @@ form = LdtAddForm(request.POST) form_status = "none" contents = Content.objects.all() + groups = request.user.groups.all() if form.is_valid(): user = request.user @@ -406,9 +406,10 @@ else: form = LdtAddForm() contents = Content.objects.all() #@UndefinedVariable + groups = request.user.groups.all() form_status = "none" - return render_to_response('ldt/ldt_utils/create_ldt.html', {'contents': contents, 'form': form, 'form_status':form_status, 'create_project_action':reverse(create_ldt_view), 'language_code' : settings.LANGUAGE_CODE[2:]}, context_instance=RequestContext(request)) + return render_to_response('ldt/ldt_utils/create_ldt.html', {'contents': contents, 'groups': groups, 'form': form, 'form_status':form_status, 'create_project_action':reverse(create_ldt_view), 'language_code' : settings.LANGUAGE_CODE[2:]}, context_instance=RequestContext(request)) def created_ldt(request): return render_to_response('ldt/ldt_utils/save_done.html', context_instance=RequestContext(request)) @@ -774,6 +775,7 @@ project = get_object_or_404(Project, ldt_id=ldt_id) contents = project.contents.all() + groups = request.user.groups.all() if request.method == "POST" : submit_action = request.REQUEST.get("submit_button", False) if submit_action == "prepare_delete": @@ -808,7 +810,7 @@ form = AddProjectForm({'title':unicode(project.title), 'description':unicode(project.get_description())}) form_status = 'none' - return render_to_response('ldt/ldt_utils/create_ldt.html', {'form':form, 'form_status':form_status, 'ldt_id': ldt_id, 'contents':contents, 'create_project_action':reverse("ldt.ldt_utils.views.update_project", args=[ldt_id])}, context_instance=RequestContext(request)) + return render_to_response('ldt/ldt_utils/create_ldt.html', {'form':form, 'form_status':form_status, 'groups': groups, 'ldt_id': ldt_id, 'contents':contents, 'create_project_action':reverse("ldt.ldt_utils.views.update_project", args=[ldt_id])}, context_instance=RequestContext(request)) @login_required @@ -1137,6 +1139,7 @@ @login_required +@group_security def get_group_projects(request): # Get group, user and project_list @@ -1184,7 +1187,7 @@ group = get_object_or_404(Group, id=group_id) - user_list = User.objects.exclude(username='AnonymousUser').exclude(id=request.user.id) + user_list = User.objects.exclude(id=settings.ANONYMOUS_USER_ID).exclude(id=request.user.id) members_list = User.objects.filter(groups__id=group_id) form_status = '' @@ -1213,8 +1216,7 @@ group.name = name for user in User.objects.all(): - if user in members_list: - + if user in members_list: group.user_set.add(user) else: group.user_set.remove(user) diff -r 39d97d561c60 -r 535ce952e51c src/ldt/ldt/static/ldt/css/workspace.css --- a/src/ldt/ldt/static/ldt/css/workspace.css Fri Oct 28 16:45:37 2011 +0200 +++ b/src/ldt/ldt/static/ldt/css/workspace.css Fri Nov 04 10:31:47 2011 +0100 @@ -201,6 +201,6 @@ margin-top: 20px; } -.next_icon { +.next_icon, tr .create_group { display: none; }