def discuss_paste(request,hash_key): """ Creates a new Paste, linking it with a previous one. In this way, Pastes may be enhanced and diffs can be performed """ paste_discussed = get_object_or_404(Paste, hash_key=hash_key) update_last_view(paste_discussed) clean_pastes() form = PasteForm(instance=paste_discussed) language = paste_discussed.language private = paste_discussed.private if request.method == 'POST': form = PasteForm(request.POST) if form.is_valid(): tempPaste = form.save(commit=False) tempPaste.hash_key = tempPaste.hash() # recompute the hash key if there is a collision while (is_collision(tempPaste.hash_key)): tempPaste.hash_key = tempPaste.hash() tempPaste.in_response_to = paste_discussed tempPaste.private = private tempPaste.save() return HttpResponseRedirect(tempPaste.get_absolute_url()) # visualize the Paste''' return render_to_response('discuss_paste.html', { 'error_message': None, 'paste_discussed': paste_discussed, 'form': form, },context_instance=RequestContext(request))
def add_paste(request): """ Adds a new paste in the database """ clean_pastes() if request.method == 'POST': # If the form has been submitted... form = PasteForm(request.POST) # creates a PasteForm object with the posted data if form.is_valid(): tempPaste = form.save(commit=False) tempPaste.hash_key = tempPaste.hash() # recompute the hash key if there is a collision while (is_collision(tempPaste.hash_key)): tempPaste.hash_key = tempPaste.hash() tempPaste.save() remember_the_paste(request,tempPaste) return HttpResponseRedirect(tempPaste.get_absolute_url()) # visualize the Paste else: form = PasteForm() # A new form return render_to_response('paste_form.html', { 'error_message': None, 'form': form, },context_instance=RequestContext(request))