def _get_candidate_nominator(response): nominating_capacity = response_repository.get_answer_by_question_key_and_response_id( 'nominating_capacity', response.id) if not nominating_capacity: raise ValueError('Missing nominating capacity answer') is_nomination = nominating_capacity.value == 'other' if is_nomination: question_answers = response_repository.get_question_answers_by_section_key_and_response_id( 'nominee_section', response.id) nomination_info = { qa.Question.key: qa.Answer.value for qa in question_answers } candidate = '{nomination_title} {nomination_firstname} {nomination_lastname}'.format( **nomination_info) candidate_firstname = nomination_info['nomination_firstname'] nominator = '{} {} {}'.format(response.user.user_title, response.user.firstname, response.user.lastname) else: candidate = '{} {} {}'.format(response.user.user_title, response.user.firstname, response.user.lastname) candidate_firstname = response.user.firstname nominator = None return candidate, candidate_firstname, nominator
def get(self): args = self.req_parser.parse_args() event_id = args['event_id'] user_id = g.current_user['id'] try: offer = db.session.query(Offer).filter(Offer.event_id == event_id).filter(Offer.user_id == user_id).first() response = response_repository.get_submitted_by_user_id_for_event(user_id, event_id) if not response: return errors.RESPONSE_NOT_FOUND request_travel = response_repository.get_answer_by_question_key_and_response_id('travel_grant', response.id) if not offer: return errors.OFFER_NOT_FOUND elif offer.is_expired(): return errors.OFFER_EXPIRED else: return offer_info(offer, request_travel), 200 except SQLAlchemyError as e: LOGGER.error("Database error encountered: {}".format(e)) return errors.DB_NOT_AVAILABLE except: LOGGER.error("Encountered unknown error: {}".format( traceback.format_exc())) return errors.DB_NOT_AVAILABLE