Created
January 3, 2019 19:28
-
-
Save phillypb/2e1783cbc08e04b8b296807437a5172d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| function createStudentDocs() { | |
| var ss = SpreadsheetApp.getActiveSpreadsheet(); | |
| ss.toast('Starting to create Student Docs'); | |
| var configSheet = ss.getSheetByName('Config'); | |
| var groupSheet = ss.getSheetByName('Group Feedback'); | |
| var groupNumRows = groupSheet.getLastRow(); | |
| var groupSheetData = groupSheet.getDataRange().getValues(); | |
| Logger.log('Student Name is: ' + groupSheetData[2][1]); | |
| Logger.log('Tutor 1 name is: ' + groupSheetData[0][2]); | |
| Logger.log('Tutor 2 name is: ' + groupSheetData[0][6]); | |
| // get Master Google Sheet to write back new Google Doc link | |
| var masterFileID = configSheet.getRange(4, 2).getValue(); | |
| var masterFile = SpreadsheetApp.openById(masterFileID).getSheetByName('Students'); | |
| var masterStudents = masterFile.getDataRange().getValues(); | |
| var masterNumRows = masterFile.getLastRow(); | |
| // split filename to get Group ID for naming folder | |
| var fileName = ss.getName(); | |
| var fileName = fileName.split(' '); | |
| var fileNameID = fileName[0]; | |
| Logger.log('Group ID from filename is: ' + fileNameID); | |
| // get Groups folder ID and create new folder inside | |
| var groupsFolderID = configSheet.getRange(2, 2).getValue(); | |
| var termTime = configSheet.getRange(5, 2).getValue(); | |
| var newGroupFolder = DriveApp.getFolderById(groupsFolderID).createFolder(fileNameID + ' Student Feedback Files' + ' - ' + termTime); | |
| var newFolderID = newGroupFolder.getId(); | |
| Logger.log('Newly created folder ID is: ' + newFolderID); | |
| // loop through each student and create Google Doc **************************************************************** | |
| for (var i=2; i<groupNumRows; i++) { | |
| // create copy of template Doc | |
| var templateDocID = configSheet.getRange(3, 2).getValue(); | |
| var destinationFolder = DriveApp.getFolderById(newFolderID); | |
| var sheetName = fileNameID + ' ' + groupSheetData[i][1] + ' Student Feedback'; | |
| var templateDocCopyURL = DriveApp.getFileById(templateDocID).makeCopy(sheetName, destinationFolder).getUrl(); | |
| // ******************************* edit document ******************************* | |
| var newDoc = DocumentApp.openByUrl(templateDocCopyURL); | |
| var docBody = newDoc.getBody(); | |
| // edit doc tags | |
| docBody.replaceText('<<name>>', groupSheetData[i][1]); | |
| docBody.replaceText('<<email>>', groupSheetData[i][0]); | |
| docBody.replaceText('<<tutor1>>', groupSheetData[0][2]); | |
| docBody.replaceText('<<attendance1>>', groupSheetData[i][2]); | |
| docBody.replaceText('<<contribution1>>', groupSheetData[i][3]); | |
| docBody.replaceText('<<attitude1>>', groupSheetData[i][4]); | |
| docBody.replaceText('<<comment1>>', groupSheetData[i][5]); | |
| docBody.replaceText('<<tutor2>>', groupSheetData[0][6]); | |
| docBody.replaceText('<<attendance2>>', groupSheetData[i][6]); | |
| docBody.replaceText('<<contribution2>>', groupSheetData[i][7]); | |
| docBody.replaceText('<<attitude2>>', groupSheetData[i][8]); | |
| docBody.replaceText('<<comment2>>', groupSheetData[i][9]); | |
| // ************************** end of edit documents **************************** | |
| // write newly created DOC link to Group Google Sheet | |
| groupSheet.getRange(i+1, 12).setFormula('=HYPERLINK("' + templateDocCopyURL + '","' + sheetName + '")'); | |
| // write newly created DOC link to Master Google Sheet | |
| for (var j=1; j<masterNumRows; j++) { | |
| if (groupSheetData[i][0] == masterStudents[j][0]) { | |
| Logger.log(groupSheetData[i][0] + ' matches ' + masterStudents[j][0]); | |
| masterFile.getRange(j+1, 5).setFormula('=HYPERLINK("' + templateDocCopyURL + '","' + sheetName + '")'); | |
| } | |
| } | |
| ss.toast('Doc created for: ' + groupSheetData[i][1]); | |
| }// end of loop through each student and create Google Doc ********************************************************* | |
| ss.toast('Creating Docs complete'); | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment