From a1914a88c73e903760680c425830e9bd87663011 Mon Sep 17 00:00:00 2001 From: wikilibras Date: Tue, 3 May 2016 18:00:00 -0300 Subject: [PATCH] Ajustes na interface para o lançamento. --- .gitignore | 5 ++++- validador.py | 67 +++++++++++++++++++++++++++++++++++++++++++++++-------------------- view/template.html | 2 +- 3 files changed, 52 insertions(+), 22 deletions(-) diff --git a/.gitignore b/.gitignore index 8c5ba00..6efe315 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,12 @@ .* -*~ !.gitignore !.gitempty +*~ *.log *.pyc +validador.conf +validador.wsgi settings_local.py env/ +videos/ tmp/ diff --git a/validador.py b/validador.py index 56be5ff..262a059 100644 --- a/validador.py +++ b/validador.py @@ -4,24 +4,26 @@ from werkzeug import secure_filename import pbclient import os import pyutil +import requests +import tempfile class Validador: - + def __init__(self, configuration, template_env): self.config = configuration self.env = template_env self.__setup_pb_client() - + def __setup_pb_client(self): - pbclient.set('endpoint', self.config['PYBOSSA_ENDPOINT']) + pbclient.set('endpoint', self.config['PYBOSSA_ENDPOINT']) pbclient.set('api_key', self.config['PYBOSSA_API_KEY']) - + def __find_project(self, app_short_name): projects = pbclient.find_project(short_name=app_short_name) return projects[0] if len(projects) > 0 else None - + def __setup_project(self, project): - self.__create_tasks(project) + #self.__create_tasks(project) self.__update_project_info(project) def __create_tasks(self, project): @@ -29,16 +31,16 @@ class Validador: for sign in test_signs: task = dict(sign_name=sign, submission_date=pyutil.get_date_now()) pbclient.create_task(project.id, task) - - def __update_project_info(self, project): + + def __update_project_info(self, project): template = self.env.get_template('template.html') project.info['task_presenter'] = template.render(server=self.config['HOST_STATIC_FILES_ENDPOINT'], server_backend=self.config['HOST_ENDPOINT'], app_shortname=self.config['PYBOSSA_APP_SHORT_NAME']) project.info['thumbnail'] = self.config['HOST_STATIC_FILES_ENDPOINT'] + "/img/thumbnail.png" project.info['sched'] = "incremental" + project.info['published'] = True project.allow_anonymous_contributors = False - #project.published = True pbclient.update_project(project) - + def create_project(self): app_short_name = self.config['PYBOSSA_APP_SHORT_NAME'] project = self.__find_project(app_short_name) @@ -50,30 +52,30 @@ class Validador: if (project): self.__setup_project(project) result_msg = "The project " + app_short_name + " was created." - else: + else: result_msg = "The project " + app_short_name + " couldn't be created. Check the server log for details." pyutil.log(result_msg) - return result_msg + return result_msg - def update_project(self): + def update_project(self): app_short_name = self.config['PYBOSSA_APP_SHORT_NAME'] project = self.__find_project(app_short_name) self.__update_project_info(project) result_msg = "The project " + app_short_name + " was updated." pyutil.log(result_msg) return result_msg - + def __find_task(self, project_id, task_id): tasks = pbclient.find_tasks(project_id, id=task_id) return tasks[0] if len(tasks) > 0 else None - + def __find_taskruns(self, project_id, task_id): return pbclient.find_taskruns(project_id, id=task_id) - + def __number_of_taskruns(self, project_id, task_id): taskruns = self.__find_taskruns(project_id, task_id) return len(taskruns) - + def __close_task(self, project_id, task_id): pyutil.log("Closing the task with ID=" + str(task_id) + ".") task = self.__find_task(project_id, task_id) @@ -81,19 +83,44 @@ class Validador: task.n_answers = number_of_taskruns + 1 pbclient.update_task(task) return "The task with ID=" + str(task_id) + " was closed." - + + def get_file(self, url, filename): + r = requests.get(url, stream = True) + if (r.status_code == 200): + with open(filename, 'wb') as f: + for chunk in r.iter_content(chunk_size = 1024): + if chunk: + f.write(chunk) + return True + return False + def finish_task(self): task_id = request.form['task_id'] project_id = request.form['project_id'] + sign_name = request.form['sign_name'] + api_host = self.config['API_HOST'] + api_dbhost = self.config['API_DB_HOST'] number_of_approval = int(request.form['number_of_approval']) number_of_avatar_disapproval = int(request.form['number_of_avatar_disapproval']) number_of_ref_disapproval = int(request.form['number_of_ref_disapproval']) agreement_number = self.config['AGREEMENT_NUMBER'] result_msg = "" code = 200 - if (number_of_approval >= agreement_number or number_of_avatar_disapproval >= agreement_number or number_of_ref_disapproval >= agreement_number): - result_msg = self.__close_task(project_id, task_id) + selo = None + if (number_of_approval >= agreement_number): + selo = 2 + result_msg = "selo was changed to 2 - especialista" + elif(number_of_avatar_disapproval >= agreement_number): + selo = 4 + result_msg = "selo was changed to 4 - invalido_especialista" + elif(number_of_ref_disapproval >= agreement_number): + selo = 6 + result_msg = "selo was changed to 6 - invalido_animadores" else: result_msg = "The task with ID=" + str(task_id) + " didn't reach the agreement number yet." + if (selo != None): + values = { "nome": sign_name, "selo": selo, "wikilibras": True, "overwrite": True } + r = requests.post(("%s/gsinal" % (api_dbhost)), data = values) + result_msg = self.__close_task(project_id, task_id) pyutil.log(result_msg) return make_response(result_msg, code) diff --git a/view/template.html b/view/template.html index 2292692..5e04dc5 100755 --- a/view/template.html +++ b/view/template.html @@ -11,7 +11,7 @@ tarefas disponíveis!
Voltar ou, olhar outros projetos. + href="/pybossa/project">ou, olhar outros projetos.
-- libgit2 0.21.2