# -*- mode: python; coding: utf-8 -*- # Copyright (C) 2017-2019 by BDE ENS Paris-Saclay # SPDX-License-Identifier: GPL-3.0-or-later from django.urls import reverse from django.utils.html import format_html from django.utils.translation import ugettext_lazy as _ from reversion.admin import VersionAdmin from med.admin import admin_site from .models import Auteur, Emprunt, Jeu, Media class AuteurAdmin(VersionAdmin): list_display = ('nom',) search_fields = ('nom',) class MediaAdmin(VersionAdmin): list_display = ('title', 'authors_list', 'side_title', 'isbn') search_fields = ('title', 'authors__nom', 'side_title', 'subtitle', 'isbn') autocomplete_fields = ('authors',) date_hierarchy = 'publish_date' def authors_list(self, obj): return ", ".join([a.nom for a in obj.authors.all()]) authors_list.short_description = _('authors') class EmpruntAdmin(VersionAdmin): list_display = ('media', 'user', 'date_emprunt', 'date_rendu', 'permanencier_emprunt', 'permanencier_rendu_custom') search_fields = ('media__title', 'media__side_title', 'user__username', 'date_emprunt', 'date_rendu') date_hierarchy = 'date_emprunt' autocomplete_fields = ('media', 'user', 'permanencier_emprunt', 'permanencier_rendu') def permanencier_rendu_custom(self, obj): """ Show a button if item has not been returned yet """ if obj.permanencier_rendu: return obj.permanencier_rendu else: return format_html( '{}', reverse('media:retour-emprunt', args=[obj.pk]), _('Turn back') ) permanencier_rendu_custom.short_description = _('permanencier rendu') permanencier_rendu_custom.allow_tags = True class JeuAdmin(VersionAdmin): list_display = ('nom', 'proprietaire', 'duree', 'nombre_joueurs_min', 'nombre_joueurs_max', 'comment') search_fields = ('nom', 'proprietaire__username', 'duree', 'comment') autocomplete_fields = ('proprietaire',) admin_site.register(Auteur, AuteurAdmin) admin_site.register(Media, MediaAdmin) admin_site.register(Emprunt, EmpruntAdmin) admin_site.register(Jeu, JeuAdmin)