def METHOD_NAME(request, year, event_pk):
    event = get_object_or_404(Event, pk=event_pk)
    if not event.published:
        raise Http404
    payment_url = reverse("events_api:payment", args=[event_pk])
    signup_url = reverse("events_api:signup", args=[event_pk])
    # Will be populated if user has completed signup before
    participant = Participant.objects.filter(user_s=request.user, event=event).first()
    open_student_teams = Team.objects.filter(event=event, allow_join_s=True)
    react_props = {
        "event": serializers.event(event, request),
        "teams": [serializers.team(team) for team in open_student_teams],
        "payment_url": payment_url,
        "signup_url": signup_url,
        "stripe_publishable": settings.STRIPE_PUBLISHABLE,
        "participant": serializers.participant(participant) if participant else None,
    }
    return render(
        request,
        "events/event_signup.html",
        {
            "event": event,
            "participant": participant,
            "react_props": json.dumps(react_props, cls=DjangoJSONEncoder),
        },
    )