--- a/src/ldt/ldt/ldt_utils/forms.py Thu Dec 01 14:49:10 2011 +0100
+++ b/src/ldt/ldt/ldt_utils/forms.py Fri Dec 02 10:50:35 2011 +0100
@@ -48,7 +48,8 @@
content_creation_date = forms.SplitDateTimeField(widget=ldt_widgets.LdtSplitDateTime, required=False, label=_("content.content_creation_date"))
media_input_type = forms.ChoiceField(required=False, label=_("content.media_input_type"), choices=(("upload", _("file_upload")), ("url", _("url")), ("link", _("existing_media")), ("create", _("create_media")), ("none", _("none_media"))))
groups = forms.ModelMultipleChoiceField(Group.objects.all(), required=False)
-
+ is_public = forms.BooleanField(required=False)
+
def clean_iri_id(self):
data = self.cleaned_data.get('iri_id')
if not data:
--- a/src/ldt/ldt/ldt_utils/models.py Thu Dec 01 14:49:10 2011 +0100
+++ b/src/ldt/ldt/ldt_utils/models.py Fri Dec 02 10:50:35 2011 +0100
@@ -4,7 +4,7 @@
from django.utils.translation import ugettext_lazy as _
#from ldt.core.models import Document, Owner
from ldt.core.models import Document
-from guardian.shortcuts import assign, remove_perm
+from guardian.shortcuts import assign, remove_perm, get_perms
import ldt.indexation
from ldt.security.models import SafeModel
from ldt.security.manager import SafeManager
@@ -307,6 +307,27 @@
external_id = property(**external_id())
+ def is_public(): #@NoSelf
+
+ def fget(self):
+ everyone = Group.objects.get(name=settings.PUBLIC_GROUP_NAME)
+ if 'view_content' in get_perms(everyone, self):
+ return True
+ return False
+
+ def fset(self, value):
+ everyone = Group.objects.get(name=settings.PUBLIC_GROUP_NAME)
+ if value:
+ assign('view_content', everyone, self)
+ else:
+ remove_perm('view_content', everyone, self)
+
+ return locals()
+
+ is_public = property(**is_public())
+
+
+
class Project(Document, SafeModel):
STATE_CHOICES = (
(1, 'edition'),
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html Thu Dec 01 14:49:10 2011 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html Fri Dec 02 10:50:35 2011 +0100
@@ -48,6 +48,23 @@
"{% url ldt.ldt_utils.views.get_duration %}");
});
+ $(document).ready(function () {
+
+ $("#public input").click(function () {
+
+ if ($(this).is(':checked')) {
+ $('.cellcheckbox input').attr('checked', false);
+ $('.cellcheckbox input').attr('disabled', true);
+ $('.perm_read, .perm_write').removeClass('pointer').removeClass('bold');
+ } else {
+ $('.cellcheckbox input').removeAttr('disabled');
+ $('.pointer').unbind('click');
+
+ activate_rw_events();
+ }
+ });
+ });
+
</script>
{% endblock %}
@@ -93,6 +110,7 @@
<div>{{ content_form.description.errors }}{{ content_form.description.label_tag }}{{content_form.description}}</div>
<div>{{ media_form.external_id.errors }}{{ media_form.external_id.label_tag }}{{media_form.external_id}}</div>
<div>{{ media_form.external_publication_url.errors }}{{ media_form.external_publication_url.label_tag }}{{media_form.external_publication_url}}</div>
+ <div id="public">{{ content_form.is_public }}<label>{% trans "publish for everyone" %}</label></div>
</div>
<div id="contentright" class="span-9 last" >
<div>{{ content_form.external_id.errors }}{{ content_form.external_id.label_tag }}{{content_form.external_id}}</div>
@@ -113,8 +131,7 @@
<div id="media_field_url" class="media_fields">{{ media_form.external_src_url.errors }}{{ media_form.external_src_url.label_tag }}{{ media_form.external_src_url }}</div>
<div id="media_field_create" class="media_fields">{{ media_form.src.errors }}{{ media_form.src.label_tag }}{{ media_form.src }}</div>
</div>
- </div>
-
+ </div>
{% include "ldt/ldt_utils/partial/permissions.html" %}
</div>
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_ldt.html Thu Dec 01 14:49:10 2011 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_ldt.html Fri Dec 02 10:50:35 2011 +0100
@@ -78,8 +78,8 @@
{% endblock %}
{% block body %}
- <div id="add_contribution" class="span-23 last">
- <div class="projectscontentstitle span-23 last">{% if ldt_id %}{% trans "Update your project" %}{% else %}{% trans "Create your project" %}{% endif %}</div>
+ <div id="add_contribution" class="span-20 last">
+ <div class="projectscontentstitle span-20 last">{% if ldt_id %}{% trans "Update your project" %}{% else %}{% trans "Create your project" %}{% endif %}</div>
<form action="{{create_project_action}}" method="POST" {% if target_parent %}target="_parent"{% endif %}>
{% csrf_token %}
<input type="hidden" name="form_status" value="{{form_status}}" id="project_form_status" />
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/permissions.html Thu Dec 01 14:49:10 2011 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/permissions.html Fri Dec 02 10:50:35 2011 +0100
@@ -19,9 +19,8 @@
});
}
- $(document).ready(function() {
-
- $(".pointer").live("click", function () {
+ function activate_rw_events() {
+ $(".pointer").live('click', function () {
var group_name = $(this).attr('value');
var group_id = group_name.split('_').pop();
@@ -36,8 +35,8 @@
$(".perm_field",$(this).closest('tr')).attr('value', perm);
});
-
- $(".checkbox_group").bind("change", function() {
+
+ $(".checkbox_group").live('change', function() {
var line = $(this).closest('tr');
$(".perm_read, .perm_write", line).removeClass("bold");
@@ -49,11 +48,13 @@
$(".perm_read", line).addClass('bold');
$(".perm_read, .perm_write", line).addClass('pointer');
}
- });
-
+ });
+ }
+
+ $(document).ready(function() {
check_uncheck_all("group");
- activate_initial_permissions();
-
+ activate_initial_permissions();
+ activate_rw_events();
});
</script>
--- a/src/ldt/ldt/ldt_utils/views.py Thu Dec 01 14:49:10 2011 +0100
+++ b/src/ldt/ldt/ldt_utils/views.py Fri Dec 02 10:50:35 2011 +0100
@@ -1134,7 +1134,8 @@
mimetype = mimetypes.guess_type(media.src)
media.mimetype_field = mimetype
media.save()
- assign('view_media', request.user, media)
+ assign('view_media', request.user, media)
+ assign('change_media', request.user, media)
if form_status != "error":
content_defaults = {}
@@ -1146,7 +1147,12 @@
assign('change_content', request.user, content)
assign('view_content', request.user, content)
- assign_object_to_groups(content, group_form.cleaned_data)
+ everyone = Group.objects.get(name=settings.PUBLIC_GROUP_NAME)
+ if content_form.cleaned_data['is_public']:
+ assign('view_content', everyone, content)
+ else:
+ remove_perm('view_content', everyone, content)
+ assign_object_to_groups(content, group_form.cleaned_data)
if not created:
for attribute in ('iriurl', 'title', 'description', 'duration', 'content_creation_date', 'tags', 'media_obj'):
setattr(content, attribute, content_defaults[attribute])
@@ -1159,6 +1165,8 @@
else:
form_status = 'empty'
initial = { 'media_input_type':"link"}
+ if instance_content:
+ initial['is_public'] = instance_content.is_public
content_form = ContentForm(prefix="content", instance=instance_content, initial=initial)
media_form = MediaForm(prefix="media", instance=instance_media)
@@ -1218,7 +1226,8 @@
session_key = request.COOKIES[settings.SESSION_COOKIE_NAME]
cookie_name = settings.SESSION_COOKIE_NAME
- content_form.fields["media_obj"].queryset = Media.safe_objects.all()
+
+ content_form.fields["media_obj"].queryset = Media.safe_objects.all()
return render_to_response('ldt/ldt_utils/create_content.html', {'content_form': content_form, 'media_form': media_form, 'form_status': form_status, 'create_content_action': create_content_action,
'management_form': management_form, 'group_form': group_form, 'iri_id': iri_id, 'session_key':session_key, 'cookie_name':cookie_name}, context_instance=RequestContext(request))
Binary file src/ldt/ldt/locale/en/LC_MESSAGES/django.mo has changed
--- a/src/ldt/ldt/locale/en/LC_MESSAGES/django.po Thu Dec 01 14:49:10 2011 +0100
+++ b/src/ldt/ldt/locale/en/LC_MESSAGES/django.po Fri Dec 02 10:50:35 2011 +0100
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-30 14:13+0100\n"
+"POT-Creation-Date: 2011-12-02 10:40+0100\n"
"PO-Revision-Date: 2010-02-17 03:53+0100\n"
"Last-Translator: Yves-Marie Haussonne <ymh.work@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -166,11 +166,11 @@
msgid "content.duration"
msgstr "duration (ms)"
-#: .\ldt_utils\models.py:324
+#: .\ldt_utils\models.py:345
msgid "created by"
msgstr "created by"
-#: .\ldt_utils\models.py:325
+#: .\ldt_utils\models.py:346
msgid "changed by"
msgstr "changed by"
@@ -178,7 +178,7 @@
msgid "Personal cutting"
msgstr "Personal cutting"
-#: .\ldt_utils\views.py:122 .\ldt_utils\views.py:665 .\ldt_utils\views.py:711
+#: .\ldt_utils\views.py:123 .\ldt_utils\views.py:665 .\ldt_utils\views.py:711
msgid "You can not access this project"
msgstr "You can not access this project"
@@ -204,35 +204,35 @@
msgid "confirm deletion"
msgstr "Confirm deletion"
-#: .\ldt_utils\views.py:1104
+#: .\ldt_utils\views.py:1103
msgid "Problem when downloading file from url : "
msgstr "Problem when downloading file from url: "
-#: .\ldt_utils\views.py:1107
+#: .\ldt_utils\views.py:1106
msgid "Problem when uploading file : "
msgstr "Problem when uploading file: "
-#: .\ldt_utils\views.py:1181
+#: .\ldt_utils\views.py:1189
#, python-format
msgid "There is %(count)d error when deleting content"
msgid_plural "There are %(count)d errors when deleting content"
msgstr[0] "There is %(count)d error when deleting content"
msgstr[1] "There are %(count)d errors when deleting content"
-#: .\ldt_utils\views.py:1182
+#: .\ldt_utils\views.py:1190
msgid "title error deleting content"
msgstr "Error when deleting content"
-#: .\ldt_utils\views.py:1184
+#: .\ldt_utils\views.py:1192
#, python-format
msgid "Confirm delete content %(titles)s"
msgstr "Confirm delete content %(titles)s"
-#: .\ldt_utils\views.py:1185
+#: .\ldt_utils\views.py:1193
msgid "confirm delete content"
msgstr "Confirm delete content"
-#: .\ldt_utils\views.py:1239
+#: .\ldt_utils\views.py:1249
#, python-format
msgid ""
"Content '%(title)s' is referenced by this project : %(project_titles)s. "
@@ -314,7 +314,7 @@
msgid "Cancel upload"
msgstr "Cancel upload"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:58
+#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:73
msgid ""
"The operation could not be performed because one or more error(s) occurred."
"<br />Please resubmit the content form after making the following changes:"
@@ -322,7 +322,7 @@
"The operation could not be performed because one or more error(s) occurred."
"<br />Please resubmit the content form after making the following changes:"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:68
+#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:83
msgid ""
"The operation could not be performed because one or more error(s) occurred."
"<br />Please resubmit the media form after making the following changes:"
@@ -330,36 +330,40 @@
"The operation could not be performed because one or more error(s) occurred."
"<br />Please resubmit the media form after making the following changes:"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:78
+#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:93
#: .\ldt_utils\templates\ldt\ldt_utils\workspace_base.html.py:54
msgid "Create content"
msgstr "Create content"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:125
+#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:111
+msgid "publish for everyone"
+msgstr "publish for everyone"
+
+#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:140
msgid "media file is being processed please wait."
msgstr "media file is being processed please wait."
-#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:129
+#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:144
#: .\ldt_utils\templates\ldt\ldt_utils\create_group.html.py:111
#: .\ldt_utils\templates\ldt\ldt_utils\create_ldt.html.py:128
#: .\ldt_utils\templates\ldt\ldt_utils\error_confirm.html.py:52
msgid "close_cancel"
msgstr "Close"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:130
+#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:145
msgid "delete"
msgstr "Approve delete"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:131
+#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:146
msgid "write"
msgstr "Write"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_group.html.py:60
+#: .\ldt_utils\templates\ldt\ldt_utils\create_group.html.py:53
#: .\templates\ldt\ldt_raw_base.html.py:18
msgid "check all"
msgstr "check all"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_group.html.py:61
+#: .\ldt_utils\templates\ldt\ldt_utils\create_group.html.py:54
#: .\templates\ldt\ldt_raw_base.html.py:19
msgid "uncheck all"
msgstr "uncheck all"
@@ -606,33 +610,33 @@
msgid "Leave this group"
msgstr "Create a group"
-#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:59
+#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:63
#, fuzzy
msgid "group list"
msgstr "Projects"
-#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:72
+#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:76
msgid "nom"
msgstr ""
-#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:73
+#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:77
#: .\user\admin.py:26
msgid "Permissions"
msgstr "Permissions"
-#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:83
+#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:87
msgid "This group can read the project"
msgstr "This group can read the project"
-#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:83
+#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:87
msgid "perm.read"
msgstr "read"
-#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:84
+#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:88
msgid "This group can change the project"
msgstr "You can change the project"
-#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:84
+#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:88
msgid "perm.write"
msgstr "write"
@@ -679,7 +683,7 @@
msgid "Check to include this user in the group"
msgstr "Check to include this user in the group"
-#: .\ldt_utils\templates\ldt\ldt_utils\partial\userslist.html.py:22
+#: .\ldt_utils\templates\ldt\ldt_utils\partial\userslist.html.py:24
msgid "Check to give this user the right to change the group"
msgstr "Check to give this user the right to change the group"
Binary file src/ldt/ldt/locale/fr/LC_MESSAGES/django.mo has changed
--- a/src/ldt/ldt/locale/fr/LC_MESSAGES/django.po Thu Dec 01 14:49:10 2011 +0100
+++ b/src/ldt/ldt/locale/fr/LC_MESSAGES/django.po Fri Dec 02 10:50:35 2011 +0100
@@ -7,7 +7,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-11-30 14:13+0100\n"
+"POT-Creation-Date: 2011-12-02 10:40+0100\n"
"PO-Revision-Date: 2010-03-09 15:52+0100\n"
"Last-Translator: Yves-Marie Haussonne <ymh.work@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -166,11 +166,11 @@
msgid "content.duration"
msgstr "Durée (ms)"
-#: .\ldt_utils\models.py:324
+#: .\ldt_utils\models.py:345
msgid "created by"
msgstr "créé par"
-#: .\ldt_utils\models.py:325
+#: .\ldt_utils\models.py:346
msgid "changed by"
msgstr "modifié par"
@@ -178,7 +178,7 @@
msgid "Personal cutting"
msgstr "Découpages personnels"
-#: .\ldt_utils\views.py:122 .\ldt_utils\views.py:665 .\ldt_utils\views.py:711
+#: .\ldt_utils\views.py:123 .\ldt_utils\views.py:665 .\ldt_utils\views.py:711
msgid "You can not access this project"
msgstr "vous n'avez pas l'autorisation d'accéder à ce projet"
@@ -205,35 +205,35 @@
msgid "confirm deletion"
msgstr "Confirmation d'effacement"
-#: .\ldt_utils\views.py:1104
+#: .\ldt_utils\views.py:1103
msgid "Problem when downloading file from url : "
msgstr "Problème lors du téléchargement du fichier : "
-#: .\ldt_utils\views.py:1107
+#: .\ldt_utils\views.py:1106
msgid "Problem when uploading file : "
msgstr "Problème lors de l'upload du fichier : "
-#: .\ldt_utils\views.py:1181
+#: .\ldt_utils\views.py:1189
#, python-format
msgid "There is %(count)d error when deleting content"
msgid_plural "There are %(count)d errors when deleting content"
msgstr[0] "Il y a %(count)d erreur lors de l'effacement du contenu"
msgstr[1] "Il y a %(count)d erreurs lors de l'effacement du contenu"
-#: .\ldt_utils\views.py:1182
+#: .\ldt_utils\views.py:1190
msgid "title error deleting content"
msgstr "Erreur lors de l'effacement du contenu"
-#: .\ldt_utils\views.py:1184
+#: .\ldt_utils\views.py:1192
#, python-format
msgid "Confirm delete content %(titles)s"
msgstr "Veuillez confirmer l'effacement du contenu %(titles)s"
-#: .\ldt_utils\views.py:1185
+#: .\ldt_utils\views.py:1193
msgid "confirm delete content"
msgstr "Confirmation effacement contenu"
-#: .\ldt_utils\views.py:1239
+#: .\ldt_utils\views.py:1249
#, python-format
msgid ""
"Content '%(title)s' is referenced by this project : %(project_titles)s. "
@@ -314,7 +314,7 @@
msgid "Cancel upload"
msgstr "Annuler le téléversement"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:58
+#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:73
msgid ""
"The operation could not be performed because one or more error(s) occurred."
"<br />Please resubmit the content form after making the following changes:"
@@ -322,7 +322,7 @@
"Opération impossible à cause d'une ou plusieurs erreurs.<br />Veuillez "
"resoumettre le formulaire contenu après avoir fait les changements suivants:"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:68
+#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:83
msgid ""
"The operation could not be performed because one or more error(s) occurred."
"<br />Please resubmit the media form after making the following changes:"
@@ -330,36 +330,40 @@
"opération impossible à cause d'une ou plusieurs erreurs.<br />Veuillez "
"resoumettre le formulaire media après avoir fait les changements suivants:"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:78
+#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:93
#: .\ldt_utils\templates\ldt\ldt_utils\workspace_base.html.py:54
msgid "Create content"
msgstr "Créer un contenu"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:125
+#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:111
+msgid "publish for everyone"
+msgstr "publier pour tout le monde"
+
+#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:140
msgid "media file is being processed please wait."
msgstr "Le fichier média est en cours de traitement. Veuillez patienter."
-#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:129
+#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:144
#: .\ldt_utils\templates\ldt\ldt_utils\create_group.html.py:111
#: .\ldt_utils\templates\ldt\ldt_utils\create_ldt.html.py:128
#: .\ldt_utils\templates\ldt\ldt_utils\error_confirm.html.py:52
msgid "close_cancel"
msgstr "Fermer"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:130
+#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:145
msgid "delete"
msgstr "Effacer"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:131
+#: .\ldt_utils\templates\ldt\ldt_utils\create_content.html.py:146
msgid "write"
msgstr "Enregistrer"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_group.html.py:60
+#: .\ldt_utils\templates\ldt\ldt_utils\create_group.html.py:53
#: .\templates\ldt\ldt_raw_base.html.py:18
msgid "check all"
msgstr "Tout cocher"
-#: .\ldt_utils\templates\ldt\ldt_utils\create_group.html.py:61
+#: .\ldt_utils\templates\ldt\ldt_utils\create_group.html.py:54
#: .\templates\ldt\ldt_raw_base.html.py:19
msgid "uncheck all"
msgstr "Tout décocher"
@@ -597,32 +601,32 @@
msgid "Leave this group"
msgstr "Quitter ce groupe"
-#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:59
+#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:63
msgid "group list"
msgstr "Liste des groupes"
-#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:72
+#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:76
msgid "nom"
msgstr "nom"
-#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:73
+#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:77
#: .\user\admin.py:26
msgid "Permissions"
msgstr "Permissions"
-#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:83
+#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:87
msgid "This group can read the project"
msgstr "Ce groupe peut lire le projet"
-#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:83
+#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:87
msgid "perm.read"
msgstr "lecture"
-#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:84
+#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:88
msgid "This group can change the project"
msgstr "Ce groupe peut changer le projet"
-#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:84
+#: .\ldt_utils\templates\ldt\ldt_utils\partial\permissions.html.py:88
msgid "perm.write"
msgstr "écriture"
@@ -669,7 +673,7 @@
msgid "Check to include this user in the group"
msgstr "Cocher pour inclure cet utilisateur dans le groupe"
-#: .\ldt_utils\templates\ldt\ldt_utils\partial\userslist.html.py:22
+#: .\ldt_utils\templates\ldt\ldt_utils\partial\userslist.html.py:24
msgid "Check to give this user the right to change the group"
msgstr "Cocher pour donner à cet utilisateur le droit de modifier le groupe"