def pair_round(request): cache_logic.clear_cache() current_round = TabSettings.objects.get(key="cur_round") next_round = current_round.value if request.method == 'POST': try: backup.backup_round("round_%i_before_pairing.db" % (next_round)) tab_logic.pair_round() backup.backup_round("round_%i_after_pairing.db" % (next_round)) except Exception, e: traceback.print_exc(file=sys.stdout) return render_to_response('error.html', {'error_type': "Pair Next Round", 'error_name': "Pairing Round %s" % (current_round.value + 1), 'error_info':"Could not pair next round because of: [%s]" %(e)}, context_instance=RequestContext(request)) current_round.value = current_round.value + 1 current_round.save() return view_status(request)
def pair_round(request): cache_logic.clear_cache() current_round = TabSettings.objects.get(key="cur_round") current_round_number = current_round.value if request.method == 'POST': # We should pair the round try: TabSettings.set('pairing_released', 0) backup.backup_round("round_%i_before_pairing.db" % (current_round_number)) # TODO(benjaminmarks): Re-implement atomicity # with transaction.atomic(): tab_logic.pair_round() current_round.value = current_round.value + 1 current_round.save() backup.backup_round("round_%i_after_pairing.db" % (current_round_number)) except Exception as exp: traceback.print_exc(file=sys.stdout) return render_to_response('error.html', {'error_type': "Pair Next Round", 'error_name': "Pairing Round %s" % (current_round.value + 1), 'error_info': "Could not pair next round because of: [{0}]".format(exp)}, context_instance=RequestContext(request)) return view_status(request) else: # See if we can pair the round title = "Pairing Round %s" % (current_round_number) check_status = [] judges = tab_logic.have_enough_judges(current_round_number) rooms = tab_logic.have_enough_rooms(current_round_number) msg = "N/2 Judges checked in for Round {0}? Need {1}, have {2}".format( current_round_number, judges[1][1], judges[1][0]) if judges[0]: check_status.append((msg, "Yes", "Judges are checked in")) else: check_status.append((msg, "No", "Not enough judges")) msg = "N/2 Rooms available Round {0}? Need {1}, have {2}".format( current_round_number, rooms[1][1], rooms[1][0]) if rooms[0]: check_status.append((msg, "Yes", "Rooms are checked in")) else: check_status.append((msg, "No", "Not enough rooms")) msg = "All Rounds properly entered for Round %s" % (current_round_number - 1) ready_to_pair = "Yes" ready_to_pair_alt = "Checks passed!" try: tab_logic.have_properly_entered_data(current_round_number) check_status.append((msg, "Yes", "All rounds look good")) except PrevRoundNotEnteredError as e: ready_to_pair = "No" ready_to_pair_alt = str(e) check_status.append((msg, "No", "Not all rounds are entered. %s" % str(e))) except ByeAssignmentError as e: ready_to_pair = "No" ready_to_pair_alt = str(e) check_status.append((msg, "No", "You have a bye and results. %s" % str(e))) except NoShowAssignmentError as e: ready_to_pair = "No" ready_to_pair_alt = str(e) check_status.append((msg, "No", "You have a noshow and results. %s" % str(e))) return render_to_response('pair_round.html', locals(), context_instance=RequestContext(request))
def pair_round(request): cache_logic.clear_cache() current_round = TabSettings.objects.get(key="cur_round") current_round_number = current_round.value if request.method == 'POST': # We should pair the round try: TabSettings.set('pairing_released', 0) backup.backup_round("round_%i_before_pairing" % (current_round_number)) with transaction.atomic(): tab_logic.pair_round() current_round.value = current_round.value + 1 current_round.save() except Exception as exp: emit_current_exception() return render_to_response('error.html', { 'error_type': "Pair Next Round", 'error_name': "Pairing Round %s" % (current_round.value + 1), 'error_info': "Could not pair next round because of: [{0}]".format(exp) }, context_instance=RequestContext(request)) return view_status(request) else: # See if we can pair the round title = "Pairing Round %s" % (current_round_number) check_status = [] judges = tab_logic.have_enough_judges(current_round_number) rooms = tab_logic.have_enough_rooms(current_round_number) msg = "N/2 Judges checked in for Round {0}? Need {1}, have {2}".format( current_round_number, judges[1][1], judges[1][0]) if judges[0]: check_status.append((msg, "Yes", "Judges are checked in")) else: check_status.append((msg, "No", "Not enough judges")) msg = "N/2 Rooms available Round {0}? Need {1}, have {2}".format( current_round_number, rooms[1][1], rooms[1][0]) if rooms[0]: check_status.append((msg, "Yes", "Rooms are checked in")) else: check_status.append((msg, "No", "Not enough rooms")) msg = "All Rounds properly entered for Round %s" % ( current_round_number - 1) ready_to_pair = "Yes" ready_to_pair_alt = "Checks passed!" try: tab_logic.have_properly_entered_data(current_round_number) check_status.append((msg, "Yes", "All rounds look good")) except PrevRoundNotEnteredError as e: ready_to_pair = "No" ready_to_pair_alt = str(e) check_status.append( (msg, "No", "Not all rounds are entered. %s" % str(e))) except ByeAssignmentError as e: ready_to_pair = "No" ready_to_pair_alt = str(e) check_status.append( (msg, "No", "You have a bye and results. %s" % str(e))) except NoShowAssignmentError as e: ready_to_pair = "No" ready_to_pair_alt = str(e) check_status.append( (msg, "No", "You have a noshow and results. %s" % str(e))) return render_to_response('pair_round.html', locals(), context_instance=RequestContext(request))
def pair_round(request): cache_logic.clear_cache() current_round = TabSettings.objects.get(key="cur_round") current_round_number = current_round.value if request.method == 'POST': # We should pair the round try: TabSettings.set('pairing_released', 0) backup.backup_round("round_%i_before_pairing" % (current_round_number)) with transaction.atomic(): tab_logic.pair_round() current_round.value = current_round.value + 1 current_round.save() except Exception as exp: emit_current_exception() return redirect_and_flash_error(request, "Could not pair next round, got error: {}".format(exp)) return view_status(request) else: # See if we can pair the round title = "Pairing Round %s" % (current_round_number) check_status = [] judges = tab_logic.have_enough_judges(current_round_number) rooms = tab_logic.have_enough_rooms(current_round_number) msg = "N/2 Judges checked in for Round {0}? Need {1}, have {2}".format( current_round_number, judges[1][1], judges[1][0]) if judges[0]: check_status.append((msg, "Yes", "Judges are checked in")) else: check_status.append((msg, "No", "Not enough judges")) msg = "N/2 Rooms available Round {0}? Need {1}, have {2}".format( current_round_number, rooms[1][1], rooms[1][0]) if rooms[0]: check_status.append((msg, "Yes", "Rooms are checked in")) else: check_status.append((msg, "No", "Not enough rooms")) msg = "All Rounds properly entered for Round %s" % (current_round_number - 1) ready_to_pair = "Yes" ready_to_pair_alt = "Checks passed!" try: tab_logic.have_properly_entered_data(current_round_number) check_status.append((msg, "Yes", "All rounds look good")) except PrevRoundNotEnteredError as e: ready_to_pair = "No" ready_to_pair_alt = str(e) check_status.append((msg, "No", "Not all rounds are entered. %s" % str(e))) except ByeAssignmentError as e: ready_to_pair = "No" ready_to_pair_alt = str(e) check_status.append((msg, "No", "You have a bye and results. %s" % str(e))) except NoShowAssignmentError as e: ready_to_pair = "No" ready_to_pair_alt = str(e) check_status.append((msg, "No", "You have a noshow and results. %s" % str(e))) return render(request, 'pairing/pair_round.html', locals())