NewsBlur-viq/vendor/paypal/standard/widgets.py

39 lines
1.1 KiB
Python
Raw Normal View History

2010-10-16 18:59:02 -04:00
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from django import forms
2014-11-07 16:22:19 -08:00
try:
from django.forms.utils import flatatt # Django 1.7 and later
except ImportError:
from django.forms.util import flatatt # earlier
2010-10-16 18:59:02 -04:00
from django.utils.safestring import mark_safe
2014-11-07 16:22:19 -08:00
from django.utils.encoding import force_text
2010-10-16 18:59:02 -04:00
class ValueHiddenInput(forms.HiddenInput):
"""
Widget that renders only if it has a value.
2014-11-07 16:22:19 -08:00
Used to remove unused fields from PayPal buttons.
2010-10-16 18:59:02 -04:00
"""
2014-11-07 16:22:19 -08:00
2010-10-16 18:59:02 -04:00
def render(self, name, value, attrs=None):
if value is None:
return u''
else:
return super(ValueHiddenInput, self).render(name, value, attrs)
2014-11-07 16:22:19 -08:00
2010-10-16 18:59:02 -04:00
class ReservedValueHiddenInput(ValueHiddenInput):
"""
Overrides the default name attribute of the form.
Used for the PayPal `return` field.
"""
2014-11-07 16:22:19 -08:00
2010-10-16 18:59:02 -04:00
def render(self, name, value, attrs=None):
if value is None:
value = ''
final_attrs = self.build_attrs(attrs, type=self.input_type)
if value != '':
2014-11-07 16:22:19 -08:00
final_attrs['value'] = force_text(value)
return mark_safe(u'<input%s />' % flatatt(final_attrs))