Esempio n. 1
0
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
Esempio n. 2
0
    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