diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-10-28 19:21:41 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-10-28 19:21:41 +0200 |
commit | 6f80a494ceac19d5db0650a591bf112b09ea2eba (patch) | |
tree | bd817bec361eff377bdd7b03b3ac2b37631f8c9d /ishtar_common/forms.py | |
parent | 6435791849e9f386dc150d63c06025148698bb2d (diff) | |
download | Ishtar-6f80a494ceac19d5db0650a591bf112b09ea2eba.tar.bz2 Ishtar-6f80a494ceac19d5db0650a591bf112b09ea2eba.zip |
Too many lazy evaluations and nobody do the job! Fixed.
Diffstat (limited to 'ishtar_common/forms.py')
-rw-r--r-- | ishtar_common/forms.py | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index b0e8cb43c..043b03f61 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -31,6 +31,10 @@ from django.utils import formats from django.utils.functional import lazy from django.utils.translation import ugettext_lazy as _ +import models +import widgets + + # from formwizard.forms import NamedUrlSessionFormWizard @@ -44,10 +48,23 @@ class NamedUrlSessionFormWizard(forms.Form): def rindex(self, idx): return self.url_name.rindex(idx) -import models -import widgets -reverse_lazy = lazy(reverse, unicode) +def my_reverse(*args, **kwargs): + """ + Custom reverse method in order to evaluate lazy args + """ + if 'args' in kwargs: + my_args = [] + for arg in kwargs['args']: + if callable(arg): + my_args.append(unicode(arg())) + else: + my_args.append(unicode(arg)) + kwargs['args'] = my_args + return reverse(*args, **kwargs) + + +reverse_lazy = lazy(my_reverse, unicode) regexp_name = re.compile(r"^[,:/\w\-'\"() \&\[\]@]+$", re.UNICODE) name_validator = validators.RegexValidator( |