Redo roles within metadata

merge-requests/30/head
Bob Mottram 2021-05-16 17:07:02 +01:00
parent 65b0a6b728
commit 503d40cf3d
1 changed files with 50 additions and 18 deletions

View File

@ -722,24 +722,56 @@ def htmlHeaderWithPersonMarkup(cssFilename: str, instanceTitle: str,
skillsMarkup = '' skillsMarkup = ''
if actorJson.get('hasOccupation'): if actorJson.get('hasOccupation'):
occupationStr = '' if isinstance(actorJson['hasOccupation'], list):
if actorJson['hasOccupation'].get('name'): skillsMarkup = ' "hasOccupation": ['
occupationName = actorJson['hasOccupation']['name'] firstEntry = True
occupationStr += ' "name": "' + occupationName + '",\n' for skillDict in actorJson['hasOccupation']:
skillsList = actorJson['hasOccupation']['skills'] if skillDict['@type'] == 'Role':
if skillsList: if not firstEntry:
skillsListStr = '[' skillsMarkup += ',\n'
for skillStr in skillsList: sk = skillDict['hasOccupation']
if skillsListStr != '[': roleName = sk['name']
skillsListStr += ', ' category = \
skillsListStr += '"' + skillStr + '"' sk['occupationalCategory']['codeValue']
skillsListStr += ']' categoryUrl = \
skillsMarkup = \ 'https://www.onetonline.org/link/summary/"' + category
' "hasOccupation": {\n' + \ skillsMarkup += '{\n'
' "@type": "Occupation",\n' + \ skillsMarkup += ' "@type": "Role",\n'
occupationStr + \ skillsMarkup += ' "hasOccupation": {\n'
' "skills": ' + skillsListStr + '\n' + \ skillsMarkup += ' "@type": "Occupation",\n'
' "},\n' skillsMarkup += ' "name": ' + roleName + ',\n'
skillsMarkup += ' "occupationalCategory": {\n'
skillsMarkup += ' "@type": "CategoryCode",\n'
skillsMarkup += ' "inCodeSet": {\n'
skillsMarkup += ' "@type": "CategoryCodeSet",\n'
skillsMarkup += ' "name": "O*Net-SOC",\n'
skillsMarkup += ' "dateModified": "2019",\n'
skillsMarkup += \
' "url": "https://www.onetonline.org/"\n'
skillsMarkup += ' },\n'
skillsMarkup += ' "codeValue": "' + category + '",\n'
skillsMarkup += ' "url": "' + categoryUrl + '"\n'
skillsMarkup += ' }\n'
skillsMarkup += ' }'
elif skillDict['@type'] == 'Occupation':
if not firstEntry:
skillsMarkup += ',\n'
ocName = sk['name']
skillsList = sk['skills']
skillsListStr = '['
for skillStr in skillsList:
if skillsListStr != '[':
skillsListStr += ', '
skillsListStr += '"' + skillStr + '"'
skillsListStr += ']'
skillsMarkup += ' {\n'
skillsMarkup += ' "@type": "Occupation",\n'
skillsMarkup += ' "name": "' + ocName + '",\n'
skillsMarkup += ' "skills": ' + skillsListStr + '\n'
skillsMarkup += ' }'
firstEntry = False
skillsMarkup += '\n ],'
cityMarkup = '' cityMarkup = ''
if city: if city:
city = city.lower().title() city = city.lower().title()