Files
Reskreen/carnet_rouge/models.py
2023-05-31 18:45:16 +02:00

60 lines
2.0 KiB
Python

import datetime
from django.db import models
from django.conf import settings
from django.contrib.auth.models import Group
from django.utils import timezone
from django.dispatch import receiver
from django.db.models.signals import pre_save
# Create your models here.
class cr_Category(models.Model):
sName = models.CharField("Désignation", max_length=250)
dtUpdated = models.DateTimeField('date updated', auto_now=True)
dtCreated = models.DateTimeField('date published', auto_now_add=True)
def __str__(self):
return self.sName
class Meta:
verbose_name = "catégorie"
verbose_name_plural = "catégories"
class cr_Message(models.Model):
Caterogy = models.ForeignKey(cr_Category, on_delete=models.DO_NOTHING, verbose_name="Catégorie")
sDestUsers = models.TextField("Liste des utilisateurs cibles")
sReadedUsers = models.TextField("Liste des utilisateurs ayant lu", blank=True)
DestGroup = models.ForeignKey(Group, on_delete=models.DO_NOTHING)
sTitle = models.CharField("Titre", max_length=120)
sText = models.TextField("Corps de texte")
dtValidityFrom = models.DateField("Validité depuis",default=timezone.now)
dtValidityTo = models.DateField("Validité jusqu'à", blank=True, null=True)
bEnabled = models.BooleanField("Actif", default=True)
Author = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name="Auteur", on_delete=models.SET_NULL, null=True)
sAuthor = models.CharField("Auteur", max_length=120)
dtUpdated = models.DateTimeField('date updated', auto_now=True)
dtCreated = models.DateTimeField('date published', auto_now_add=True)
def calc_read_quotas(self):
obj = self
n_dest = obj.sDestUsers.count('[')
n_readed = obj.sReadedUsers.count('[')
if n_dest == 0:
return "No dest"
print(f"{n_dest}/{n_readed}")
return f"{(n_readed/n_dest)*100}%"
class Meta:
verbose_name = "message"
verbose_name_plural = "messages"