summaryrefslogtreecommitdiff
path: root/ishtar/furnitures/models.py
diff options
context:
space:
mode:
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
commit13aaa16597b159f076d6065a7e3c6b9cf4f4ba85 (patch)
treef12fbadffc066239c1dcdec466bae9ccddc3c367 /ishtar/furnitures/models.py
parent7bd98eaa04e71b48465fe3ddaa643602dde316bf (diff)
downloadIshtar-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.py23
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 += "&rsaquo; "
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()