Commit | Line | Data |
---|---|---|
13ce8dd5 OL |
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 | ) |