code: def get_upcoming_blocks(self, max_number=-1):
          
  
          now = datetime.datetime.now()
  
          # Show same day if it's before 17:00
          if now.hour < 17:
              now = now.replace(hour=0, minute=0, second=0, microsecond=0)
  
          blocks = self.order_by("date", "block_letter").filter(date__gte=now)
  
          if max_number == -1:
              return blocks
  
          return blocks[:max_number]
docs: Gets the X number of upcoming blocks (that will take place in the future). If there is no
          block in the future, the most recent block will be returned.
  
          Returns: A QuerySet of `EighthBlock` objects