from rh.models import *
from rh.lib import *
+AyantDroitInline.model = AyantDroit
+AyantDroitCommentaireInline.model = AyantDroitCommentaire
+ContratInline.model = Contrat
+DossierROInline.model = Dossier
+DossierCommentaireInline.model = DossierCommentaire
+DossierPieceInline.model = DossierPiece
+EmployeInline.model = Employe
+EmployeCommentaireInline.model = EmployeCommentaire
+EmployePieceInline.model = EmployePiece
+EvenementInline.model = Evenement
+EvenementRemunerationInline.model = EvenementRemuneration
+PosteInline.model = Poste
+PosteCommentaireInline.model = PosteCommentaire
+PosteFinancementInline.model = PosteFinancement
+PostePieceInline.model = PostePiece
+RemunerationInline.model = Remuneration
+TypePosteInline.model = TypePoste
-#admin.site.register(Commentaire, CommentaireAdmin)
-admin.site.register(Poste, PosteAdmin)
-#admin.site.register(PosteFinancement, PosteFinancementAdmin)
-#admin.site.register(PostePiece, PostePieceAdmin)
-#admin.site.register(PosteCommentaire, PosteCommentaireAdmin)
-admin.site.register(Employe, EmployeAdmin)
-#admin.site.register(EmployePiece, EmployePieceAdmin)
-#admin.site.register(EmployeCommentaire, EmployeCommentaireAdmin)
admin.site.register(AyantDroit, AyantDroitAdmin)
#admin.site.register(AyantDroitCommentaire, AyantDroitCommentaireAdmin)
+admin.site.register(Classement, ClassementAdmin)
+#admin.site.register(Commentaire, CommentaireAdmin)
+admin.site.register(Contrat, ContratAdmin)
+admin.site.register(Devise, DeviseAdmin)
admin.site.register(Dossier, DossierAdmin)
-#admin.site.register(DossierPiece, DossierPieceAdmin)
#admin.site.register(DossierCommentaire, DossierCommentaireAdmin)
-admin.site.register(Remuneration, RemunerationAdmin)
-admin.site.register(Contrat, ContratAdmin)
+#admin.site.register(DossierPiece, DossierPieceAdmin)
+admin.site.register(Employe, EmployeAdmin)
+#admin.site.register(EmployeCommentaire, EmployeCommentaireAdmin)
+#admin.site.register(EmployePiece, EmployePieceAdmin)
admin.site.register(Evenement, EvenementAdmin)
admin.site.register(EvenementRemuneration, EvenementRemunerationAdmin)
admin.site.register(FamilleEmploi, FamilleEmploiAdmin)
+admin.site.register(OrganismeBstg, OrganismeBstgAdmin)
+admin.site.register(Poste, PosteAdmin)
+#admin.site.register(PosteCommentaire, PosteCommentaireAdmin)
+#admin.site.register(PosteFinancement, PosteFinancementAdmin)
+#admin.site.register(PostePiece, PostePieceAdmin)
+admin.site.register(Remuneration, RemunerationAdmin)
+admin.site.register(ResponsableImplantation, ResponsableImplantationAdmin)
+admin.site.register(Service, ServiceAdmin)
+admin.site.register(Statut, StatutAdmin) # FIXME: timeout in admin
+admin.site.register(TauxChange, TauxChangeAdmin)
+admin.site.register(TypeContrat, TypeContratAdmin) # FIXME: timeout in admin
admin.site.register(TypePoste, TypePosteAdmin)
admin.site.register(TypeRemuneration, TypeRemunerationAdmin)
admin.site.register(TypeRevalorisation, TypeRevalorisationAdmin)
-admin.site.register(Service, ServiceAdmin)
-admin.site.register(OrganismeBstg, OrganismeBstgAdmin)
-admin.site.register(Statut, StatutAdmin)
-admin.site.register(Classement, ClassementAdmin)
-admin.site.register(TauxChange, TauxChangeAdmin)
admin.site.register(ValeurPoint, ValeurPointAdmin)
-admin.site.register(Devise, DeviseAdmin)
-admin.site.register(TypeContrat, TypeContratAdmin)
-admin.site.register(ResponsableImplantation, ResponsableImplantationAdmin)
# -*- encoding: utf-8 -*-
+from django.db import models
from django.contrib import admin
+from project.rh import models as rh
-class CommentaireAdmin(admin.ModelAdmin):
- pass
+class ReadonlyInlineMixin(object):
+ def get_readonly_fields(self, request, obj=None):
+ return [f.name for f in self.model._meta.fields]
-class PosteAdmin(admin.ModelAdmin):
- fieldsets = (
- (None, {
- 'fields': ('nom', 'nom_feminin', 'implantation', 'type_poste',
- 'service', 'responsable')
- }),
- ('Contrat', {
- 'fields': ('regime_travail', 'regime_travail_nb_heure_semaine')
- }),
- ('Recrutement', {
- 'fields': ('local', 'expatrie', 'mise_a_disposition', 'appel')
- }),
- ('Rémunération', {
- 'fields': ('classement_min', 'classement_max', 'valeur_point_min',
- 'valeur_point_max', 'devise_min', 'devise_max',
- 'salaire_min', 'salaire_max', 'indemn_min',
- 'indemn_max', 'autre_min', 'autre_max')
- }),
- ('Comparatifs de rémunération', {
- 'fields': ('devise_comparaison', 'comp_locale_min',
- 'comp_locale_max', 'comp_universite_min',
- 'comp_universite_max', 'comp_fonctionpub_min',
- 'comp_fonctionpub_max', 'comp_ong_min', 'comp_ong_max',
- 'comp_autre_min', 'comp_autre_max')
- }),
- ('Justification', {
- 'fields': ('justification',)
- }),
- ('Autres Metadata', {
- 'fields': ('date_validation', 'date_debut', 'date_fin')
- }),
- )
+# Inlines
-class PosteFinancementAdmin(admin.ModelAdmin):
- pass
+class AyantDroitInline(admin.TabularInline):
+ model = models.Model # à remplacer dans admin.py
-class PostePieceAdmin(admin.ModelAdmin):
- pass
+class AyantDroitCommentaireInline(admin.TabularInline):
+ model = models.Model # à remplacer dans admin.py
-class PosteCommentaireAdmin(admin.ModelAdmin):
+class ContratInline(admin.TabularInline):
+ model = models.Model # à remplacer dans admin.py
+
+
+class DossierROInline(ReadonlyInlineMixin, admin.TabularInline):
+ model = models.Model # à remplacer dans admin.py
+
+
+class DossierCommentaireInline(admin.TabularInline):
+ model = models.Model # à remplacer dans admin.py
+
+
+class DossierPieceInline(admin.TabularInline):
+ model = models.Model # à remplacer dans admin.py
+
+
+class EmployeInline(admin.TabularInline):
+ model = models.Model # à remplacer dans admin.py
+
+
+class EmployeCommentaireInline(admin.TabularInline):
+ model = models.Model # à remplacer dans admin.py
+
+
+class EmployePieceInline(admin.TabularInline):
+ model = models.Model # à remplacer dans admin.py
+
+
+class EvenementInline(admin.TabularInline):
+ model = models.Model # à remplacer dans admin.py
+
+
+class EvenementRemunerationInline(admin.TabularInline):
+ model = models.Model # à remplacer dans admin.py
+
+
+class PosteInline(admin.TabularInline):
+ model = models.Model # à remplacer dans admin.py
+
+
+class PosteCommentaireInline(admin.TabularInline):
+ model = models.Model # à remplacer dans admin.py
+
+
+class PosteFinancementInline(admin.TabularInline):
+ model = models.Model # à remplacer dans admin.py
+
+
+class PostePieceInline(admin.TabularInline):
+ model = models.Model # à remplacer dans admin.py
+
+
+class RemunerationInline(admin.TabularInline):
+ model = models.Model # à remplacer dans admin.py
+
+
+class RemunerationROInline(ReadonlyInlineMixin, RemunerationInline):
pass
-class EmployeAdmin(admin.ModelAdmin):
+class TypePosteInline(admin.TabularInline):
+ model = models.Model # à remplacer dans admin.py
+
+
+# Admins
+
+class AyantDroitAdmin(admin.ModelAdmin):
+ inlines = (AyantDroitCommentaireInline,)
+
+
+class AyantDroitCommentaireAdmin(admin.ModelAdmin):
pass
-class EmployePieceAdmin(admin.ModelAdmin):
+class ClassementAdmin(admin.ModelAdmin):
pass
-class EmployeCommentaireAdmin(admin.ModelAdmin):
+class CommentaireAdmin(admin.ModelAdmin):
pass
-class AyantDroitAdmin(admin.ModelAdmin):
+class ContratAdmin(admin.ModelAdmin):
pass
-class AyantDroitCommentaireAdmin(admin.ModelAdmin):
+class DeviseAdmin(admin.ModelAdmin):
pass
class DossierAdmin(admin.ModelAdmin):
list_display = ('_employe', '_poste')
+ inlines = (DossierPieceInline, DossierCommentaireInline, ContratInline,
+ RemunerationInline, EvenementInline)
def _poste(self, dossier):
return unicode(dossier.poste.nom)
pass
-class RemunerationAdmin(admin.ModelAdmin):
+class EmployeAdmin(admin.ModelAdmin):
+ inlines = (AyantDroitInline,
+ DossierROInline,
+ EmployePieceInline,
+ EmployeCommentaireInline)
+
+
+class EmployeCommentaireAdmin(admin.ModelAdmin):
pass
-class ContratAdmin(admin.ModelAdmin):
+class EmployePieceAdmin(admin.ModelAdmin):
pass
class EvenementAdmin(admin.ModelAdmin):
- pass
+ inlines = (EvenementRemunerationInline,)
class EvenementRemunerationAdmin(admin.ModelAdmin):
class FamilleEmploiAdmin(admin.ModelAdmin):
- pass
+ inlines = (TypePosteInline,)
-class TypePosteAdmin(admin.ModelAdmin):
- pass
+class OrganismeBstgAdmin(admin.ModelAdmin):
+ inlines = (DossierROInline,)
-class TypeRemunerationAdmin(admin.ModelAdmin):
- pass
+class PosteAdmin(admin.ModelAdmin):
+ fieldsets = (
+ (None, {
+ 'fields': ('nom', 'nom_feminin', 'implantation', 'type_poste',
+ 'service', 'responsable')
+ }),
+ ('Contrat', {
+ 'fields': ('regime_travail', 'regime_travail_nb_heure_semaine')
+ }),
+ ('Recrutement', {
+ 'fields': ('local', 'expatrie', 'mise_a_disposition', 'appel')
+ }),
+ ('Rémunération', {
+ 'fields': ('classement_min', 'classement_max', 'valeur_point_min',
+ 'valeur_point_max', 'devise_min', 'devise_max',
+ 'salaire_min', 'salaire_max', 'indemn_min',
+ 'indemn_max', 'autre_min', 'autre_max')
+ }),
+ ('Comparatifs de rémunération', {
+ 'fields': ('devise_comparaison', 'comp_locale_min',
+ 'comp_locale_max', 'comp_universite_min',
+ 'comp_universite_max', 'comp_fonctionpub_min',
+ 'comp_fonctionpub_max', 'comp_ong_min', 'comp_ong_max',
+ 'comp_autre_min', 'comp_autre_max')
+ }),
+ ('Justification', {
+ 'fields': ('justification',)
+ }),
+ ('Autres Metadata', {
+ 'fields': ('date_validation', 'date_debut', 'date_fin')
+ }),
+ )
+ inlines = (PosteFinancementInline,
+ PostePieceInline,
+ PosteCommentaireInline,
+ DossierROInline)
-class TypeRevalorisationAdmin(admin.ModelAdmin):
+
+class PosteCommentaireAdmin(admin.ModelAdmin):
pass
-class ServiceAdmin(admin.ModelAdmin):
+class PosteFinancementAdmin(admin.ModelAdmin):
pass
-class OrganismeBstgAdmin(admin.ModelAdmin):
+class PostePieceAdmin(admin.ModelAdmin):
pass
-class StatutAdmin(admin.ModelAdmin):
+class RemunerationAdmin(admin.ModelAdmin):
pass
-class ClassementAdmin(admin.ModelAdmin):
+class ResponsableImplantationAdmin(admin.ModelAdmin):
pass
-class TauxChangeAdmin(admin.ModelAdmin):
- pass
+class ServiceAdmin(admin.ModelAdmin):
+ inlines = (PosteInline,)
-class ValeurPointAdmin(admin.ModelAdmin):
- pass
+class StatutAdmin(admin.ModelAdmin):
+ inlines = (EmployeInline,)
-class DeviseAdmin(admin.ModelAdmin):
+class TauxChangeAdmin(admin.ModelAdmin):
pass
class TypeContratAdmin(admin.ModelAdmin):
- pass
+ inlines = (ContratInline,)
-class ResponsableImplantationAdmin(admin.ModelAdmin):
+class TypePosteAdmin(admin.ModelAdmin):
+ inlines = (PosteInline,)
+
+
+class TypeRemunerationAdmin(admin.ModelAdmin):
+ inlines = (RemunerationROInline,)
+
+
+class TypeRevalorisationAdmin(admin.ModelAdmin):
+ inlines = (RemunerationROInline,)
+
+
+class ValeurPointAdmin(admin.ModelAdmin):
pass