diff options
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")) | 
