Example #1
0
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
Example #2
0
    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 ''
Example #3
0
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
Example #4
0
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))
Example #5
0
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