ajout heures supplémentaire uniquement si auteur et tout pour membre d'administration

This commit is contained in:
Ambulance Clerc
2022-05-01 18:54:14 +02:00
parent 7c60359d3c
commit 3f8fb8a7ec

View File

@@ -7,6 +7,12 @@ from collabs.models import *
from django import forms 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): class Collabs_hour_Form_admin(forms.ModelForm):
@@ -20,10 +26,12 @@ class Collabs_hour_Form_admin(forms.ModelForm):
class Collabs_hour_Admin(admin.ModelAdmin): class Collabs_hour_Admin(admin.ModelAdmin):
always_show_username = True always_show_username = True
class Meta: class Meta:
verbose_name = 'Heure supplémentaire' verbose_name = 'Heure supplémentaire'
verbose_name_plural = 'Heures supplémentaires' 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_editable = ['bNoticed']
list_filter = [('dtDate', DateRangeFilter), ('user', admin.RelatedOnlyFieldListFilter),'sBases','type'] list_filter = [('dtDate', DateRangeFilter), ('user', admin.RelatedOnlyFieldListFilter),'sBases','type']
@@ -33,6 +41,22 @@ class Collabs_hour_Admin(admin.ModelAdmin):
readonly_fields = ["userName"] readonly_fields = ["userName"]
fields = ["sBases", "dtDate",'type', "user","nHour", "nMinutes", "sRemarques"] 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): def get_form(self, request, obj=None, **kwargs):
#if request.user.has_perm("collabs.can_notice"): #if request.user.has_perm("collabs.can_notice"):
if request.user.is_superuser: if request.user.is_superuser:
@@ -41,6 +65,16 @@ class Collabs_hour_Admin(admin.ModelAdmin):
return super().get_form(request, obj, **kwargs) 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): def formfield_for_foreignkey(self, db_field, request=None, **kwargs):
field = super(Collabs_hour_Admin, self).formfield_for_foreignkey( db_field, request, **kwargs) field = super(Collabs_hour_Admin, self).formfield_for_foreignkey( db_field, request, **kwargs)
if db_field.remote_field.model == User: 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): 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) super().save_model(request, obj, form, change)