def METHOD_NAME(self, request, ex_confs):
    ex_confs.sort(key=lambda ex_conf: ex_conf.start_date)
    # For each round check separately that it is entirely exclusive
    for round in request.contest.round_set.all():
        round_not_excl_dates = []
        round_excl_end_date = round.start_date
        for ex_conf in ex_confs:
            # Check if there's a gap before the next excl config
            if ex_conf.start_date > round_excl_end_date:
                round_not_excl_dates.append(
                    (round_excl_end_date, ex_conf.start_date)
                )
                round_excl_end_date = ex_conf.start_date
            # Update how much of the round is covered by the next config
            if ex_conf.end_date:
                round_excl_end_date = max(round_excl_end_date, ex_conf.end_date)
            else:
                break
            # Check if the round was covered entirely
            if round.end_date and round_excl_end_date >= round.end_date:
                break
        else:
            round_not_excl_dates.append((round_excl_end_date, round.end_date))
        if round_not_excl_dates:
            # Default to first date if there are no future dates
            first_future_date = round_not_excl_dates[0]
            for date in round_not_excl_dates:
                if not date[1] or date[1] >= timezone.now():
                    first_future_date = date
                    break
            if not first_future_date[1]:
                msg = _(
                    "Exclusiveness configs usually cover entire rounds,"
                    " but currently round \"%s\" is not exclusive from"
                    " %s! Please verify that your exclusiveness"
                    " configs are correct."
                ) % (round.name, first_future_date[0])
            else:
                msg = _(
                    "Exclusiveness configs usually cover entire rounds,"
                    " but currently round \"%s\" is not exclusive from"
                    " %s to %s! Please verify that your exclusiveness"
                    " configs are correct."
                ) % (round.name, first_future_date[0], first_future_date[1])
            messages.warning(request, msg)