Created
April 1, 2018 15:22
-
-
Save ZackAkil/8d5f31755de13e56a3cf7a4c0372c521 to your computer and use it in GitHub Desktop.
Code resources for generating a google form for labelling data.
This file contains 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 getSpreadsheetData(sheetName) { | |
// Return an list of objects (one for each row) containing the sheets data. | |
var arrayOfArrays = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName || 'Sheet1').getDataRange().getValues(); | |
var headers = arrayOfArrays.shift(); | |
return arrayOfArrays.map(function (row) { | |
return row.reduce(function (memo, value, index) { | |
if (value) { | |
memo[headers[index]] = value; | |
} | |
return memo; | |
}, {}); | |
}); | |
} | |
function create_ranges_for_data(form, data, data_section_name){ | |
// loop throughh each row | |
data.forEach(function (row) { | |
// create a new question page | |
form.addPageBreakItem() | |
// add page title | |
form.addSectionHeaderItem() | |
.setTitle(data_section_name); | |
// create number range input with the title being the document to be labeled | |
form.addScaleItem() | |
.setTitle(row[data_section_name]) | |
.setBounds(1, 10) | |
.setRequired(true); | |
}); | |
} | |
function make_form_using_column(column_name) { | |
// create a new Google Form document | |
var form = FormApp.create('Data labelling - ' + column_name) | |
desc = "Thank you for taking the time to label this data!"; | |
form.setDescription(desc); | |
form.setProgressBar(true); | |
form.setShowLinkToRespondAgain(false) | |
var data = getSpreadsheetData(); | |
create_ranges_for_data(form, data, column_name); | |
} | |
function gen_form(){ | |
var COLUMN_TO_USE = 'Input text' | |
make_form_using_column(COLUMN_TO_USE); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment