Repository: netbox-community/netbox

Issue:
Add "splice" type for rear ports
Thanks a lot for building such an awesome tool! This is a minor request.

### Environment
* Python version: v3.? (netbox-docker)
* NetBox version: v2.9.8

<!--
    Describe in detail the new functionality you are proposing. Include any
    specific changes to work flows, data models, or the user interface.
-->
### Proposed Functionality
For rear (or front, I suppose) ports, please consider adding a `Splice` Type under `Fiber Optic`.

When modeling a typical enterprise copper cable plant, we have patch panels with 8P8C front ports and 110 punch rear ports. This accurately matches the real world.

But fiber patch panels are often installed by splicing the cable run to the back of an e.g. LC connector.

There is no `Splice` type connector. I'm forced to pick one (e.g. LC), which doesn't reflect the real world. It's not a big deal to work around, but it seems like it wouldn't be too much work to add another type either.

<!--
    Convey an example use case for your proposed feature. Write from the
    perspective of a NetBox user who would benefit from the proposed
    functionality and describe how.
--->
### Use Case
When modeling fiber cable plants, there will often be splices.

Consider the most simple case:
- Rack 1
  - Fiber patch panel 1.1
    - Front port 1: LC connector
    - Rear port 1: Splice
- Rack 2
  - Fiber patch panel 2.1
    - Front port 1: LC connector
    - Rear port 1: Splice

The two "splice" rear ports would be connected together.

<!--
    Note any changes to the database schema necessary to support the new
    feature. For example, does the proposal require adding a new model or
    field? (Not all new features require database changes.)
--->
### Database Changes
No new models or fields required.

- Add new port type [here](https://github.com/netbox-community/netbox/blob/8ba50d0cf2eeb04ba3cc8b800a142b4bd06c6858/netbox/dcim/choices.py#L816-L832)
- Add new choice [here](https://github.com/netbox-community/netbox/blob/8ba50d0cf2eeb04ba3cc8b800a142b4bd06c6858/netbox/dcim/choices.py#L848-L860)
- May need to augment [this migration](https://github.com/netbox-community/netbox/blob/3eb2d45e8deedfc71cfba9a3c2f919df760b6dca/netbox/dcim/migrations/0082_3569_port_fields.py)

<!--
    List any new dependencies on external libraries or services that this new
    feature would introduce. For example, does the proposal require the
    installation of a new Python package? (Not all new features introduce new
    dependencies.)
-->
### External Dependencies
n/a


Discussion:
> May need to augment this migration

FYI this isn't necessary: The migration only deals with types that existed before the migration was written.

Resolving patch:
diff --git a/netbox/dcim/choices.py b/netbox/dcim/choices.py
--- a/netbox/dcim/choices.py
+++ b/netbox/dcim/choices.py
@@ -830,6 +830,7 @@ class PortTypeChoices(ChoiceSet):
     TYPE_MPO = 'mpo'
     TYPE_LSH = 'lsh'
     TYPE_LSH_APC = 'lsh-apc'
+    TYPE_SPLICE = 'splice'
 
     CHOICES = (
         (
@@ -857,6 +858,7 @@ class PortTypeChoices(ChoiceSet):
                 (TYPE_SC, 'SC'),
                 (TYPE_SC_APC, 'SC/APC'),
                 (TYPE_ST, 'ST'),
+                (TYPE_SPLICE, 'Splice'),
             )
         )
     )


Test patch: