docs: def profile_view(request, user_id=None):
      """Displays a view of a user's profile.
  
      Args:
          user_id
              The ID of the user whose profile is being viewed. If not
              specified, show the user's own profile.
  
      """
      if request.user.is_eighthoffice and "full" not in request.GET and user_id is not None:
          return redirect("eighth_profile", user_id=user_id)
  
      if user_id is not None:
          try:
              profile_user = User.objects.get(id=user_id)
  
              if profile_user is None:
                  raise Http404
          except User.DoesNotExist:
              raise Http404
      else:
          profile_user = request.user
  
      num_blocks = 6
  
      eighth_schedule = []
      start_block = EighthBlock.objects.get_first_upcoming_block()
  
      blocks = []
      if start_block:
          blocks = [start_block] + list(start_block.next_blocks(num_blocks - 1))
  
      for block in blocks:
          sch = {"block": block}
          try:
              sch["signup"] = EighthSignup.objects.get(scheduled_activity__block=block, user=profile_user)
          except EighthSignup.DoesNotExist:
              sch["signup"] = None
          except MultipleObjectsReturned:
              client.captureException()
              sch["signup"] = None
          eighth_schedule.append(sch)
  
      if profile_user.is_eighth_sponsor:
          sponsor = EighthSponsor.objects.get(user=profile_user)
          start_date = get_start_date(request)
          eighth_sponsor_schedule = (EighthScheduledActivity.objects.for_sponsor(sponsor).filter(block__date__gte=start_date).order_by(
              "block__date", "block__block_letter"))
          eighth_sponsor_schedule = eighth_sponsor_schedule[:10]
      else:
          eighth_sponsor_schedule = None
  
      admin_or_teacher = (request.user.is_eighth_admin or request.user.is_teacher)
      can_view_eighth = (profile_user.can_view_eighth or request.user == profile_user)
      eighth_restricted_msg = (not can_view_eighth and admin_or_teacher)
  
      if not can_view_eighth and not request.user.is_eighth_admin and not request.user.is_teacher:
          eighth_schedule = []
  
      has_been_nominated = profile_user.username in [
          u.nominee.username for u in request.user.nomination_votes.filter(position__position_name=settings.NOMINATION_POSITION)
      ]
      context = {
          "profile_user": profile_user,
          "eighth_schedule": eighth_schedule,
          "can_view_eighth": can_view_eighth,
          "eighth_restricted_msg": eighth_restricted_msg,
          "eighth_sponsor_schedule": eighth_sponsor_schedule,
          "nominations_active": settings.NOMINATIONS_ACTIVE,
          "nomination_position": settings.NOMINATION_POSITION,
          "has_been_nominated": has_been_nominated
      }
      return render(request, "users/profile.html", context)