21b8b6042f
Rend GestioCOF compatible avec python 3. En particulier, il s'agit de : - Utiliser la version "fonction" de `print` dans `sync_clipper` et `tirage_bda`, avec le `from __future__ import print_function` pour garder la compatibilité avec python 2 - Utiliser de l'unicode par défaut, même en python 2, avec `from __future__ import unicode_literals` et le décorateur de compatibilité `python_2_unicode_compatible` de Django pour les modèles, comme décrit à https://docs.djangoproject.com/en/1.9/topics/python3/#str-and-unicode-methods - Utiliser `six.text_type` à la place de `unicode` Fixes #2.
21 lines
815 B
Python
21 lines
815 B
Python
from __future__ import unicode_literals
|
|
|
|
from django.forms.widgets import Widget
|
|
from django.forms.utils import flatatt
|
|
from django.utils.safestring import mark_safe
|
|
|
|
|
|
class TriStateCheckbox(Widget):
|
|
def __init__(self, attrs=None, choices=()):
|
|
super(TriStateCheckbox, self).__init__(attrs)
|
|
# choices can be any iterable, but we may need to render this widget
|
|
# multiple times. Thus, collapse it into a list so it can be consumed
|
|
# more than once.
|
|
self.choices = list(choices)
|
|
|
|
def render(self, name, value, attrs=None, choices=()):
|
|
if value is None:
|
|
value = 'none'
|
|
final_attrs = self.build_attrs(attrs, value=value)
|
|
output = ["<span class=\"tristate\"%s></span>" % flatatt(final_attrs)]
|
|
return mark_safe('\n'.join(output))
|