types.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. from extras import filtersets, models
  2. from extras.graphql.mixins import CustomFieldsMixin, TagsMixin
  3. from netbox.graphql.types import BaseObjectType, ObjectType
  4. __all__ = (
  5. 'ConfigContextType',
  6. 'ConfigTemplateType',
  7. 'CustomFieldType',
  8. 'CustomLinkType',
  9. 'ExportTemplateType',
  10. 'ImageAttachmentType',
  11. 'JournalEntryType',
  12. 'ObjectChangeType',
  13. 'SavedFilterType',
  14. 'TagType',
  15. 'WebhookType',
  16. )
  17. class ConfigContextType(ObjectType):
  18. class Meta:
  19. model = models.ConfigContext
  20. fields = '__all__'
  21. filterset_class = filtersets.ConfigContextFilterSet
  22. class ConfigTemplateType(ObjectType):
  23. class Meta:
  24. model = models.ConfigTemplate
  25. fields = '__all__'
  26. filterset_class = filtersets.ConfigTemplateFilterSet
  27. class CustomFieldType(ObjectType):
  28. class Meta:
  29. model = models.CustomField
  30. exclude = ('content_types', )
  31. filterset_class = filtersets.CustomFieldFilterSet
  32. class CustomLinkType(ObjectType):
  33. class Meta:
  34. model = models.CustomLink
  35. exclude = ('content_types', )
  36. filterset_class = filtersets.CustomLinkFilterSet
  37. class ExportTemplateType(ObjectType):
  38. class Meta:
  39. model = models.ExportTemplate
  40. exclude = ('content_types', )
  41. filterset_class = filtersets.ExportTemplateFilterSet
  42. class ImageAttachmentType(BaseObjectType):
  43. class Meta:
  44. model = models.ImageAttachment
  45. fields = '__all__'
  46. filterset_class = filtersets.ImageAttachmentFilterSet
  47. class JournalEntryType(CustomFieldsMixin, TagsMixin, ObjectType):
  48. class Meta:
  49. model = models.JournalEntry
  50. fields = '__all__'
  51. filterset_class = filtersets.JournalEntryFilterSet
  52. class ObjectChangeType(BaseObjectType):
  53. class Meta:
  54. model = models.ObjectChange
  55. fields = '__all__'
  56. filterset_class = filtersets.ObjectChangeFilterSet
  57. class SavedFilterType(ObjectType):
  58. class Meta:
  59. model = models.SavedFilter
  60. exclude = ('content_types', )
  61. filterset_class = filtersets.SavedFilterFilterSet
  62. class TagType(ObjectType):
  63. class Meta:
  64. model = models.Tag
  65. exclude = ('extras_taggeditem_items',)
  66. filterset_class = filtersets.TagFilterSet
  67. class WebhookType(ObjectType):
  68. class Meta:
  69. model = models.Webhook
  70. exclude = ('content_types', )
  71. filterset_class = filtersets.WebhookFilterSet