diff options
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 |
commit | 2d008477cb66ec3e356fd9153afba7affede249c (patch) | |
tree | fe1e94142584ca185d31a795604d6229d8646922 /ishtar/furnitures/models.py | |
parent | 7f871c7698c56dce6f398e850a08d5619cebd243 (diff) | |
download | Ishtar-2d008477cb66ec3e356fd9153afba7affede249c.tar.bz2 Ishtar-2d008477cb66ec3e356fd9153afba7affede249c.zip |
Model management of sources
Diffstat (limited to 'ishtar/furnitures/models.py')
-rw-r--r-- | ishtar/furnitures/models.py | 104 |
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")) |