diff options
author | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-03-21 01:23:11 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2011-03-21 01:23:11 +0100 |
commit | 13aaa16597b159f076d6065a7e3c6b9cf4f4ba85 (patch) | |
tree | f12fbadffc066239c1dcdec466bae9ccddc3c367 /ishtar/furnitures/models.py | |
parent | 7bd98eaa04e71b48465fe3ddaa643602dde316bf (diff) | |
download | Ishtar-13aaa16597b159f076d6065a7e3c6b9cf4f4ba85.tar.bz2 Ishtar-13aaa16597b159f076d6065a7e3c6b9cf4f4ba85.zip |
Create and modify items (refs #290)
Diffstat (limited to 'ishtar/furnitures/models.py')
-rw-r--r-- | ishtar/furnitures/models.py | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/ishtar/furnitures/models.py b/ishtar/furnitures/models.py index 2aa78cf23..6afdee470 100644 --- a/ishtar/furnitures/models.py +++ b/ishtar/furnitures/models.py @@ -135,8 +135,10 @@ class GeneralType(models.Model): def _get_childs(cls, item, dct, prefix=""): prefix += "› " dct['parent'] = item - childs = cls.objects.filter(**dct).order_by('order').all() - for child in childs: + childs = cls.objects.filter(**dct) + if hasattr(cls, 'order'): + childs = childs.order_by('order') + for child in childs.all(): yield (child.pk, SafeUnicode(prefix + \ unicode(_(unicode(child))) )) for sub_child in cls._get_childs(child, dct, prefix): @@ -147,8 +149,10 @@ class GeneralType(models.Model): dct['available'] = True yield ('', '--') dct['parent'] = None - items = cls.objects.filter(**dct).order_by('order').all() - for item in items: + items = cls.objects.filter(**dct) + if hasattr(cls, 'order'): + items = items.order_by('order') + for item in items.all(): yield (item.pk, unicode(item)) for child in cls._get_childs(item, dct): yield child @@ -641,7 +645,8 @@ class BaseItem(BaseHistorizedItem, OwnPerms): description = models.TextField(_(u"Description")) context_record = models.ForeignKey(ContextRecord, verbose_name=_(u"Context Record")) - is_isolated = models.BooleanField(_(u"Is isolated?")) + is_isolated = models.NullBooleanField(_(u"Is isolated?"), blank=True, + null=True) documentations = models.ManyToManyField(Source) history = HistoricalRecords() @@ -659,7 +664,9 @@ class BaseItem(BaseHistorizedItem, OwnPerms): return self.label class Item(BaseHistorizedItem, OwnPerms): - base_items = models.ManyToManyField(BaseItem, verbose_name=_(u"Base item")) + TABLE_COLS = ['label', 'dating.period', 'material_type',] + base_items = models.ManyToManyField(BaseItem, verbose_name=_(u"Base item"), + related_name='item') order = models.IntegerField(_(u"Order")) label = models.CharField(_(u"Label"), max_length=60) description = models.TextField(_(u"Description")) @@ -668,9 +675,9 @@ class Item(BaseHistorizedItem, OwnPerms): volume = models.FloatField(_(u"Volume")) weight = models.IntegerField(_(u"Weight")) item_number = models.IntegerField(_("Item number")) - upstream_treatment = models.ForeignKey("Treatment", + upstream_treatment = models.ForeignKey("Treatment", blank=True, null=True, related_name='downstream_treatment', verbose_name=_("Upstream treatment")) - downstream_treatment = models.ForeignKey("Treatment", + downstream_treatment = models.ForeignKey("Treatment", blank=True, null=True, related_name='upstream_treatment', verbose_name=_("Downstream treatment")) dating = models.ForeignKey(Dating, verbose_name=_(u"Dating")) history = HistoricalRecords() |