dest="status",
    const=m.Debate.STATUS_CONFIRMED,
)
parser.add_argument("-m", "--min-score", type=float, help="Minimum speaker score (for substantive)", default=72)
parser.add_argument("-M", "--max-score", type=float, help="Maximum speaker score (for substantive)", default=78)
args = parser.parse_args()

django.setup()  # Requried post-1.7 for standalone scripts

submitter_type = SUBMITTER_TYPE_MAP[args.type]
user = User.objects.get(username=args.user)

for round in args.rounds:
    if args.clean:
        print ("Deleting all ballot submissions for round %d..." % round)
        m.BallotSubmission.objects.filter(debate__round__seq=round).delete()

    for debate in m.Round.objects.get(seq=round).get_draw():
        bset = add_ballot_set(
            debate,
            submitter_type,
            user,
            False,
            args.status == m.Debate.STATUS_CONFIRMED,
            args.min_score,
            args.max_score,
        )
        debate.result_status = args.status
        print debate, "won by", bset.aff_win and "affirmative" or "negative", "on", bset.motion and bset.motion.reference or "<No motion>"
        debate.save()
                    dest="status",
                    const=m.Debate.STATUS_CONFIRMED)
parser.add_argument("-m",
                    "--min-score",
                    type=float,
                    help="Minimum speaker score (for substantive)",
                    default=72)
parser.add_argument("-M",
                    "--max-score",
                    type=float,
                    help="Maximum speaker score (for substantive)",
                    default=78)
args = parser.parse_args()

django.setup()  # Requried post-1.7 for standalone scripts

submitter_type = SUBMITTER_TYPE_MAP[args.type]
user = User.objects.get(username=args.user)

for round in args.rounds:
    if args.clean:
        print("Deleting all ballot submissions for round %d..." % round)
        m.BallotSubmission.objects.filter(debate__round__seq=round).delete()

    for debate in m.Round.objects.get(seq=round).get_draw():
        bset = add_ballot_set(debate, submitter_type, user, False,
                              args.status == m.Debate.STATUS_CONFIRMED,
                              args.min_score, args.max_score)
        debate.result_status = args.status
        print debate, "won by", bset.aff_win and "affirmative" or "negative", "on", bset.motion and bset.motion.reference or "<No motion>"
        debate.save()
parser.add_argument("round", type=int, help="Round(s) to add to")
parser.add_argument("no_ballots", type=int, help="Number of ballots to add")
parser.add_argument("-t", "--type", type=str, help="'tabroom' or 'public'", choices=SUBMITTER_TYPE_MAP.keys(), default="tabroom")
parser.add_argument("-u", "--user", type=str, help="User ID", default="original")
parser.add_argument("-d", "--discarded", action="store_true", help="Ballot set is discarded")
parser.add_argument("-c", "--confirmed", action="store_true", help="Ballot set is confirmed")
parser.add_argument("-m", "--min-score", type=float, help="Minimum speaker score (for substantive)", default=72)
parser.add_argument("-M", "--max-score", type=float, help="Maximum speaker score (for substantive)", default=78)
args = parser.parse_args()

submitter_type = SUBMITTER_TYPE_MAP[args.type]
if submitter_type == m.BallotSubmission.SUBMITTER_TABROOM:
    user = User.objects.get(username=args.user)
else:
    user = None

round = m.Round.objects.get(seq=args.round)
debates = round.debate_set.all()

for i in xrange(args.no_ballots):

    debate = random.choice(debates)

    print debate

    try:
        bset = add_ballot_set(debate, submitter_type, user, args.discarded, args.confirmed, args.min_score, args.max_score)
    except ValueError, e:
        print "Error:", e

    print "  Won by", bset.aff_win and "affirmative" or "negative"