def edit_submission(request, slug, submission_id): challenge = get_object_or_404(Challenge, slug=slug) submission = get_object_or_404(Submission, pk=submission_id) if request.method == 'POST': form = SubmissionForm(request.POST, instance=submission) if form.is_valid(): form.save() messages.success(request, _('Your submission has been edited.')) return HttpResponseRedirect( reverse('submission_show', kwargs={ 'slug': challenge.slug, 'submission_id': submission.pk, })) else: messages.error(request, _('Unable to update your submission')) else: form = SubmissionForm(instance=submission) ctx = { 'challenge': challenge, 'submission': submission, 'form': form, } return render_to_response('challenges/submission_edit_summary.html', ctx, context_instance=RequestContext(request))
def edit_submission(request, slug, submission_id): challenge = get_object_or_404(Challenge, slug=slug) if not challenge.entrants_can_edit: return HttpResponseForbidden() submission = get_object_or_404(Submission, pk=submission_id) if request.method == 'POST': form = SubmissionForm(request.POST, instance=submission) if form.is_valid(): form.save() messages.success(request, _('Your submission has been edited.')) return HttpResponseRedirect(reverse('submission_edit_description', kwargs={ 'slug': challenge.slug, 'submission_id': submission.pk, })) else: messages.error(request, _('Unable to update your submission')) else: form = SubmissionForm(instance=submission) ctx = { 'challenge': challenge, 'submission': submission, 'form': form, } return render_to_response('challenges/submission_edit_summary.html', ctx, context_instance=RequestContext(request))
def create_submission(request, slug): challenge = get_object_or_404(Challenge, slug=slug) if not challenge.is_active(): return HttpResponseForbidden() user = request.user.get_profile() if request.method == 'POST': post_data = request.POST.copy() post_data['title'] = truncatewords(post_data['summary'], 10) form = SubmissionForm(post_data) if form.is_valid(): submission = form.save(commit=False) submission.title = truncatewords(submission.summary, 10) submission.created_by = user submission.save() submission.challenge.add(challenge) messages.success(request, _('Your submission has been created')) return HttpResponseRedirect( reverse('submission_edit', kwargs={ 'slug': challenge.slug, 'submission_id': submission.pk, })) else: messages.error(request, _('Unable to create your submission')) else: form = SubmissionForm() context = { 'form': form, 'challenge': challenge, } return render_to_response('challenges/submission_edit.html', context, context_instance=RequestContext(request))
def create_submission(request, slug): challenge = get_object_or_404(Challenge, slug=slug) if not challenge.is_active(): return HttpResponseForbidden() user = request.user.get_profile() if request.method == 'POST': truncate_title = lambda s: truncatewords(s, 10)[:90] post_data = request.POST.copy() post_data['title'] = truncate_title(post_data['summary']) form = SubmissionForm(post_data) if form.is_valid(): submission = form.save(commit=False) submission.title = truncate_title(submission.summary) submission.created_by = user submission.is_published = False submission.save() submission.challenge.add(challenge) messages.success(request, _('Your submission has been created')) return HttpResponseRedirect(reverse('submission_edit', kwargs={ 'slug': challenge.slug, 'submission_id': submission.pk, })) else: messages.error(request, _('Unable to create your submission')) else: form = SubmissionForm() context = { 'form': form, 'challenge': challenge, } return render_to_response('challenges/submission_edit.html', context, context_instance=RequestContext(request))
def edit_submission(request, slug, submission_id): challenge = get_object_or_404(Challenge, slug=slug) if not challenge.entrants_can_edit: return HttpResponseForbidden() try: submission = challenge.submission_set.get(pk=submission_id) except: raise Http404 if request.method == 'POST': form = SubmissionForm(request.POST, instance=submission) if form.is_valid(): submission = form.save() messages.success(request, _('Your submission has been edited.')) if 'publish' in request.POST: submission.publish() return HttpResponseRedirect(reverse('submission_edit_description', kwargs={ 'slug': challenge.slug, 'submission_id': submission.pk, })) else: messages.error(request, _('Unable to update your submission')) else: form = SubmissionForm(instance=submission) ctx = { 'challenge': challenge, 'submission': submission, 'form': form, } return render_to_response('challenges/submission_edit_summary.html', ctx, context_instance=RequestContext(request))