# 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 @@