2021年8月29日 星期日
2021年8月24日 星期二
Chapter 13 Adding different types of questions to a form
//Create new form - Global variable so it
can be seen by all functions
const FORM =
FormApp.create("Questionnaire");
function makeQuestionnaire() {
//Get data and last row from spreadsheet
const sh =
SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
const data = sh.getDataRange().getValues();
//Loop through each question and check what
question type it is
data.forEach(checkQuestionType)
}
//function to check question type
function checkQuestionType(data){
if(data[1] === "text"){
makeTextQ(data);
}
else if(data[1] === "date"){
makeDateQ(data);
}
else if(data[1] === "duration"){
makeDurationQ(data);
}
else if(data[1] === "multiplec"){
makeMultipleCQ(data);
}
else if(data[1] === "list"){
makeListQ(data);
}
else if(data[1] === "scale"){
makeScaleQ(data);
}
else if(data[1] === "checkbox"){
makeCheckboxQ(data);
}
else if(data[1] === "grid"){
makeGridQ(data);
}
else if(data[1] === "paragraph"){
makeParagraphQ(data);
}
}
////Functions to make different types of
questions
//Make text question
function makeTextQ(data){
let
text = data[2];
let
item = FORM.addTextItem();
item.setTitle(text);
}
//Make date question
function makeDateQ(data){
let
date = data[2];
let
item = FORM.addDateItem();
item.setTitle(date);
item.setRequired(true);
}
//make duration question
function makeDurationQ(data){
let
duration = data[2];
let
item = FORM.addDurationItem();
item.setTitle(duration);
}
//make Multiple-Choice question
function makeMultipleCQ(data){
let
mcQuestion = data[2];
let
item = FORM.addMultipleChoiceItem();
item.setTitle(mcQuestion);
Logger.log(data);
//Getting options
let
trimmedData = data.filter(function(str) {
return /\S/.test(str);
});
//Getting options without spaces
let
slicedData = trimmedData.slice(3,trimmedData.length);
//Adding option to Form
item.setChoiceValues(slicedData);
}
//make List question
function makeListQ(data){
let
listQuestion = data[2];
let
item = FORM.addListItem();
item.setTitle(listQuestion);
let
trimmedData = data.filter(function(str) {
return /\S/.test(str);
});
let
slicedData = trimmedData.slice(3,trimmedData.length);
item.setChoiceValues(slicedData);
}
//make Scale question
function makeScaleQ(data){
let
scaleQ = data[2];
let
item = FORM.addScaleItem();
item.setTitle(scaleQ);
let
trimmedData = data.filter(function(str) {
return /\S/.test(str);
});
//Get and set lower and upper bounds of scale
let
lower = trimmedData.slice(3, 4);
let
upper = trimmedData.slice(4, 5);
item.setBounds(lower, upper);
//Set labels to lower and upper bounds
item.setLabels(trimmedData.slice(5, 6), trimmedData.slice(6, 7));
}
//make Checkbox question
function makeCheckboxQ(data){
let
checkboxQ = data[2];
let
item = FORM.addCheckboxItem();
item.setTitle(checkboxQ);
let
trimmedData = data.filter(function(str) {
return /\S/.test(str);
});
let
slicedData = trimmedData.slice(3,trimmedData.length);
item.setChoiceValues(slicedData);
}
//make Grid question
function makeGridQ(data){
let
gridQ = data[2];
let
item = FORM.addGridItem();
item.setTitle(gridQ);
let
trimmedData = data.filter(function(str) {
return /\S/.test(str);
});
//Find where "Columns:" text is in array
let
columnPosition = trimmedData.indexOf("Columns:");
//Get row values for grid
let
slicedDataRows = trimmedData.slice(3,columnPosition);
//Get column values for grid
let
slicedDataColumns = trimmedData.slice(columnPosition+1,trimmedData.length);
item.setRows(slicedDataRows);
item.setColumns(slicedDataColumns);
}
//make Paragraph question
function makeParagraphQ(data){
let
paragraphText = data[2];
let
item = FORM.addParagraphTextItem();
item.setTitle(paragraphText);
}
2021年8月16日 星期一
2021年8月14日 星期六
2021年8月10日 星期二
2021年8月4日 星期三
2021年8月2日 星期一
2021年8月1日 星期日
每個人都能有平等的特權
教義和聖約 88:122 在你們當中指定一位教師,不要讓大家同時作發言人;一次只讓一人發言,而大家都要聽他說話,好讓大家說完後,所有的人都能彼此啟發,而每個人都能有平等的特權。
有時候教師為了提高課程品質,或怕上課中遇到冷場,會事先指派一些弟兄姊妹們在上課中發言。然而,教師可能會覺得這些事先被指派的弟兄姊妹們應有優先發言的權利,而且必須要給他們在上課中發言的機會,如此一來,那些沒有被事先指派發言的弟兄姊妹們的發言特權就減少了;尤其是當教師事先指派發言的人數太多的情況。