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:
skillsMarkup += ',\n'
sk = skillDict['hasOccupation']
roleName = sk['name']
category = \
sk['occupationalCategory']['codeValue']
categoryUrl = \
'https://www.onetonline.org/link/summary/"' + category
skillsMarkup += '{\n'
skillsMarkup += ' "@type": "Role",\n'
skillsMarkup += ' "hasOccupation": {\n'
skillsMarkup += ' "@type": "Occupation",\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 = '[' skillsListStr = '['
for skillStr in skillsList: for skillStr in skillsList:
if skillsListStr != '[': if skillsListStr != '[':
skillsListStr += ', ' skillsListStr += ', '
skillsListStr += '"' + skillStr + '"' skillsListStr += '"' + skillStr + '"'
skillsListStr += ']' skillsListStr += ']'
skillsMarkup = \ skillsMarkup += ' {\n'
' "hasOccupation": {\n' + \ skillsMarkup += ' "@type": "Occupation",\n'
' "@type": "Occupation",\n' + \ skillsMarkup += ' "name": "' + ocName + '",\n'
occupationStr + \ skillsMarkup += ' "skills": ' + skillsListStr + '\n'
' "skills": ' + skillsListStr + '\n' + \ skillsMarkup += ' }'
' "},\n' firstEntry = False
skillsMarkup += '\n ],'
cityMarkup = '' cityMarkup = ''
if city: if city:
city = city.lower().title() city = city.lower().title()