summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-02-28 11:01:43 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-02-28 11:01:43 +0100
commit1ac9117fedfb0c336c6c0924eca76b19a4d4207d (patch)
tree507af023c8cb2d40d7dbfd2ec087dc1ed4d4ad67 /ishtar_common
parentb1ece5afd9d2983bafb1b7804f41424929ebc6e6 (diff)
downloadIshtar-1ac9117fedfb0c336c6c0924eca76b19a4d4207d.tar.bz2
Ishtar-1ac9117fedfb0c336c6c0924eca76b19a4d4207d.zip
Simplify empty value for get_types (and potentially fix strange errors)
Diffstat (limited to 'ishtar_common')
-rw-r--r--ishtar_common/models.py30
1 files changed, 14 insertions, 16 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 2496e4372..24704dd21 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -489,8 +489,11 @@ class GeneralType(Cached, models.Model):
@classmethod
def get_types(cls, dct={}, instances=False, exclude=[], empty_first=True,
default=None, initial=None, force=False):
- types = cls._pre_get_types(dct, instances, exclude, empty_first,
- default, force)
+ types = []
+ if not instances and empty_first and not default:
+ types = [('', '--')]
+ types += cls._pre_get_types(dct, instances, exclude,
+ default, force)
if not initial:
return types
new_vals = cls._get_initial_types(initial, [idx for idx, lbl in types])
@@ -499,13 +502,13 @@ class GeneralType(Cached, models.Model):
@classmethod
def _pre_get_types(cls, dct={}, instances=False, exclude=[],
- empty_first=True, default=None, force=False):
+ default=None, force=False):
# cache
cache_key = None
if not instances:
keys = ['__get_types']
- keys += [u"{}".format(ex) for ex in exclude] + [
- empty_first and 'empty_first' or ''] + [u"{}".format(default)]
+ keys += [u"{}".format(ex) for ex in exclude] + \
+ [u"{}".format(default)]
keys += [u'{}-{}'.format(unicode(k), dct[k]) for k in dct]
cache_key, value = get_cache(cls, keys)
if value and not force:
@@ -515,28 +518,25 @@ class GeneralType(Cached, models.Model):
if not cache_key:
return cls._get_parent_types(
base_dct, instances, exclude=exclude,
- empty_first=empty_first, default=default)
+ default=default)
vals = [v for v in cls._get_parent_types(
base_dct, instances, exclude=exclude,
- empty_first=empty_first, default=default)]
+ default=default)]
cache.set(cache_key, vals, settings.CACHE_TIMEOUT)
return vals
if not cache_key:
return cls._get_types(base_dct, instances, exclude=exclude,
- empty_first=empty_first, default=default)
+ default=default)
vals = [v for v in cls._get_types(
- base_dct, instances, exclude=exclude, empty_first=empty_first,
+ base_dct, instances, exclude=exclude,
default=default)]
cache.set(cache_key, vals, settings.CACHE_TIMEOUT)
return vals
@classmethod
- def _get_types(cls, dct={}, instances=False, exclude=[], empty_first=True,
- default=None):
+ def _get_types(cls, dct={}, instances=False, exclude=[], default=None):
dct['available'] = True
- if not instances and empty_first and not default:
- yield ('', '--')
if default:
try:
default = cls.objects.get(txt_idx=default)
@@ -606,10 +606,8 @@ class GeneralType(Cached, models.Model):
@classmethod
def _get_parent_types(cls, dct={}, instances=False, exclude=[],
- empty_first=True, default=None):
+ default=None):
dct['available'] = True
- if not instances and empty_first:
- yield ('', '--')
dct['parent'] = None
items = cls.objects.filter(**dct)
if exclude: