types.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. 'CustomFieldType',
  7. 'CustomLinkType',
  8. 'ExportTemplateType',
  9. 'ImageAttachmentType',
  10. 'JournalEntryType',
  11. 'ObjectChangeType',
  12. 'TagType',
  13. 'WebhookType',
  14. )
  15. class ConfigContextType(ObjectType):
  16. class Meta:
  17. model = models.ConfigContext
  18. fields = '__all__'
  19. filterset_class = filtersets.ConfigContextFilterSet
  20. class CustomFieldType(ObjectType):
  21. class Meta:
  22. model = models.CustomField
  23. fields = '__all__'
  24. filterset_class = filtersets.CustomFieldFilterSet
  25. class CustomLinkType(ObjectType):
  26. class Meta:
  27. model = models.CustomLink
  28. fields = '__all__'
  29. filterset_class = filtersets.CustomLinkFilterSet
  30. class ExportTemplateType(ObjectType):
  31. class Meta:
  32. model = models.ExportTemplate
  33. fields = '__all__'
  34. filterset_class = filtersets.ExportTemplateFilterSet
  35. class ImageAttachmentType(BaseObjectType):
  36. class Meta:
  37. model = models.ImageAttachment
  38. fields = '__all__'
  39. filterset_class = filtersets.ImageAttachmentFilterSet
  40. class JournalEntryType(CustomFieldsMixin, TagsMixin, ObjectType):
  41. class Meta:
  42. model = models.JournalEntry
  43. fields = '__all__'
  44. filterset_class = filtersets.JournalEntryFilterSet
  45. class ObjectChangeType(BaseObjectType):
  46. class Meta:
  47. model = models.ObjectChange
  48. fields = '__all__'
  49. filterset_class = filtersets.ObjectChangeFilterSet
  50. class TagType(ObjectType):
  51. class Meta:
  52. model = models.Tag
  53. exclude = ('extras_taggeditem_items',)
  54. filterset_class = filtersets.TagFilterSet
  55. class WebhookType(ObjectType):
  56. class Meta:
  57. model = models.Webhook
  58. fields = '__all__'
  59. filterset_class = filtersets.WebhookFilterSet