summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py22
1 files changed, 16 insertions, 6 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 8d153f120..aacc9f2d0 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -230,20 +230,30 @@ class GeneralType(models.Model):
return u""
@classmethod
- def get_types(cls, dct={}, instances=False, exclude=[], empty_first=True):
+ def get_types(cls, dct={}, instances=False, exclude=[], empty_first=True,
+ default=None):
base_dct = dct.copy()
if hasattr(cls, 'parent'):
return cls._get_parent_types(base_dct, instances, exclude=exclude,
- empty_first=empty_first)
+ empty_first=empty_first, default=default)
return cls._get_types(base_dct, instances, exclude=exclude,
- empty_first=empty_first)
+ empty_first=empty_first, default=default)
@classmethod
- def _get_types(cls, dct={}, instances=False, exclude=[], empty_first=True):
+ def _get_types(cls, dct={}, instances=False, exclude=[], empty_first=True,
+ default=None):
dct['available'] = True
- if not instances and empty_first:
+ if not instances and empty_first and not default:
yield ('', '--')
+ if default:
+ try:
+ default = cls.objects.get(txt_idx=default)
+ yield(default.pk, _(unicode(default)))
+ except cls.DoesNotExist:
+ pass
items = cls.objects.filter(**dct)
+ if default:
+ exclude.append(default.txt_idx)
if exclude:
items = items.exclude(txt_idx__in=exclude)
for item in items.order_by(*cls._meta.ordering).all():
@@ -277,7 +287,7 @@ class GeneralType(models.Model):
@classmethod
def _get_parent_types(cls, dct={}, instances=False, exclude=[],
- empty_first=True):
+ empty_first=True, default=None):
dct['available'] = True
if not instances and empty_first:
yield ('', '--')