diff options
Diffstat (limited to 'ishtar/furnitures')
| -rw-r--r-- | ishtar/furnitures/admin.py | 12 | ||||
| -rw-r--r-- | ishtar/furnitures/models.py | 34 |
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") |
