def mark_attribution_already_applied(attributions_vacant, global_id,
                                     application_academic_year):
    import attribution.business.attribution
    applications = get_application_list(global_id, application_academic_year)
    attributions = attribution.business.attribution.get_attribution_list(
        global_id, application_academic_year)

    for attribution in attributions_vacant:
        already_applied = next((True for application in applications if
                                               application.get('acronym') == attribution.get('acronym')), False) \
                                          if applications else False

        attribution['already_applied'] = already_applied
    return attributions_vacant
def _filter_pending_delete(attribution_list):
    for attribution in attribution_list:
        if attribution.get(
                'pending') != tutor_application_epc.DELETE_OPERATION:
            yield attribution
def _filter_by_years(attribution_list, year):
    for attribution in attribution_list:
        if attribution.get('year') == year:
            yield attribution