Dev module Carnet_rouge

This commit is contained in:
Ambulance Clerc
2023-05-31 18:45:16 +02:00
parent 5c6ff34ad2
commit 1fe8228d1b
3 changed files with 108 additions and 11 deletions

View File

@@ -1,21 +1,98 @@
from django.contrib import admin
from carnet_rouge.models import cr_Category, cr_Message
from django.contrib.auth.models import User
from django.contrib.admin import SimpleListFilter
from django.utils.encoding import force_str
from django.utils.translation import gettext_lazy as _
class DefaultListFilter(SimpleListFilter):
all_value = '_all'
def default_value(self):
raise NotImplementedError()
def queryset(self, request, queryset):
if self.parameter_name in request.GET and request.GET[self.parameter_name] == self.all_value:
return queryset
if self.parameter_name in request.GET:
return queryset.filter(**{self.parameter_name:request.GET[self.parameter_name]})
return queryset.filter(**{self.parameter_name:self.default_value()})
def choices(self, cl):
yield {
'selected': self.value() == self.all_value,
'query_string': cl.get_query_string({self.parameter_name: self.all_value}, []),
'display': _('All'),
}
for lookup, title in self.lookup_choices:
yield {
'selected': self.value() == force_str(lookup) or (self.value() == None and force_str(self.default_value()) == force_str(lookup)),
'query_string': cl.get_query_string({
self.parameter_name: lookup,
}, []),
'display': title,
}
class StatusFilter(DefaultListFilter):
title = _('Actif ')
parameter_name = 'bEnabled__exact'
def lookups(self, request, model_admin):
return ((0,'Désactivé'), (1,'Activé'))
def default_value(self):
return 1
class cr_Message_Admin(admin.ModelAdmin):
always_show_username = True
list_display = ('id', 'Author', 'sTitle', 'dtCreated')
list_filter = [('Author', admin.RelatedOnlyFieldListFilter)]
"""
class Meta:
verbose_name = 'Message carnet rouge'
verbose_name_plural = 'Messages carnet rouge'
def save_model(self, request,obj , form, change):
obj.Author = request.user
obj.sAuthor = request.user.first_name + " " + request.user.last_name
#Get all user of selected group
obj.sDestUsers = "" # reset
users_all = User.objects.filter(groups__name=obj.DestGroup.name)
_con = ""
for usr in users_all:
obj.sDestUsers += f"{_con}[{usr.id}]"
_con = ";"
obj.save()
def has_change_permission(self, request, obj=None):
if obj is not None and obj.Author != request.user:
return False
return True
def has_delete_permission(self, request, obj=None):
if obj is not None and obj.Author != request.user:
return False
return True
always_show_username = True
list_display = ('id', 'DestGroup', 'sTitle', 'dtCreated', 'sAuthor','bEnabled', 'calc_read_quotas')
list_filter = ["sAuthor", StatusFilter]
fields = ["Caterogy", "DestGroup", 'sTitle', "sText", "dtValidityFrom", "dtValidityTo", "bEnabled"]
"""
list_filter = [('dtDate', DateRangeFilter), ('user', admin.RelatedOnlyFieldListFilter),'sBases','type', 'bNoticed']
search_fields = ['userName']
readonly_fields = ["userName"]
fields = ["sBases", "dtDate",'type', "user","nHour", "nMinutes", "sRemarques"]
"""
"""
# Register your models here.
admin.site.register(cr_Category)