src/core/models/notice.py
author ymh <ymh.work@gmail.com>
Mon, 03 Feb 2014 02:31:21 +0100
changeset 334 169b7cfd1f58
parent 175 7331ecc46cba
permissions -rw-r--r--
Add headers to py files
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
# -*- coding: utf-8 -*-
334
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
     2
#
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
     3
# Copyright Institut de Recherche et d'Innovation © 2014
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
     4
#
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
     5
# contact@iri.centrepompidou.fr
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
     6
#
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
     7
# Ce code a été développé pour un premier usage dans JocondeLab, projet du 
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
     8
# ministère de la culture et de la communication visant à expérimenter la
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
     9
# recherche sémantique dans la base Joconde
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    10
# (http://jocondelab.iri-research.org/).
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    11
#
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    12
# Ce logiciel est régi par la licence CeCILL-C soumise au droit français et
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    13
# respectant les principes de diffusion des logiciels libres. Vous pouvez
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    14
# utiliser, modifier et/ou redistribuer ce programme sous les conditions
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    15
# de la licence CeCILL-C telle que diffusée par le CEA, le CNRS et l'INRIA 
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    16
# sur le site "http://www.cecill.info".
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    17
#
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    18
# En contrepartie de l'accessibilité au code source et des droits de copie,
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    19
# de modification et de redistribution accordés par cette licence, il n'est
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    20
# offert aux utilisateurs qu'une garantie limitée.  Pour les mêmes raisons,
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    21
# seule une responsabilité restreinte pèse sur l'auteur du programme,  le
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    22
# titulaire des droits patrimoniaux et les concédants successifs.
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    23
#
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    24
# A cet égard  l'attention de l'utilisateur est attirée sur les risques
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    25
# associés au chargement,  à l'utilisation,  à la modification et/ou au
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    26
# développement et à la reproduction du logiciel par l'utilisateur étant 
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    27
# donné sa spécificité de logiciel libre, qui peut le rendre complexe à 
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    28
# manipuler et qui le réserve donc à des développeurs et des professionnels
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    29
# avertis possédant  des  connaissances  informatiques approfondies.  Les
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    30
# utilisateurs sont donc invités à charger  et  tester  l'adéquation  du
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    31
# logiciel à leurs besoins dans des conditions permettant d'assurer la
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    32
# sécurité de leurs systèmes et ou de leurs données et, plus généralement, 
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    33
# à l'utiliser et l'exploiter dans les mêmes conditions de sécurité. 
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    34
#
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    35
# Le fait que vous puissiez accéder à cet en-tête signifie que vous avez 
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    36
# pris connaissance de la licence CeCILL-C, et que vous en avez accepté les
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    37
# termes.
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    38
#
0
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
'''
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
Created on Jun 8, 2013
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
@author: ymh
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
'''
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
from django.db import models
48
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
    45
from django.db.models import signals
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
    46
from django.dispatch import receiver
334
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    47
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    48
from core import settings
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    49
from core.models.term import Term
169b7cfd1f58 Add headers to py files
ymh <ymh.work@gmail.com>
parents: 175
diff changeset
    50
