Files
Reskreen/collabs/models.py
2022-05-01 10:45:07 +02:00

76 lines
2.5 KiB
Python

import datetime
import math
from django.core.validators import MinValueValidator, MaxValueValidator
from django.db import models
from django.conf import settings
from django.utils import timezone
from django.contrib import admin
class Collabs_hour_types(models.Model):
name = models.CharField("Dénomination", max_length=100)
dtUpdate = models.DateTimeField('Date de modification', auto_now=True)
dtCreated = models.DateTimeField('Date de création', auto_now_add=True)
def __str__(self):
return self.name
class Meta:
verbose_name = "type"
verbose_name_plural = "types"
class Collabs_hour(models.Model):
BASES_CHOICES = [
('1', 'Monthey'),
('2', 'Uvrier'),
]
userName = models.CharField("Auteur", max_length=100)
user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name="Collaborateur", on_delete=models.DO_NOTHING, default=0)
nHour = models.PositiveIntegerField("Heures", default=0, validators=[MinValueValidator(0), MaxValueValidator(23)])
nMinutes = models.PositiveIntegerField("Minutes", default=0, validators=[MinValueValidator(0), MaxValueValidator(60)])
sRemarques = models.TextField("Remarques", blank=True)
bNoticed = models.BooleanField("Vérifiée", blank=True, default=False)
dtDate = models.DateField('Date', blank=False)
sBases = models.CharField('Employé de la base de', max_length=1, choices=BASES_CHOICES,default=1)
dtUpdate = models.DateTimeField('Date de modification', auto_now=True)
dtCreated = models.DateTimeField('Date de création', auto_now_add=True)
@admin.display( description='Total du mois')
def get_total_hour_by_user(self):
objs = Collabs_hour.objects.filter(user=self.user,dtCreated__year=self.dtCreated.year, dtCreated__month=self.dtCreated.month)
total = 0.0
for object in objs:
total += object.nHour + object.nMinutes/60
print(f"hour = {object.nHour} minutes = {object.nMinutes} = {object.nMinutes/60}")
print(total)
return str(int(math.floor(total))) + ':' + str(int((total%(math.floor(total)))*60)) + f" ({total})"
@admin.display(description='Présence de remarques', boolean=True)
def has_remarques(self):
ret = False
if self.sRemarques != None and self.sRemarques != '':
ret = True
return ret
class Meta:
verbose_name = "heure suplémentaire"
verbose_name_plural = "heures suplémentaires"
permissions = (
("can_notice", "Peut noter comme traitée"),
)