ipfabric_netbox 3.2.4__py3-none-any.whl → 3.2.4b2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of ipfabric_netbox might be problematic. Click here for more details.

Files changed (38) hide show
  1. ipfabric_netbox/__init__.py +1 -1
  2. ipfabric_netbox/api/nested_serializers.py +0 -20
  3. ipfabric_netbox/api/serializers.py +7 -13
  4. ipfabric_netbox/api/urls.py +2 -2
  5. ipfabric_netbox/api/views.py +5 -5
  6. ipfabric_netbox/data/transform_map.json +21 -35
  7. ipfabric_netbox/filtersets.py +15 -13
  8. ipfabric_netbox/forms.py +14 -42
  9. ipfabric_netbox/jobs.py +12 -7
  10. ipfabric_netbox/migrations/0001_initial.py +1 -1
  11. ipfabric_netbox/migrations/0001_initial_squashed_0013_switch_to_branching_plugin.py +503 -0
  12. ipfabric_netbox/migrations/0007_prepare_custom_fields.py +3 -3
  13. ipfabric_netbox/migrations/0011_update_part_number_DCIM_inventory_item_template.py +57 -0
  14. ipfabric_netbox/migrations/0012_remove_status_field.py +18 -0
  15. ipfabric_netbox/migrations/0013_switch_to_branching_plugin.py +270 -0
  16. ipfabric_netbox/models.py +120 -91
  17. ipfabric_netbox/navigation.py +1 -1
  18. ipfabric_netbox/signals.py +9 -2
  19. ipfabric_netbox/tables.py +40 -46
  20. ipfabric_netbox/templates/ipfabric_netbox/{ipfabricbranch.html → ipfabricingestion.html} +14 -9
  21. ipfabric_netbox/templates/ipfabric_netbox/ipfabricsource.html +3 -3
  22. ipfabric_netbox/templates/ipfabric_netbox/ipfabricsync.html +3 -3
  23. ipfabric_netbox/templates/ipfabric_netbox/ipfabricsync_list.html +71 -0
  24. ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap.html +0 -4
  25. ipfabric_netbox/templates/ipfabric_netbox/partials/ingestion_all.html +10 -0
  26. ipfabric_netbox/templates/ipfabric_netbox/partials/{branch_progress.html → ingestion_progress.html} +1 -1
  27. ipfabric_netbox/templates/ipfabric_netbox/partials/sync_last_ingestion.html +1 -0
  28. ipfabric_netbox/urls.py +13 -3
  29. ipfabric_netbox/utilities/ipfutils.py +52 -19
  30. ipfabric_netbox/views.py +162 -155
  31. {ipfabric_netbox-3.2.4.dist-info → ipfabric_netbox-3.2.4b2.dist-info}/METADATA +12 -4
  32. {ipfabric_netbox-3.2.4.dist-info → ipfabric_netbox-3.2.4b2.dist-info}/RECORD +34 -31
  33. {ipfabric_netbox-3.2.4.dist-info → ipfabric_netbox-3.2.4b2.dist-info}/WHEEL +1 -1
  34. ipfabric_netbox/templates/ipfabric_netbox/inc/sync_delete.html +0 -19
  35. ipfabric_netbox/templates/ipfabric_netbox/partials/branch_all.html +0 -10
  36. ipfabric_netbox/templates/ipfabric_netbox/partials/sync_last_branch.html +0 -1
  37. ipfabric_netbox/templates/ipfabric_netbox/sync_list.html +0 -126
  38. /ipfabric_netbox/templates/ipfabric_netbox/partials/{branch_status.html → ingestion_status.html} +0 -0
@@ -1,30 +1,34 @@
1
- ipfabric_netbox/__init__.py,sha256=SrkmJ_57W0Je4fMJchMOrcPpCvBL4tNJL7uUbkGEX9w,315
1
+ ipfabric_netbox/__init__.py,sha256=snv1zIDm7zTpCrvcomVsCw5Ekutd_zi1whhQoM-twfc,317
2
2
  ipfabric_netbox/api/__init__.py,sha256=DOkvDAI4BoNgdCiNxfseeExEHyOrK8weG-LvjPRyK8A,101
