Merge branch 'release/1.7' into dev
[auf_rh_dae.git] / src / auf.django.metadata / README
1 auf.django.metadata
2 ===================
3
4 Ce module fournit un modèle abstrait en vue d'harmoniser les metadata des modèles
5 utilisés dans les applications.
6
7 Il s'occupe aussi de l'assignation automatique de ces metadatas à travers l'admin.
8 Si les objets sont modifiés à travers un frontend, ces metadatas devront être codées
9 manuellement dans les vues.
10
11 Ce module fournit notemment une metadata 'supprime', qui permet de simuler une suppression
12 aux yeux des utilisateurs. Toute la mécanique des de queryset pour lister et supprimer les
13 objets est liée à ce modèle abstrait et n'est plus à coder dans votre application.
14
15 Exemple d'utilisation
16 =====================
17
18 1. Vos models
19 -------------
20 class AyantDroit(AUFMetadata):
21     """Personne en relation avec un Employe.
22     """
23     nom = models.CharField(max_length=255)
24     prenom = models.CharField(max_length=255, verbose_name="Prénom",)
25     employe = models.ForeignKey('Employe', db_column='employe', verbose_name="Employé")
26
27 2. Vos admins
28 -------------
29
30 # -*- encoding: utf-8 -*-
31
32 from django.contrib import admin
33 from auf.django.metadata.admin import AUFMetadataAdminMixin
34
35 class AyantDroitAdmin(AUFMetadataAdminMixin, admin.ModelAdmin):
36     """
37     L'ajout d'un nouvel ayantdroit se fait dans l'admin de l'employé.
38     """
39
40     # Dans ce cas on ajoute d'autres champs "readonly" autrement cette déclaration
41     # est optionnelle.
42     readonly_fields = AUFMetadataAdminMixin.readonly_fields + ('employe',)
43
44     # Ajoute un premier fieldeset contenant les metadata ordonnées.
45     fieldsets = AUFMetadataAdminMixin.fieldsets + (
46         ("Lien avec l'employé", {
47             'fields': ('employe', )
48         }),
49
50         ('Identification', {
51             'fields': ('nom', 'prenom', )
52         }),
53     )