search.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. from netbox.search import SearchIndex, register_search
  2. from . import models
  3. @register_search
  4. class CircuitIndex(SearchIndex):
  5. model = models.Circuit
  6. fields = (
  7. ('cid', 100),
  8. ('description', 500),
  9. ('comments', 5000),
  10. )
  11. display_attrs = ('provider', 'provider_account', 'type', 'status', 'tenant', 'description')
  12. @register_search
  13. class CircuitGroupIndex(SearchIndex):
  14. model = models.CircuitGroup
  15. fields = (
  16. ('name', 100),
  17. ('slug', 110),
  18. ('description', 500),
  19. ('comments', 5000),
  20. )
  21. display_attrs = ('description',)
  22. @register_search
  23. class CircuitTerminationIndex(SearchIndex):
  24. model = models.CircuitTermination
  25. fields = (
  26. ('xconnect_id', 300),
  27. ('pp_info', 300),
  28. ('description', 500),
  29. ('port_speed', 2000),
  30. ('upstream_speed', 2000),
  31. )
  32. display_attrs = ('circuit', 'termination', 'description')
  33. @register_search
  34. class CircuitTypeIndex(SearchIndex):
  35. model = models.CircuitType
  36. fields = (
  37. ('name', 100),
  38. ('slug', 110),
  39. ('description', 500),
  40. ('comments', 5000),
  41. )
  42. display_attrs = ('description',)
  43. @register_search
  44. class ProviderIndex(SearchIndex):
  45. model = models.Provider
  46. fields = (
  47. ('name', 100),
  48. ('description', 500),
  49. ('comments', 5000),
  50. )
  51. display_attrs = ('description',)
  52. @register_search
  53. class ProviderAccountIndex(SearchIndex):
  54. model = models.ProviderAccount
  55. fields = (
  56. ('name', 100),
  57. ('account', 200),
  58. ('comments', 5000),
  59. )
  60. display_attrs = ('provider', 'account', 'description')
  61. @register_search
  62. class ProviderNetworkIndex(SearchIndex):
  63. model = models.ProviderNetwork
  64. fields = (
  65. ('name', 100),
  66. ('service_id', 200),
  67. ('description', 500),
  68. ('comments', 5000),
  69. )
  70. display_attrs = ('provider', 'service_id', 'description')
  71. @register_search
  72. class VirtualCircuitIndex(SearchIndex):
  73. model = models.VirtualCircuit
  74. fields = (
  75. ('cid', 100),
  76. ('description', 500),
  77. ('comments', 5000),
  78. )
  79. display_attrs = ('provider_network', 'provider_account', 'status', 'tenant', 'description')
  80. @register_search
  81. class VirtualCircuitTerminationIndex(SearchIndex):
  82. model = models.VirtualCircuitTermination
  83. fields = (
  84. ('description', 500),
  85. )
  86. display_attrs = ('virtual_circuit', 'role', 'description')
  87. @register_search
  88. class VirtualCircuitTypeIndex(SearchIndex):
  89. model = models.VirtualCircuitType
  90. fields = (
  91. ('name', 100),
  92. ('slug', 110),
  93. ('description', 500),
  94. ('comments', 5000),
  95. )
  96. display_attrs = ('description',)