def METHOD_NAME(cls, xblock, category, is_learning_mfe=False):
    """
    Constructs a call to action object containing the necessary information for the view
    """
    from lms.urls import RESET_COURSE_DEADLINES_NAME
    course_key = xblock.scope_ids.usage_id.context_key
    cta_data = {
        'link': reverse(RESET_COURSE_DEADLINES_NAME),
        'link_name': _('Shift due dates'),
        'form_values': {
            'course_id': course_key,
        },
        'description': Text('{b_open}{header}{b_close} {explanation}').format(
            b_open=HTML('<b>'),
            b_close=HTML('</b>'),
            header=_('It looks like you missed some important deadlines based on our suggested schedule.'),
            explanation=_('To keep yourself on track, you can update this schedule and shift the past due '
                          'assignments into the future. Don’t worry—you won’t lose any of the progress you’ve '
                          'made when you shift your due dates.'),
        ),
    }
    has_attempts = hasattr(xblock, 'attempts') and hasattr(xblock, 'max_attempts')
    if category == cls.CAPA_SUBMIT_DISABLED and has_attempts and xblock.attempts:
        if xblock.max_attempts:
            cta_data['link_name'] = ngettext('Try again ({attempts} attempt remaining)',
                                             'Try again ({attempts} attempts remaining)',
                                             (xblock.max_attempts - xblock.attempts)).format(
                attempts=(xblock.max_attempts - xblock.attempts)
            )
            cta_data['description'] = (_('You have used {attempts} of {max_attempts} attempts for this '
                                         'problem.').format(
                attempts=xblock.attempts, max_attempts=xblock.max_attempts
            ) + ' ' + cta_data['description'])
        else:
            cta_data['link_name'] = _('Try again (unlimited attempts)')
            cta_data['description'] = _('You have used {attempts} of unlimited attempts for this '
                                        'problem.').format(attempts=xblock.attempts) + ' ' + cta_data['description']
    if is_learning_mfe:
        cta_data['event_data'] = {
            'event_name': 'post_event',
            'post_data': {
                'body_params': {
                    'course_id': str(course_key),
                },
                'url': '{}{}'.format(settings.LMS_ROOT_URL, reverse('course-experience-reset-course-deadlines')),
            },
            'research_event_data': {
                'block_id': str(xblock.location),
                'location': f'{xblock.category}-view',
            },
        }
    return cta_data