3
- ipfabric_netbox/api/nested_serializers.py,sha256=JwIlFpOHeiMB7F-sC0gx1f6qdNevS8NsXTUEHlVZeRs,2719
4
- ipfabric_netbox/api/serializers.py,sha256=bTR3AJ81Q8HZI3iWLPc1tndGqD0erAbAD9hKLI4DTYY,4341
5
- ipfabric_netbox/api/urls.py,sha256=BSQ5nqYSx0r-wnbdKGDAb5XH7BBy_0ngV_Q7vDgjMIE,948
6
- ipfabric_netbox/api/views.py,sha256=X02GwpDlq25_3KlxYTWyd4PnT1RCtfp7uN0zZ5Etjp8,4429
3
+ ipfabric_netbox/api/nested_serializers.py,sha256=F-VpAL6xhNSUipuvR9_37sVw-3IPjr-XZB5CkouwelA,2174
4
+ ipfabric_netbox/api/serializers.py,sha256=yajV8aF1O6tcowfsGG3-2cAKEeR6ENMYr48bNMpTLIU,4152
5
+ ipfabric_netbox/api/urls.py,sha256=VQOcmGmcoqHWjOBaEnSZVCFvL23y60el8sZCe3JLr6U,957
6
+ ipfabric_netbox/api/views.py,sha256=nSmPjpOZxjU38N2qOq7MGabWZ7UwlWNvJ3hffE2XXbc,4444
7
7
  ipfabric_netbox/choices.py,sha256=GqcnLqsFR4gnhWEwkvQbPxXYNi5SwNoIQz-J15LTMc4,4848
8
- ipfabric_netbox/data/transform_map.json,sha256=Xb5x8dmBPDmrVUezjvkI3Wq60TgdHXocaur3W2xZ_k8,21951
8
+ ipfabric_netbox/data/transform_map.json,sha256=4PsucgMHcLW3SPoKEptQCd0gA5tCF4hjrR4bGQFCWy8,21744
9
9
  ipfabric_netbox/exceptions.py,sha256=Za-RutEX9ZIi3r0Rpor1vDGwsC5foeyrfSjUKS3Cwdk,744
10
- ipfabric_netbox/filtersets.py,sha256=P_2VCL892pLplPnsxul27bgGgMpHaZtgn9Vg0UsWErE,3877
11
- ipfabric_netbox/forms.py,sha256=qtl6htAmyAIwwUoucHsqmXJME2M2SzcA69_BBiuCqs4,42942
12
- ipfabric_netbox/jobs.py,sha256=jfWWNA42KMyzc-EGit6LJIe-SNob4-4IQRfadQF_GRE,2862
13
- ipfabric_netbox/migrations/0001_initial.py,sha256=nka6_HJK4Q8BlmQblDntuNzVKLR484SsC6wGSbOQgI4,13813
10
+ ipfabric_netbox/filtersets.py,sha256=ZcCaNs6jELYabu49Dfrqe6FAXBOJwd9pBU5zlwCOso8,4006
11
+ ipfabric_netbox/forms.py,sha256=ZI6KISWtGZgwHiCI8KlpXbxZrCJFvWfBMXeAzR0qLYw,41554
12
+ ipfabric_netbox/jobs.py,sha256=KrTUeCuFUIU7vKCUS3RiBYCBG7g7GzhGagM_qFMGQJ4,3089
13
+ ipfabric_netbox/migrations/0001_initial.py,sha256=VphxkWL6QzWq2tcrdXlog718xQtiEGizKwS830z_fOs,13824
14
+ ipfabric_netbox/migrations/0001_initial_squashed_0013_switch_to_branching_plugin.py,sha256=vYi7lkVq8Ljo6If8bDV2q8RfnJip-aVsjBrXAvVqXV8,20863
14
15
  ipfabric_netbox/migrations/0002_ipfabricsnapshot_status.py,sha256=xQpouHjOutyj6riN2B592njzSvz_icpkUbo5W7nWLYw,431
15
16
  ipfabric_netbox/migrations/0003_ipfabricsource_type_and_more.py,sha256=XUM_ZecLlzElKYfBg9-cIB-cUy1YHpIzvJhvWP-dbIw,1579
