summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-09-01 18:49:14 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-09-01 18:49:14 +0200
commitcaebc92f6e7f0a3e8445d054edd5587c58920c76 (patch)
treecfcbb351671ea74fd6b9ab43ea4b61d3e4fc661a /ishtar_common/models.py
parentf0901e79cd11ead1d5ac2543ac4affcf23a5f05f (diff)
downloadIshtar-caebc92f6e7f0a3e8445d054edd5587c58920c76.tar.bz2
Ishtar-caebc92f6e7f0a3e8445d054edd5587c58920c76.zip
Non-available types display on old item modification (refs #3179)
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py23
1 files changed, 22 insertions, 1 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index e2142ef0c..04077b240 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -330,7 +330,28 @@ class GeneralType(Cached, models.Model):
@classmethod
def get_types(cls, dct={}, instances=False, exclude=[], empty_first=True,
- default=None):
+ default=None, initial=None):
+ types = cls.pre_get_types(dct, instances, exclude, empty_first,
+ default)
+ if not initial:
+ return types
+ for value in initial:
+ try:
+ pk = int(value)
+ except ValueError:
+ continue
+ if pk in [idx for idx, lbl in types]:
+ continue
+ try:
+ extra_type = cls.objects.get(pk=pk)
+ types.append((extra_type.pk, unicode(extra_type)))
+ except cls.DoesNotExist:
+ continue
+ return types
+
+ @classmethod
+ def pre_get_types(cls, dct={}, instances=False, exclude=[],
+ empty_first=True, default=None):
# cache
cache_key = None
if not instances: