diff options
| -rw-r--r-- | ishtar_common/models.py | 30 | 
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: | 
