Gestion des pannes et des interventions techniques dans une boulangerie artisanale
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 

59 satır
1.7 KiB

  1. from django.contrib import admin
  2. from django import forms
  3. from .models import Fournisseur, Technicien, Machine, Intervention, Panne
  4. @admin.register(Fournisseur)
  5. class FournisseurAdmin(admin.ModelAdmin):
  6. list_display = ['nom_fournisseur']
  7. @admin.register(Technicien)
  8. class TechnicienAdmin(admin.ModelAdmin):
  9. list_display = ['nom_technicien', 'ref_fournisseur']
  10. class PanneInline(admin.TabularInline):
  11. model = Panne
  12. extra = 1
  13. @admin.register(Machine)
  14. class MachineAdmin(admin.ModelAdmin):
  15. list_display = ['numero_serie', 'nom_machine', 'ref_fournisseur']
  16. inlines = [PanneInline]
  17. class InterventionAdminForm(forms.ModelForm):
  18. class Meta:
  19. model = Intervention
  20. fields = '__all__'
  21. def __init__(self, *args, **kwargs):
  22. super(InterventionAdminForm, self).__init__(*args, **kwargs)
  23. if self.instance:
  24. try:
  25. technicians = Technicien.objects.filter(
  26. ref_fournisseur=self.
  27. instance.
  28. ref_panne.
  29. ref_machine.
  30. ref_fournisseur)
  31. self.fields['ref_technicien'].queryset = technicians
  32. except Panne.DoesNotExist:
  33. self.fields['ref_technicien'].queryset = Technicien. \
  34. objects. \
  35. none()
  36. @admin.register(Intervention)
  37. class InterventionAdmin(admin.ModelAdmin):
  38. form = InterventionAdminForm
  39. list_display = ['moment_intervention', 'description_intervention',
  40. 'ref_panne', 'ref_technicien']
  41. @admin.register(Panne)
  42. class PanneAdmin(admin.ModelAdmin):
  43. list_display = ['moment_panne', 'description_panne', 'ref_machine']