Gestion des pannes et des interventions techniques dans une boulangerie artisanale
25개 이상의 토픽을 선택하실 수 없습니다. Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
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']