Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function onOpen() {
- SpreadsheetApp.getUi().createMenu('Tournament Setup')
- .addItem('1a. Set up Form', 'FormSetup')
- .addItem('1b. Set up Sheet', 'SheetSetup')
- .addItem('2. Set up Draft', 'DraftBoardSetup')
- .addToUi()
- }
- function FormSetup() {
- var form = FormApp.openById('17eUUc1G6jgAJM40_AqvzBlrtgk-1mQu1QT1cmfSylw8'); // insert form location here
- var ss = SpreadsheetApp.openById('1eeYA5IVd-f3rjyUqToIwAa7ZSrnvnDXj5qE0f0hF_X4'); // denotes current spreadsheet
- var seasonold = ss.getSheets()[5]; // denotes the old season
- seasonold.deleteColumns(1,11); // deletes autoscore stuff from the previous season, used to reduce clutter
- form.removeDestination(); // Unlinks the form from its current location, done as a precaution
- form.deleteAllResponses(); // Deletes all responses from the form
- form.setDestination(FormApp.DestinationType.SPREADSHEET, ss.getId()); // links form to spreadsheet
- var sheet = ss.getSheets()[0]; // Google Forms always inserts to the far left, which is spreadsheet 0.
- var ssurl = ss.getUrl(); // gets URL of the spreadsheet
- var sheetid = sheet.getSheetId(); // gets the ID of the spreadsheet
- form.setDescription('Spreadsheets here: ' + ssurl+'#gid='+sheetid); // updates the description with the new spreadsheet link
- form.setConfirmationMessage('Thanks for signing up and have fun! c: If you missed it, link to the spreadsheet: ' + ssurl+'#gid='+sheetid); // updates the confirmation message with the new spreAHsheet link
- var sh2 = ss.getSheetByName('Forms'); // sheet of the Forms
- sh2.getRange('e2').setValue(ssurl+'#gid='+sheetid); // Updates the current Spreadsheet link corresponding to the tourney
- var hof = ss.getSheetByName('Hall of Fame')
- var sheetdate = hof.getRange('b4');
- var sheetdset = hof.getRange('c4');
- sheetdset.copyTo(sheetdate,{contentsOnly: true});
- }
- function SheetSetup() {
- // NOTE: THIS SCRIPT EXHIBITS BUGGY BEHAVIORS DUE TO POTENTIAL TIMEOUT OF FUNCTIONS. IF AN ERROR OCCURS, RESET THE SPREAHSHEET AND TRY THE SCRIPT AGAIN. A SECOND RUN USUALLY HAS NO PROBLEMS.
- var ss = SpreadsheetApp.openById('1eeYA5IVd-f3rjyUqToIwAa7ZSrnvnDXj5qE0f0hF_X4'); // denotes current spreAHsheet
- var sheet = ss.getSheets()[0]; // Assumes current sheet is on index 0, or on the far left
- sheet = ss.getSheets()[0];
- var season = ss.getSheets().length-14+250; // -10 is used to get to the right season number, may change depending on implementation
- ss.setActiveSheet(ss.getSheets()[0]); // used for the renameActiveSheet in the next line
- ss.renameActiveSheet("S-"+season); // exhibits buggy behavior due to potential timeout, make sure that this sheet is open and AGtive to reduce issues
- sheet.deleteColumns(8,5); // also exhibits buggy behavior due to potential timeout, just reset and try the script again if it fails at this point
- sheet.setColumnWidth(7,100); // in order to standardize the scoring tAFle, columns H-L are deleted, G is set to default size 100
- sheet.insertColumnsBefore(1,11); // inserts 7 columns to make room for Autoscore,BAGkscore
- sheet.setFrozenRows(0); // Google Forms freezes 1 row by default, changes to 0 rows
- var sh1 = ss.getSheetByName('Ban List'); // Location of Conditional Formatting
- var rowEnd = sheet.getLastRow(); // used for the lols
- sh1.getRange("M1:Q").copyFormatToRange(sheet, 13, 17, 1, rowEnd); // copies conditional formatting to the form sheet
- sheet.insertRows(1, 3); // inserts space for the header
- var sh2 = ss.getSheetByName('Templates.STND'); // sheet of the header
- var rangeToCopy = sh2.getRange(1, 1, 4, 35); // location of the header
- rangeToCopy.copyTo(sheet.getRange(1, 1)); // copies header to the season sheet
- sheet.hideColumns(1, 12); // hides Col A-H
- ss.setActiveSheet(ss.getSheets()[0]);
- ss.moveActiveSheet(6);
- var sh2 = ss.getSheetByName('Hall of Fame'); // sheet of the Forms
- sh2.getRange('b6').setValue(season);
- var sh3 = ss.getSheetByName('Export');
- sh3.getRange('b1').setValue(season);
- sheet.getRange('m2').setValue("Season "+season); // sets number of season
- }
- function DraftBoardSetup() {
- // NOTE: MOVE THE SEASON SHEET TO THE RIGHT LOCATION BEFORE STARTING THIS SCRIPT
- var ss = SpreadsheetApp.openById('1eeYA5IVd-f3rjyUqToIwAa7ZSrnvnDXj5qE0f0hF_X4'); // denotes current spreAHsheet
- // CHANGE THE SHEET VAR TO WHERE THE SEASON SHEET USUALLY RESIDES
- var sheet = ss.getSheets()[5]; // assumes that the current season is on index 5, or 6 from the left
- // CHANGE THE SHEET VAR TO WHERE THE SEASON SHEET USUALLY RESIDES
- var range = sheet.getRange("T3"); // gets the cell for team number
- var cell = range.getValue(); // sets var for number of teams
- var sh2 = ss.getSheetByName('Templates.STND'); // sheet of the draft board
- // List of Templates:
- // STND = Standard Templates
- // FALL = Fall Templates
- var valuesrand = [];
- for (i=1;i<=cell;i++){
- valuesrand.push(["=RAND"]);}
- if ( cell == 3 ) {
- sheet.insertRows(4, 7); // inserts spAGe for the board
- var rangeToCopy = sh2.getRange(6, 12, 7, 24); // location of the board
- rangeToCopy.copyTo(sheet.getRange(4, 12)); // copies board to the season sheet
- var range = sheet.getRange('O6:Q8');
- var rangep = sheet.getRange('M12:M23');
- var validation = SpreadsheetApp.newDataValidation().requireValueInRange(rangep,false).build();
- range.setDataValidation(validation);
- var rangerand = sheet.getRange("AF6:AF8");
- rangerand.setValues(valuesrand);
- var rangesort = sheet.getRange("AE6:AF8");
- rangesort.sort(32);
- var rangecap = sheet.getRange ("AG6:AH8");
- rangecap.copyTo(rangerand,{contentsOnly: true});
- }
- else if ( cell == 4 ) {
- sheet.insertRows(4, 13);
- var rangeToCopy = sh2.getRange(13, 12, 13, 24); // location of the board
- rangeToCopy.copyTo(sheet.getRange(4, 12)); // copies board to the season sheet
- var range = sheet.getRange('O6:Q9');
- var rangep = sheet.getRange('M18:M33');
- var validation = SpreadsheetApp.newDataValidation().requireValueInRange(rangep,false).build();
- range.setDataValidation(validation);
- var rangerand = sheet.getRange("V6:V9");
- rangerand.setValues(valuesrand);
- var rangesort = sheet.getRange("U6:V9");
- rangesort.sort(26);
- var rangecap = sheet.getRange ("W6:X9");
- rangecap.copyTo(rangerand,{contentsOnly: true});
- }
- else if ( cell == 6 ) {
- sheet.insertRows(4, 16);
- var rangeToCopy = sh2.getRange(26, 12, 16, 24); // location of the board
- rangeToCopy.copyTo(sheet.getRange(4, 12)); // copies board to the season sheet
- var range = sheet.getRange('O6:Q11');
- var rangep = sheet.getRange('M21:M44');
- var validation = SpreadsheetApp.newDataValidation().requireValueInRange(rangep,false).build();
- range.setDataValidation(validation);
- var rangerand = sheet.getRange("AF6:AF11");
- rangerand.setValues(valuesrand);
- var rangesort = sheet.getRange("AE6:AF11");
- rangesort.sort(32);
- var rangecap = sheet.getRange ("AG6:AH11");
- rangecap.copyTo(rangerand,{contentsOnly: true});
- }
- else if ( cell == 8 ) {
- sheet.insertRows(4, 20);
- var rangeToCopy = sh2.getRange(42, 12, 20, 24); // location of the board
- rangeToCopy.copyTo(sheet.getRange(4, 12)); // copies board to the season sheet
- var range = sheet.getRange('O6:Q13');
- var rangep = sheet.getRange('M25:M56');
- var validation = SpreadsheetApp.newDataValidation().requireValueInRange(rangep,false).build();
- range.setDataValidation(validation);
- var rangerand = sheet.getRange("V6:V13");
- rangerand.setValues(valuesrand);
- var rangesort = sheet.getRange("U6:V13");
- rangesort.sort(26);
- var rangecap = sheet.getRange ("W6:X13");
- rangecap.copyTo(rangerand,{contentsOnly: true});
- }
- else if ( cell == 9 ) {
- sheet.insertRows(4, 20);
- var rangeToCopy = sh2.getRange(62, 12, 20, 24); // location of the board
- rangeToCopy.copyTo(sheet.getRange(4, 12)); // copies board to the season sheet
- var range = sheet.getRange('O6:Q14');
- var rangep = sheet.getRange('M25:M60');
- var validation = SpreadsheetApp.newDataValidation().requireValueInRange(rangep,false).build();
- range.setDataValidation(validation);
- var rangerand = sheet.getRange("AF6:AF14");
- rangerand.setValues(valuesrand);
- var rangesort = sheet.getRange("AE6:AF14");
- rangesort.sort(32);
- var rangecap = sheet.getRange ("AG6:AH14");
- rangecap.copyTo(rangerand,{contentsOnly: true});
- }
- else if ( cell == 12 ) {
- sheet.insertRows(4, 23);
- var rangeToCopy = sh2.getRange(82, 12, 23, 24); // location of the board
- rangeToCopy.copyTo(sheet.getRange(4, 12)); // copies board to the season sheet
- var range = sheet.getRange('O6:Q17');
- var rangep = sheet.getRange('M28:M75');
- var validation = SpreadsheetApp.newDataValidation().requireValueInRange(rangep,false).build();
- range.setDataValidation(validation);
- var rangerand = sheet.getRange("AF6:AF17");
- rangerand.setValues(valuesrand);
- var rangesort = sheet.getRange("AE6:AF17");
- rangesort.sort(32);
- var rangecap = sheet.getRange ("AG6:AH17");
- rangecap.copyTo(rangerand,{contentsOnly: true});
- }
- else if ( cell == 16 ) {
- sheet.insertRows(4, 30);
- var rangeToCopy = sh2.getRange(105, 12, 30, 24); // location of the board
- rangeToCopy.copyTo(sheet.getRange(4, 12)); // copies board to the season sheet
- var range = sheet.getRange('O6:Q21');
- var rangep = sheet.getRange('M35:M98');
- var validation = SpreadsheetApp.newDataValidation().requireValueInRange(rangep,false).build();
- range.setDataValidation(validation);
- var rangerand = sheet.getRange("V6:V21");
- rangerand.setValues(valuesrand);
- var rangesort = sheet.getRange("U6:V21");
- rangesort.sort(26);
- var rangecap = sheet.getRange ("W6:X21");
- rangecap.copyTo(rangerand,{contentsOnly: true});
- }
- else if ( cell == 18 ) {
- sheet.insertRows(4, 32);
- var rangeToCopy = sh2.getRange(135, 12, 32, 24); // location of the board
- rangeToCopy.copyTo(sheet.getRange(4, 12)); // copies board to the season sheet
- var range = sheet.getRange('O6:Q23');
- var rangep = sheet.getRange('M37:M108');
- var validation = SpreadsheetApp.newDataValidation().requireValueInRange(rangep,false).build();
- range.setDataValidation(validation);
- var rangerand = sheet.getRange("AF6:AF23");
- rangerand.setValues(valuesrand);
- var rangesort = sheet.getRange("AE6:AF23");
- rangesort.sort(32);
- var rangecap = sheet.getRange ("AG6:AH23");
- rangecap.copyTo(rangerand,{contentsOnly: true});
- }
- else if ( cell == 21 ) {
- sheet.insertRows(4, 35);
- var rangeToCopy = sh2.getRange(167, 12, 35, 24); // location of the board
- rangeToCopy.copyTo(sheet.getRange(4, 12)); // copies board to the season sheet
- var range = sheet.getRange('O6:Q26');
- var rangep = sheet.getRange('M40:M123');
- var validation = SpreadsheetApp.newDataValidation().requireValueInRange(rangep,false).build();
- range.setDataValidation(validation);
- var rangerand = sheet.getRange("AF6:AF26");
- rangerand.setValues(valuesrand);
- var rangesort = sheet.getRange("AE6:AF26");
- rangesort.sort(32);
- var rangecap = sheet.getRange ("AG6:AH26");
- rangecap.copyTo(rangerand,{contentsOnly: true});
- }
- else if ( cell == 24 ) {
- sheet.insertRows(4, 38);
- var rangeToCopy = sh2.getRange(202, 12, 38, 24); // location of the board
- rangeToCopy.copyTo(sheet.getRange(4, 12)); // copies board to the season sheet
- var range = sheet.getRange('O6:Q29');
- var rangep = sheet.getRange('M43:M138');
- var validation = SpreadsheetApp.newDataValidation().requireValueInRange(rangep,false).build();
- range.setDataValidation(validation);
- var rangerand = sheet.getRange("AF6:AF29");
- rangerand.setValues(valuesrand);
- var rangesort = sheet.getRange("AE6:AF29");
- rangesort.sort(32);
- var rangecap = sheet.getRange ("AG6:AH29");
- rangecap.copyTo(rangerand,{contentsOnly: true});
- }
- }
- function Autoscore() {
- // To use, click on the clock to set up a minutes trigger
- // Don't forget to turn off the trigger once the tourney is complete!
- var ss = SpreadsheetApp.getActiveSpreadsheet(); // sets active book
- var sheet = ss.getSheets()[5]; // assumes the season sheet is on index 5, or 6 from the left
- sheet.getRange('l2').setValue('=K1'); // temp switcher value
- Utilities.sleep(200); // used to force refresh of IMPORTHTML
- sheet.getRange('l2').setValue('=L1'); // sets back to default
- }
Add Comment
Please, Sign In to add comment