auf.django.metadata =================== Ce module fournit un modèle abstrait en vue d'harmoniser les metadata des modèles utilisés dans les applications. Il s'occupe aussi de l'assignation automatique de ces metadatas à travers l'admin. Si les objets sont modifiés à travers un frontend, ces metadatas devront être codées manuellement dans les vues. Ce module fournit notemment une metadata 'supprime', qui permet de simuler une suppression aux yeux des utilisateurs. Toute la mécanique des de queryset pour lister et supprimer les objets est liée à ce modèle abstrait et n'est plus à coder dans votre application. Exemple d'utilisation ===================== 1. Vos models ------------- class AyantDroit(AUFMetadata): """Personne en relation avec un Employe. """ nom = models.CharField(max_length=255) prenom = models.CharField(max_length=255, verbose_name="Prénom",) employe = models.ForeignKey('Employe', db_column='employe', verbose_name="Employé") 2. Vos admins ------------- # -*- encoding: utf-8 -*- from django.contrib import admin from auf.django.metadata.admin import AUFMetadataAdminMixin class AyantDroitAdmin(AUFMetadataAdminMixin, admin.ModelAdmin): """ L'ajout d'un nouvel ayantdroit se fait dans l'admin de l'employé. """ # Dans ce cas on ajoute d'autres champs "readonly" autrement cette déclaration # est optionnelle. readonly_fields = AUFMetadataAdminMixin.readonly_fields + ('employe',) # Ajoute un premier fieldeset contenant les metadata ordonnées. fieldsets = AUFMetadataAdminMixin.fieldsets + ( ("Lien avec l'employé", { 'fields': ('employe', ) }), ('Identification', { 'fields': ('nom', 'prenom', ) }), )