src/hdalab/models/renkan.py
author ymh <ymh.work@gmail.com>
Fri, 24 Jan 2020 16:49:22 +0100
branchdocumentation
changeset 701 bf0820deea40
parent 693 09e00f38d177
permissions -rw-r--r--
Added tag V03.02.02 for changeset fe94d8572c18
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
462
df8b3b49e81c correct bug and add email sending
ymh <ymh.work@gmail.com>
parents: 458
diff changeset
     1
# -*- coding: utf-8 -*-
295
af29252631ac renkan object with thumbnail
cavaliet
parents:
diff changeset
     2
'''
af29252631ac renkan object with thumbnail
cavaliet
parents:
diff changeset
     3
Created on Jul 17, 2014
af29252631ac renkan object with thumbnail
cavaliet
parents:
diff changeset
     4
af29252631ac renkan object with thumbnail
cavaliet
parents:
diff changeset
     5
@author: tc
af29252631ac renkan object with thumbnail
cavaliet
parents:
diff changeset
     6
'''
462
df8b3b49e81c correct bug and add email sending
ymh <ymh.work@gmail.com>
parents: 458
diff changeset
     7
import logging
458
604b887e70c3 add state history to renkan, correct get into post, generally prepare ground for mail management
ymh <ymh.work@gmail.com>
parents: 329
diff changeset
     8
from renkanmanager.models import Renkan
604b887e70c3 add state history to renkan, correct get into post, generally prepare ground for mail management
ymh <ymh.work@gmail.com>
parents: 329
diff changeset
     9
604b887e70c3 add state history to renkan, correct get into post, generally prepare ground for mail management
ymh <ymh.work@gmail.com>
parents: 329
diff changeset
    10
from django.conf import settings
295
af29252631ac renkan object with thumbnail
cavaliet
parents:
diff changeset
    11
from django.db import models
559
1357a0cfdbf7 continue django 1.7 upgrade
ymh <ymh.work@gmail.com>
parents: 492
diff changeset
    12
from django.utils.translation import ugettext_lazy as _
295
af29252631ac renkan object with thumbnail
cavaliet
parents:
diff changeset
    13
af29252631ac renkan object with thumbnail
cavaliet
parents:
diff changeset
    14
462
df8b3b49e81c correct bug and add email sending
ymh <ymh.work@gmail.com>
parents: 458
diff changeset
    15
logger = logging.getLogger(__name__)
df8b3b49e81c correct bug and add email sending
ymh <ymh.work@gmail.com>
parents: 458
diff changeset
    16
299
8e00641076e7 remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents: 295
diff changeset
    17
class HdalabRenkan(models.Model):
693
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    18
    """
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    19
    Classe representant un Renkan HDALab.
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    20
    Est utilisée pour ajouter au projet renkan des informations sur l'état d'édition ou bien si il est marqué comme favori.
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    21
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    22
    :cvar object renkan: Le renkan lui même.
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    23
    :cvar int state: État du renkan (1: en édition, 2: en modération, 3: publié, 4: rejeté).
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    24
    :cvar bool favorite: Le renkan est marqué comme favori ou pas.
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    25
    """
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    26
295
af29252631ac renkan object with thumbnail
cavaliet
parents:
diff changeset
    27
    EDITION = 1
329
ea6268cf8c83 renkan state management for staff members : publish, unpublish, reject.
cavaliet
parents: 299
diff changeset
    28
    MODERATED = 2
ea6268cf8c83 renkan state management for staff members : publish, unpublish, reject.
cavaliet
parents: 299
diff changeset
    29
    PUBLISHED = 3
295
af29252631ac renkan object with thumbnail
cavaliet
parents:
diff changeset
    30
    REJECTED = 4
693
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    31
295
af29252631ac renkan object with thumbnail
cavaliet
parents:
diff changeset
    32
    STATE_CHOICES = (
af29252631ac renkan object with thumbnail
cavaliet
parents:
diff changeset
    33
    (EDITION, 'edition'),
329
ea6268cf8c83 renkan state management for staff members : publish, unpublish, reject.
cavaliet
parents: 299
diff changeset
    34
    (MODERATED, 'moderated'),
295
af29252631ac renkan object with thumbnail
cavaliet
parents:
diff changeset
    35
    (PUBLISHED, 'published'),
af29252631ac renkan object with thumbnail
cavaliet
parents:
diff changeset
    36
    (REJECTED, 'rejected'),
af29252631ac renkan object with thumbnail
cavaliet
parents:
diff changeset
    37
    )
