def METHOD_NAME(
    client, user, project_factory, module_factory, phase_factory, organisation
):
    public = project_factory(organisation=organisation)
    semipublic = project_factory(access=Access.SEMIPUBLIC, organisation=organisation)
    private = project_factory(access=Access.PRIVATE, organisation=organisation)
    private.organisation.initiators.add(user)
    module1 = module_factory(project=public, weight=1)
    module2 = module_factory(project=semipublic, weight=2)
    module3 = module_factory(project=private, weight=3)
    phase_factory(
        module=module1,
        start_date=parse("2013-01-01 17:10:00 UTC"),
        end_date=parse("2013-01-01 18:05:00 UTC"),
    )
    phase_factory(
        module=module2,
        start_date=parse("2013-01-01 16:00:00 UTC"),
        end_date=parse("2013-01-01 16:30:00 UTC"),
    )
    phase_factory(
        module=module3,
        start_date=parse("2013-01-01 17:05:00 UTC"),
        end_date=parse("2013-01-01 19:00:00 UTC"),
    )
    with freeze_time(parse("2013-01-01 17:00:00 UTC")):
        client.login(username=user, password="password")
        url = reverse("organisation", kwargs={"organisation_slug": organisation.slug})
        response = client.get(url)
        assert response.status_code == 200
        future_projects = response.context["future_projects"]
        past_projects = response.context["past_projects"]
        project_headline = response.context["project_headline"]
        assert public in future_projects
        assert semipublic in past_projects
        assert private in future_projects
        assert project_headline == "Upcoming participation"