# HG changeset patch # User verrierj # Date 1324565382 -3600 # Node ID 454449cd5e11b6daf34f56e34293769a90a0cb4e # Parent 53afb302c3c5a20cf3abf87dcdfc03db4ba59c09 Fix bug in Shareform diff -r 53afb302c3c5 -r 454449cd5e11 src/ldt/ldt/ldt_utils/views.py --- a/src/ldt/ldt/ldt_utils/views.py Thu Dec 22 13:59:03 2011 +0100 +++ b/src/ldt/ldt/ldt_utils/views.py Thu Dec 22 15:49:42 2011 +0100 @@ -581,8 +581,12 @@ posturl = settings.WEB_URL + reverse("ldt.ldt_utils.views.save_ldt_project") language_code = request.LANGUAGE_CODE[:2] - ldt = get_object_or_404(Project.safe_objects, ldt_id=id) - if ldt.state == 2: #published + try: + ldt = Project.safe_objects.get(ldt_id=id) + except Project.DoesNotExist: + return HttpResponseRedirect(reverse("ldt.ldt_utils.views.workspace")) + + if ldt.state == 2 or not request.user.has_perm('change_project', ldt): #published readonly = 'true' else: readonly = 'false' @@ -591,7 +595,7 @@ template_path = 'ldt/ldt_utils/init_ldt_full.html' else: template_path = 'ldt/ldt_utils/init_ldt.html' - + return render_to_response(template_path, {'LDT_MEDIA_PREFIX': settings.LDT_MEDIA_PREFIX, 'colorurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/pkg/color.xml', 'i18nurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/pkg/i18n', 'language': language_code, 'baseurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/', 'url': urlStr, 'posturl': posturl, 'id': id, 'readonly': readonly}, context_instance=RequestContext(request)) @@ -974,17 +978,17 @@ content_instance_val['read_list'] = request.POST.getlist('read_list') content_instance_val['write_list'] = request.POST.getlist('write_list') - + content_instance_val['share'] = request.POST.get('share', False) + content_form = ContentForm(content_instance_val, prefix="content", instance=instance_content) media_form = MediaForm(media_instance_val, request.FILES, prefix="media", instance=instance_media) media_valid = media_form.is_valid() content_valid = content_form.is_valid() - logging.debug("write_content_base : valid form: for instance : " + repr(instance_media) + " -> media " + str(media_valid) + " content : for instance : " + repr(instance_content) + " : " + str(content_valid)) #@UndefinedVariable if media_valid and content_valid: - + # see if media must be created cleaned_data = {} cleaned_data.update(media_form.cleaned_data) @@ -1107,8 +1111,8 @@ content_defaults = {} content_defaults.update(content_form.cleaned_data) content_defaults['media_obj'] = media - - for key in ["media_input_type", "groups", "is_public", "read_list", "write_list" ]: + + for key in ["media_input_type", "groups", "is_public", "read_list", "write_list", "share" ]: del content_defaults[key] content, created = Content.safe_objects.get_or_create(iri_id=content_form.cleaned_data['iri_id'], defaults=content_defaults) #@UndefinedVariable @@ -1117,7 +1121,6 @@ cached_assign('change_content', request.user, content) cached_assign('view_content', request.user, content) everyone = Group.objects.get(name=settings.PUBLIC_GROUP_NAME) - if content_form.cleaned_data['is_public']: cached_assign('view_content', everyone, content) if media: diff -r 53afb302c3c5 -r 454449cd5e11 src/ldt/ldt/security/forms.py --- a/src/ldt/ldt/security/forms.py Thu Dec 22 13:59:03 2011 +0100 +++ b/src/ldt/ldt/security/forms.py Thu Dec 22 15:49:42 2011 +0100 @@ -40,10 +40,15 @@ elif cls_name == 'group': new_list.append(groups.get(id=id)) return new_list - + new_read_list = create_real_lists(read_list, users, groups) new_write_list = create_real_lists(write_list, users, groups) self.cleaned_data["read_list"] = new_read_list self.cleaned_data["write_list"] = new_write_list + + if self.data.get("share", False) == "True": + self.cleaned_data["share"] = True + else: + self.cleaned_data["share"] = False return self.cleaned_data \ No newline at end of file