{% comment %}
Shared "Move to winner" button cell for the device-merge migration tables (interface + IP).
The ``{% url ... as %}`` form does NOT raise NoReverseMatch: the move-to-winner routes are
registered by the device-merge feature further up the stack, so on branches without them
``move_url`` is '' and the live button degrades to read-only instead of 500ing the whole tab.
Params (passed via {% include ... with %}):
move_url_name - the move-to-winner URL name (string)
obj_id - pk of the row object
obj_label - display value for the confirm text (interface.name / ip.address)
entity_word - "interface" or "IP" (drives confirm/title wording)
winner - the migrated_to_winner device
server_key - resolved server_key for the hx-vals scope (may be empty)
obj_interface_name - (IP only) the interface the IP is assigned to, for the title detail
``has_write_permission`` and ``csrf_token`` come from the parent context.
{% endcomment %}
{% url move_url_name pk=obj_id as move_url %}
{% if has_write_permission and winner and move_url %}
{% elif winner %}
read-only
{% else %}
winner missing
{% endif %}