def reply(request, bits, context): """ If called without parameters will display a list of questions (via rendering page/content_type/interviews.interview/reply.html template). Can be also called as reply/PK/ which will then display a ReplyForm for the given question. Raises Http404 on any error or missing permissions. """ interview = context['object'] interviewees = interview.get_interviewees(request.user) context['interviewees'] = interviewees if not interviewees: # no permission raise Http404 if not bits: # list of all questions qset = interview.question_set.all() context.update(paginate_qset(request, qset)) return render_to_response( get_templates_from_placement('reply.html', context['placement']), context, context_instance=RequestContext(request) ) elif len(bits) != 1 or request.method != 'POST': # some bogus URL raise Http404() # no point in caching individual questions question = get_object_or_404( Question, pk=bits[0], interview=interview ) form = ReplyForm(interview, interviewees, question, request, request.POST) if form.is_valid(): form.save() # go back to the question list return HttpResponseRedirect('..') context['form'] = form context['question'] = question return render_to_response( get_templates_from_placement('answer_form.html', context['placement']), context, context_instance=RequestContext(request) )
def result_details(request, context): quiz = context['object'] if not quiz.has_correct_answers: raise Http404 results = request.GET.get(RESULT_FIELD, '').split('|') if len(results) != len(quiz.questions): raise Http404 questions = [] for question, q_res in zip(quiz.questions, results): q_id, id_list = q_res.split(':') choices = question.choices if question.allow_multiple: cl = set(id_list.split(',')) for ch in choices: if str(ch.id) in cl: ch.chosen = True else: for ch in choices: if str(ch.id) == id_list: ch.chosen = True break questions.append((question, choices)) context['questions'] = questions return render_to_response( get_templates_from_placement('result_detail.html', context['placement']), context, context_instance=RequestContext(request) )
def list_comments(request, context): # basic queryset qs = comments.get_model().objects.for_model(context['object']).order_by('tree_path') # only individual branches requested if 'ids' in request.GET: ids = request.GET.getlist('ids') # branch is everything whose tree_path begins with the same prefix qs = qs.filter(reduce(operator.or_, map(lambda x: Q(tree_path__startswith=x.zfill(10)), ids))) # pagination if 'p' in request.GET and request.GET['p'].isdigit(): page_no = int(request.GET['p']) else: page_no = 1 paginate_by = getattr(settings, 'COMMENTS_PAGINATE_BY', 50) paginator = Paginator(qs, paginate_by) if page_no > paginator.num_pages or page_no < 1: raise Http404() page = paginator.page(page_no) context.update({ 'comment_list': page.object_list, 'page': page, 'is_paginated': paginator.num_pages > 1, 'results_per_page': paginate_by, }) return render_to_response( get_templates_from_placement('comment_list.html', context['placement']), context, RequestContext(request) )
def result_details(request, context): quiz = context['object'] if not quiz.has_correct_answers: raise Http404 results = request.GET.get(RESULT_FIELD, '').split('|') if len(results) != len(quiz.questions): raise Http404 questions = [] for question, q_res in zip(quiz.questions, results): q_id, id_list = q_res.split(':') choices = question.choices if question.allow_multiple: cl = set(id_list.split(',')) for ch in choices: if str(ch.id) in cl: ch.chosen = True else: for ch in choices: if str(ch.id) == id_list: ch.chosen = True break questions.append((question, choices)) context['questions'] = questions return render_to_response(get_templates_from_placement( 'result_detail.html', context['placement']), context, context_instance=RequestContext(request))
def detail(request, context): """ Custom object detail function that adds a QuestionForm to the context. """ interview = context['object'] page_no = get_page_no(request) qset = interview.get_questions() paginator = QuerySetPaginator(qset, interviews_settings.PAGINATION_PER_PAGE) if page_no > paginator.num_pages or page_no < 1: raise Http404 page = paginator.page(page_no) interviewees = interview.get_interviewees(request.user) context.update({ 'interviewees': interviewees, 'is_paginated': paginator.num_pages > 1, 'results_per_page': interviews_settings.PAGINATION_PER_PAGE, 'page': page, 'form': QuestionForm(request), 'questions': page.object_list, }) return render_to_response(get_templates_from_placement( 'object.html', context['placement']), context, context_instance=RequestContext(request))
def detail(request, context): """ Custom object detail function that adds a QuestionForm to the context. """ interview = context['object'] page_no = get_page_no(request) qset = interview.get_questions() paginator = QuerySetPaginator(qset, INTERVIEW_PAGINATION_PER_PAGE) if page_no > paginator.num_pages or page_no < 1: raise Http404 page = paginator.page(page_no) interviewees = interview.get_interviewees(request.user) context.update({ 'interviewees': interviewees, 'is_paginated': paginator.num_pages > 1, 'results_per_page': INTERVIEW_PAGINATION_PER_PAGE, 'page': page, 'form' : QuestionForm(request=request), 'questions' : page.object_list, }) return render_to_response( get_templates_from_placement('object.html', context['placement']), context, context_instance=RequestContext(request) )
def contest_finish(request, context, qforms, contestant_form): contest = context['object'] email = contestant_form.cleaned_data['email'] if Contestant.objects.filter(email=email, contest=contest).count() > 0: context.update({ 'duplicate': True, 'forms': qforms, 'contestant_form': contestant_form, }) return render_to_response(get_templates_from_placement( 'form.html', context['placement']), context, context_instance=RequestContext(request)) choices = '|'.join( '%d:%s' % (question.id, question.allow_multiple and ','.join( str(c.id) for c in sorted(f.cleaned_data['choice'], key=lambda ch: ch.id)) or f.cleaned_data['choice'].id) for question, f in sorted(qforms, key=lambda q: q[0].id)) c = Contestant(contest=contest, choices=choices, **contestant_form.cleaned_data) if request.user.is_authenticated(): c.user = request.user c.save() return HttpResponseRedirect(contest.get_absolute_url() + slugify(ugettext('result')) + u'/')
def contest_finish(request, context, qforms, contestant_form): contest = context['object'] email = contestant_form.cleaned_data['email'] if Contestant.objects.filter(email=email, contest=contest).count() > 0: context.update({ 'duplicate' : True, 'forms' : qforms, 'contestant_form' : contestant_form, }) return render_to_response( get_templates_from_placement('form.html', context['placement']), context, context_instance=RequestContext(request) ) choices = '|'.join( '%d:%s' % ( question.id, question.allow_multiple and ','.join(str(c.id) for c in sorted(f.cleaned_data['choice'], key=lambda ch: ch.id)) or f.cleaned_data['choice'].id) for question, f in sorted(qforms,key=lambda q: q[0].id) ) c = Contestant( contest=contest, choices=choices, **contestant_form.cleaned_data ) if request.user.is_authenticated(): c.user = request.user c.save() return HttpResponseRedirect(contest.get_absolute_url() +slugify(ugettext('result')) + u'/')
def done(self, request, form_list): points = 0 questions = [] results = [] for question, f in zip(self.quiz.questions, form_list): choices = question.choices if not question.allow_no_choice: if question.allow_multiple: points += sum(c.points for c in f.cleaned_data['choice']) results.append('%d:%s' % (question.id, ','.join(str(c.id) for c in f.cleaned_data['choice']))) else: points += f.cleaned_data['choice'].points results.append('%d:%s' % (question.id, f.cleaned_data['choice'].id)) results = '|'.join(results) result = self.quiz.get_result(points) result.count += 1 result.save() self.extra_context.update( { 'result' : result, 'points' : points, 'results' : results, 'result_field': RESULT_FIELD, 'result_action' : self.quiz.get_absolute_url() + slugify(_('results')) + '/' } ) return render_to_response( get_templates_from_placement('result.html', self.extra_context['placement']), self.extra_context, context_instance=RequestContext(request) )
def mail_success(request, context): if request.is_ajax(): tpl = 'sendmail/ajax-success.html' else: tpl = 'sendmail/success.html' templates = get_templates_from_placement(tpl, context['placement']) return render_to_response(templates, context, context_instance=RequestContext(request))
def contest_conditions(request, bits, context): if bits: raise Http404 return render_to_response( get_templates_from_placement('conditions.html', context['placement']), context, context_instance=RequestContext(request) )
def mail_error(request, context): "Problem in SMTP server, mail didn't sent" if request.is_ajax(): tpl = 'sendmail/ajax-error.html' else: tpl = 'sendmail/sending-error.html' templates = get_templates_from_placement(tpl, context['placement']) return render_to_response(templates, context, context_instance=RequestContext(request))
def unanswered(request, context): """ Display unanswered questions via rendering page/content_type/interviews.interview/unanswered.html template. """ interview = context['object'] interviewees = interview.get_interviewees(request.user) context['interviewees'] = interviewees context['form'] = QuestionForm(request) # result pagination qset = interview.unanswered_questions() context.update(paginate_qset(request, qset)) return render_to_response(get_templates_from_placement( 'unanswered.html', context['placement']), context, context_instance=RequestContext(request))
def unanswered(request, context): """ Display unanswered questions via rendering page/content_type/interviews.interview/unanswered.html template. """ interview = context['object'] interviewees = interview.get_interviewees(request.user) context['interviewees'] = interviewees context['form'] = QuestionForm(request) # result pagination qset = interview.unanswered_questions() context.update(paginate_qset(request, qset)) return render_to_response( get_templates_from_placement('unanswered.html', context['placement']), context, context_instance=RequestContext(request) )
def new_mail(request, context): init_props = { 'target': '%d:%d' % (context['content_type'].id, context['object']._get_pk_val()), } form = SendMailForm(init_props=init_props) context['form'] = form if request.is_ajax(): tpl = 'sendmail/ajax-form.html' else: tpl = 'sendmail/form.html' templates = get_templates_from_placement(tpl, context['placement']) return render_to_response(templates, context, context_instance=RequestContext(request))
def new_comment(request, context, reply=None): """new comment for specified object""" init_props = { 'target': '%d:%d' % (context['content_type'].id, context['object']._get_pk_val()), 'options' : FORM_OPTIONS['UNAUTHORIZED_ONLY'], } if reply: init_props['parent'] = reply context.update({ 'reply' : True, 'parent' : get_cached_object_or_404(Comment, pk=reply, target_ct=context['content_type'], target_id=context['object']._get_pk_val()), }) form = CommentForm(init_props=init_props) context['form'] = form templates = get_templates_from_placement('comments/form.html', context['placement']) return render_to_response(templates, context, context_instance=RequestContext(request))
def reply(request, context, question_id): """ Can be also called as reply/PK/ which will then display a ReplyForm for the given question. Raises Http404 on any error or missing permissions. """ interview = context['object'] interviewees = interview.get_interviewees(request.user) context['interviewees'] = interviewees if not interviewees: # no permission raise Http404 # no point in caching individual questions question = get_object_or_404( Question, pk=question_id, interview=interview ) if request.method.upper() == 'POST': form = ReplyForm(interview, interviewees, question, request, request.POST) if form.is_valid(): form.save() # go back to the question list return HttpResponseRedirect('..') else: # stay on form pass else: form = ReplyForm(interview, interviewees, question, request) context['form'] = form context['question'] = question return render_to_response( get_templates_from_placement('answer_form.html', context['placement']), context, context_instance=RequestContext(request) )
def list_comments(request, context): """list comments for specified object""" comment_list = Comment.objects.get_list_for_object(context['object']) if 'ids' in request.GET: ids = set(request.GET.getlist('ids')) new_comment_list = [] for c in comment_list: if str(c.id) in ids: new_comment_list.append(c) elif '/' in c.path and c.path[0:c.path.find('/')] in ids: new_comment_list.append(c) comment_list = new_comment_list context.update({ 'comment_count' : Comment.objects.get_count_for_object(context['object']), 'comment_list' : comment_list, }) templates = get_templates_from_placement('comments/list.html', context['placement']) return render_to_response(templates, context, context_instance=RequestContext(request))
def list_comments(request, context): # basic queryset qs = comments.get_model().objects.for_model( context['object']).order_by('tree_path') # XXX factor out into a manager qs = qs.filter(is_public=True) if getattr(settings, 'COMMENTS_HIDE_REMOVED', False): qs = qs.filter(is_removed=False) # only individual branches requested if 'ids' in request.GET: ids = request.GET.getlist('ids') # branch is everything whose tree_path begins with the same prefix qs = qs.filter( reduce(operator.or_, map(lambda x: Q(tree_path__startswith=x.zfill(10)), ids))) # pagination if 'p' in request.GET and request.GET['p'].isdigit(): page_no = int(request.GET['p']) else: page_no = 1 paginate_by = getattr(settings, 'COMMENTS_PAGINATE_BY', 50) paginator = Paginator(qs, paginate_by) if page_no > paginator.num_pages or page_no < 1: raise Http404() page = paginator.page(page_no) context.update({ 'comment_list': page.object_list, 'page': page, 'is_paginated': paginator.num_pages > 1, 'results_per_page': paginate_by, }) return render_to_response( get_templates_from_placement('comment_list.html', context['placement']), context, RequestContext(request))
def new_comment(request, context, reply=None): """new comment for specified object""" init_props = { 'target': '%d:%d' % (context['content_type'].id, context['object']._get_pk_val()), 'options' : FORM_OPTIONS['UNAUTHORIZED_ONLY'], } if reply: init_props['parent'] = reply context.update({ 'reply' : True, 'parent' : get_cached_object_or_404( Comment, pk=reply, target_ct=context['content_type'], target_id=context['object']._get_pk_val() ), }) form = CommentForm(init_props=init_props) context['form'] = form templates = get_templates_from_placement('comments/form.html', context['placement']) return render_to_response(templates, context, context_instance=RequestContext(request))
def list_questions(request, context): """ Displays a list of questions (via rendering page/content_type/interviews.interview/reply.html template). """ interview = context['object'] interviewees = interview.get_interviewees(request.user) context['interviewees'] = interviewees if not interviewees: # no permission raise Http404 # list of all questions qset = interview.question_set.all() context.update(paginate_qset(request, qset)) return render_to_response(get_templates_from_placement( 'reply.html', context['placement']), context, context_instance=RequestContext(request))
def list_questions(request, context): """ Displays a list of questions (via rendering page/content_type/interviews.interview/reply.html template). """ interview = context['object'] interviewees = interview.get_interviewees(request.user) context['interviewees'] = interviewees if not interviewees: # no permission raise Http404 # list of all questions qset = interview.question_set.all() context.update(paginate_qset(request, qset)) return render_to_response( get_templates_from_placement('reply.html', context['placement']), context, context_instance=RequestContext(request) )
def reply(request, context, question_id): """ Can be also called as reply/PK/ which will then display a ReplyForm for the given question. Raises Http404 on any error or missing permissions. """ interview = context['object'] interviewees = interview.get_interviewees(request.user) context['interviewees'] = interviewees if not interviewees: # no permission raise Http404 # no point in caching individual questions question = get_object_or_404(Question, pk=question_id, interview=interview) if request.method.upper() == 'POST': form = ReplyForm(interview, interviewees, question, request, request.POST) if form.is_valid(): form.save() # go back to the question list return HttpResponseRedirect('..') else: # stay on form pass else: form = ReplyForm(interview, interviewees, question, request) context['form'] = form context['question'] = question return render_to_response(get_templates_from_placement( 'answer_form.html', context['placement']), context, context_instance=RequestContext(request))
def done(self, request, form_list): points = 0 questions = [] results = [] for question, f in zip(self.quiz.questions, form_list): choices = question.choices if not question.allow_no_choice: if question.allow_multiple: points += sum(c.points for c in f.cleaned_data['choice']) results.append('%d:%s' % (question.id, ','.join( str(c.id) for c in f.cleaned_data['choice']))) else: points += f.cleaned_data['choice'].points results.append('%d:%s' % (question.id, f.cleaned_data['choice'].id)) results = '|'.join(results) result = self.quiz.get_result(points) result.count += 1 result.save() self.extra_context.update({ 'result': result, 'points': points, 'results': results, 'result_field': RESULT_FIELD, 'result_action': self.quiz.get_absolute_url() + slugify(_('results')) + '/' }) return render_to_response(get_templates_from_placement( 'result.html', self.extra_context['placement']), self.extra_context, context_instance=RequestContext(request))
def contest_vote(request, context): contest = context['object'] forms = [] forms_are_valid = True # question forms for question in contest.questions: form = QuestionForm(question)(request.POST or None, prefix=str(question.id)) if not form.is_valid(): forms_are_valid = False forms.append((question, form)) # contestant form initial = {} if request.user.is_authenticated(): initial['name'] = request.user.first_name initial['surname'] = request.user.last_name initial['email'] = request.user.email contestant_form = ContestantForm(request.POST or None, initial=initial) if not contestant_form.is_valid(): forms_are_valid = False # saving contestant if forms_are_valid and contest.is_active(): return contest_finish(request, context, forms, contestant_form) context.update({ 'forms': forms, 'contestant_form': contestant_form, 'activity_not_yet_active': polls_settings.ACTIVITY_NOT_YET_ACTIVE, 'activity_active': polls_settings.ACTIVITY_ACTIVE, 'activity_closed': polls_settings.ACTIVITY_CLOSED }) return render_to_response(get_templates_from_placement( 'form.html', context['placement']), context, context_instance=RequestContext(request))
def contest_vote(request, context): contest = context['object'] forms = [] forms_are_valid = True # question forms for question in contest.questions: form = QuestionForm(question)(request.POST or None, prefix=str(question.id)) if not form.is_valid(): forms_are_valid = False forms.append((question, form)) # contestant form initial = {} if request.user.is_authenticated(): initial['name'] = request.user.first_name initial['surname'] = request.user.last_name initial['email'] = request.user.email contestant_form = ContestantForm(request.POST or None, initial=initial) if not contestant_form.is_valid(): forms_are_valid = False # saving contestant if forms_are_valid and contest.is_active(): return contest_finish(request, context, forms, contestant_form) context.update({ 'forms' : forms, 'contestant_form' : contestant_form, 'activity_not_yet_active' : polls_settings.ACTIVITY_NOT_YET_ACTIVE, 'activity_active' : polls_settings.ACTIVITY_ACTIVE, 'activity_closed' : polls_settings.ACTIVITY_CLOSED }) return render_to_response( get_templates_from_placement('form.html', context['placement']), context, context_instance=RequestContext(request) )
def post_comment(request, context, parent_id=None): 'Mostly copy-pasted from django.contrib.comments.views.comments' opts = CommentOptionsObject.objects.get_for_object(context['object']) if opts.blocked: raise Http404('Comments are blocked for this object.') context['opts'] = opts parent = None if parent_id: parent = get_object_or_404(comments.get_model(), pk=parent_id) ip_address = request.META.get('REMOTE_ADDR', None) try: ip_ban = BannedIP.objects.get(ip_address=ip_address) except BannedIP.DoesNotExist: ip_ban = None if request.method != 'POST' or ip_ban: initial = {} if parent: if parent.title.startswith('Re:'): initial['title'] = parent.title else: initial['title'] = u'Re: %s' % parent.title form = comments.get_form()(context['object'], parent=parent_id, initial=initial) context.update({ 'parent': parent, 'form': form, 'ip_ban': ip_ban, }) return render_to_response( get_templates_from_placement('comment_form.html', context['placement']), context, RequestContext(request)) # Fill out some initial data fields from an authenticated user, if present data = request.POST.copy() if request.user.is_authenticated(): if not data.get('name', ''): data["name"] = request.user.get_full_name( ) or request.user.username if not data.get('email', ''): data["email"] = request.user.email # construct the form form = comments.get_form()(context['object'], data=data, parent=parent_id) # Check security information if form.security_errors(): return CommentPostBadRequest( "The comment form failed security verification: %s" % \ escape(str(form.security_errors()))) # Do we want to preview the comment? preview = "preview" in data # Check to see if the POST data overrides the view's next argument. next = data.get( "next", "%s%s/" % (context['placement'].get_absolute_url(), slugify(_('comments')))) # If there are errors or if we requested a preview show the comment if form.errors or preview: context.update({ "form": form, 'parent': parent, "next": next, }) return render_to_response( get_templates_from_placement( form.errors and 'comment_form.html' or 'comment_preview.html', context['placement']), context, RequestContext(request)) # Otherwise create the comment comment = form.get_comment_object() comment.ip_address = request.META.get("REMOTE_ADDR", None) if request.user.is_authenticated(): comment.user = request.user # Signal that the comment is about to be saved responses = signals.comment_will_be_posted.send(sender=comment.__class__, comment=comment, request=request) for (receiver, response) in responses: if response == False: return CommentPostBadRequest( "comment_will_be_posted receiver %r killed the comment" % receiver.__name__) if opts.premoderated: comment.is_public = False # Save the comment and signal that it was saved comment.save() signals.comment_was_posted.send(sender=comment.__class__, comment=comment, request=request) return HttpResponseRedirect(next)
def form_template(self): if self.request.is_ajax(): tpl = 'sendmail/ajax-form.html' else: tpl = 'sendmail/form.html' return get_templates_from_placement(tpl, self.state['placement'])
def contest_conditions(request, context): return render_to_response(get_templates_from_placement( 'conditions.html', context['placement']), context, context_instance=RequestContext(request))
position = item_index + 1 context['object'] = target context.update({ 'gallery': gallery, 'item': item, 'object' : target, 'item_list' : item_sorted_dict.values(), 'next' : next, 'previous' : previous, 'count' : count, 'count_str' : count_str, 'position' : position, }) return render_to_response( get_templates_from_placement('item.html', context['placement']), context, context_instance=RequestContext(request), ) def items(request, bits, context): " Wrapper around gallery_item_detail. " if len(bits) != 1: raise Http404() return gallery_item_detail(request, context, bits[0])
def form_template(self): return get_templates_from_placement('ask_form.html', self.state['placement'])
def post_comment(request, context, parent_id=None): 'Mostly copy-pasted from django.contrib.comments.views.comments' opts = CommentOptionsObject.objects.get_for_object(context['object']) if opts.blocked: raise Http404('Comments is blocked for this object.') parent = None if parent_id: parent = get_object_or_404(comments.get_model(), pk=parent_id) if request.method != 'POST': initial = {} if parent: if parent.title.startswith('Re:'): initial['title'] = parent.title else: initial['title'] = u'Re: %s' % parent.title form = comments.get_form()(context['object'], parent=parent_id, initial=initial) context.update({ 'parent': parent, 'form': form, }) return render_to_response( get_templates_from_placement('comment_form.html', context['placement']), context, RequestContext(request) ) # Fill out some initial data fields from an authenticated user, if present data = request.POST.copy() if request.user.is_authenticated(): if not data.get('name', ''): data["name"] = request.user.get_full_name() or request.user.username if not data.get('email', ''): data["email"] = request.user.email # construct the form form = comments.get_form()(context['object'], data=data, parent=parent_id) # Check security information if form.security_errors(): return CommentPostBadRequest( "The comment form failed security verification: %s" % \ escape(str(form.security_errors()))) # Do we want to preview the comment? preview = "preview" in data # Check to see if the POST data overrides the view's next argument. next = data.get("next", "%s%s/" % (context['placement'].get_absolute_url(), slugify(_('comments')))) # If there are errors or if we requested a preview show the comment if form.errors or preview: context.update({ "form" : form, 'parent': parent, "next": next, }) return render_to_response( get_templates_from_placement(form.errors and 'comment_form.html' or 'comment_preview.html', context['placement']), context, RequestContext(request) ) # Otherwise create the comment comment = form.get_comment_object() comment.ip_address = request.META.get("REMOTE_ADDR", None) if request.user.is_authenticated(): comment.user = request.user # Signal that the comment is about to be saved responses = signals.comment_will_be_posted.send( sender = comment.__class__, comment = comment, request = request ) for (receiver, response) in responses: if response == False: return CommentPostBadRequest( "comment_will_be_posted receiver %r killed the comment" % receiver.__name__) # Save the comment and signal that it was saved comment.save() signals.comment_was_posted.send( sender = comment.__class__, comment = comment, request = request ) return HttpResponseRedirect(next)
def get_template(self, step): return get_templates_from_placement('step.html', self.extra_context['placement'])
def form_template(self): return get_templates_from_placement('comments/form.html', placement=self.state['placement'])
def contest_result(request, context): return render_to_response( get_templates_from_placement('result.html', context['placement']), context, context_instance=RequestContext(request) )
def preview_template(self): return get_templates_from_placement('ask_preview.html', self.state['placement'])
'gallery': gallery, 'item': item, 'object' : target, 'item_list' : item_sorted_dict.values(), 'next' : next, 'previous' : previous, 'count' : count, 'count_str' : count_str, 'position' : position, }) if request.is_ajax(): template_name = "item-ajax.html" else: template_name = "item.html" return render_to_response( get_templates_from_placement(template_name, context['placement']), context, context_instance=RequestContext(request), ) def items(request, bits, context): " Wrapper around gallery_item_detail. " if len(bits) != 1: raise Http404() return gallery_item_detail(request, context, bits[0])
def preview_template(self): return get_templates_from_placement('comments/preview.html', placement=self.state['placement'])
def get_template(self): if (self.step + 1) < len(self.form_list): return get_templates_from_placement('step.html', self.extra_context['placement']) return get_templates_from_placement('contest_form', self.extra_context['placement'])
position = item_index + 1 context['object'] = target context.update({ 'gallery': gallery, 'item': item, 'object' : target, 'item_list' : item_sorted_dict.values(), 'next' : next, 'previous' : previous, 'count' : count, 'count_str' : count_str, 'position' : position, }) if request.is_ajax(): template_name = "item-ajax.html" else: template_name = "item.html" response = render_to_response( get_templates_from_placement(template_name, context['placement']), context, context_instance=RequestContext(request), ) patch_vary_headers( response, ('X-Requested-With',) ) return response