import models as rh
import filters
-
+################################################################################
+# FILTRAGE PAR DATE
+################################################################################
+class DateRangeMixin(object):
+ """
+ Mixin pour que le model admin utilise le changelist trafiqué permettant de filter par range
+ non strict.
+ Par défaut, le filtrage est configuré sur aujourd'hui, soit les actifs
+ """
+ def get_changelist(self, request, **kwargs):
+ if request.META.has_key('HTTP_REFERER'):
+ referer = request.META['HTTP_REFERER']
+ referer = "/".join(referer.split('/')[3:])
+ referer = "/%s" % referer.split('?')[0]
+ change_list_view = 'admin:%s_%s_changelist' % (self.model._meta.app_label, self.model.__name__.lower())
+ if referer != reverse(change_list_view):
+ params = request.GET.copy()
+ today = datetime.date.today()
+ params.update({'date_debut__gte' : str(today), 'date_fin__lte' : str(today) })
+ request.GET = params
+ return ChangeList
class ChangeList(DjangoChangeList):
self.params = old
return qs
+################################################################################
+
# Override of the InlineModelAdmin to support the link in the tabular inline
class LinkedInline(admin.options.InlineModelAdmin):
template = "admin/linked.html"
)
-class DossierAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin, AjaxSelect):
+class DossierAdmin(DateRangeMixin, AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin, AjaxSelect,):
alphabet_filter = 'employe__nom'
search_fields = ('employe__nom', 'employe__prenom', 'poste__nom', 'poste__nom_feminin')
list_display = (
):
return True
- def get_changelist(self, request, **kwargs):
- return ChangeList
-
def _id(self, d):
apercu_link = u"""<a title="Aperçu du dossier" onclick="return showAddAnotherPopup(this);" href='%s'><img src="%simg/loupe.png" /></a>""" % \
(reverse('dossier_apercu', args=(d.id,)),
pass
-class EmployeAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin):
+class EmployeAdmin(DateRangeMixin, AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin,):
alphabet_filter = 'nom'
DEFAULT_ALPHABET = u'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
search_fields = ('id', 'nom', 'prenom', 'nom_affichage', )
}),
)
- def get_changelist(self, request, **kwargs):
- return ChangeList
-
-
def _apercu(self, obj):
return u"""<a title="Aperçu de l'employé" onclick="return showAddAnotherPopup(this);" href='%s'><img src="%simg/loupe.png" /></a>""" % \
(reverse('employe_apercu', args=(obj.id,)), settings.STATIC_URL)
)
-class PosteAdmin(AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin, AjaxSelect):
+class PosteAdmin(DateRangeMixin, AUFMetadataAdminMixin, ProtectRegionMixin, admin.ModelAdmin, AjaxSelect,):
form = make_ajax_form(rh.Poste, {
'implantation' : 'implantations',
'type_poste' : 'typepostes',
PosteCommentaireInline, )
- def get_changelist(self, request, **kwargs):
- return ChangeList
-
-
def lookup_allowed(self, key, value):
if key in (
'date_debut__gte',