def approve_files(files_with_review_type):
    """Approve the files (and sign them).

    A file will be fully approved if:
    - it's waiting for a full review
    - it's preliminary reviewed, and its addon is waiting for a full review
    A file will be prelim approved if:
    - it's waiting for a prelim review
    """
    for file_, review_type in files_with_review_type:
        version = file_.version
        addon = version.addon
        helper = ReviewHelper(request=None, addon=addon, version=file_.version)
        # Provide the file to review/sign to the helper.
        helper.set_data({'addon_files': [file_], 'comments': u'bulk approval'})
        if review_type == 'full':
            # Already fully reviewed, or waiting for a full review.
            helper.handler.process_public()
            log.info(u'File %s (addon %s) fully reviewed', file_.pk, addon.pk)
        elif review_type == 'prelim':
            # Already prelim reviewed, or waiting for a prelim review.
            helper.handler.process_preliminary()
            log.info(u'File %s (addon %s) prelim reviewed', file_.pk, addon.pk)
        else:
            log.info(
                u'File %s (addon %s) not reviewed: '
                u'addon status: %s, file status: %s', file_.pk, addon.pk,
                addon.status, file_.status)
def approve_files(files_with_review_type):
    """Approve the files waiting for review (and sign them)."""
    for file_, review_type in files_with_review_type:
        version = file_.version
        addon = version.addon
        helper = ReviewHelper(request=None, addon=addon, version=file_.version)
        # Provide the file to review/sign to the helper.
        helper.set_data({'addon_files': [file_], 'comments': u'bulk approval'})
        if review_type == 'full':
            # Already approved, or waiting for a full review.
            helper.handler.process_public()
            log.info(u'File %s (addon %s) approved', file_.pk, addon.pk)
        else:
            log.info(
                u'File %s (addon %s) not approved: '
                u'addon status: %s, file status: %s', file_.pk, addon.pk,
                addon.status, file_.status)