def METHOD_NAME(self, bundle):
    try:
        bundle.data['is_global_annotation'] = \
            bundle.obj.is_global_annotation
        bundle.data['asset_id'] = str(bundle.obj.asset.id)
        bundle.data['is_null'] = bundle.obj.is_null()
        bundle.data['annotation'] = bundle.obj.annotation()
        bundle.data['url'] = bundle.obj.get_absolute_url()
        bundle.data['local_url'] = reverse(
            'react_annotation_detail', kwargs={
                'course_pk': bundle.obj.asset.course.pk,
                'pk': bundle.obj.asset.pk,
                'annotation_pk': bundle.obj.id
            })
        modified = bundle.obj.modified.strftime("%m/%d/%y %I:%M %p") \
            if bundle.obj.modified else ''
        bundle.data['metadata'] = {
            'tags': TagResource().render_list(bundle.request,
                                              bundle.obj.tags_split()),
            'body': bundle.obj.body.strip() if bundle.obj.body else '',
            'primary_type': bundle.obj.asset.primary.label,
            'modified': modified,
            'title': bundle.obj.title
        }
        if bundle.obj.asset.media_type() == 'video':
            bundle.data['metadata']['timecode'] = \
                bundle.obj.range_as_timecode()
        editable = (bundle.request.user.id ==
                    getattr(bundle.obj, 'author_id', -1))
        citable = bundle.request.GET.get('citable', '') == 'true'
        if self.in_selection_assignment_response(bundle.obj):
            # "first" here kills the prefetch/select_related optimization
            # use the qs array indexing to keep things fast
            reference = bundle.obj.projectnote_set.all()[0]
            editable = editable and not reference.project.is_submitted()
            # notes in a draft or submitted response may/may not be citable
            # based on its assignment visibility settings
            if citable:
                # this is a heavy operation. don't call it unless needed
                citable = reference.project.can_cite(bundle.request.course,
                                                     bundle.request.user)
        if self.in_sequence_assignment_response(bundle.obj):
            # notes in a submitted response are not editable
            editable = False
        bundle.data['editable'] = editable
        bundle.data['citable'] = citable
        bundle.data['vocabulary'] = self.render_related_terms(bundle)
    except Asset.DoesNotExist:
        bundle.data['asset_id'] = ''
        bundle.data['metadata'] = {'title': 'Item Deleted'}
    return bundle