16
17
  ipfabric_netbox/migrations/0004_ipfabricsync_auto_merge.py,sha256=hlwHGKD7q3w1a1N04yIS39f6nsL_9TJCWEJlvwCdpPA,435
17
18
  ipfabric_netbox/migrations/0005_alter_ipfabricrelationshipfield_source_model_and_more.py,sha256=egiUtdu1zHElbcIIN9sUzS93dSCltVXFv0DG9IUp1HY,2802
18
19
  ipfabric_netbox/migrations/0006_alter_ipfabrictransformmap_target_model.py,sha256=6MmI-Uz9hmzj3nKqhUKdShjLnE8KNa4qthg0NVHjANc,2163
19
- ipfabric_netbox/migrations/0007_prepare_custom_fields.py,sha256=ohnNcbQn4CMkbh3XHtvmkctThUdYhN-ywN5xerOSmdE,3898
20
+ ipfabric_netbox/migrations/0007_prepare_custom_fields.py,sha256=4HJOpHD1x2m1i-cOMECaRHZrAqPhVPDHDibXRdCywx8,3906
20
21
  ipfabric_netbox/migrations/0008_prepare_transform_maps.py,sha256=Jwr-P9MQQv9N-Yx_19V4q6lmZpeIkjoUW1gh4s-lDnI,1541
21
22
  ipfabric_netbox/migrations/0009_transformmap_changes_for_netbox_v4_2.py,sha256=rEqa3OC8UpbdiZKOHBqnrjEgZXYxl8UFCDXHRl_Lnhk,9256
22
23
  ipfabric_netbox/migrations/0010_remove_uuid_from_get_or_create.py,sha256=K1oF-B32Ei60XbQdntmjksx1o7rpnpgXCVKFT1dOU1Q,3958
24
+ ipfabric_netbox/migrations/0011_update_part_number_DCIM_inventory_item_template.py,sha256=-uc82jPdMABAKb-sCZ-OMytuNY880Q70lQBLdT-bdcw,1743
25
+ ipfabric_netbox/migrations/0012_remove_status_field.py,sha256=UZTY2BOBuV4Y_7zuPRfsCFLo57HZ6DsNRIhFlF_VOTM,387
26
+ ipfabric_netbox/migrations/0013_switch_to_branching_plugin.py,sha256=JfdTNerjuFyjW3pDm4vueOp2lrDh2xt6lL1Et5i4crg,10754
23
27
  ipfabric_netbox/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
- ipfabric_netbox/models.py,sha256=krbTm99p7Tj1UHSo0OP5f6RFFdl5RggVG4vp-gkckUU,30725
25
- ipfabric_netbox/navigation.py,sha256=2kZs341nAB7G76qnZT6mFxsYo68IPy-bmPMkSLA-Nk0,1735
26
- ipfabric_netbox/signals.py,sha256=AnTxyTlj6iFQVscOlbzSBpplDAkkKYnhsNMP5K0g-ig,991
27
- ipfabric_netbox/tables.py,sha256=4cZb-_whp132B3EJglRBEkXwkYLUpWzIybkdHfAE9tM,6819
28
+ ipfabric_netbox/models.py,sha256=JiucbzHWDW_FVTWjljihYPvEki2iyTCtLVbGI0HiEHU,32469
29
+ ipfabric_netbox/navigation.py,sha256=YN2hNQNXLxpFUU-29qn7WGAK0lbtfvl_X04Qnh1rG7E,1731
30
+ ipfabric_netbox/signals.py,sha256=gEZVba-4KDqfSqi5MtWkFDcqqSFLDEjmBNheZjZEZKw,1274
31
+ ipfabric_netbox/tables.py,sha256=saQw4EszFO-nZjl5PBzb4SN4WJTU3mGoPjue-SGWnd8,6983
28
32
  ipfabric_netbox/template_content.py,sha256=bP2nUf5MM-GUbtQxJ8QoYVNXhrDCrkb8wZnbeqa07EA,315
29
33
  ipfabric_netbox/templates/ipfabric_netbox/inc/diff.html,sha256=xOiIrvRIBtqDD65u6xcLo2xdwDKNpAylDmzznaJRGCw,3281
