Files
Reskreen/collabs/models.py
Ambulance Clerc efdf44864f avancé dev
2022-03-01 07:09:12 +01:00

55 lines
1.9 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(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})"
class Meta:
verbose_name = "heure suplémentaire"
verbose_name_plural = "heures suplémentaires"
permissions = (
("can_notice", "Peut noter comme traitée"),
)