基于Google Docs的志愿者管理系统的结构

时间:2013-02-21 18:11:43

标签: google-apps-script

这是我希望能够做到的。这一点的目的是管理每个星期天让我们的教会运行所需的各种志愿者。

拥有一份Google Docs电子表格,其中包含志愿者的姓名以及他们愿意担任哪些角色(例如,Tim志愿者将成为招待员; Ana志愿者将成为一名演员)。

列出一份单独的表格,列出在接下来的6个月内需要填补的每个志愿者职位(例如,我们在星期日需要2名主持人和1名主管)。

编写一个Google Apps脚本,该脚本将通过需要填写的职位列表,并选择下一位志愿者被要求填补该职位(可能基于过去填写此角色的人员的FENE次数) )。然后,该脚本会向该志愿者发送一封电子邮件,询问他们是否可以使用该职位。理想情况下,电子邮件将基于HTML,并包含2个链接:1个用于点击接受该位置,1个用于点击以拒绝该位置。

如果志愿者接受该位置,脚本会将其姓名添加到该位置。如果志愿者拒绝该位置,脚本将移至NEXT志愿者并发送相同的电子邮件。

脚本会继续此过程,直到所有广告位都已填满或所有志愿者都拒绝为止。

我可以概念化除了电子邮件中的链接之外我需要做的一切。

有没有人建议动态生成这样的链接?

关于如何构建我的脚本以实现我想要的任何其他想法?

显然,我仍处于思考过程中,所以我愿意接受任何建议。

提前致谢。 (我们小教会的成员也非常感谢你!)

1 个答案:

答案 0 :(得分:1)

生成链接当然是可能的! I wrote up an answer recently。你不需要那个答案的所有部分。也许你应该look at this answer instead

无论如何,有点样本/伪代码。

var scriptUrl = ScriptApp.getService().getUrl(); //URL to invoke your script

var message = "blah blah event details blah blah"
    +" <a href=\""+scriptUrl+"?user="+user+"&accept=no\">Decline</a>"
    +" or <a href=\""+scriptUrl+"?user="+user+"&accept=yes\">Accept</a>";

MailApp.sendEmail(recipent,subject,"",{htmlBody:message});

然后使用我在上面的答案中解释的doGet(e)参数来处理它。

function doGet(e) {
  var user = e.parameter.user;
  var accept = e.parameter.accept;

  if (accept=="yes") {
    //he/she accepted!!
  } else {
    //he/she declined. =(
  }
}