|
1 | | -# -*- coding: utf-8 -*- |
| 1 | +#-*- coding: utf-8 -*- |
2 | 2 |
|
| 3 | +from classytags.arguments import Argument |
| 4 | +from classytags.core import Tag, Options |
3 | 5 | from django import template |
4 | | -from django.forms import BooleanField |
5 | | -from django.utils.translation import ugettext_lazy as _ |
6 | | -from django.template import loader |
| 6 | +from django.template.loader import render_to_string |
7 | 7 | from django.template.context import RequestContext |
8 | | - |
| 8 | +from django.utils.translation import gettext_lazy as _ |
9 | 9 | from feedback.utils import get_feedback_form |
| 10 | +from feedback.settings import DEFAULT_FORM_KEY |
| 11 | +from django.forms.fields import BooleanField |
10 | 12 |
|
11 | 13 | register = template.Library() |
12 | 14 |
|
13 | | - |
14 | | -@register.simple_tag(takes_context=True) |
15 | | -def show_feedback(context, key='default'): |
16 | | - form = get_feedback_form(key)() |
17 | | - t = loader.select_template([ |
18 | | - 'feedback/%s/feedback.html' % key, |
19 | | - 'feedback/feedback.html', |
20 | | - ]) |
21 | | - request_context = RequestContext(context['request'], locals()) |
22 | | - output = t.render(request_context) |
23 | | - return output |
24 | | - |
| 15 | +class ShowFeedback(Tag): |
| 16 | + name = 'show_feedback' |
| 17 | + |
| 18 | + options = Options(Argument('form_key', required=False, resolve=False)) |
| 19 | + |
| 20 | + def render_tag(self, context, form_key): |
| 21 | + form_key = form_key if form_key else DEFAULT_FORM_KEY |
| 22 | + form = get_feedback_form(form_key)() |
| 23 | + |
| 24 | + return render_to_string([ |
| 25 | + 'feedback/%s/feedback.html' % form_key, |
| 26 | + 'feedback/feedback.html', |
| 27 | + ], {'form':form}, context_instance=RequestContext(context['request'])) |
| 28 | + |
| 29 | +register.tag(ShowFeedback) |
25 | 30 |
|
26 | 31 | @register.filter |
27 | 32 | def get_choice_value(bound_field): |
|
0 commit comments