prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Circuits list view to display formatted commit rate
  ### NetBox version
  
  3.1.2
  
  ### Feature type
  
  Change to existing functionality
  
  ### Proposed functionality
  
  The current circuit list view (/circuits/circuits/) has a column called "Commit Rate (kbps) and shows the rate in kbps i.e. 1000000
  
  However when looking at the circuit details, the commit rate is translated into something more human readable i.e 1 Gbps
  
  Proposing either changing the existing Commit Rate (kbps) column to also translate the commit rate or the addition of an extra column simply called Commit Rate that has the human readable version.
  
  ### Use case
  
  Easier for non-technical users to quickly see the commit rate of a circuit in the table view. Brings more parity to the circuit details view.
  
  ### Database changes
  
  _No response_
  
  ### External dependencies
  
  _No response_
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `netbox/circuits/tables.py`
  Content:
  ```
  1 import django_tables2 as tables
  2 from django_tables2.utils import Accessor
  3 
  4 from tenancy.tables import TenantColumn
  5 from utilities.tables import BaseTable, ButtonsColumn, ChoiceFieldColumn, MarkdownColumn, TagColumn, ToggleColumn
  6 from .models import *
  7 
  8 
  9 __all__ = (
  10     'CircuitTable',
  11     'CircuitTypeTable',
  12     'ProviderTable',
  13     'ProviderNetworkTable',
  14 )
  15 
  16 
  17 CIRCUITTERMINATION_LINK = """
  18 {% if value.site %}
  19   <a href="{{ value.site.get_absolute_url }}">{{ value.site }}</a>
  20 {% elif value.provider_network %}
  21   <a href="{{ value.provider_network.get_absolute_url }}">{{ value.provider_network }}</a>
  22 {% endif %}
  23 """
  24 
  25 
  26 #
  27 # Providers
  28 #
  29 
  30 class ProviderTable(BaseTable):
  31     pk = ToggleColumn()
  32     name = tables.Column(
  33         linkify=True
  34     )
  35     circuit_count = tables.Column(
  36         accessor=Accessor('count_circuits'),
  37         verbose_name='Circuits'
  38     )
  39     comments = MarkdownColumn()
  40     tags = TagColumn(
  41         url_name='circuits:provider_list'
  42     )
  43 
  44     class Meta(BaseTable.Meta):
  45         model = Provider
  46         fields = (
  47             'pk', 'id', 'name', 'asn', 'account', 'portal_url', 'noc_contact', 'admin_contact', 'circuit_count',
  48             'comments', 'tags',
  49         )
  50         default_columns = ('pk', 'name', 'asn', 'account', 'circuit_count')
  51 
  52 
  53 #
  54 # Provider networks
  55 #
  56 
  57 class ProviderNetworkTable(BaseTable):
  58     pk = ToggleColumn()
  59     name = tables.Column(
  60         linkify=True
  61     )
  62     provider = tables.Column(
  63         linkify=True
  64     )
  65     comments = MarkdownColumn()
  66     tags = TagColumn(
  67         url_name='circuits:providernetwork_list'
  68     )
  69 
  70     class Meta(BaseTable.Meta):
  71         model = ProviderNetwork
  72         fields = ('pk', 'id', 'name', 'provider', 'description', 'comments', 'tags')
  73         default_columns = ('pk', 'name', 'provider', 'description')
  74 
  75 
  76 #
  77 # Circuit types
  78 #
  79 
  80 class CircuitTypeTable(BaseTable):
  81     pk = ToggleColumn()
  82     name = tables.Column(
  83         linkify=True
  84     )
  85     tags = TagColumn(
  86         url_name='circuits:circuittype_list'
  87     )
  88     circuit_count = tables.Column(
  89         verbose_name='Circuits'
  90     )
  91     actions = ButtonsColumn(CircuitType)
  92 
  93     class Meta(BaseTable.Meta):
  94         model = CircuitType
  95         fields = ('pk', 'id', 'name', 'circuit_count', 'description', 'slug', 'tags', 'actions')
  96         default_columns = ('pk', 'name', 'circuit_count', 'description', 'slug', 'actions')
  97 
  98 
  99 #
  100 # Circuits
  101 #
  102 
  103 class CircuitTable(BaseTable):
  104     pk = ToggleColumn()
  105     cid = tables.Column(
  106         linkify=True,
  107         verbose_name='Circuit ID'
  108     )
  109     provider = tables.Column(
  110         linkify=True
  111     )
  112     status = ChoiceFieldColumn()
  113     tenant = TenantColumn()
  114     termination_a = tables.TemplateColumn(
  115         template_code=CIRCUITTERMINATION_LINK,
  116         verbose_name='Side A'
  117     )
  118     termination_z = tables.TemplateColumn(
  119         template_code=CIRCUITTERMINATION_LINK,
  120         verbose_name='Side Z'
  121     )
  122     comments = MarkdownColumn()
  123     tags = TagColumn(
  124         url_name='circuits:circuit_list'
  125     )
  126 
  127     class Meta(BaseTable.Meta):
  128         model = Circuit
  129         fields = (
  130             'pk', 'id', 'cid', 'provider', 'type', 'status', 'tenant', 'termination_a', 'termination_z', 'install_date',
  131             'commit_rate', 'description', 'comments', 'tags',
  132         )
  133         default_columns = (
  134             'pk', 'cid', 'provider', 'type', 'status', 'tenant', 'termination_a', 'termination_z', 'description',
  135         )
  136
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/netbox/circuits/tables.py b/netbox/circuits/tables.py
  --- a/netbox/circuits/tables.py
  +++ b/netbox/circuits/tables.py
  @@ -22,11 +22,32 @@
   {% endif %}
   """
   
  +#
  +# Table columns
  +#
  +
  +
  +class CommitRateColumn(tables.TemplateColumn):
  +    """
  +    Humanize the commit rate in the column view
  +    """
  +
  +    template_code = """
  +        {% load helpers %}
  +        {{ record.commit_rate|humanize_speed }}
  +        """
  +
  +    def __init__(self, *args, **kwargs):
  +        super().__init__(template_code=self.template_code, *args, **kwargs)
  +
  +    def value(self, value):
  +        return str(value) if value else None
   
   #
   # Providers
   #
   
  +
   class ProviderTable(BaseTable):
       pk = ToggleColumn()
       name = tables.Column(
  @@ -119,6 +140,7 @@
           template_code=CIRCUITTERMINATION_LINK,
           verbose_name='Side Z'
       )
  +    commit_rate = CommitRateColumn()
       comments = MarkdownColumn()
       tags = TagColumn(
           url_name='circuits:circuit_list'
  
verification_info: {"golden_diff": "diff --git a/netbox/circuits/tables.py b/netbox/circuits/tables.py\n--- a/netbox/circuits/tables.py\n+++ b/netbox/circuits/tables.py\n@@ -22,11 +22,32 @@\n {% endif %}\n \"\"\"\n \n+#\n+# Table columns\n+#\n+\n+\n+class CommitRateColumn(tables.TemplateColumn):\n+    \"\"\"\n+    Humanize the commit rate in the column view\n+    \"\"\"\n+\n+    template_code = \"\"\"\n+        {% load helpers %}\n+        {{ record.commit_rate|humanize_speed }}\n+        \"\"\"\n+\n+    def __init__(self, *args, **kwargs):\n+        super().__init__(template_code=self.template_code, *args, **kwargs)\n+\n+    def value(self, value):\n+        return str(value) if value else None\n \n #\n # Providers\n #\n \n+\n class ProviderTable(BaseTable):\n     pk = ToggleColumn()\n     name = tables.Column(\n@@ -119,6 +140,7 @@\n         template_code=CIRCUITTERMINATION_LINK,\n         verbose_name='Side Z'\n     )\n+    commit_rate = CommitRateColumn()\n     comments = MarkdownColumn()\n     tags = TagColumn(\n         url_name='circuits:circuit_list'\n", "issue": "Circuits list view to display formatted commit rate\n### NetBox version\n\n3.1.2\n\n### Feature type\n\nChange to existing functionality\n\n### Proposed functionality\n\nThe current circuit list view (/circuits/circuits/) has a column called \"Commit Rate (kbps) and shows the rate in kbps i.e. 1000000\r\n\r\nHowever when looking at the circuit details, the commit rate is translated into something more human readable i.e 1 Gbps\r\n\r\nProposing either changing the existing Commit Rate (kbps) column to also translate the commit rate or the addition of an extra column simply called Commit Rate that has the human readable version.\n\n### Use case\n\nEasier for non-technical users to quickly see the commit rate of a circuit in the table view. Brings more parity to the circuit details view.\n\n### Database changes\n\n_No response_\n\n### External dependencies\n\n_No response_\n", "before_files": [{"content": "import django_tables2 as tables\nfrom django_tables2.utils import Accessor\n\nfrom tenancy.tables import TenantColumn\nfrom utilities.tables import BaseTable, ButtonsColumn, ChoiceFieldColumn, MarkdownColumn, TagColumn, ToggleColumn\nfrom .models import *\n\n\n__all__ = (\n    'CircuitTable',\n    'CircuitTypeTable',\n    'ProviderTable',\n    'ProviderNetworkTable',\n)\n\n\nCIRCUITTERMINATION_LINK = \"\"\"\n{% if value.site %}\n  <a href=\"{{ value.site.get_absolute_url }}\">{{ value.site }}</a>\n{% elif value.provider_network %}\n  <a href=\"{{ value.provider_network.get_absolute_url }}\">{{ value.provider_network }}</a>\n{% endif %}\n\"\"\"\n\n\n#\n# Providers\n#\n\nclass ProviderTable(BaseTable):\n    pk = ToggleColumn()\n    name = tables.Column(\n        linkify=True\n    )\n    circuit_count = tables.Column(\n        accessor=Accessor('count_circuits'),\n        verbose_name='Circuits'\n    )\n    comments = MarkdownColumn()\n    tags = TagColumn(\n        url_name='circuits:provider_list'\n    )\n\n    class Meta(BaseTable.Meta):\n        model = Provider\n        fields = (\n            'pk', 'id', 'name', 'asn', 'account', 'portal_url', 'noc_contact', 'admin_contact', 'circuit_count',\n            'comments', 'tags',\n        )\n        default_columns = ('pk', 'name', 'asn', 'account', 'circuit_count')\n\n\n#\n# Provider networks\n#\n\nclass ProviderNetworkTable(BaseTable):\n    pk = ToggleColumn()\n    name = tables.Column(\n        linkify=True\n    )\n    provider = tables.Column(\n        linkify=True\n    )\n    comments = MarkdownColumn()\n    tags = TagColumn(\n        url_name='circuits:providernetwork_list'\n    )\n\n    class Meta(BaseTable.Meta):\n        model = ProviderNetwork\n        fields = ('pk', 'id', 'name', 'provider', 'description', 'comments', 'tags')\n        default_columns = ('pk', 'name', 'provider', 'description')\n\n\n#\n# Circuit types\n#\n\nclass CircuitTypeTable(BaseTable):\n    pk = ToggleColumn()\n    name = tables.Column(\n        linkify=True\n    )\n    tags = TagColumn(\n        url_name='circuits:circuittype_list'\n    )\n    circuit_count = tables.Column(\n        verbose_name='Circuits'\n    )\n    actions = ButtonsColumn(CircuitType)\n\n    class Meta(BaseTable.Meta):\n        model = CircuitType\n        fields = ('pk', 'id', 'name', 'circuit_count', 'description', 'slug', 'tags', 'actions')\n        default_columns = ('pk', 'name', 'circuit_count', 'description', 'slug', 'actions')\n\n\n#\n# Circuits\n#\n\nclass CircuitTable(BaseTable):\n    pk = ToggleColumn()\n    cid = tables.Column(\n        linkify=True,\n        verbose_name='Circuit ID'\n    )\n    provider = tables.Column(\n        linkify=True\n    )\n    status = ChoiceFieldColumn()\n    tenant = TenantColumn()\n    termination_a = tables.TemplateColumn(\n        template_code=CIRCUITTERMINATION_LINK,\n        verbose_name='Side A'\n    )\n    termination_z = tables.TemplateColumn(\n        template_code=CIRCUITTERMINATION_LINK,\n        verbose_name='Side Z'\n    )\n    comments = MarkdownColumn()\n    tags = TagColumn(\n        url_name='circuits:circuit_list'\n    )\n\n    class Meta(BaseTable.Meta):\n        model = Circuit\n        fields = (\n            'pk', 'id', 'cid', 'provider', 'type', 'status', 'tenant', 'termination_a', 'termination_z', 'install_date',\n            'commit_rate', 'description', 'comments', 'tags',\n        )\n        default_columns = (\n            'pk', 'cid', 'provider', 'type', 'status', 'tenant', 'termination_a', 'termination_z', 'description',\n        )\n", "path": "netbox/circuits/tables.py"}], "after_files": [{"content": "import django_tables2 as tables\nfrom django_tables2.utils import Accessor\n\nfrom tenancy.tables import TenantColumn\nfrom utilities.tables import BaseTable, ButtonsColumn, ChoiceFieldColumn, MarkdownColumn, TagColumn, ToggleColumn\nfrom .models import *\n\n\n__all__ = (\n    'CircuitTable',\n    'CircuitTypeTable',\n    'ProviderTable',\n    'ProviderNetworkTable',\n)\n\n\nCIRCUITTERMINATION_LINK = \"\"\"\n{% if value.site %}\n  <a href=\"{{ value.site.get_absolute_url }}\">{{ value.site }}</a>\n{% elif value.provider_network %}\n  <a href=\"{{ value.provider_network.get_absolute_url }}\">{{ value.provider_network }}</a>\n{% endif %}\n\"\"\"\n\n#\n# Table columns\n#\n\n\nclass CommitRateColumn(tables.TemplateColumn):\n    \"\"\"\n    Humanize the commit rate in the column view\n    \"\"\"\n\n    template_code = \"\"\"\n        {% load helpers %}\n        {{ record.commit_rate|humanize_speed }}\n        \"\"\"\n\n    def __init__(self, *args, **kwargs):\n        super().__init__(template_code=self.template_code, *args, **kwargs)\n\n    def value(self, value):\n        return str(value) if value else None\n\n#\n# Providers\n#\n\n\nclass ProviderTable(BaseTable):\n    pk = ToggleColumn()\n    name = tables.Column(\n        linkify=True\n    )\n    circuit_count = tables.Column(\n        accessor=Accessor('count_circuits'),\n        verbose_name='Circuits'\n    )\n    comments = MarkdownColumn()\n    tags = TagColumn(\n        url_name='circuits:provider_list'\n    )\n\n    class Meta(BaseTable.Meta):\n        model = Provider\n        fields = (\n            'pk', 'id', 'name', 'asn', 'account', 'portal_url', 'noc_contact', 'admin_contact', 'circuit_count',\n            'comments', 'tags',\n        )\n        default_columns = ('pk', 'name', 'asn', 'account', 'circuit_count')\n\n\n#\n# Provider networks\n#\n\nclass ProviderNetworkTable(BaseTable):\n    pk = ToggleColumn()\n    name = tables.Column(\n        linkify=True\n    )\n    provider = tables.Column(\n        linkify=True\n    )\n    comments = MarkdownColumn()\n    tags = TagColumn(\n        url_name='circuits:providernetwork_list'\n    )\n\n    class Meta(BaseTable.Meta):\n        model = ProviderNetwork\n        fields = ('pk', 'id', 'name', 'provider', 'description', 'comments', 'tags')\n        default_columns = ('pk', 'name', 'provider', 'description')\n\n\n#\n# Circuit types\n#\n\nclass CircuitTypeTable(BaseTable):\n    pk = ToggleColumn()\n    name = tables.Column(\n        linkify=True\n    )\n    tags = TagColumn(\n        url_name='circuits:circuittype_list'\n    )\n    circuit_count = tables.Column(\n        verbose_name='Circuits'\n    )\n    actions = ButtonsColumn(CircuitType)\n\n    class Meta(BaseTable.Meta):\n        model = CircuitType\n        fields = ('pk', 'id', 'name', 'circuit_count', 'description', 'slug', 'tags', 'actions')\n        default_columns = ('pk', 'name', 'circuit_count', 'description', 'slug', 'actions')\n\n\n#\n# Circuits\n#\n\nclass CircuitTable(BaseTable):\n    pk = ToggleColumn()\n    cid = tables.Column(\n        linkify=True,\n        verbose_name='Circuit ID'\n    )\n    provider = tables.Column(\n        linkify=True\n    )\n    status = ChoiceFieldColumn()\n    tenant = TenantColumn()\n    termination_a = tables.TemplateColumn(\n        template_code=CIRCUITTERMINATION_LINK,\n        verbose_name='Side A'\n    )\n    termination_z = tables.TemplateColumn(\n        template_code=CIRCUITTERMINATION_LINK,\n        verbose_name='Side Z'\n    )\n    commit_rate = CommitRateColumn()\n    comments = MarkdownColumn()\n    tags = TagColumn(\n        url_name='circuits:circuit_list'\n    )\n\n    class Meta(BaseTable.Meta):\n        model = Circuit\n        fields = (\n            'pk', 'id', 'cid', 'provider', 'type', 'status', 'tenant', 'termination_a', 'termination_z', 'install_date',\n            'commit_rate', 'description', 'comments', 'tags',\n        )\n        default_columns = (\n            'pk', 'cid', 'provider', 'type', 'status', 'tenant', 'termination_a', 'termination_z', 'description',\n        )\n", "path": "netbox/circuits/tables.py"}]}