--- 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:
--- 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