bulk_import.py 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. from circuits.choices import CircuitStatusChoices
  2. from circuits.models import *
  3. from extras.forms import CustomFieldModelCSVForm
  4. from tenancy.models import Tenant
  5. from utilities.forms import CSVChoiceField, CSVModelChoiceField, SlugField
  6. __all__ = (
  7. 'CircuitCSVForm',
  8. 'CircuitTypeCSVForm',
  9. 'ProviderCSVForm',
  10. 'ProviderNetworkCSVForm',
  11. )
  12. class ProviderCSVForm(CustomFieldModelCSVForm):
  13. slug = SlugField()
  14. class Meta:
  15. model = Provider
  16. fields = (
  17. 'name', 'slug', 'asn', 'account', 'portal_url', 'noc_contact', 'admin_contact', 'comments',
  18. )
  19. class ProviderNetworkCSVForm(CustomFieldModelCSVForm):
  20. provider = CSVModelChoiceField(
  21. queryset=Provider.objects.all(),
  22. to_field_name='name',
  23. help_text='Assigned provider'
  24. )
  25. class Meta:
  26. model = ProviderNetwork
  27. fields = [
  28. 'provider', 'name', 'description', 'comments',
  29. ]
  30. class CircuitTypeCSVForm(CustomFieldModelCSVForm):
  31. slug = SlugField()
  32. class Meta:
  33. model = CircuitType
  34. fields = ('name', 'slug', 'description')
  35. help_texts = {
  36. 'name': 'Name of circuit type',
  37. }
  38. class CircuitCSVForm(CustomFieldModelCSVForm):
  39. provider = CSVModelChoiceField(
  40. queryset=Provider.objects.all(),
  41. to_field_name='name',
  42. help_text='Assigned provider'
  43. )
  44. type = CSVModelChoiceField(
  45. queryset=CircuitType.objects.all(),
  46. to_field_name='name',
  47. help_text='Type of circuit'
  48. )
  49. status = CSVChoiceField(
  50. choices=CircuitStatusChoices,
  51. help_text='Operational status'
  52. )
  53. tenant = CSVModelChoiceField(
  54. queryset=Tenant.objects.all(),
  55. required=False,
  56. to_field_name='name',
  57. help_text='Assigned tenant'
  58. )
  59. class Meta:
  60. model = Circuit
  61. fields = [
  62. 'cid', 'provider', 'type', 'status', 'tenant', 'install_date', 'commit_rate', 'description', 'comments',
  63. ]