function publish_group_rank(response, group_name)
{
let updates = [];
- let cols = ultimateconfig['score_sheet_cols'][group_name];
+ let config = ultimateconfig['group_cells'][group_name];
+ let cols = config['score_sheet_cols'];
let teams = parse_teams_from_spreadsheet(response);
let games = parse_games_from_spreadsheet(response, group_name, false);
apply_games_to_teams(games, teams);
+ teams = filter_teams(teams, response);
// Write the points total to the unsorted columns.
- for (let i = 0; i < teams.length; ++i) {
- let row = ultimateconfig['point_total_start_row'] + i;
- updates.push({ "range": cols[2] + row, "values": [ [ teams[i].pts ] ] });
+ if (config['point_total_start_row'] !== null) {
+ for (let i = 0; i < teams.length; ++i) {
+ let row = config['point_total_start_row'] + i;
+ updates.push({ "range": cols[2] + row, "values": [ [ teams[i].pts ] ] });
+ }
}
let tiebreakers = [];
// Write the ranking table, from scratch.
for (let i = 0; i < teams.length; ++i) {
- let row = ultimateconfig['ranking_list_start_row'] + i;
+ let row = config['ranking_list_start_row'] + i;
updates.push({ "range": cols[0] + row, "values": [ [ teams[i].rank ] ] });
updates.push({ "range": cols[1] + row, "values": [ [ teams[i].mediumname ] ] });
updates.push({ "range": cols[2] + row, "values": [ [ teams[i].pts ] ] });
if (tiebreakers.length != 0) {
tb_str = tiebreakers.join("\n");
}
- updates.push({ "range": cols[0] + ultimateconfig['ranking_list_explain_row'], "values": [ [ tb_str ] ]});
+ updates.push({ "range": cols[0] + config['ranking_list_explain_row'], "values": [ [ tb_str ] ]});
let json = {
"valueInputOption": "USER_ENTERED",
let games = ultimateconfig['playoff_games'];
get_results('Results', function(response) {
- let updates = [];
+ let updates = [], meta_updates = [];
let game_num = 0;
for (const game of games) {
let team1 = do_replacements(game[0], replacements);
let score2 = response['values'][row - 1][cols[2]];
let game_name = game[4];
let game_name2 = game_name.replace("Semi", "semi");
+ let game_day = game[7];
+ if (game_day === undefined) {
+ game_day = 7; // Sunday.
+ }
+
+ let range = {
+ "sheetId": ultimateconfig['score_sheet_index'],
+ "startColumnIndex": cols[1],
+ "endColumnIndex": cols[2] + 1,
+ "startRowIndex": row - 1,
+ "endRowIndex": row
+ };
if (parseInt(score1) >= 0 && parseInt(score2) >= 0 && score1 != score2) {
if (parseInt(score1) > parseInt(score2)) {
replacements.unshift(["W " + game_name2, team2]);
replacements.unshift(["L " + game_name2, team1]);
}
+ meta_updates.push({ "unmergeCells": { "range": range }});
} else if (game[5]) {
+ // No score yet, so write the name of the game (e.g. “L-semi 1”)
+ // where the score would normally be, to mark what this game is called.
+ // This is useful with the limited space on the tablet.
score1 = score2 = "";
updates.push({ "range": cell_score1, "values": [ [ game[4] ] ] });
+ meta_updates.push({ "mergeCells": { "range": range, "mergeType": "MERGE_ALL" }});
}
if (game[2] == 0) { // Stream field.
// Game.
updates.push({
"range": "Playoffs!A" + (game_num + 32) + ":J" + (game_num + 32),
- "values": [ [ team1, team2, score1, score2, "", "", "", 7, response['values'][row - 1][1].replace(".",":"), game[6] ] ]
+ "values": [ [ team1, team2, score1, score2, "", "", "", game_day, response['values'][row - 1][1].replace(".",":"), game[6] ] ]
});
// Team codes.
"valueInputOption": "USER_ENTERED",
"data": updates
};
+ let meta_json = {
+ "requests": meta_updates
+ };
possibly_update_oauth_key(function() {
- post_json('https://sheets.googleapis.com/v4/spreadsheets/' + ultimateconfig['score_sheet_id'] + '/values:batchUpdate?key=' + ultimateconfig['api_key'], json, function(response) {}, current_oauth_access_token);
+ post_json('https://sheets.googleapis.com/v4/spreadsheets/' + ultimateconfig['score_sheet_id'] + '/values:batchUpdate?key=' + ultimateconfig['api_key'], json, function(response) {
+ get_group('Playoffs 9th-13th', function(response_l) { publish_group_rank(response_l, 'Playoffs 9th-13th'); });
+ }, current_oauth_access_token);
+ post_json('https://sheets.googleapis.com/v4/spreadsheets/' + ultimateconfig['score_sheet_id'] + ':batchUpdate?key=' + ultimateconfig['api_key'], meta_json, function(response) {}, current_oauth_access_token);
});
});
}
let teams = parse_teams_from_spreadsheet(response);
let games = parse_games_from_spreadsheet(response, group_name, false);
apply_games_to_teams(games, teams);
+ teams = filter_teams(teams, response);
let tiebreakers = [];
teams = rank(games, teams, 1, tiebreakers);
return teams;