diff --git a/collabs/admin.py b/collabs/admin.py index 82a83a2..b0d90f9 100644 --- a/collabs/admin.py +++ b/collabs/admin.py @@ -35,9 +35,9 @@ class Collabs_hour_Admin(admin.ModelAdmin): class Meta: verbose_name = 'Heure supplémentaire' verbose_name_plural = 'Heures supplémentaires' - list_display = ('dtDate', 'nHour', 'nMinutes', 'user', 'sBases', 'type', 'get_total_hour_by_user', 'has_remarques', 'bNoticed') + list_display = ('dtDate', 'nHour', 'nMinutes', 'sTargetUser', 'sBases', 'type', 'get_total_hour_by_user', 'has_remarques', 'bNoticed') - list_filter = [('dtDate', DateRangeFilter), ('user', admin.RelatedOnlyFieldListFilter),'sBases','type', 'bNoticed'] + list_filter = [('dtDate', DateRangeFilter), 'sTargetUser','sBases','type', 'bNoticed'] search_fields = ['userName'] readonly_fields = ["userName"] diff --git a/collabs/models.py b/collabs/models.py index 849e3d4..8eec7f5 100644 --- a/collabs/models.py +++ b/collabs/models.py @@ -7,6 +7,9 @@ from django.conf import settings from django.utils import timezone from django.contrib import admin +from django.dispatch import receiver +from django.db.models.signals import pre_save + #test BASES_CHOICES = [ @@ -33,7 +36,8 @@ class Collabs_hour(models.Model): 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) + user = models.ForeignKey(settings.AUTH_USER_MODEL, limit_choices_to={'groups__name': "Intervenants"}, verbose_name="Collaborateur", on_delete=models.SET_NULL, null=True) + sTargetUser = models.CharField("Collaborateur", blank=True, max_length=150, null=True, default="") 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) @@ -86,7 +90,7 @@ class Collabs_hour(models.Model): ret = True return ret def __str__(self): - return f"Heure supplémentaire: {self.user} : {self.dtCreated.strftime('%d.%m.%Y')} " + return f"Heure supplémentaire: {self.sTargetUser} : {self.dtCreated.strftime('%d.%m.%Y')} " class Meta: verbose_name = "heure supplémentaire" @@ -95,3 +99,18 @@ class Collabs_hour(models.Model): ("can_notice", "Peut noter comme traitée"), ) + + +all = Collabs_hour.objects.all() +for item in all: + print(item) + item.sTargetUser = "testDEV" + if item.user is not None: + item.sTargetUser = f"{item.user.first_name} {item.user.last_name}" + item.save() + + +@receiver(pre_save, sender=Collabs_hour) +def on_update(instance,**kwargs): + if instance.user is not None: + instance.sTargetUser = f"{instance.user.first_name} {instance.user.last_name}" \ No newline at end of file