30
34
  ipfabric_netbox/templates/ipfabric_netbox/inc/json.html,sha256=qPHUdaHyKM9Y7FqBEnYwcNoyp5GMFaexJFXMRf4AqZQ,569
@@ -33,33 +37,32 @@ ipfabric_netbox/templates/ipfabric_netbox/inc/merge_form.html,sha256=HxGRk7oTptD
33
37
  ipfabric_netbox/templates/ipfabric_netbox/inc/site_topology_button.html,sha256=81hUyBGqxUZ1i4EwT2Omydbk-2aFkKnWCu4tu68ch_c,2674
34
38
  ipfabric_netbox/templates/ipfabric_netbox/inc/site_topology_modal.html,sha256=zjG5qjth277dnVkzyg8qxs72wtKZ8yypXRTXqral4Wk,2124
35
39
  ipfabric_netbox/templates/ipfabric_netbox/inc/snapshotdata.html,sha256=1ItOCPjjp9iH7MLNLIz6x-2NnSa0Wx4bXUYVk-Jn4Y0,2885
36
- ipfabric_netbox/templates/ipfabric_netbox/inc/sync_delete.html,sha256=sNQ9VpsFdv1Ds1JbpyxN1OHE0eGDJj6aLE9eWdL-Muk,717
37
40
  ipfabric_netbox/templates/ipfabric_netbox/inc/transform_map_field_map.html,sha256=mRU-rBweVFvaPFHbVYPw7vcYyXiVaXCOkeHm7xWdKPA,500
38
41
  ipfabric_netbox/templates/ipfabric_netbox/inc/transform_map_relationship_map.html,sha256=qyuG_EXZMGUscA3sv_6WGSrf_bR7JTRlKyMYf6EYyo4,504
39
42
  ipfabric_netbox/templates/ipfabric_netbox/ipfabric_table.html,sha256=d5qcBeKDgh57eSZ6J1oYc--qfGmHRC6PLhrffFBQiM8,1631
40
- ipfabric_netbox/templates/ipfabric_netbox/ipfabricbranch.html,sha256=IY5JHOI5VfQyOprnZfOSedw4Ob_7UYLRYvSj5QXJKE0,4694
43
+ ipfabric_netbox/templates/ipfabric_netbox/ipfabricingestion.html,sha256=ctneF3bVY5ZMqry3SMWpX2UEsTmIM7k5sjEgT-s7LTk,5021
41
44
  ipfabric_netbox/templates/ipfabric_netbox/ipfabricsnapshot.html,sha256=hj8ORs_4mM_xTjmw3McHN-da5seC8nbbkzobn0f1TSc,3482
42
- ipfabric_netbox/templates/ipfabric_netbox/ipfabricsource.html,sha256=fD8yHBobQHCsfkfswlDn-ZngMh4vC_Z_fIsToPnGuhs,3845
43
- ipfabric_netbox/templates/ipfabric_netbox/ipfabricsync.html,sha256=-rApAS3LEAizuacVZEwl7MjPjWNwERtCHAs3lWO9PJk,3725
44
- ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap.html,sha256=2IVxbsthEWDHwSFxBxGnHtQjg93LnRGTepoavNoSD90,1100
45
+ ipfabric_netbox/templates/ipfabric_netbox/ipfabricsource.html,sha256=koR_t6Mf2FhWlPZHchWsTOQDSLB7AWrqtY0TRnIzrrM,3864
46
+ ipfabric_netbox/templates/ipfabric_netbox/ipfabricsync.html,sha256=24wZEPcr9F9XFHOn8DSZiaIw1HvAMpWqhXwJSFRt1Yw,3730
47
+ ipfabric_netbox/templates/ipfabric_netbox/ipfabricsync_list.html,sha256=b6uE317N69oeknOOqnJo5I-qm44QezDlBTRqslbEO8I,2593
48
+ ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap.html,sha256=UGwvEN53jFyXyoHFa5PRBav3V3JLLiYufj-e-nCYO4I,988
45
49
  ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap_list.html,sha256=p8zqn0-B6mawSUM3zQrus6dsKUM5SRBTO0X94pLboX8,452
