def get_my_projects(cls, manager_id): scientist_columns = [u'managing_project_ids'] scientist_json = yield Scientist.get_json_by_id(manager_id, columns=scientist_columns) # [{scientist_id, vacancy_id, message}] project_ids = scientist_json.get(u'managing_project_ids', []) if not project_ids: raise gen.Return([]) projects = [] for project_id in project_ids: project_columns = [u'title', u'responses'] project_json = yield Project.get_json_by_id(project_id, columns=project_columns) project_json.update(project_id=project_id) raw_responses = project_json.pop(u'responses', []) if not raw_responses: project_json.update(responses=[]) projects.append(project_json) continue responses = [] for response in raw_responses: response_data = yield cls.get_response_data(response) responses.append(response_data) project_json.update(responses=responses) projects.append(project_json) raise gen.Return(projects)
def get(cls, scientist_id): """ :param scientist_id: :type scientist_id: int :rtype: dict """ data = yield Scientist.get_json_by_id(scientist_id) image_url = data.get(u'image_url', u'') and globals.GET_IMG(data.get(u'image_url', u''), globals.IMG_L) data.update(image_url=image_url) logging.info(data) raise gen.Return(data)
def get_participation_projects(cls, scientist_id): cols = [u'participating_projects'] sc_json = yield Scientist.get_json_by_id(scientist_id, columns=cols) # [{project_id, role_id}] projects = [] for participation in sc_json.get(u'participating_projects', []): project_columns = [u'title', u'participants'] project_data = yield Project.get_json_by_id(participation[u'project_id'], columns=project_columns) participants = project_data.pop(u'participants') project_data.update(project_id=participation[u'project_id'], role_name=[k[u'role_name'] for k in participants if k[u'id'] == participation[u'role_id']][0] ) projects.append(project_data) print projects raise gen.Return(projects)
def get_desired_projects(cls, scientist_id): cols = [u'desired_vacancies'] sc_json = yield Scientist.get_json_by_id(scientist_id, columns=cols) # [{project_id, vacancy_id}] projects = [] for application in sc_json(u'desired_vacancies', []): project_columns = [u'title', u'vacancies'] project_data = yield Project.get_json_by_id(application[u'project_id'], columns=project_columns) vacancies = project_data.pop(u'vacancies', []) project_data.update(project_id=application[u'project_id'], vacancy_id=application[u'vacancy_id'], vacancy_name=[k[u'vacancy_name'] for k in vacancies if k[u'id'] == application[u'vacancy_id']][0] ) projects.append(project_data) print projects raise gen.Return(projects)