Files
Reskreen/collabs/models.py
2022-03-20 18:03:02 +01:00

86 lines
3.2 KiB
Python

import datetime
import math
import time
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, limit_choices_to={'groups__name': "Intervenants"}, verbose_name="Collaborateur", on_delete=models.DO_NOTHING)
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)
type = models.ForeignKey(Collabs_hour_types, verbose_name="Types", on_delete=models.DO_NOTHING)
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_id=self.user_id,dtCreated__year=self.dtCreated.year, dtCreated__month=self.dtCreated.month)
objs = Collabs_hour.objects.filter(user_id=self.user_id, dtCreated__year=self.dtCreated.year , dtCreated__month=self.dtCreated.month)
print(f"user {self.user} dtCreated__year {self.dtCreated.year} dtCreated__month {self.dtCreated.month}")
print( Collabs_hour.objects.all())
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)
print(objs)
if total > 0.0:
hours = int(total)
minutes = (total*60) % 60
ret_string = ("%d:%02d" % (hours, minutes))
#ret_string = str(int(math.floor(total))) + ':' + str(int((total%(math.floor(total)))*60)) + f" ({total})"
#ret_string = time.strftime("%H:%M", time.gmtime(total))
else:
ret_string = "0"
return ret_string
def __str__(self):
return f"Heure supplémentaire: {self.user} : {self.dtCreated.strftime('%d.%m.%Y')} "
class Meta:
verbose_name = "heure supplémentaire"
verbose_name_plural = "heures supplémentaires"
permissions = (
("can_notice", "Peut noter comme traitée"),
)