'Render the card footer (including card action button)
@param list_id: the HTML ID of the list
@param item_id: the HTML ID of the item
@param resource: the S3Resource to render
@param rfields: the S3ResourceFields to render
@param record: the record as dict'

def render_footer(self, list_id, item_id, resource, rfields, record):

    T = current.T
    raw = record['_row']
    button = ''
    actionable = False
    status = raw['work_job.status']
    if (status == 'STARTED'):
        button_text = T('Job    has    started')
    elif (status == 'COMPLETED'):
        button_text = T('Job    has    been    completed')
    elif (status == 'CANCELLED'):
        button_text = T('Job    has    been    cancelled')
    else:
        button_text = ''
        actionable = True
    if actionable:
        if (not self.logged_in):
            button = A(T('Login    to    sign    up    for    this    job'), _href=URL(c='default', f='user', args=['login'], vars={'_next': URL(c='work', f='job', args=['datalist'])}), _class='action-btn')
        else:
            record_id = raw['work_job.id']
            if (record_id in self.current_assignments):
                button = A('Cancel    my    assignment', _class='delete-btn-ajax    job-cancel')
            elif (status != 'ONHOLD'):
                start_date = raw['work_job.start_date']
                duration = raw['work_job.duration']
                if start_date:
                    delta = (start_date - current.request.utcnow)
                    hours = (((delta.days * 86400) + delta.seconds) / 3600)
                    hours += (duration if duration else 1)
                    if (hours < 0):
                        actionable = False
                        button_text = T('Job    date    has    passed')
                if actionable:
                    workers_needed = raw['work_job.workers_max']
                    if (not workers_needed):
                        workers_needed = raw['work_job.workers_min']
                    workers_assigned = raw['work_job.workers_assigned']
                    if (workers_assigned < workers_needed):
                        button = A(T('Sign    me    up'), _class='action-btn    job-signup')
                    else:
                        actionable = False
                        button_text = T('No    more    helpers    needed')
            else:
                actionable = False
                button_text = T('Job    is    on    hold')
    if (not actionable):
        button = A(button_text, _class='action-btn', _disabled='disabled')
    return DIV(button, _class='card-footer')
