'Format the person details
@param person: the person record (Row)'

@staticmethod
def person_details(person):

    T = current.T
    settings = current.deployment_settings
    name = s3_fullname(person)
    dob = person.date_of_birth
    if dob:
        dob = S3DateTime.date_represent(dob)
        details = ('%s    (%s    %s)' % (name, T('Date    of    Birth'), dob))
    else:
        details = name
    output = SPAN(details, _class='person-details')
    if settings.get_dvr_event_registration_checkin_warning():
        table = current.s3db.cr_shelter_registration
        if table:
            query = ((table.person_id == person.id) & (table.deleted != True))
            cnt = table.id.count()
            status = table.registration_status
            rows = current.db(query).select(status, cnt, groupby=status)
            checked_in = checked_out = 0
            for row in rows:
                s = row[status]
                if (s == 2):
                    checked_in = row[cnt]
                elif (s == 3):
                    checked_out = row[cnt]
            if (checked_out and (not checked_in)):
                output = TAG[''](output, SPAN(ICON('hint'), T('not    checked-in!'), _class='check-in-warning'))
    return output