46
50
  ipfabric_netbox/templates/ipfabric_netbox/ipfabrictransformmap_restore.html,sha256=cuvOBKnlMudMI-CX77W3vTpwhtc4CBcc6j6Ye-IBBMQ,2562
47
- ipfabric_netbox/templates/ipfabric_netbox/partials/branch_all.html,sha256=VQyfK3jJRmUAWEatuE7rs-D9M1XAZq_edMu5MXATM4Q,368
48
- ipfabric_netbox/templates/ipfabric_netbox/partials/branch_progress.html,sha256=vwSZw2goj8kiPw4tftNr_IUm-Iz80Ty3wEmMgbq8ONs,590
49
- ipfabric_netbox/templates/ipfabric_netbox/partials/branch_status.html,sha256=mKXre8_-y6OYyoL_WFYyHuyxJrR4D40M2OT-r83zKEM,81
51
+ ipfabric_netbox/templates/ipfabric_netbox/partials/ingestion_all.html,sha256=FHMoHSnngsR_ZyypF6Ent8Tl-4kYDe1WTUIoehPYWEY,389
52
+ ipfabric_netbox/templates/ipfabric_netbox/partials/ingestion_progress.html,sha256=NellDFy1qzgVbCtkOZbiSi3ufau6FOLIQPUoNiU6Bg4,595
53
+ ipfabric_netbox/templates/ipfabric_netbox/partials/ingestion_status.html,sha256=mKXre8_-y6OYyoL_WFYyHuyxJrR4D40M2OT-r83zKEM,81
50
54
  ipfabric_netbox/templates/ipfabric_netbox/partials/job_logs.html,sha256=PMZxxrRVzn_JI8k5XCNV5BQnoFj9zYePN6afP6C_J2E,1622
51
- ipfabric_netbox/templates/ipfabric_netbox/partials/sync_last_branch.html,sha256=0j7y_bo8Gmahnshrxc0Jxw9wTZYe785V5Hk4RzVikLY,167
52
- ipfabric_netbox/templates/ipfabric_netbox/sync_list.html,sha256=3wfwPUIAfzzIP_pu3gL0L3wH65UX5XFLBW5BW-CZJDc,5587
55
+ ipfabric_netbox/templates/ipfabric_netbox/partials/sync_last_ingestion.html,sha256=3v6tC88xE5cic9l9lQw7Msawoq-AW2oo2odd-osGv50,179
53
56
  ipfabric_netbox/templates/static/ipfabric_netbox/css/rack.css,sha256=z1H-RmmsqF2pGdhn5J64TMFiccy62xZUHHlCRd8fJrQ,118
54
57
  ipfabric_netbox/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
58
  ipfabric_netbox/tests/test_models.py,sha256=syndh1M3uiZIokn_MJUHfU5jNNMUDPQ5sm8iK-gu1Is,15192
56
- ipfabric_netbox/urls.py,sha256=V98K_JxHaJAgDbo-DiMj-5FQIIposLMLJCPw3dtREWU,4430
59
+ ipfabric_netbox/urls.py,sha256=NEeRXv1adlVzYVgZn_qXogd9kgZhLNg0VSAB5TOMy2M,4622
57
60
  ipfabric_netbox/utilities/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
- ipfabric_netbox/utilities/ipfutils.py,sha256=v-9GUfvK0SEeyl7PBHzMqIKl1_wWmy38y_KoBS9K-9o,27409
61
+ ipfabric_netbox/utilities/ipfutils.py,sha256=nOehKJWzFDTq5__yM26v9eShQT5tvUWlP1OmFEsGupA,28666
59
62
  ipfabric_netbox/utilities/logging.py,sha256=GYknjocMN6LQ2873_az3y0RKm29TCXaWviUIIneH-x0,3445
60
63
  ipfabric_netbox/utilities/nbutils.py,sha256=kFBEiJOGvr_49hJWCS2duXojx2-A9kVk0Xp_vj0ohfs,2641
61
64
  ipfabric_netbox/utilities/transform_map.py,sha256=g0elxtwSRJvu0ZRZHyMf4Y9R4wiQ-h2o9Er8gxUQ-Bs,2108
