diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-06-04 16:41:41 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-06-12 09:57:24 +0200 | 
| commit | e7418c19b122c5ac0505ad2be5350068d3bf6f6b (patch) | |
| tree | 735cd414c9dd45334a08f5e8c93224257548aa53 /ishtar_common/models.py | |
| parent | 202fb132953d115c2b1983f5f50d2f4b62bb9d5d (diff) | |
| download | Ishtar-e7418c19b122c5ac0505ad2be5350068d3bf6f6b.tar.bz2 Ishtar-e7418c19b122c5ac0505ad2be5350068d3bf6f6b.zip | |
Rebase migrations
Diffstat (limited to 'ishtar_common/models.py')
| -rw-r--r-- | ishtar_common/models.py | 41 | 
1 files changed, 31 insertions, 10 deletions
| diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 76f16eaae..de34a2b9c 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -3093,9 +3093,21 @@ class Document(OwnPerms, ImageModel, FullSearch):          'treatment_files', 'treatments', 'finds', 'context_records',          'operations', 'sites', 'warehouses',      ] - +    SLUG = 'document'      LINK_SPLIT = u"<||>" +    TABLE_COLS = ['title', 'source_type', 'cache_related_label', 'authors', +                  'associated_url'] +    COL_LINK = ['associated_url'] +    BASE_SEARCH_VECTORS = ['title', 'source_type__label', 'external_id', +                           'reference', 'description', 'comment', +                           'additional_information'] +    PARENT_SEARCH_VECTORS = ['authors', ] + +    BOOL_FIELDS = ['duplicate'] + +    CACHED_LABELS = ['cache_related_label'] +      title = models.TextField(_(u"Title"), blank=True, default='')      associated_file = models.FileField(          upload_to=get_image_path, blank=True, null=True, max_length=255) @@ -3137,13 +3149,9 @@ class Document(OwnPerms, ImageModel, FullSearch):      duplicate = models.BooleanField(_(u"Has a duplicate"), default=False)      associated_links = models.TextField(_(u"Symbolic links"), blank=True,                                          null=True) - -    TABLE_COLS = ['title', 'source_type', 'authors', 'associated_url'] -    COL_LINK = ['associated_url'] -    BASE_SEARCH_VECTORS = ['title', 'source_type__label', 'external_id', -                           'reference', 'description', 'comment', -                           'additional_information'] -    PARENT_SEARCH_VECTORS = ['authors', ] +    cache_related_label = models.TextField( +        _(u"Related"), blank=True, null=True, db_index=True, +        help_text=_(u"Cached value - do not edit"))      class Meta:          verbose_name = _(u"Document") @@ -3199,7 +3207,7 @@ class Document(OwnPerms, ImageModel, FullSearch):          for related_model in self.RELATED_MODELS:              q = getattr(self, related_model).all()              if q.count(): -                item = q.all()[0].item +                item = q.all()[0]                  yield item._get_base_image_path()      def _get_base_image_path(self): @@ -3259,7 +3267,7 @@ class Document(OwnPerms, ImageModel, FullSearch):          for related_model in self.RELATED_MODELS:              q = getattr(self, related_model).all()              if q.count(): -                item = q.all()[0].item +                item = q.all()[0]                  base_path = item._get_base_image_path()                  new_path = base_path + u"/" + filename                  if not reference_path: @@ -3295,6 +3303,16 @@ class Document(OwnPerms, ImageModel, FullSearch):                  os.symlink(reference_path, new_path)          return links +    def related_label(self): +        items = [] +        for rel_attr in reversed(self.RELATED_MODELS): +            for item in getattr(self, rel_attr).all(): +                items.append(unicode(item)) +        return u" ; ".join(items) + +    def _generate_cache_related_label(self): +        return self.related_label() +      def save(self, *args, **kwargs):          no_path_change = 'no_path_change' in kwargs \                           and kwargs.pop('no_path_change') @@ -3309,6 +3327,9 @@ class Document(OwnPerms, ImageModel, FullSearch):                  self.save(no_path_change=True) +post_save.connect(cached_label_changed, sender=Document) + +  class Arrondissement(models.Model):      name = models.CharField(u"Nom", max_length=30)      department = models.ForeignKey(Department, verbose_name=u"Département") | 
