models.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. from extras.forms import CustomFieldModelForm
  2. from extras.models import Tag
  3. from tenancy.models import *
  4. from utilities.forms import (
  5. BootstrapMixin, CommentField, DynamicModelChoiceField, DynamicModelMultipleChoiceField, SlugField, SmallTextarea,
  6. )
  7. __all__ = (
  8. 'ContactForm',
  9. 'ContactGroupForm',
  10. 'ContactRoleForm',
  11. 'TenantForm',
  12. 'TenantGroupForm',
  13. )
  14. #
  15. # Tenants
  16. #
  17. class TenantGroupForm(BootstrapMixin, CustomFieldModelForm):
  18. parent = DynamicModelChoiceField(
  19. queryset=TenantGroup.objects.all(),
  20. required=False
  21. )
  22. slug = SlugField()
  23. class Meta:
  24. model = TenantGroup
  25. fields = [
  26. 'parent', 'name', 'slug', 'description',
  27. ]
  28. class TenantForm(BootstrapMixin, CustomFieldModelForm):
  29. slug = SlugField()
  30. group = DynamicModelChoiceField(
  31. queryset=TenantGroup.objects.all(),
  32. required=False
  33. )
  34. comments = CommentField()
  35. tags = DynamicModelMultipleChoiceField(
  36. queryset=Tag.objects.all(),
  37. required=False
  38. )
  39. class Meta:
  40. model = Tenant
  41. fields = (
  42. 'name', 'slug', 'group', 'description', 'comments', 'tags',
  43. )
  44. fieldsets = (
  45. ('Tenant', ('name', 'slug', 'group', 'description', 'tags')),
  46. )
  47. #
  48. # Contacts
  49. #
  50. class ContactGroupForm(BootstrapMixin, CustomFieldModelForm):
  51. parent = DynamicModelChoiceField(
  52. queryset=ContactGroup.objects.all(),
  53. required=False
  54. )
  55. slug = SlugField()
  56. class Meta:
  57. model = ContactGroup
  58. fields = ['parent', 'name', 'slug', 'description']
  59. class ContactRoleForm(BootstrapMixin, CustomFieldModelForm):
  60. slug = SlugField()
  61. class Meta:
  62. model = ContactRole
  63. fields = ['name', 'slug', 'description']
  64. class ContactForm(BootstrapMixin, CustomFieldModelForm):
  65. group = DynamicModelChoiceField(
  66. queryset=ContactGroup.objects.all(),
  67. required=False
  68. )
  69. comments = CommentField()
  70. tags = DynamicModelMultipleChoiceField(
  71. queryset=Tag.objects.all(),
  72. required=False
  73. )
  74. class Meta:
  75. model = Contact
  76. fields = (
  77. 'group', 'name', 'title', 'phone', 'email', 'address', 'comments', 'tags',
  78. )
  79. fieldsets = (
  80. ('Contact', ('group', 'name', 'title', 'phone', 'email', 'address', 'tags')),
  81. )
  82. widgets = {
  83. 'address': SmallTextarea(attrs={'rows': 3}),
  84. }