62
- ipfabric_netbox/views.py,sha256=K2iKh6i8kv88c7gVh6wW7d8Adcso24ZE8m6gVUiNZSw,28285
63
- ipfabric_netbox-3.2.4.dist-info/METADATA,sha256=6QVcK8HDuEAQ6kFiulmkk_LaIvYcb58gQFrhw3i9sZI,4947
64
- ipfabric_netbox-3.2.4.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
65
- ipfabric_netbox-3.2.4.dist-info/RECORD,,
65
+ ipfabric_netbox/views.py,sha256=j8oq0N-npONcY6YgjU4UabJl7NgCAXJGUHTHzbh5FvA,28796
66
+ ipfabric_netbox-3.2.4b2.dist-info/METADATA,sha256=lpPSHLnh4563XcBxIwl1kgUXHAZBosNFupMuDMUUbjE,5393
67
+ ipfabric_netbox-3.2.4b2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
68
+ ipfabric_netbox-3.2.4b2.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 2.1.2
2
+ Generator: poetry-core 2.1.3
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,19 +0,0 @@
1
- {% load form_helpers %}
2
-
3
- <form action="{{ form_url }}" method="post">
4
- {% csrf_token %}
5
- <div class="modal-header">
6
- <h5 class="modal-title">Sorry!</h5>
7
- </div>
8
- <div class="modal-body">
9
- <p>Sorry, due to an outstanding issue with NetBox Core we are unable to delete an ingestion. <a href="https://github.com/netbox-community/netbox/issues/13640" target="_blank">Issue Number 13422</a></p>
10
- {% render_form form %}
11
- </div>
12
- <div class="modal-footer">
13
- {% if return_url %}
14
- <a href="{{ return_url }}" class="btn btn-outline-secondary">Cancel</a>
15
- {% else %}
16
- <button type="button" class="btn btn-outline-secondary" data-bs-dismiss="modal">Cancel</button>
17
- {% endif %}
18
- </div>
19
- </form>
@@ -1,10 +0,0 @@
1
-
2
- <div id="sync_status" hx-swap-oob="true">
3
- {% include 'ipfabric_netbox/partials/branch_status.html' with object=object %}
4
- </div>
5
- <div id="sync_progress" hx-swap-oob="true">
6
- {% include 'ipfabric_netbox/partials/branch_progress.html' %}
7
- </div>
8
- <div id="sync_logs">
9
- {% include 'ipfabric_netbox/partials/job_logs.html' with job_results=job_results job=job %}
10
- </div>
@@ -1 +0,0 @@
1
- {% if last_branch %}<a href="{% url 'plugins:ipfabric_netbox:ipfabricbranch' pk=last_branch.pk %}">{{ last_branch.name }}{% else %}{{ ""|placeholder }}{% endif %}</a>
@@ -1,126 +0,0 @@
1
- {% extends 'base/layout.html' %}
2
- {% load buttons %}
3
- {% load helpers %}
4
- {% load perms %}
5
-
6
- {% block title %}Ingestion{% endblock %}
7
-
8
- {% block tabs %}
9
- <ul class="nav nav-tabs px-3">
10
- <li class="nav-item" role="presentation">
11
- <a class="nav-link active" role="tab">Ingestion</a>
12
- </li>
13
- </ul>
14
- {% endblock tabs %}
15
-
16
- {% block controls %}
17
- <div class="controls">
18
- <div class="control-group">
19
- {% block extra_controls %}{% endblock %}
20
- {% add_button model %}
21
- </div>
22
- </div>
23
- {% endblock controls %}
24
-
25
- {% block content %}
26
- <div class="tab-content">
27
- {% for sync in syncs %}
28
- <div class="card">
29
- <h5 class="card-header" id="module{{ module.pk }}">
30
- <!-- TODO: Cannot delete without serializer https://github.com/netbox-community/netbox/issues/13640-->
31
- <!-- {% if perms.ipfabric_netbox.delete_ipfabricsync %}
32
- <div class="float-end">
33
- <a href="{% url 'plugins:ipfabric_netbox:ipfabricsync_delete' pk=sync.pk %}" class="btn btn-danger btn-sm">
34
- <i class="mdi mdi-trash-can-outline" aria-hidden="true"></i> Delete
35
- </a>
36
- </div>
37
- {% endif %} -->
38
- <i class="mdi mdi-cloud-sync"></i><i class="mdi mdi-sync"></i> <a href="{% url 'plugins:ipfabric_netbox:ipfabricsync' pk=sync.pk %}">{{ sync.name}}</a>
39
-
40
- </h5>
41
- <div class="card-body">
42
- {% include 'inc/sync_warning.html' with object=module %}
43
- <table class="table table-hover table-headings reports">
44
- <thead>
45
- <tr>
46
- <th width="200">Source</th>
47
- <th width="400">Snapshot</th>
48
- <th>Status</th>
49
- <th>Last Run</th>
50
- </tr>
51
- </thead>
52
- <tbody>
53
- <tr>
54
- <td><a href="{% url 'plugins:ipfabric_netbox:ipfabricsource' pk=sync.snapshot_data.source.pk %}">{{ sync.snapshot_data.source.name }}</a></td>
55
- <td><a href="{% url 'plugins:ipfabric_netbox:ipfabricsnapshot' pk=sync.snapshot_data.pk %}">{{ sync.snapshot_data.name}}</a></td>
56
- <td>{% badge sync.get_status_display last_job.get_status_color %}</td>
57
- <td>{{sync.last_synced}}</td>
58
- </tr>
59
- </tbody>
60
- <!-- <tbody>
61
- {% with jobs=module.get_latest_jobs %}
62
- {% for report_name, report in module.reports.items %}
63
- {% with last_job=jobs|get_key:report.name %}
64
- <tr>
65
- <td>
66
- <a href="{% url 'extras:report' module=module.python_name name=report.class_name %}" id="{{ report.module }}.{{ report.class_name }}">{{ report.name }}</a>
67
- </td>
68
- <td>{{ report.description|markdown|placeholder }}</td>
69
- {% if last_job %}
70
- <td>
71
- <a href="{% url 'extras:report_result' job_pk=last_job.pk %}">{{ last_job.created|isodatetime }}</a>
72
- </td>
73
- <td>
74
- {% badge last_job.get_status_display last_job.get_status_color %}
75
- </td>
76
- {% else %}
77
- <td class="text-muted">Never</td>
78
- <td>{{ ''|placeholder }}</td>
79
- {% endif %}
80
- <td>
81
- {% if perms.extras.run_report %}
82
- <div class="float-end noprint">
83
- <form action="{% url 'extras:report' module=report.module name=report.class_name %}" method="post">
84
- {% csrf_token %}
85
- <button type="submit" name="_run" class="btn btn-primary btn-sm" style="width: 110px">
86
- {% if last_job %}
87
- <i class="mdi mdi-replay"></i> Run Again
88
- {% else %}
89
- <i class="mdi mdi-play"></i> Run Report
90
- {% endif %}
91
- </button>
92
- </form>
93
- </div>
94
- {% endif %}
95
- </td>
96
- </tr>
97
- {% for method, stats in last_job.data.items %}
98
- <tr>
99
- <td colspan="4" class="method">
100
- <span class="ps-3">{{ method }}</span>
101
- </td>
102
- <td class="text-end text-nowrap report-stats">
103
- <span class="badge bg-success">{{ stats.success }}</span>
104
- <span class="badge bg-info">{{ stats.info }}</span>
105
- <span class="badge bg-warning">{{ stats.warning }}</span>
106
- <span class="badge bg-danger">{{ stats.failure }}</span>
107
- </td>
108
- </tr>
109
- {% endfor %}
110
- {% endwith %}
111
- {% endfor %}
112
- {% endwith %}
113
- </tbody> -->
114
- </table>
115
- </div>
116
- </div>
117
- {% empty %}
118
- <div class="alert alert-info" role="alert">
119
- <h4 class="alert-heading">Injest Jobs Settings Found</h4>
120
- {% if perms.extras.add_reportmodule %}
121
- Get started by <a href="{% url 'plugins:ipfabric_netbox:ipfabricsync_add' %}">creating an injestion</a> from an IP Fabric source.
122
- {% endif %}
123
- </div>
124
- {% endfor %}
125
- </div>
126
- {% endblock content %}