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()
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)