2017-06-21 75 views
1

我正在开发基于Pybossa的众包平台。在任务提出我被困在下面的代码 -Pybossa:如何存储和评估答案

$(".btn-submit").off('click').on('click', function(){ 
     var answer = $("textarea#text").val(); 
     $("#viewport_" + task.id).hide(); 
     pybossa.saveTask(task.id, answer).done(function(data){ 
      deferred.resolve(); 
      $("#success").fadeIn(); 
      setTimeout(function() { $("#success").fadeOut() }, 2000); 
     }) 
    }); 

该代码可用于获取的答复,并把它作为answer

如果我有任务的许多问题,其用户的回复,构造成如下 -

Q.1 This is question 1? 
Q.2 This is question 2? 
Q.3 This is question 3? 

而且用户回复这些单独的文本形式 -

answer1 

answer2 

answer3 

我如何存储多个答案,Pybossa在计算结果时也可以计算每个答案的平均值(例如,通过金色任务。)我还想知道Pybossa如何评估答案。

回答

2

我想做类似的事情。我迄今为止的解决方案是构建一个Javascript对象并将其保存到taskrun结果中。后来我会解析这个并提取我想要的字段。

我创建的HTML表单:

<form action = ""> 
<input placeholder="First Name" type="text" name="firstname"> 
<input placeholder="Last Name" type="text" name="lastname"> 
<select class="span2" name="gender"> 
    <option value="Male">Male</option> 
    <option value="Female">Female</option> 
</select> 
<button class="btn btn-submit">Submit!</button> 
</form> 

然后在pybossa.saveTask方法构造一个答案对象:

var firstname = $("input[name='firstname']").val(); 
var lastname = $("input[name='lastname']").val(); 
var gender = $("select[name='gender']").val(); 

var answer = { 
    firstname: firstname, 
    lastname: lastname, 
    gender: gender 
}; 

但这不回答你的问题,即第二部分如何让PyBossa对结果进行加权平均。

+0

是没错。我想为k ownis pyBossa如何评估在结果的答案。 – 97amarnathk

+0

嘿!如果可能的话,如果你觉得这个问题对PyBossa社区有帮助,你可以考虑提出这个问题吗? – 97amarnathk

2

ch4s的答案是正确的。对于第二部分,您将需要使用webhooks solution of PYBOSSA

您将需要使用webhooks,以在所有task_runs达到时通知该微服务。然后,系统将下载它,处理它并生成结果。由于它采用恩基和PYBOSSA的API,你可以做任何你想要的:

  • 请求为同一任务更task_runs(换句话说,通过增加现场n_answers任务冗余)。
  • 发送包含结果的电子邮件给任何你想要的人。
  • 使用关于结果的信息更新您选择的社交网络。
  • 使用新PYBOSSA网页推送通知,通知用户一个新的结果(我们做到这一点在Sr. Alergeno
+0

嗨!谢谢,这有很大的帮助!如果可能的话,你能否考虑提出这个问题如果你觉得这个问题对PyBossa社区有帮助吗? – 97amarnathk