ajout heures supplémentaire uniquement si auteur et tout pour membre d'administration
This commit is contained in:
@@ -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)
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user