summaryrefslogtreecommitdiff
path: root/ishtar/furnitures/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2011-06-21 11:52:47 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2011-06-21 11:52:47 +0200
commit2d008477cb66ec3e356fd9153afba7affede249c (patch)
treefe1e94142584ca185d31a795604d6229d8646922 /ishtar/furnitures/models.py
parent7f871c7698c56dce6f398e850a08d5619cebd243 (diff)
downloadIshtar-2d008477cb66ec3e356fd9153afba7affede249c.tar.bz2
Ishtar-2d008477cb66ec3e356fd9153afba7affede249c.zip
Model management of sources
Diffstat (limited to 'ishtar/furnitures/models.py')
-rw-r--r--ishtar/furnitures/models.py104
1 files changed, 54 insertions, 50 deletions
diff --git a/ishtar/furnitures/models.py b/ishtar/furnitures/models.py
index 6a0999119..37c958b30 100644
--- a/ishtar/furnitures/models.py
+++ b/ishtar/furnitures/models.py
@@ -426,6 +426,37 @@ class IshtarUser(User):
verbose_name = _(u"Ishtar user")
verbose_name_plural = _(u"Ishtar users")
+class AuthorType(GeneralType):
+ class Meta:
+ verbose_name = _(u"Author type")
+ verbose_name_plural = _(u"Author types")
+
+class Author(models.Model):
+ person = models.ForeignKey(Person, verbose_name=_(u"Person"))
+ author_type = models.ForeignKey(AuthorType, verbose_name=_(u"Author type"))
+
+ class Meta:
+ verbose_name = _(u"Author")
+ verbose_name_plural = _(u"Authors")
+
+ def __unicode__(self):
+ return self.person + JOINT + self.source
+
+class SourceType(GeneralType):
+ class Meta:
+ verbose_name = _(u"Source type")
+ verbose_name_plural = _(u"Source types")
+
+class Source(models.Model):
+ title = models.CharField(_(u"Title"), max_length=200)
+ source_type = models.ForeignKey(SourceType, verbose_name=_(u"Type"))
+ authors = models.ManyToManyField(Author, verbose_name=_(u"Authors"))
+
+ class Meta:
+ abstract = True
+
+ def __unicode__(self):
+ return self.title
class FileType(GeneralType):
class Meta:
@@ -641,6 +672,13 @@ class Operation(BaseHistorizedItem, OwnPerms):
return {'date':item.history_date,
'user':IshtarUser.objects.get(pk=item.history_modifier_id)}
+class OperationSource(Source):
+ class Meta:
+ verbose_name = _(u"Operation documentation")
+ verbose_name_plural = _(u"Operation documentations")
+ operation = models.ForeignKey(Operation, verbose_name=_(u"Operation"),
+ related_name="source")
+
class Parcel(LightHistorizedItem):
associated_file = models.ForeignKey(File, related_name='parcels',
blank=True, null=True, verbose_name=_(u"File"))
@@ -817,22 +855,12 @@ class ContextRecord(BaseHistorizedItem, OwnPerms):
return JOINT.join([unicode(lbl) for lbl in [self.parcel.operation.year,
self.parcel.operation.operation_code,
self.label] if lbl])
-
-class SourceType(GeneralType):
- class Meta:
- verbose_name = _(u"Source type")
- verbose_name_plural = _(u"Source types")
-
-class Source(models.Model) :
- title = models.CharField(_(u"Title"), max_length=200)
- source_type = models.ForeignKey(SourceType, verbose_name=_(u"Type"))
-
+class ContextRecordSource(Source):
class Meta:
- verbose_name = _(u"Source")
- verbose_name_plural = _(u"Sources")
-
- def __unicode__(self):
- return self.title
+ verbose_name = _(u"Context record documentation")
+ verbose_name_plural = _(u"Context record documentations")
+ context_record = models.ForeignKey(ContextRecord,
+ verbose_name=_(u"Context record"), related_name="source")
class MaterialType(GeneralType):
recommendation = models.TextField(_(u"Recommendation"))
@@ -852,7 +880,6 @@ class BaseItem(BaseHistorizedItem, OwnPerms):
null=True)
index = models.IntegerField(u"Index", default=0)
material_index = models.IntegerField(u"Material index", default=0)
- documentations = models.ManyToManyField(Source)
history = HistoricalRecords()
class Meta:
@@ -966,25 +993,12 @@ class Item(BaseHistorizedItem, OwnPerms):
base_item.save()
super(Item, self).save(*args, **kwargs)
-"""
-def initialize_item(sender, **kwargs):
- # initialize base items with the item
- if kwargs['action'] != 'post_add':
- return
- item = kwargs['instance']
- # item already initialized
- if item.label:
- return
- base_items = item.base_items.all()
- if len(base_items) != 1:
- return
- base_item = base_items[0]
- item.label = base_item.label
- item.description = base_item.description
- item.save()
-m2m_changed.connect(initialize_item,
- sender=Item.base_items.through)
-"""
+class ItemSource(Source):
+ class Meta:
+ verbose_name = _(u"Item documentation")
+ verbose_name_plural = _(u"Item documentations")
+ item = models.ForeignKey(Item, verbose_name=_(u"Item"),
+ related_name="source")
class ParcelOwner(LightHistorizedItem):
owner = models.ForeignKey(Person, verbose_name=_(u"Owner"))
@@ -1166,22 +1180,12 @@ class Treatment(BaseHistorizedItem, OwnPerms):
("delete_own_treatment", ugettext(u"Can delete own Treatment")),
)
-class AuthorType(GeneralType):
+class TreatmentSource(Source):
class Meta:
- verbose_name = _(u"Author type")
- verbose_name_plural = _(u"Author types")
-
-class Author(models.Model):
- person = models.ForeignKey(Person, verbose_name=_(u"Person"))
- source = models.ForeignKey(Source, verbose_name=_(u"Source"))
- author_type = models.ForeignKey(AuthorType, verbose_name=_(u"Author type"))
-
- class Meta:
- verbose_name = _(u"Author")
- verbose_name_plural = _(u"Authors")
-
- def __unicode__(self):
- return self.person + JOINT + self.source
+ verbose_name = _(u"Treatment documentation")
+ verbose_name_plural = _(u"Treament documentations")
+ treatment = models.ForeignKey(Treatment, verbose_name=_(u"Treatment"),
+ related_name="source")
class Property(LightHistorizedItem):
item = models.ForeignKey(Item, verbose_name=_(u"Item"))