693
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    38
329
ea6268cf8c83 renkan state management for staff members : publish, unpublish, reject.
cavaliet
parents: 299
diff changeset
    39
    STATE_CHOICES_DICT = {
ea6268cf8c83 renkan state management for staff members : publish, unpublish, reject.
cavaliet
parents: 299
diff changeset
    40
        EDITION: _('edition_state'),
ea6268cf8c83 renkan state management for staff members : publish, unpublish, reject.
cavaliet
parents: 299
diff changeset
    41
        MODERATED: _('moderated_state'),
ea6268cf8c83 renkan state management for staff members : publish, unpublish, reject.
cavaliet
parents: 299
diff changeset
    42
        PUBLISHED: _('published_state'),
ea6268cf8c83 renkan state management for staff members : publish, unpublish, reject.
cavaliet
parents: 299
diff changeset
    43
        REJECTED: _('rejected_state')
ea6268cf8c83 renkan state management for staff members : publish, unpublish, reject.
cavaliet
parents: 299
diff changeset
    44
    }
693
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    45
299
8e00641076e7 remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents: 295
diff changeset
    46
    renkan = models.ForeignKey(Renkan, blank=False, null=False)
295
af29252631ac renkan object with thumbnail
cavaliet
parents:
diff changeset
    47
    state = models.IntegerField(choices=STATE_CHOICES, default=1)
473
f469ab22542d add favorite management
ymh <ymh.work@gmail.com>
parents: 466
diff changeset
    48
    favorite = models.BooleanField(null=False, blank=False, default=False)
693
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    49
295
af29252631ac renkan object with thumbnail
cavaliet
parents:
diff changeset
    50
    class Meta:
af29252631ac renkan object with thumbnail
cavaliet
parents:
diff changeset
    51
        app_label = 'hdalab'
458
604b887e70c3 add state history to renkan, correct get into post, generally prepare ground for mail management
ymh <ymh.work@gmail.com>
parents: 329
diff changeset
    52
604b887e70c3 add state history to renkan, correct get into post, generally prepare ground for mail management
ymh <ymh.work@gmail.com>
parents: 329
diff changeset
    53
604b887e70c3 add state history to renkan, correct get into post, generally prepare ground for mail management
ymh <ymh.work@gmail.com>
parents: 329
diff changeset
    54
class HdalabRenkanStateTransition(models.Model):
693
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    55
    """
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    56
    Modélise un changement de statut du renkan.
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    57
    Permet de garder l'historique des changements de statut.
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    58
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    59
    :cvar object renkan: Le renkan.
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    60
    :cvar int from_state: le statut initial.
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    61
    :cvar int to_state: le statut final.
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    62
    :cvar datetime ts: date/heure du changement.
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    63
    :cvar str message: Message (optionel) associé au changement de statut.
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    64
    :cvar object author: Utilisateur ayant initié le changement de statut.
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    65
    """
458
604b887e70c3 add state history to renkan, correct get into post, generally prepare ground for mail management
ymh <ymh.work@gmail.com>
parents: 329
diff changeset
    66
492
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents: 474
diff changeset
    67
    renkan = models.ForeignKey(HdalabRenkan, blank=False, null=False, related_name='states')
458
604b887e70c3 add state history to renkan, correct get into post, generally prepare ground for mail management
ymh <ymh.work@gmail.com>
parents: 329
diff changeset
    68
    from_state = models.IntegerField(choices=HdalabRenkan.STATE_CHOICES, default=1, blank=False, null=False)
604b887e70c3 add state history to renkan, correct get into post, generally prepare ground for mail management
ymh <ymh.work@gmail.com>
parents: 329
diff changeset
    69
    to_state = models.IntegerField(choices=HdalabRenkan.STATE_CHOICES, default=1, blank=False, null=False)
604b887e70c3 add state history to renkan, correct get into post, generally prepare ground for mail management
ymh <ymh.work@gmail.com>
parents: 329
diff changeset
    70
    ts = models.DateTimeField(auto_now_add=True, blank=False, null=False)
604b887e70c3 add state history to renkan, correct get into post, generally prepare ground for mail management
ymh <ymh.work@gmail.com>
parents: 329
diff changeset
    71
    message = models.TextField(blank=True, null=True)
604b887e70c3 add state history to renkan, correct get into post, generally prepare ground for mail management
ymh <ymh.work@gmail.com>
parents: 329
diff changeset
    72
    author = models.ForeignKey(settings.AUTH_USER_MODEL, blank=False, null=False)
693
09e00f38d177 Add hdabo/hdalab documentations
ymh <ymh.work@gmail.com>
parents: 559
diff changeset
    73
458
604b887e70c3 add state history to renkan, correct get into post, generally prepare ground for mail management
ymh <ymh.work@gmail.com>
parents: 329
diff changeset
    74
    class Meta:
604b887e70c3 add state history to renkan, correct get into post, generally prepare ground for mail management
ymh <ymh.work@gmail.com>
parents: 329
diff changeset
    75
        app_label = 'hdalab'
492
19220d52bce7 add preview calculation
ymh <ymh.work@gmail.com>
parents: 474
diff changeset
    76
        ordering = ["-ts"]