def METHOD_NAME(self, *args, **options):
    assert options['template'], "Template argument is required"
    assert options['subject'], "Subject argument is required"
    users_to_send_to = []
    if options['only_active_users']:
        competition_owners_query = Competition.objects.filter(creator__allow_admin_status_updates=True).distinct('creator').order_by('creator')
        competition_owners = [c.creator for c in competition_owners_query]
        active_users_query = CompetitionSubmission.objects.filter(
            started_at__gte=now() - timedelta(days=60),
            participant__user__allow_admin_status_updates=True
        ).distinct('participant__user'
        ).order_by('participant__user').select_related('participant')
        active_users = [s.participant.user for s in active_users_query]
        users_to_send_to = set().union(competition_owners, active_users)
    if options['email_to']:
        # Filter instead of get here to return a list
        users_to_send_to = ClUser.objects.filter(email=options['email_to'])
    assert users_to_send_to, "No users to send to, no template to render!"
    if options['dry_run']:
        print("If this were a real run, I'd send the following to {} users:".format(len(users_to_send_to)))
        html_content, text_content = self._render_template(options['template'], list(users_to_send_to)[0])
        print(text_content)
        print("\n\n------------- HTML BELOW -------------\n\n")
        print(html_content)
    else:
        for user in users_to_send_to:
            html_content, text_content = self._render_template(options['template'], user)
            self._send_email(
                options['subject'],
                html_content,
                text_content,
                user.email,
            )