code: def mark_forums_read(self, forums, user):
          
          if not forums or not user.is_authenticated:
              return
  
          forums = sorted(forums, key=lambda f: f.level)
  
          # Update all forum tracks to the current date for the considered forums
          for forum in forums:
              forum_track = ForumReadTrack.objects.get_or_create(forum=forum, user=user)[0]
              forum_track.save()
          # Delete all the unnecessary topic tracks
          TopicReadTrack.objects.filter(topic__forum__in=forums, user=user).delete()
          # Update parent forum tracks
          self._update_parent_forum_tracks(forums[0], user)
docs: Marks a list of forums as read.