summaryrefslogtreecommitdiff
path: root/ishtar/furnitures
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar/furnitures')
-rw-r--r--ishtar/furnitures/admin.py12
-rw-r--r--ishtar/furnitures/models.py34
2 files changed, 36 insertions, 10 deletions
diff --git a/ishtar/furnitures/admin.py b/ishtar/furnitures/admin.py
index 3332f4083..491a6d933 100644
--- a/ishtar/furnitures/admin.py
+++ b/ishtar/furnitures/admin.py
@@ -98,12 +98,18 @@ class SourceAdmin(admin.ModelAdmin):
admin.site.register(models.Source, SourceAdmin)
+class BaseItemAdmin(admin.ModelAdmin):
+ list_display = ('label', 'registration_unit', 'is_isolated')
+ search_fields = ('label', 'registration_unit__parcel__operation__name',)
+ model = models.BaseItem
+
+admin.site.register(models.BaseItem, BaseItemAdmin)
+
class ItemAdmin(admin.ModelAdmin):
list_display = ('label', 'material_type', 'dating', 'volume', 'weight',
- 'item_number', 'is_isolated')
+ 'item_number',)
list_filter = ('material_type',)
- search_fields = ('label', 'registration_unit__parcel__operation__name',
- "dating__period__label")
+ search_fields = ('label', "dating__period__label")
model = models.Item
admin.site.register(models.Item, ItemAdmin)
diff --git a/ishtar/furnitures/models.py b/ishtar/furnitures/models.py
index ac14857ee..e08785c0a 100644
--- a/ishtar/furnitures/models.py
+++ b/ishtar/furnitures/models.py
@@ -258,19 +258,35 @@ class MaterialType(GeneralType):
verbose_name = _(u"Material type")
verbose_name_plural = _(u"Material types")
-class Item(models.Model):
+class BaseItem(models.Model):
label = models.CharField(_(u"Label"), max_length=60)
description = models.TextField(_(u"Description"))
registration_unit = models.ForeignKey(RegistrationUnit,
verbose_name=_(u"Registration Unit"))
+ is_isolated = models.BooleanField(_(u"Is isolated?"))
+ documentations = models.ManyToManyField(Source)
+
+ class Meta:
+ verbose_name = _(u"Base item")
+ verbose_name_plural = _(u"Base items")
+
+ def __unicode__(self):
+ return self.label
+
+class Item(models.Model):
+ base_items = models.ManyToManyField(BaseItem, verbose_name=_(u"Base item"))
+ order = models.IntegerField(_(u"Order"))
+ label = models.CharField(_(u"Label"), max_length=60)
+ description = models.TextField(_(u"Description"))
material_type = models.ForeignKey(MaterialType,
verbose_name = _(u"Material type"))
- is_isolated = models.BooleanField(_(u"Is isolated?"))
volume = models.FloatField(_(u"Volume"))
weight = models.IntegerField(_(u"Weight"))
item_number = models.IntegerField(_("Item number"))
- documentations = models.ManyToManyField(Source)
- treatments = models.ManyToManyField("Treatment")
+ upstream_treatment = models.ForeignKey("Treatment",
+ related_name='downstream_treatment', verbose_name=_("Upstream treatment"))
+ downstream_treatment = models.ForeignKey("Treatment",
+ related_name='upstream_treatment', verbose_name=_("Downstream treatment"))
dating = models.ForeignKey(Dating, verbose_name=_(u"Dating"))
class Meta:
@@ -388,11 +404,15 @@ class Town(models.Model):
def __unicode__(self):
return self.name
+class TreatmentType(GeneralType):
+ class Meta:
+ verbose_name = _(u"Treatment type")
+ verbose_name_plural = _(u"Treatment types")
+
class Treatment(models.Model):
container = models.ForeignKey(Container, verbose_name=_(u"Container"))
- order = models.IntegerField(_(u"Order"))
- resulting_items = models.ManyToManyField(Item,
- verbose_name=_(u"Resulting items"))
+ treatment_type = models.ForeignKey(TreatmentType,
+ verbose_name=_(u"Treatment type"))
class Meta:
verbose_name = _(u"Treatment")