def process_image_form(request, image_id=None): if request.method == 'POST': if not image_id: # form bound to the POST data form = ImageForm(request.POST, request.FILES, prefix='image') else: image = get_object_or_404(Image, id=image_id) form = ImageForm(request.POST, request.FILES, prefix='image', instance=image) if form.is_valid(): # All validation rules pass image = form.save(commit=False) if image: form.cleaned_data['image'] = image # Get the key if not image_id: key = get_first_available_label(Image, slugify(form.cleaned_data['title']), 'key') image.key = key if not image_id: if not request.user.is_authenticated(): raise ValidationError, 'User must be logged in' else: image.uploaded_by = request.user image.save() form.redirect_url = image.get_absolute_url() else: #unbound forms if not image_id: form = ImageForm(initial=get_initial_image_data(request), prefix='image') else: image = get_object_or_404(Image, id=image_id) form = ImageForm(prefix='image', instance=image) return form
def render(self, context): if cms_settings.EDIT_IN_PLACE: if context['request'].user.has_module_perms("cms"): if is_editing(context['request']): try: page = Page.objects.get( url=context['request'].path_info, site=settings.SITE_ID) except Page.DoesNotExist: page = False return template.loader.render_to_string( "cms/cms/editor.html", RequestContext( context['request'], { 'page': page, 'cms_settings': cms_settings, 'editor_form': BlockForm(), 'html_editor_form': BlockForm(prefix="html"), 'image_form': ImageForm(), 'page_form': page and PublicPageForm(instance=page) or None, 'new_page_form': PublicPageForm(prefix='new'), })) else: return template.loader.render_to_string( "cms/cms/logged_in.html", RequestContext(context['request'], { 'cms_settings': cms_settings, })) elif 'edit' in context['request'].GET: return template.loader.render_to_string( "cms/cms/login_top.html", RequestContext( context['request'], { 'login_form': AuthenticationForm(), 'cms_settings': cms_settings, })) elif 'cms-has_edited_before' in context['request'].COOKIES: return "" #template.loader.render_to_string("cms/cms/persistent_link.html") else: return "" else: return ''
def process_image_form(request, image_id=None): if request.method == 'POST' and request.POST.has_key('submit'): # If we are saving the form if not image_id: form = ImageForm(request.POST, request.FILES, prefix='image') # A form bound to the POST data else: image = get_object_or_404(Image, id=image_id) form = ImageForm(request.POST, request.FILES, prefix='image', instance=image) if form.is_valid(): # All validation rules pass image = form.save(commit=False) print 'Image', image_id, image if image: form.cleaned_data['image'] = image # Get the key if not image_id: key = slugify(form.cleaned_data['title']) try: Image.objects.get(key=key) except Image.DoesNotExist: count = 1 while True: newkey = '%s-%s'%(key, count) try: Image.objects.get(key=newkey) count += 1 except Image.DoesNotExist: key = newkey break image.key = key if not image_id: if not request.user.is_authenticated(): raise ValidationError, 'User must be logged in' else: image.uploaded_by = request.user image.save() form.redirect_url = image.get_absolute_url() else: #unbound forms if not image_id: form = ImageForm(initial=get_initial_data(request), prefix='image') else: image = get_object_or_404(Image, id=image_id) #form = ImageForm(initial=get_initial_data(request), prefix='image', instance=image) form = ImageForm(prefix='image', instance=image) return form
def edit_post(request, post_id=None): # Get the post post = None image_id = None if post_id: post = get_object_or_404(Post, id=post_id) if post.image: image_id = post.image.id if request.method == 'POST': # If the form has been submitted... if post: postform = PostForm(request.POST, request.FILES, prefix='post', instance=post) else: postform = PostForm(request.POST, request.FILES, prefix='post') # check that the image form has been completed (look for a file path) if request.FILES.has_key('image-image'): imageform = process_image_form(request, image_id=image_id) else: imageform = None if postform.is_valid(): # All validation rules pass post = postform.save(commit=False) if imageform: post.image = imageform.cleaned_data['image'] else: post.image = None if not post_id: name = slugify(post.title)[:50] try: Post.objects.get(name=name) count = 0 while True: count += 1 newname = name[:(50 - 1 - len(str(count)))] + '-' + str(count) try: Post.objects.get(name=newname) except Post.DoesNotExist: name = newname except Post.DoesNotExist: pass post.name = name if not post.author: post.author = request.user post.save() return HttpResponseRedirect(post.get_absolute_url()) else: if not post_id: postform = PostForm(prefix='post') # An unbound form imageform = ImageForm(initial=get_initial_data(request), prefix='image') # An unbound form else: post = get_object_or_404(Post, id=post_id) postform = PostForm(instance=post, prefix='post') if not post.image: imageform = ImageForm(initial=get_initial_data(request), prefix='image') # An unbound form else: imageform = ImageForm(post.image, initial=get_initial_data(request), prefix='image') if post_id: action = reverse('edit-post', args=(), kwargs={'post_id': post.id}) else: action = reverse('new-post') return render_to_response('cms/edit_post.html', { 'postform': postform, 'imageform': imageform, 'required': REQUIRED_FIELDS, 'action': action }, context_instance=RequestContext(request))
def process_image_form(request, image_id=None): if request.method == 'POST': # If the form has been submitted.. if not image_id: form = ImageForm(request.POST, request.FILES, prefix='image') # A form bound to the POST data else: image = get_object_or_404(Image, id=image_id) form = ImageForm(request.POST, request.FILES, prefix='image', instance=image) if form.is_valid(): # All validation rules pass image = form.save(commit=False) if image_id: form.cleaned_data['image'] = image # Get the key if not image_id: key = slugify(form.cleaned_data['title']) try: Image.objects.get(key=key) except Image.DoesNotExist: count = 1 while True: newkey = '%s-%s' % (key, count) try: Image.objects.get(key=newkey) count += 1 except Image.DoesNotExist: key = newkey break image.key = key if not image_id: if not request.user.is_authenticated(): raise ValidationError, 'User must be logged in' else: image.uploaded_by = request.user image.save() form.redirect_url = image.get_absolute_url() else: #unbound forms if not image_id: form = ImageForm(initial=get_initial_data(request), prefix='image') else: image = get_object_or_404(Image, id=image_id) #form = ImageForm(initial=get_initial_data(request), prefix='image', instance=image) form = ImageForm(prefix='image', instance=image) return form