X-Git-Url: https://git.stderr.nl/gitweb?a=blobdiff_plain;ds=sidebyside;f=tools%2Fmisc.py;h=2c785482e5a9e1da735a4d05c3b75ec41b78493b;hb=dad2574dc3f0cc1d114a85ac44ef440b5baeeaa8;hp=1259ab7d706284e6abc2164e79d6d90cdbe50143;hpb=dec5a89fa614023c3e9fe7b0eff52eb186832f70;p=matthijs%2Fprojects%2Fxerxes.git diff --git a/tools/misc.py b/tools/misc.py index 1259ab7..2c78548 100644 --- a/tools/misc.py +++ b/tools/misc.py @@ -22,9 +22,21 @@ prints it to stdout and raises it again. def log_error(func): def show(*args, **kwargs): try: - func(*args, **kwargs) + return func(*args, **kwargs) except Exception, e: import traceback traceback.print_exc() raise e return show + +def make_choices(objects): + """ + Transforms a list (or iteratable) of model objects to a list + suitable to be used as a list of choices in form widgets like + Select. + + This fullfills a similar (but simpler) function as + django.forms.models.ModelChoiceIterator, but that one requires a + FormField and is not public. + """ + return [(o.pk, o) for o in objects]