From 3f8fb8a7ec92ffb322e2537daec915f40b471423 Mon Sep 17 00:00:00 2001 From: Ambulance Clerc Date: Sun, 1 May 2022 18:54:14 +0200 Subject: [PATCH] =?UTF-8?q?ajout=20heures=20suppl=C3=A9mentaire=20uniqueme?= =?UTF-8?q?nt=20si=20auteur=20et=20tout=20pour=20membre=20d'administration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- collabs/admin.py | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/collabs/admin.py b/collabs/admin.py index 1c21294..38760d0 100644 --- a/collabs/admin.py +++ b/collabs/admin.py @@ -7,6 +7,12 @@ from collabs.models import * from django import forms +from datetime import datetime + + +def is_member(user, group): + return user.groups.filter(name=group).exists() + class Collabs_hour_Form_admin(forms.ModelForm): @@ -20,10 +26,12 @@ class Collabs_hour_Form_admin(forms.ModelForm): class Collabs_hour_Admin(admin.ModelAdmin): always_show_username = True + + class Meta: verbose_name = 'Heure supplémentaire' verbose_name_plural = 'Heures supplémentaires' - list_display = ('dtDate','nHour', 'nMinutes', 'user', 'sBases', 'get_total_hour_by_user','has_remarques', 'bNoticed') + list_display = ('dtDate', 'nHour', 'nMinutes', 'user', 'sBases', 'type', 'get_total_hour_by_user', 'has_remarques', 'bNoticed') list_editable = ['bNoticed'] list_filter = [('dtDate', DateRangeFilter), ('user', admin.RelatedOnlyFieldListFilter),'sBases','type'] @@ -33,6 +41,22 @@ class Collabs_hour_Admin(admin.ModelAdmin): readonly_fields = ["userName"] fields = ["sBases", "dtDate",'type', "user","nHour", "nMinutes", "sRemarques"] + + def get_rangefilter_dtDate_default(self, request): + return ('01/05/2022', '01/05/2022') + + def get_queryset(self, request): + queryset = super(Collabs_hour_Admin, self).get_queryset(request) + + if not is_member(request.user, "Administration"): + queryset = queryset.filter(userName=request.user.username) + + + return queryset + + + + def get_form(self, request, obj=None, **kwargs): #if request.user.has_perm("collabs.can_notice"): if request.user.is_superuser: @@ -41,6 +65,16 @@ class Collabs_hour_Admin(admin.ModelAdmin): return super().get_form(request, obj, **kwargs) + def get_list_display(self, request): + default_list_display = super(Collabs_hour_Admin, self).get_list_display(request) + if is_member(request.user,"Administration"): + #default_list_display = ('dtDate', 'nHour', 'nMinutes', 'user', 'sBases', 'type', 'get_total_hour_by_user', 'has_remarques', 'bNoticed') + pass + else: + default_list_display = ('dtDate', 'nHour', 'nMinutes', 'user', 'sBases', 'type', 'has_remarques') + return default_list_display + + def formfield_for_foreignkey(self, db_field, request=None, **kwargs): field = super(Collabs_hour_Admin, self).formfield_for_foreignkey( db_field, request, **kwargs) if db_field.remote_field.model == User: @@ -63,7 +97,7 @@ class Collabs_hour_Admin(admin.ModelAdmin): def save_model(self, request, obj, form, change): - obj.userName = obj.user.username + obj.userName = request.user.username super().save_model(request, obj, form, change)