コード例 #1
0
ファイル: task_loaders.py プロジェクト: PyBossa/enki
 def load(self):
     self.tasks = pbclient.find_tasks(**self.query)
     last_fetched_tasks = self.tasks
     del self.query['offset']
     while self._tasks_not_exhausted(last_fetched_tasks):
         self.query['last_id'] = last_fetched_tasks[-1].id
         last_fetched_tasks = pbclient.find_tasks(**self.query)
         self.tasks += last_fetched_tasks
     return self.tasks
コード例 #2
0
ファイル: app.py プロジェクト: geotagx/pybossa-nova
def send_data():
    api_key = request.json.get('api_key')
    server_url = request.json.get('server_url')
    data = request.json.get('data')
    project_name = request.json.get('project_name')

    tpl_presenter = render_template('presenter.html',
                                    steps=data['steps'],
                                    project_name=project_name)

    pbclient.set('endpoint', server_url)
    pbclient.set('api_key', api_key)

    # TODO: check error
    app = pbclient.find_app(short_name=project_name)[0]
    app.info['task_presenter'] = tpl_presenter

    for task in pbclient.find_tasks(app.id):
        pbclient.delete_task(task.id)

    for task in data['tasks']:
        pbclient.create_task(app.id, task)

    pbclient.update_app(app)

    return '', 200
コード例 #3
0
 def test_add_task_01(self):
     try:
         for i in range(0,15):
             self.app_tt.add_task({1: "info1", 2: "info2"})
         tasks = pbclient.find_tasks(self.app_tt.app_id)
         
         self.assertEquals(len(tasks), 15)
         
         for i in range(0,15):
             self.assertEquals(tasks[i].info['1'], unicode("info1", 'utf-8'))
             self.assertEquals(tasks[i].info['2'], unicode("info2", 'utf-8'))
     except Exception as e:
         assert False
コード例 #4
0
 def test_add_task_02(self):
     try:
         for i in range(0,15):
             self.app_tt.add_task({1: "info1", 2: "info2"}, priority=random.randrange(0,1))
         tasks = pbclient.find_tasks(self.app_tt.app_id)
         
         self.assertEquals(len(tasks), 15)
         
         for i in range(0,15):
             self.assertEquals(tasks[i].info['1'], unicode("info1",'utf-8'))
             self.assertEquals(tasks[i].info['2'], unicode("info2",'utf-8'))
             self.assertTrue(tasks[i].priority_0 >= 0 and tasks[i].priority_0 <= 1)
     except Exception as e:
         print e
         assert False
コード例 #5
0
 def test_get_tasks_01(self):
     try:
         for i in range(0,15):
             self.app_tt.add_task({1: "info1", 2: "info2"})
         
         tasks = pbclient.find_tasks(self.app_tt.app_id)
         tasks2 = self.app_tt.get_tasks()
         
         self.assertEquals(len(tasks), 15)
         self.assertEquals(len(tasks2), 15)
         
         for t1 in tasks:
             for t2 in tasks2:
                 if t1.id == t2.id:
                     self.assertEquals(t1.info['1'], t2.info['1'])
                     self.assertEquals(t1.info['2'], t2.info['2'])
         
     except Exception as e:
         print e
         assert False
コード例 #6
0
def getTasksAmount( app_id ):
    return len( pbclient.find_tasks( app_id ) )
コード例 #7
0
def getOverallProgress( app_id ):
    tasks_completed_amount = len( pbclient.find_tasks( app_id, state = "completed" ) )
    tasks_amount = len( pbclient.find_tasks( app_id ) )
    return round( ( tasks_completed_amount / float(tasks_amount) ) * 100, 2 )
コード例 #8
0
ファイル: getResults.py プロジェクト: PyBossa/app-ushahidi
        parser.error("You must supply an API-KEY to create an applicationa and tasks in PyBossa")
    else:
        pbclient.set('api_key', options.api_key)

    if (options.verbose):
        print('Running against PyBosssa instance at: %s' % options.api_url)
        print('Using API-KEY: %s' % options.api_key)

    if (options.results):
        offset = 0
        limit = 100

        app = pbclient.find_app(short_name=app_config['short_name'])[0]
        if options.completed or options.average:
            completed_tasks = pbclient.find_tasks(app.id,
                                                  state="completed",
                                                  offset=offset,
                                                  limit=limit)
        else:
            completed_tasks = pbclient.find_tasks(app.id,
                                                  offset=offset,
                                                  limit=limit)

        # Now get the task runs
        import csv
        if not (options.csv_file):
            options.csv_file = "results.csv"

        f = csv.writer(open(options.csv_file, "wb"))
        f.writerow(['taskid',
                    'incident id',
                    'incident title',
コード例 #9
0
        )
    else:
        pbclient.set('api_key', options.api_key)

    if (options.verbose):
        print('Running against PyBosssa instance at: %s' % options.api_url)
        print('Using API-KEY: %s' % options.api_key)

    if (options.results):
        offset = 0
        limit = 100

        app = pbclient.find_app(short_name='philippinestyphoon')[0]
        if options.completed:
            completed_tasks = pbclient.find_tasks(app.id,
                                                  state="completed",
                                                  offset=offset,
                                                  limit=limit)
        else:
            completed_tasks = pbclient.find_tasks(app.id,
                                                  offset=offset,
                                                  limit=limit)

        # Now get the task runs
        import csv
        f = csv.writer(open("results.csv", "wb"))
        f.writerow([
            'taskid',
            'tweetid',
            'text',
            'date',
            'username',
コード例 #10
0
    parser.add_option("-u", "--update", dest="update", action="store_true", 
                      help="Update the templates of the application",
                      metavar="UPDATE-APP")

    parser.add_option("-v", "--verbose", action="store_true", dest="verbose")
    
    (options, args) = parser.parse_args()

    if not options.update:
        fw_client = pbclient
        fw_client.set('endpoint','http://forestwatchers.net/pybossa')
        fw_client.set('api_key', options.api_key)
        besttile = pbclient.find_app(short_name='besttile')[0]
        offset = 0
        limit = 100
        completed_tasks = pbclient.find_tasks(besttile.id, state="completed", offset=0,limit=200)


    if not options.api_url:
        options.api_url = 'http://localhost:5000'

    pbclient.set('endpoint', options.api_url)

    if not options.api_key:
        parser.error("You must supply an API-KEY to create an applicationa and tasks in PyBossa")
    else:
        pbclient.set('api_key', options.api_key)

    if not options.template:
        print("Using default template: template.html")
        options.template = "template.html"