### Apache Airflow version

main (development)

### What happened

On the Task Instances table, one can click on `Edit Record` and be directed to a `Edit Task Instance` page. There, if you try to change the state, it will simply not update nor are there any errors in the browser console.


<img width="608" alt="Screen Shot 2022-01-04 at 10 10 52 AM" src="https://user-images.githubusercontent.com/4600967/148101472-fb6076fc-3fc3-44c4-a022-6625d5112551.png">


### What you expected to happen

Changes to state should actually update the task instance.

### How to reproduce

Try to use the `Edit Task Instance` page

### Operating System

Mac OSx

### Versions of Apache Airflow Providers

_No response_

### Deployment

Virtualenv installation

### Deployment details

_No response_

### Anything else

This page is redundant, as a user can successfully edit task instance states from the table. Instead of wiring up the correct actions, I say we should just remove the `Edit Task Instance` page entirely.

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

_external_handler, capture_templates, admin_client, endpoint
):
    """Show external links if log handler is external."""
    _external_handler.return_value._supports_external_link = False
    url = f"{endpoint}?dag_id=example_bash_operator"
    with capture_templates() as templates:
        admin_client.get(url, follow_redirects=True)
        ctx = templates[0].local_context
        assert not ctx["show_external_log_redirect"]
        assert ctx["external_log_name"] is None
def _get_appbuilder_pk_string(model_view_cls, instance) -> str:
    """Utility to get Flask-Appbuilder's string format "pk" for an object.
    Used to generate requests to FAB action views without *too* much difficulty.
    The implementation relies on FAB internals, but unfortunately I don't see
    a better way around it.
    Example usage::
        from airflow.www.views import TaskInstanceModelView
        ti = session.Query(TaskInstance).filter(...).one()
        pk = _get_appbuilder_pk_string(TaskInstanceModelView, ti)
        client.post("...", data={"action": "...", "rowid": pk})
    """
    pk_value = model_view_cls.datamodel.get_pk_value(instance)
    return model_view_cls._serialize_pk_if_composite(model_view_cls, pk_value)
def test_task_instance_delete(session, admin_client, create_task_instance):