0
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
# Create your models here.
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
class Notice(models.Model):
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
    
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
    ref         = models.CharField(max_length=20, null=True, blank=True, unique=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
    adpt        = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
    appl        = models.CharField(max_length=1024, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
    aptn        = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
    attr        = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
    autr        = models.CharField(max_length=1024, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
    autr_terms  = models.ManyToManyField(Term, related_name="autr+", limit_choices_to = {'thesaurus__label': 'autr'}, through='AutrNoticeTerm')
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
    bibl        = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
    comm        = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
    contact     = models.CharField(max_length=1024, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
    coor        = models.CharField(max_length=1024, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
    copy        = models.CharField(max_length=1024, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
    dacq        = models.CharField(max_length=1024, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
    data        = models.CharField(max_length=512, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
    dation      = models.CharField(max_length=512, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
    ddpt        = models.CharField(max_length=512, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
    decv        = models.CharField(max_length=1024, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
    deno        = models.CharField(max_length=1024, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
    depo        = models.CharField(max_length=1024, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
    desc        = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
    desy        = models.CharField(max_length=512, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
    dims        = models.CharField(max_length=2048, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
    dmaj        = models.DateField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
    dmis        = models.DateField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
    domn        = models.CharField(max_length=512, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
    domn_terms  = models.ManyToManyField(Term, related_name="domn+", limit_choices_to = {'thesaurus__label': 'domn'}, through='DomnNoticeTerm') 
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
    drep        = models.CharField(max_length=1024, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
    ecol        = models.CharField(max_length=512, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
    ecol_terms  = models.ManyToManyField(Term, related_name="ecol+", limit_choices_to = {'thesaurus__label': 'ecol'}, through='EcolNoticeTerm')
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
    epoq        = models.CharField(max_length=512, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
    epoq_terms  = models.ManyToManyField(Term, related_name="epoq+", limit_choices_to = {'thesaurus__label': 'epoq'}, through='EpoqNoticeTerm')
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
    etat        = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
    expo        = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
    gene        = models.CharField(max_length=1024, null=True, blank=True) 
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
    geohi       = models.CharField(max_length=1024, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
    hist        = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
    image       = models.BooleanField()
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
    insc        = models.CharField(max_length=1024, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
    inv         = models.CharField(max_length=2048, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
    label       = models.CharField(max_length=512, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
    labo        = models.CharField(max_length=1024, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
    lieux       = models.CharField(max_length=1024, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
    lieux_terms = models.ManyToManyField(Term, related_name="lieux+", limit_choices_to = {'thesaurus__label': 'lieux'}, through='LieuxNoticeTerm')
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
    loca        = models.CharField(max_length=512, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
    loca2       = models.CharField(max_length=512, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
    mill        = models.CharField(max_length=512, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
    milu        = models.CharField(max_length=512, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
    mosa        = models.CharField(max_length=512, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
    msgcom      = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
    museo       = models.CharField(max_length=512, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
    nsda        = models.CharField(max_length=512, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
    onom        = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
    paut        = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
    pdat        = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
    pdec        = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
    peoc        = models.CharField(max_length=512, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
    peri        = models.CharField(max_length=512, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
    peri_terms  = models.ManyToManyField(Term, related_name="peri+", limit_choices_to = {'thesaurus__label': 'peri'}, through='PeriNoticeTerm')
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
    peru        = models.CharField(max_length=1024, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
    phot        = models.CharField(max_length=1024, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
    pins        = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
    plieux      = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
    prep        = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
    puti        = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
    reda        = models.CharField(max_length=1024, null=True, blank=True)    
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
    refim       = models.CharField(max_length=2048, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
    repr        = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
    repr_terms  = models.ManyToManyField(Term, related_name="repr+", limit_choices_to = {'thesaurus__label': 'repr'}, through='ReprNoticeTerm')
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
    srep        = models.CharField(max_length=1024, null=True, blank=True)
33
61c3ffd94f11 - correct imports.
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   124
    srep_terms  = models.ManyToManyField(Term, related_name="srep+", limit_choices_to = {'thesaurus__label': 'srep'}, through='SrepNoticeTerm')
0
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
    stat        = models.CharField(max_length=1024, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
    tech        = models.CharField(max_length=2048, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
    tico        = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
    titr        = models.TextField(null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
    util        = models.CharField(max_length=1024, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
    video       = models.CharField(max_length=2048, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
    www         = models.CharField(max_length=512, null=True, blank=True)
55
bcbd95da9be2 add preview of notices + add missing img for wp
ymh <ymh.work@gmail.com>
parents: 48
diff changeset
   132
    
bcbd95da9be2 add preview of notices + add missing img for wp
ymh <ymh.work@gmail.com>
parents: 48
diff changeset
   133
    def thumbnails(): #@NoSelf
bcbd95da9be2 add preview of notices + add missing img for wp
ymh <ymh.work@gmail.com>
parents: 48
diff changeset
   134
        doc = """Docstring""" #@UnusedVariable
bcbd95da9be2 add preview of notices + add missing img for wp
ymh <ymh.work@gmail.com>
parents: 48
diff changeset
   135
       
bcbd95da9be2 add preview of notices + add missing img for wp
ymh <ymh.work@gmail.com>
parents: 48
diff changeset
   136
        def fget(self):
bcbd95da9be2 add preview of notices + add missing img for wp
ymh <ymh.work@gmail.com>
parents: 48
diff changeset
   137
            return [img for img in self.images.all() if img.url.split('.')[-2].endswith("_v")]
bcbd95da9be2 add preview of notices + add missing img for wp
ymh <ymh.work@gmail.com>
parents: 48
diff changeset
   138
                      
bcbd95da9be2 add preview of notices + add missing img for wp
ymh <ymh.work@gmail.com>
parents: 48
diff changeset
   139
        return locals()
bcbd95da9be2 add preview of notices + add missing img for wp
ymh <ymh.work@gmail.com>
parents: 48
diff changeset
   140
       
bcbd95da9be2 add preview of notices + add missing img for wp
ymh <ymh.work@gmail.com>
parents: 48
diff changeset
   141
    thumbnails = property(**thumbnails())
175
7331ecc46cba image order
cavaliet
parents: 55
diff changeset
   142
    
7331ecc46cba image order
cavaliet
parents: 55
diff changeset
   143
    def large_images(): #@NoSelf
7331ecc46cba image order
cavaliet
parents: 55
diff changeset
   144
        doc = """Docstring""" #@UnusedVariable
7331ecc46cba image order
cavaliet
parents: 55
diff changeset
   145
       
7331ecc46cba image order
cavaliet
parents: 55
diff changeset
   146
        def fget(self):
7331ecc46cba image order
cavaliet
parents: 55
diff changeset
   147
            return [img.url for img in self.images.filter(large=True).order_by('order')]
7331ecc46cba image order
cavaliet
parents: 55
diff changeset
   148
                      
7331ecc46cba image order
cavaliet
parents: 55
diff changeset
   149
        return locals()
7331ecc46cba image order
cavaliet
parents: 55
diff changeset
   150
    
7331ecc46cba image order
cavaliet
parents: 55
diff changeset
   151
    large_images = property(**large_images())
0
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
    class Meta:
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
        app_label = 'core'
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
class NoticeImage(models.Model):
36
f770159c3cee Remove unique constraint on image/notice
ymh <ymh.work@gmail.com>
parents: 33
diff changeset
   157
    relative_url = models.URLField(max_length='1024', null=False, blank=False, unique=False)
0
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
    notice = models.ForeignKey(Notice, related_name="images")
175
7331ecc46cba image order
cavaliet
parents: 55
diff changeset
   159
    order = models.IntegerField(default=0, null=True)
7331ecc46cba image order
cavaliet
parents: 55
diff changeset
   160
    large = models.BooleanField(default=True)
7331ecc46cba image order
cavaliet
parents: 55
diff changeset
   161
    main = models.BooleanField(default=False)
0
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
    
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
    class Meta:
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
        app_label = 'core'
36
f770159c3cee Remove unique constraint on image/notice
ymh <ymh.work@gmail.com>
parents: 33
diff changeset
   165
        unique_together = (("relative_url", "notice"),)
0
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
    
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
    @property
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
    def url(self):
175
7331ecc46cba image order
cavaliet
parents: 55
diff changeset
   170
        return settings.JOCONDE_IMAGE_BASE_URL + self.relative_url
0
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
class NoticeTerm(models.Model):
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
    
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
    notice = models.ForeignKey(Notice)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
    term   = models.ForeignKey(Term)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
    
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
    #optionnal rdf graph uri describing the relationship
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
    graph  = models.URLField(max_length=2048, null=True, blank=True)
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
    
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
    class Meta:
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
        app_label = 'core'
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
class AutrNoticeTerm(NoticeTerm):
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
    class Meta:
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
        app_label = 'core'
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
        
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
class DomnNoticeTerm(NoticeTerm):
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
    class Meta:
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
        app_label = 'core'
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
        
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
class EcolNoticeTerm(NoticeTerm):
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
    class Meta:
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
        app_label = 'core'
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
        
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
class EpoqNoticeTerm(NoticeTerm):
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
    class Meta:
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
        app_label = 'core'
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
class LieuxNoticeTerm(NoticeTerm):
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
    class Meta:
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
        app_label = 'core'
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
class PeriNoticeTerm(NoticeTerm):
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
    class Meta:
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
        app_label = 'core'
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
class ReprNoticeTerm(NoticeTerm):
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
    class Meta:
4095911a7830 Jocondelab first commit before design
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
        app_label = 'core'
33
61c3ffd94f11 - correct imports.
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   212
61c3ffd94f11 - correct imports.
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   213
class SrepNoticeTerm(NoticeTerm):
61c3ffd94f11 - correct imports.
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   214
    class Meta:
61c3ffd94f11 - correct imports.
ymh <ymh.work@gmail.com>
parents: 0
diff changeset
   215
        app_label = 'core'
48
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
   216
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
   217
def increment_nb_notice(term, inc):
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
   218
    term.nb_notice = term.nb_notice + inc
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
   219
    term.save
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
   220
    
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
   221
@receiver(signals.post_save, sender=NoticeTerm)
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
   222
def notice_term_created(sender, **kwargs):
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
   223
    instance = kwargs.get('instance', None)
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
   224
    created = kwargs.get('created', None)
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
   225
    if instance is None or not created:
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
   226
        return
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
   227
    increment_nb_notice(instance.term, 1)
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
   228
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
   229
@receiver(signals.post_delete, sender=NoticeTerm)
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
   230
def notice_term_deleted(sender, **kwargs):
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
   231
    instance = kwargs.get('instance', None)
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
   232
    if instance is None:
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
   233
        return
f4fadc1b9d70 cache the nb_notice query to improve perf.
ymh <ymh.work@gmail.com>
parents: 36
diff changeset
   234
    increment_nb_notice(instance.term, -1)