def METHOD_NAME(
    client, phase_factory, map_idea_factory, category_factory, area_settings_factory
):
    phase, module, project, mapidea = setup_phase(
        phase_factory, map_idea_factory, phases.RatingPhase
    )
    area_settings_factory(module=module)
    category = category_factory(module=module)
    user = mapidea.creator
    moderator = project.moderators.first()
    assert moderator is not user
    url = reverse(
        "meinberlin_mapideas:mapidea-update",
        kwargs={"pk": mapidea.pk, "year": mapidea.created.year},
    )
    with freeze_phase(phase):
        client.login(username=moderator.email, password="password")
        data = {
            "name": "Another MapIdea",
            "description": "changed description",
            "category": category.pk,
            "point": (0, 0),
            "point_label": "somewhere else",
        }
        response = client.post(url, data)
        assert redirect_target(response) == "mapidea-detail"
        assert response.status_code == 302
        updated_mapidea = models.MapIdea.objects.get(id=mapidea.pk)
        assert updated_mapidea.description == "changed description"