Example #1
0
def scamp_clone(request, slug):
    """Clones the current Scamp and everything
    relevent that is attached to it.
    """
    scamp = get_object_or_404(Scamp, slug=slug)
    form = ScampCloneForm(request.user, {'scamp_to_clone': scamp.id})
    if form.is_valid():
        new_scamp = form.save()
        set_scamp_session(request, new_scamp)
        messages.success(request, _("Scamp cloned succesfully!"))
        return HttpResponseRedirect(new_scamp.get_absolute_url())
    else:
        return HttpResponseForbidden()
Example #2
0
def homepage(request):
    """Upload page for the scamp; handles the POST
    request for either uploading an image or linking to one.
    """
    if request.method == 'POST':
        form = ScampUploadForm(request.user, request.POST, request.FILES)
        if form.is_valid():
            scamp, image = form.save()
            # The ``scamp_key`` session key is a list of scamp keys
            # (uid's on the scamp) that can be edited by the user with
            # that active session. The only other way a user can edit
            # a scamp is if they are logged in and owner of that scamp.
            set_scamp_session(request, scamp)
            return HttpResponseRedirect(scamp.get_absolute_url())
    else:
        form = ScampUploadForm()
    extra_context = {'form': form}
    return render(request, 'homepage.html', extra_context)