# HG changeset patch # User verrierj # Date 1322819435 -3600 # Node ID a35924820af77e4012af3e68173c84f3bad46012 # Parent 491d057cbfd2091f60101180e4a4fea791afc9b7 Contents can be published for everyone diff -r 491d057cbfd2 -r a35924820af7 src/ldt/ldt/ldt_utils/forms.py --- 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: diff -r 491d057cbfd2 -r a35924820af7 src/ldt/ldt/ldt_utils/models.py --- 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'), diff -r 491d057cbfd2 -r a35924820af7 src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/create_content.html --- 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(); + } + }); + }); + {% endblock %} @@ -93,6 +110,7 @@
{{ content_form.description.errors }}{{ content_form.description.label_tag }}{{content_form.description}}
{{ media_form.external_id.errors }}{{ media_form.external_id.label_tag }}{{media_form.external_id}}
{{ media_form.external_publication_url.errors }}{{ media_form.external_publication_url.label_tag }}{{media_form.external_publication_url}}
+
{{ content_form.is_public }}
{{ content_form.external_id.errors }}{{ content_form.external_id.label_tag }}{{content_form.external_id}}
@@ -113,8 +131,7 @@
{{ media_form.external_src_url.errors }}{{ media_form.external_src_url.label_tag }}{{ media_form.external_src_url }}
{{ media_form.src.errors }}{{ media_form.src.label_tag }}{{ media_form.src }}
- - + {% include "ldt/ldt_utils/partial/permissions.html" %} diff -r 491d057cbfd2 -r a35924820af7 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 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 %} -
-
{% 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 %} diff -r 491d057cbfd2 -r a35924820af7 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 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(); }); diff -r 491d057cbfd2 -r a35924820af7 src/ldt/ldt/ldt_utils/views.py --- 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)) diff -r 491d057cbfd2 -r a35924820af7 src/ldt/ldt/locale/en/LC_MESSAGES/django.mo Binary file src/ldt/ldt/locale/en/LC_MESSAGES/django.mo has changed diff -r 491d057cbfd2 -r a35924820af7 src/ldt/ldt/locale/en/LC_MESSAGES/django.po --- 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 \n" "Language-Team: LANGUAGE \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." "
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." "
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." "
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." "
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" diff -r 491d057cbfd2 -r a35924820af7 src/ldt/ldt/locale/fr/LC_MESSAGES/django.mo Binary file src/ldt/ldt/locale/fr/LC_MESSAGES/django.mo has changed diff -r 491d057cbfd2 -r a35924820af7 src/ldt/ldt/locale/fr/LC_MESSAGES/django.po --- 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 \n" "Language-Team: LANGUAGE \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." "
Please resubmit the content form after making the following changes:" @@ -322,7 +322,7 @@ "Opération impossible à cause d'une ou plusieurs erreurs.
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." "
Please resubmit the media form after making the following changes:" @@ -330,36 +330,40 @@ "opération impossible à cause d'une ou plusieurs erreurs.
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"