예제 #1
0
class User(AbstractBaseUser, PermissionsMixin):
    first_name = models.CharField(max_length=30, verbose_name=text("Nom"))
    last_name = models.CharField(max_length=30, verbose_name=text("Prenom"))
    username = models.CharField(max_length=30, unique=True)
    email = models.EmailField(max_length=255,
                              unique=True,
                              verbose_name=text("Adresse Email"))
    group = models.ForeignKey(Group,
                              on_delete=models.CASCADE,
                              verbose_name=text("Groupe"),
                              related_name='user_group',
                              null=True,
                              blank=True)
    has_group = models.BooleanField(default=False)
    is_staff = models.BooleanField(default=False)
    is_active = models.BooleanField(default=True)
    is_manager = models.BooleanField(
        verbose_name="Peut-il devenir Chef de Groupe ?", default=False)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)
    is_superuser = models.BooleanField(default=False)
    profil_image = models.ImageField(upload_to=profilimage_directory_path,
                                     null=True,
                                     blank=True)

    objects = UserManager()
    USERNAME_FIELD = "email"
    REQUIRED_FIELDS = ["first_name", "last_name", "username"]

    def __str__(self):
        return self.last_name

    def clean(self):
        super().clean()
        self.email = self.__class__.objects.normalize_email(self.email)
예제 #2
0
class Discussion(models.Model):
    auteur = models.ForeignKey(User,
                               on_delete=models.CASCADE,
                               verbose_name=text("Envoyeur"),
                               related_name="user1_discussion")
    receiver = models.ForeignKey(User,
                                 on_delete=models.CASCADE,
                                 verbose_name=text("Receiver"),
                                 related_name="user2_discussion")

    class Meta:
        unique_together = (('auteur', 'receiver'))
예제 #3
0
class Event(models.Model):
    title = models.CharField(max_length=50, verbose_name=text("Titre"))
    description = models.TextField(default="",
                                   verbose_name=text("Description"))
    priority = models.CharField(choices=PRIORITY,
                                default="",
                                max_length=10,
                                verbose_name=text("Priorité"))
    start = models.DateTimeField(verbose_name=text("Début "))
    end = models.DateTimeField(verbose_name=text("Fin "))
    is_cancelled = models.BooleanField(default=False,
                                       blank=True,
                                       verbose_name=text("Annulé ? "))

    def __str__(self):
        return self.title

    @property
    def get_html_url(self):
        url = reverse('calendrier:details', args=(self.id, ))
        ctitle = "<span class='offset-md-0 float-left'>" + str(
            self.start.time()) + ' a ' + str(
                self.end.time()) + "</span>" + "\n <br>" + self.title
        if self.priority == "tres haute":
            return f"<a href='{url}' class='btn btn-lg badge badge-danger badge-lg' style='display:inline-block; text-decoration: none; font-size:14px;'> {ctitle} </a>"
        elif self.priority == "haute":
            return f"<a href='{url}' class='btn badge badge-warning badge-lg' style='text-decoration: none; font-size:14px;'> {ctitle} </a>"
        elif self.priority == "normale":
            return f"<a href='{url}' class='btn badge badge-primary badge-lg' style='text-decoration: none; font-size:14px;'> {ctitle} </a>"
        elif self.priority == "peu faible":
            return f"<a href='{url}' class='btn badge badge-info badge-lg' style='text-decoration: none; font-size:14px;'> {ctitle} </a>"
        elif self.priority == "faible":
            return f"<a href='{url}' class='btn badge badge-secondary badge-lg' style='text-decoration: none; font-size:14px;'> {ctitle} </a>"
예제 #4
0
class Dialogs(models.Model):
    auteur = models.ForeignKey(User,
                               on_delete=models.CASCADE,
                               verbose_name=text("Envoyeur"),
                               related_name="auteur_chat")
    messages = models.TextField(verbose_name=text("Message ou Chat"),
                                blank=False,
                                null=False)
    group = models.ForeignKey(Group,
                              on_delete=models.CASCADE,
                              verbose_name=text("Envoyé au groupe"),
                              related_name="groupe")
    fichiers = models.FileField(upload_to=attachments_directory_path,
                                storage=OverwriteStorage(),
                                null=True,
                                blank=True)
    pub_date = models.DateTimeField(verbose_name=text('Date du massage'),
                                    default=timezone.now)
    is_readed = models.BooleanField(verbose_name=text('Readed'), default=False)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateField(auto_now=True)

    def __str__(self):
        return self.messages
예제 #5
0
class Chats(models.Model):
    author = models.ForeignKey(User,
                               on_delete=models.CASCADE,
                               verbose_name=text("Sender"),
                               related_name="sender_chat")
    receiver = models.ForeignKey(User,
                                 on_delete=models.CASCADE,
                                 verbose_name=text("Receiver"),
                                 related_name="recepteur_chat")
    message = models.TextField(verbose_name=text("Message ou Chat"),
                               blank=False,
                               null=False)
    files = models.FileField(upload_to=attachments_directory_path,
                             storage=OverwriteStorage(),
                             null=True,
                             blank=True)
    pub_date = models.DateTimeField(verbose_name=text('Date du massage'),
                                    default=timezone.now)
    is_readed = models.BooleanField(verbose_name=text('Readed'), default=False)
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateField(auto_now=True)

    def __str__(self):
        return self.message
예제 #6
0
class Task(models.Model):
    name = models.CharField(max_length=255, verbose_name=text("Nom"))
    description = models.TextField(default="", max_length=255, verbose_name=text("Description"), blank=True, null=True)
    date_due = models.DateField(verbose_name=text("Date limite"))
    status = models.CharField(default="attribuée", choices=STATUS, max_length=10, verbose_name=text("Statut"))
    priority = models.CharField(choices=PRIORITY, max_length=10, verbose_name=text("Priorité"))
    category = models.ForeignKey(Category, on_delete=models.CASCADE, verbose_name=text("Categorie"),
                                 related_name="task_category")
    group = models.ForeignKey(Group, on_delete=models.CASCADE, verbose_name=text("Attribuer au groupe"),
                              related_name="task_group")
    task_file1 = models.FileField(upload_to=attachments_directory_path, storage=OverwriteStorage(), null=True,
                                  blank=True)
    task_file2 = models.FileField(upload_to=attachments_directory_path, storage=OverwriteStorage(), null=True,
                                  blank=True)
    task_file3 = models.FileField(upload_to=attachments_directory_path, storage=OverwriteStorage(), null=True,
                                  blank=True)
    task_file4 = models.FileField(upload_to=attachments_directory_path, storage=OverwriteStorage(), null=True,
                                  blank=True)
    created_by = models.ForeignKey(User, on_delete=models.CASCADE, related_name="task_created_by")
    created = models.DateTimeField(auto_now_add=True)
    updated = models.DateField(auto_now=True)

    def __str__(self):
        return self.name