summaryrefslogtreecommitdiff
path: root/ishtar_common
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2013-12-17 00:57:26 +0100
committerÉtienne Loks <etienne.loks@peacefrogs.net>2013-12-17 00:57:26 +0100
commit6f9b96da3256afe3acb4bf15e7a2df4502e3f45f (patch)
tree5e64004d9a476a349ff0aca85174cfc795072970 /ishtar_common
parentab08f491d15667aae9e49cb3c6f4c21afd6c6fbe (diff)
parentfc78e69c19e1d2c8e5e0d7fab1436dd9a6da436c (diff)
downloadIshtar-6f9b96da3256afe3acb4bf15e7a2df4502e3f45f.tar.bz2
Ishtar-6f9b96da3256afe3acb4bf15e7a2df4502e3f45f.zip
Merge branch 'master' of lysithea.proxience.net:/home/proxience/git/ishtar
Diffstat (limited to 'ishtar_common')
-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 29906adef..611a6089c 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -239,20 +239,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():
@@ -286,7 +296,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 ('', '--')