stats.html 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. {% extends '_base.html' %}
  2. {% load humanize %}
  3. {% load render_table from django_tables2 %}
  4. {% block title %}RIR Statistics{% endblock %}
  5. {% block content %}
  6. <h1>RIR Statistics</h1>
  7. <div class="row">
  8. <div class="col-md-9">
  9. <ul class="nav nav-tabs" style="margin-bottom: 20px">
  10. <li role="presentation"{% if family == 4 %} class="active"{% endif %}><a href="{% url 'ipam:rir_stats' %}">IPv4</a></li>
  11. <li role="presentation"{% if family == 6 %} class="active"{% endif %}><a href="{% url 'ipam:rir_stats_ipv6' %}">IPv6</a></li>
  12. </ul>
  13. {% if family == 6 %}
  14. <div class="alert alert-info alert-dismissible" role="alert">
  15. <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  16. <strong>Note:</strong> Numbers shown here indicate equivalent /64 prefixes, not individual IP addresses.
  17. </div>
  18. {% endif %}
  19. {% for rir, counts in stats.items %}
  20. <h3>{{ rir }}</h3>
  21. <div class="progress">
  22. {% if counts.total %}
  23. <div class="progress-bar" role="progressbar" style="width: {{ counts.percentages.active }}%;">
  24. <span class="sr-only">{{ counts.percentages.active }}%</span>
  25. </div>
  26. <div class="progress-bar progress-bar-info" role="progressbar" style="width: {{ counts.percentages.reserved }}%;">
  27. <span class="sr-only">{{ counts.percentages.reserved }}%</span>
  28. </div>
  29. <div class="progress-bar progress-bar-danger" role="progressbar" style="width: {{ counts.percentages.deprecated }}%;">
  30. <span class="sr-only">{{ counts.percentages.deprecated }}%</span>
  31. </div>
  32. <div class="progress-bar progress-bar-success" role="progressbar" style="width: {{ counts.percentages.available }}%;">
  33. <span class="sr-only">{{ counts.percentages.available }}%</span>
  34. </div>
  35. {% endif %}
  36. </div>
  37. <div class="row">
  38. <div class="col-md-2 col-md-offset-2 text-center">
  39. <h4><span class="label label-default">{{ counts.total|intcomma }}</span></h4>
  40. Total
  41. </div>
  42. <div class="col-md-2 text-center">
  43. <h4><span class="label label-primary">{{ counts.active|intcomma }}</span></h4>
  44. Active
  45. </div>
  46. <div class="col-md-2 text-center">
  47. <h4><span class="label label-info">{{ counts.reserved|intcomma }}</span></h4>
  48. Reserved
  49. </div>
  50. <div class="col-md-2 text-center">
  51. <h4><span class="label label-danger">{{ counts.deprecated|intcomma }}</span></h4>
  52. Deprecated
  53. </div>
  54. <div class="col-md-2 text-center">
  55. <h4><span class="label label-success">{{ counts.available|intcomma }}</span></h4>
  56. Available
  57. </div>
  58. </div>
  59. {% endfor %}
  60. <hr />
  61. <div class="row">
  62. <div class="col-md-2">
  63. <h3>Totals</h3>
  64. </div>
  65. <div class="col-md-2 text-center">
  66. <h3>{{ totals.total|intcomma }}</h3>
  67. All IPv{{ family }} space
  68. </div>
  69. <div class="col-md-2 text-center">
  70. <h3>{{ totals.active|intcomma }}</h3>
  71. Active
  72. </div>
  73. <div class="col-md-2 text-center">
  74. <h3>{{ totals.reserved|intcomma }}</h3>
  75. Reserved
  76. </div>
  77. <div class="col-md-2 text-center">
  78. <h3>{{ totals.deprecated|intcomma }}</h3>
  79. Deprecated
  80. </div>
  81. <div class="col-md-2 text-center">
  82. <h3>{{ totals.available|intcomma }}</h3>
  83. Available
  84. </div>
  85. </div>
  86. </div>
  87. </div>
  88. {% endblock %}