def generateHTMLProject(data, lang): text = r''' <!--==================================================== PROJECTS ======================================================--> <section class="resume-section p-3 p-lg-5 " id="projects"> <div rel="my0:hasProject" class="row my-auto"> <div class="col-12"> <h2 class=" text-center">''' + projectTitle[ lang] + r'''</h2> <div class="mb-5 heading-border"></div> </div> ''' projects = sorted(data['my0:hasProject'], key=lambda x: x['my0:projectStartDate'], reverse=True) for project in projects: text = text + r''' <div typeof="my0:Project" class="resume-item col-md-12 col-sm-12 col-lg-8"> <div class="card mx-0 p-4 mb-5" style="border-color: #0c7fda; box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.21);"> <div class=" resume-content mr-auto"> <h4 class="mb-3"><i class="fa fa-globe mr-3 text-primary"></i><span property="my0:projectName">''' + getValueFromLang( project['my0:projectName'], lang ) + r'''</span><span property="my0:projectCreator" content="''' + getValueFromLang( project['my0:projectCreator'], lang) + r'''"> - ''' + getValueFromLang( project['my0:projectCreator'], lang) + r'''</span></h4> <h4 class="mb-3"><i class="fa fa-user mr-3" style="color: #074679;"></i> <span property="my0:projectRole" content="''' + getValueFromLang( project['my0:projectRole'], lang) + r'''">''' + getValueFromLang( project['my0:projectRole'], lang) + r'''</span> </h4> <p property="my0:projectDescription">''' + getValueFromLang( project['my0:projectDescription'], lang) + r'''</p> </div> ''' + generateHTMLTwoDateSection( 'projectStartDate', project['my0:projectStartDate'], 'projectEndDate', project['my0:projectEndDate'], 'my0:projectIsCurrent', project['my0:projectIsCurrent'], lang) + r''' </div> </div> ''' text = text + r''' </div> </section> ''' return text
def generateHTMLDesign1(data, language): main = r'''''' if (data['my0:aboutPerson']): item = data['my0:aboutPerson'] photo = item['my0:photo'] # write navigation part main = main + generateHTMLNAV(photo, data, language) main = main + r''' <div typeof="my0:CV" class="container-fluid p-0"> <span property="my0:cvLastUpdate" hidden content="''' + data[ 'my0:cvLastUpdate'] + r'''"></span> <span property="my0:cvIsConfidential" hidden content="''' + str( data['my0:cvIsConfidential']) + r'''"></span> <span property="my0:cvCopyright" hidden content="''' + getValueFromLang( data['my0:cvCopyright'], language) + r'''"></span> <span property="my0:cvNotes" hidden content="''' + getValueFromLang( data['my0:cvNotes'], language) + r'''"></span> ''' # write about part main = main + generateHTMLABOUT(item, language) if (data['my0:hasWorkHistory']): main = main + generateHTMLWorkExperience(data, language) if (data['my0:hasEducation']): main = main + generateHTMLEducationCourses(data, language) if (data['my0:hasSkill']): main = main + generateHTMLSkills(data, language) if (data['my0:hasPublication']): main = main + generateHTMLPublications(data, language) if (data['my0:hasProject']): main = main + generateHTMLProject(data, language) if (data['my0:hasHonorAward']): main = main + generateHTMLHonors(data, language) if (data['my0:hasPatent']): main = main + generateHTMLPatents(data, language) if (data['my0:hasOtherInfo']): main = main + generateHTMLOtherInfo(data, language) main = main + r''' </div> ''' return main
def generateHTMLOtherInfo(data, lang): text = r''' <!--==================================================== OTHER INFORMATION ======================================================--> <section rel="my0:hasOtherInfo" class="resume-section p-3 p-lg-5 " id="other"> <div class="row my-auto"> <div class="col-12"> <h2 class=" text-center">''' + otherInfoTitle[ lang] + r'''</h2> <div class="mb-5 heading-border"></div> </div> ''' # print other info for other in (data['my0:hasOtherInfo']): types = runQueryMainOntology(other['my0:otherInfoType'], lang) text = text + r''' <div typeof="my0:OtherInfo" class="resume-item col-md-12 col-sm-12 col-lg-6"> <div class=" resume-content mr-auto"> <h4 class="mb-3"><i class="fa fa-info mr-3 text-primary"></i>Category: <span property="my0:otherInfoType" content="''' + other[ 'my0:otherInfoType'] + r'''">''' + types + r'''</span></h4> <p property="my0:otherInfoDescription">''' + getValueFromLang( other['my0:otherInfoDescription'], lang) + r'''</p> </div> </div> ''' text = text + r''' </div> </section> ''' return text
def generateMainDesign2Enriched(data, language): main = headerCV2 if (data['my0:aboutPerson']): item = data['my0:aboutPerson'] # write personal information about the user main = main + r'''\def \fullname {''' + item['my0:firstName'] + space + item['my0:lastName'] + r'''} ''' if item['my0:phoneNumberMobile']: main = main + r'''\def \phoneicon {\faPhone} \def \phonetext {''' + item['my0:phoneNumberMobile'] + r'''} ''' if item['my0:email']: main = main + r'''\def \emailicon {\faEnvelope} \def \emaillink {mailto:''' + item['my0:email'] + r'''} \def \emailtext {''' + item['my0:email'] + r'''} ''' main = main + settingsPart2 if (data['my0:aboutPerson']): item = data['my0:aboutPerson'] # write website information about the user for website in (item['my0:hasWebsite']): if doesURIContainWord(website['my0:websiteType'], 'Linkedin'): main = main + \ r'''\faLinkedin { } \href{''' + website['my0:websiteURL'] + \ r'''}{''' + website['my0:websiteURL'] + r'''} \newline''' elif doesURIContainWord(website['my0:websiteType'], 'Xing'): main = main + \ r'''\faXing { } \href{''' + website['my0:websiteURL'] + \ r'''}{''' + website['my0:websiteURL'] + r'''} \newline''' else: main = main + r'''\faGlobe { } \href{''' + website['my0:websiteURL'] + r'''}{''' + website['my0:websiteURL'] + r'''} \newline ''' main = main + r'''\newline''' if(data['my0:hasEducation']): # write educational information about the user main = main + r''' %-------------------------------------------------- EDUCATION -------------------------------------------------- \section{\faGraduationCap}{''' + educationTitle[language] + r'''} ''' educations = sorted( data['my0:hasEducation'], key=lambda x: x['my0:eduStartDate'], reverse=True ) for item in (educations): orgName = getValueFromLang(item["my0:studiedIn"]["my0:orgName"], language) orgURL = runQueryDBPEDIA(orgName, language) if orgURL != "": orgName = r'''\href{''' + orgURL + \ r'''}{''' + orgName + r'''}''' orgCityName = getValueFromLang(item["my0:studiedIn"]["my0:orgAddress"]["my0:city"], language) orgCityURL = runQueryDBPEDIA(orgCityName, language) if orgCityURL != "": orgCityName = r'''\href{''' + orgCityURL + \ r'''}{''' + orgCityName + r'''}''' orgCountryName = runQueryCountryMainOntology(item["my0:studiedIn"]["my0:orgAddress"]["my0:country"], language) orgCountryURL = runQueryDBPEDIA(orgCountryName, language) if orgCountryURL != "": orgCountryName = r'''\href{''' + orgCountryURL + \ r'''}{''' + orgCountryName + r'''}''' degreeName = runQueryMainOntology(item['my0:degree'], language) endDate = item['my0:eduGradDate'] if item['my0:eduGradDate'] == "": endDate = current[language] main = main + r''' \resumeEntryStart \resumeEntryTSDL ''' main = main + r'''{''' + orgName + r'''}{''' + \ item['my0:eduStartDate'] + r''' -- ''' + \ endDate + r'''}''' main = main + r'''{''' + degreeName + r''' ''' + \ getValueFromLang(item["my0:degreeFieldOfStudy"], language) + \ r'''}{''' + orgCityName + r''', ''' + orgCountryName + r'''}''' main = main + r'''\resumeEntryEnd ''' if(data['my0:hasCourse']): # write courses information about the user main = main + r''' %-------------------------------------------------- COURSES -------------------------------------------------- \section{\faGraduationCap}{''' + courseTitle[language] + r'''} ''' courses = sorted( data['my0:hasCourse'], key=lambda x: x['my0:courseStartDate'], reverse=True ) for item in (courses): orgName = item["my0:organizedBy"]["my0:orgName"] orgURL = runQueryDBPEDIA(orgName, language) if orgURL != "": orgName = r'''\href{''' + orgURL + \ r'''}{''' + orgName + r'''}''' orgCityName = getValueFromLang(item["my0:organizedBy"]["my0:orgAddress"]["my0:city"], language) orgCityURL = runQueryDBPEDIA(orgCityName, language) if orgCityURL != "": orgCityName = r'''\href{''' + orgCityURL + \ r'''}{''' + orgCityName + r'''}''' orgCountryName = runQueryMainOntology(item["my0:organizedBy"]["my0:orgAddress"]["my0:country"], language) orgCountryURL = runQueryDBPEDIA(orgCountryName, language) if orgCountryURL != "": orgCountryName = r'''\href{''' + orgCountryURL + \ r'''}{''' + orgCountryName + r'''}''' endDate = item['my0:courseFinishDate'] if item['my0:courseFinishDate'] == "": endDate = current[language] main = main + r''' \resumeEntryStart \resumeEntryTSDL ''' main = main + r'''{''' + orgName + r'''}{''' + \ item['my0:courseStartDate'] + r''' -- ''' + \ endDate + r'''}''' main = main + r'''{''' + \ getValueFromLang(item["my0:courseTitle"], language) + \ r'''}{''' + orgCityName + r''', ''' + orgCountryName + r'''}''' main = main + r'''\resumeEntryEnd ''' if(data['my0:hasWorkHistory']): # write experience information about the user main = main + r''' %-------------------------------------------------- EXPERIENCE -------------------------------------------------- \section{\faPieChart}{''' + workTitle[language] + r'''} ''' works = sorted( data['my0:hasWorkHistory'], key=lambda x: x['my0:startDate'], reverse=True ) for item in (works): orgName = item["my0:employedIn"]["my0:orgName"] orgURL = runQueryDBPEDIA(orgName, language) if orgURL != "": orgName = r'''\href{''' + orgURL + \ r'''}{''' + orgName + r'''}''' orgCityName = getValueFromLang(item["my0:employedIn"]["my0:orgAddress"]["my0:city"], language) orgCityURL = runQueryDBPEDIA(orgCityName, language) if orgCityURL != "": orgCityName = r'''\href{''' + orgCityURL + \ r'''}{''' + orgCityName + r'''}''' orgCountryName = getnameURI(item["my0:employedIn"]["my0:orgAddress"]["my0:country"]) orgCountryURL = runQueryDBPEDIA(orgCountryName, language) if orgCountryURL != "": orgCountryName = r'''\href{''' + orgCountryURL + \ r'''}{''' + orgCountryName + r'''}''' endDate = item['my0:endDate'] if item['my0:endDate'] == "": endDate = current[language] main = main + r''' \resumeEntryStart \resumeEntryTSDL ''' main = main + r'''{''' + orgName + r'''}{''' + \ item['my0:startDate'] + r''' -- ''' + \ endDate + r'''}''' main = main + r'''{''' + getValueFromLang(item['my0:jobTitle'], language) + \ r'''}{''' + orgCityName + r''', ''' + orgCountryName + r'''}''' main = main + r'''\resumeItemListStart \resumeItem { ''' + getValueFromLang(item['my0:jobDescription'], language) + r'''} \resumeItemListEnd''' main = main + r'''\resumeEntryEnd ''' if(data['my0:hasProject']): # write project information about the user main = main + r''' %-------------------------------------------------- PROJECTS -------------------------------------------------- \section{\faFlask}{''' + projectTitle[language] + r'''} ''' projects = sorted( data['my0:hasProject'], key=lambda x: x['my0:projectStartDate'], reverse=True ) for item in (projects): endDate = item['my0:projectEndDate'] if item['my0:projectEndDate'] == "": endDate = current[language] main = main + r''' \resumeEntryStart \resumeEntryTSDL ''' main = main + r'''{''' + getValueFromLang(item['my0:projectName'], language) + r'''}{ ''' + item['my0:projectStartDate'] + r''' - ''' + endDate + r''' }{''' + getValueFromLang(item['my0:projectCreator'], language) + r'''}{}''' main = main + r'''\resumeItemListStart \resumeItem { ''' + getValueFromLang(item['my0:projectDescription'], language) + r'''} \resumeItemListEnd''' main = main + r'''\resumeEntryEnd ''' if(data['my0:hasPublication']): # write project information about the user main = main + r''' %-------------------------------------------------- PUBLICATIONS -------------------------------------------------- \section{\faBook}{''' + publicationTitle[language] + r'''} ''' publications = sorted( data['my0:hasPublication'], key=lambda x: x['my0:publicationDate'], reverse=True ) for item in (publications): title = r''' \href{''' + item['my0:publicationURL'] + \ r'''}{''' + getValueFromLang(item['my0:publicationTitle'], language) + r'''} ''' main = main + r''' \resumeEntryStart \resumeEntryTSDL ''' main = main + r'''{''' + title + r'''}{''' + \ item['my0:publicationDate'] + r'''}{''' + item['my0:publicationAuthor'] + \ r'''}{''' + item['my0:publicationPublisher'] + r'''}''' main = main + r'''\resumeItemListStart \resumeItem { ''' + getValueFromLang(item['my0:publicationDescription'], language) + r'''} \resumeItemListEnd''' main = main + r'''\resumeEntryEnd ''' if(data['my0:hasPatent']): # write project information about the user main = main + r''' %-------------------------------------------------- PATENTS -------------------------------------------------- \section{\faCertificate}{''' + patentTitle[language] + r'''} ''' patents = sorted( data['my0:hasPatent'], key=lambda x: x['my0:patentIssuedDate'], reverse=True ) for item in (patents): title = r''' \href{''' + item['my0:patentURL'] + r'''}{''' + \ getValueFromLang(item['my0:patentTitle'], language) + ''' - ''' + \ item['my0:patentNumber'] + r'''} ''' endDate = item['my0:patentIssuedDate'] if item['my0:patentIssuedDate'] == "": endDate = pending[language] main = main + r''' \resumeEntryStart \resumeEntryTSDL ''' main = main + r'''{''' + title + r'''}{''' + \ endDate + \ r'''}{''' + item['my0:patentInventor'] + \ r'''}{''' + getValueFromLang(item['my0:patentOffice'], language) + r'''}''' main = main + r'''\resumeItemListStart \resumeItem { ''' + getValueFromLang(item['my0:patentDescription'], language) + r'''} \resumeItemListEnd''' main = main + r'''\resumeEntryEnd ''' if(data['my0:hasSkill']): # write skill information about the user main = main + r''' %-------------------------------------------------- SKILLS -------------------------------------------------- \section{\faGears}{''' + skillTitle[language] + r'''} \resumeEntryStart ''' main = main + r'''\resumeEntryS{''' + \ languageTitle[language] + r''' }{''' firstElementLanguage = False firstElementSkill = False for items in (data['my0:hasSkill']): if(items['@type'] == 'my0:LanguageSkill'): if firstElementLanguage: main = main + comma + getValueFromLang(items['my0:skillName'], language) else: main = main + getValueFromLang(items['my0:skillName'], language) firstElementLanguage = True main = main + r'''} \resumeEntryS{''' + otherTitle[language] + r''' } {''' for items in (data['my0:hasSkill']): if(items['@type'] == 'my0:Skill'): if firstElementSkill: main = main + comma + getValueFromLang(items['my0:skillName'], language) else: main = main + getValueFromLang(items['my0:skillName'], language) firstElementSkill = True main = main + r'''}\resumeEntryEnd ''' return main
def generateHTMLSkills(data, lang): text = r''' <!--==================================================== SKILLS ======================================================--> <section rel="my0:hasSkill" class=" d-flex flex-column" id="skills"> ''' # print language skills text = text + r''' <div class="p-lg-5 p-3 skill-cover"> <h3 class="text-center text-white">''' + languageTitle[ lang] + r'''</h3> <div class="row text-center my-auto "> ''' for skill in (data['my0:hasSkill']): if skill['@type'] == 'my0:LanguageSkill': proficiency = runQueryMainOntology( skill['my0:languageSkillProficiency'], lang) certText = r'''''' certVal = getValueFromLang(skill['my0:skillCertificateName'], lang) if certVal != '': certText = r''' <p><i class="fa fa-certificate mr-1 text-primary"></i><span property="my0:skillCertificateName" content="''' + certVal + r'''">''' + certVal + r'''</span></p> ''' text = text + r''' <div typeof="my0:LanguageSkill" class="col-md-3 col-sm-6"> <div class="skill-item flex-column"> <h4 property="my0:skillName">''' + getValueFromLang( skill['my0:skillName'], lang ) + r'''</h4> <p property="my0:languageSkillProficiency" content="''' + skill[ 'my0:languageSkillProficiency'] + r'''"><span class="counter">''' + proficiency + r'''</span></p>''' + certText + r''' </div> </div> ''' text = text + r''' </div> </div> ''' toolsCatExists = checkSkillCategoryExists( data['my0:hasSkill'], "http://example.com/resume2rdf_value_ontology.rdf#ToolsTechnologies") if toolsCatExists: # print tools and technologies skills text = text + r''' <div class="p-lg-5 p-3 skill-cover"> <h3 class="text-center text-white">''' + toolsTech[ lang] + r'''</h3> <div class="row text-center my-auto "> ''' for skill in (data['my0:hasSkill']): if skill['@type'] == 'my0:Skill' and skill[ 'my0:skillCategory'] == 'http://example.com/resume2rdf_value_ontology.rdf#ToolsTechnologies': certText = r'''''' certVal = getValueFromLang(skill['my0:skillCertificateName'], lang) if certVal != '': certText = r''' <p><i class="fa fa-certificate mr-1 text-primary"></i><span property="my0:skillCertificateName" content="''' + certVal + r'''">''' + certVal + r'''</span></p> ''' text = text + r''' <div typeof="my0:Skill" class="col-md-3 col-sm-6"> <div class="skill-item flex-column"> <h4 property="my0:skillName">''' + getValueFromLang( skill['my0:skillName'], lang) + r'''</h4> ''' + generateSkillLevel( skill['my0:skillLevel']) + certText + r''' </div> </div> ''' text = text + r''' </div> </div> ''' industryCatExists = checkSkillCategoryExists( data['my0:hasSkill'], "http://example.com/resume2rdf_value_ontology.rdf#IndustryKnowledge") if industryCatExists: # print industry knowledge skills text = text + r''' <div class="p-lg-5 p-3 skill-cover"> <h3 class="text-center text-white">''' + industrySkills[ lang] + r'''</h3> <div class="row text-center my-auto "> ''' for skill in (data['my0:hasSkill']): if skill['@type'] == 'my0:Skill' and skill[ 'my0:skillCategory'] == 'http://example.com/rdf2resume_base_ontology.rdf#IndustryKnowledge': certText = r'''''' certVal = getValueFromLang(skill['my0:skillCertificateName'], lang) if certVal != '': certText = r''' <p><i class="fa fa-certificate mr-1 text-primary"></i><span property="my0:skillCertificateName" content="''' + certVal + r'''">''' + certVal + r'''</span></p> ''' text = text + r''' <div typeof="my0:Skill" class="col-md-3 col-sm-6"> <div class="skill-item flex-column"> <h4 property="my0:skillName">''' + getValueFromLang( skill['my0:skillName'], lang) + r'''</h4> <span hidden property="my0:skillLevel" content="''' + skill[ 'my0:skillLevel'] + r'''>''' + skill[ 'my0:skillLevel'] + r'''</span> ''' + generateSkillLevel( skill['my0:skillLevel']) + certText + r''' </div> </div> ''' text = text + r''' </div> </div> ''' personalCatExists = checkSkillCategoryExists( data['my0:hasSkill'], "http://example.com/resume2rdf_value_ontology.rdf#InterpersonalSkills") if personalCatExists: # print interpersonal skills text = text + r''' <div class="p-lg-5 p-3 skill-cover"> <h3 class="text-center text-white">''' + interpersonalSkills[ lang] + r'''</h3> <div class="row text-center my-auto "> ''' for skill in (data['my0:hasSkill']): if skill['@type'] == 'my0:Skill' and skill[ 'my0:skillCategory'] == 'http://example.com/resume2rdf_value_ontology.rdf#InterpersonalSkills': certText = r'''''' certVal = getValueFromLang(skill['my0:skillCertificateName'], lang) if certVal != '': certText = r''' <p><i class="fa fa-certificate mr-1 text-primary"></i><span property="my0:skillCertificateName" content="''' + certVal + r'''">''' + certVal + r'''</span></p> ''' text = text + r''' <div typeof="my0:Skill" class="col-md-3 col-sm-6"> <div class="skill-item flex-column"> <h4 property="my0:skillName">''' + getValueFromLang( skill['my0:skillName'], lang) + r'''</h4> <span hidden property="my0:skillLevel" content="''' + skill[ 'my0:skillLevel'] + r'''>''' + skill[ 'my0:skillLevel'] + r'''</span> ''' + generateSkillLevel( skill['my0:skillLevel']) + certText + r''' </div> </div> ''' text = text + r''' </div> </div> ''' otherCatExists = checkSkillCategoryExists( data['my0:hasSkill'], "http://example.com/resume2rdf_value_ontology.rdf#OtherSkills") if otherCatExists: # print other skills text = text + r''' <div class="p-lg-5 p-3 skill-cover"> <h3 class="text-center text-white">''' + otherSkillTitle[ lang] + r'''</h3> <div class="row text-center my-auto "> ''' for skill in (data['my0:hasSkill']): if skill['@type'] == 'my0:Skill' and skill[ 'my0:skillCategory'] == 'http://example.com/resume2rdf_value_ontology.rdf#OtherSkills': certText = r'''''' certVal = getValueFromLang(skill['my0:skillCertificateName'], lang) if certVal != '': certText = r''' <p><i class="fa fa-certificate mr-1 text-primary"></i><span property="my0:skillCertificateName" content="''' + certVal + r'''">''' + certVal + r'''</span></p> ''' text = text + r''' <div typeof="my0:Skill" class="col-md-3 col-sm-6"> <div class="skill-item flex-column"> <h4 property="my0:skillName">''' + getValueFromLang( skill['my0:skillName'], lang) + r'''</h4> <span hidden property="my0:skillLevel" content="''' + skill[ 'my0:skillLevel'] + r'''>''' + skill[ 'my0:skillLevel'] + r'''</span> ''' + generateSkillLevel( skill['my0:skillLevel']) + certText + r''' </div> </div> ''' text = text + r''' </div> </div> ''' text = text + r''' </section> ''' return text
def generateHTMLHonors(data, lang): text = r''' <!--==================================================== HONOR / AWARDS ======================================================--> <section rel="my0:hasHonorAward" class="resume-section p-3 p-lg-5 d-flex flex-column" id="awards"> <div class="row my-auto"> <div class="col-12"> <h2 class="text-center">''' + honorTitle[ lang] + r'''</h2> <div class="mb-5 heading-border"></div> </div> <div class="main-award col-12" id="award-box"> ''' honors = sorted(data['my0:hasHonorAward'], key=lambda x: x['my0:honorIssuedDate'], reverse=True) # print honor info for honor in honors: date_obj = datetime.strptime(honor['my0:honorIssuedDate'], '%Y-%m-%d') text = text + r''' <div typeof="my0:HonorAward" class="award"> <div class="award-icon"></div> <div class="award-content"> <span class="date" property="my0:honorIssuedDate" content="''' + honor[ 'my0:honorIssuedDate'] + r'''">''' + date_obj.strftime( "%m/%Y") + r'''</span> <h5 class="title"><span property="my0:honortitle">''' + getValueFromLang( honor['my0:honortitle'], lang) + r'''</span></h5> <p property="my0:honorDescription" class="description">''' + getValueFromLang( honor['my0:honorDescription'], lang) + r'''</p> </div> </div> ''' text = text + r''' </div> </div> </section> ''' return text
def generateHTMLPublications(data, lang): text = r''' <!--==================================================== PUBLICATIONS ======================================================--> <section rel="my0:hasPublication" class="resume-section p-3 p-lg-5 " id="publications"> <div class="row my-auto"> <div class="col-12"> <h2 class="text-center">''' + publicationTitle[ lang] + r'''</h2> <div class="mb-5 heading-border"></div> </div> ''' publications = sorted(data['my0:hasPublication'], key=lambda x: x['my0:publicationDate'], reverse=True) # print publication info for publication in publications: date_print = r'''''' if publication['my0:publicationDate'] != '': date_obj = datetime.strptime(publication['my0:publicationDate'], '%Y-%m-%d') date_print = date_obj.strftime("%m/%Y") text = text + r''' <div class="resume-item col-md-12 col-sm-12 col-lg-6"> <div typeof="my0:Publication" class="resume-item col-md-12 col-sm-12 "> <div class="card mx-0 p-4 mb-5" style="border-color: #042a49; box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.21);"> <div class=" resume-content mr-auto"> <h4 class="mb-3"><i class="fa fa-book mr-3 text-primary"></i><span property="my0:publicationTitle" content="''' + getValueFromLang( publication['my0:publicationTitle'], lang ) + r'''">''' + getValueFromLang( publication['my0:publicationTitle'], lang ) + r'''</span></h4> <h4 class="mb-3"><i class="fa fa-pencil mr-3" style="color: #074679;"></i> <span property="my0:publicationAuthor" content="''' + publication[ 'my0:publicationAuthor'] + r'''">''' + publication[ 'my0:publicationAuthor'] + r'''</span> </h4> <p property="my0:publicationDescription">''' + getValueFromLang( publication['my0:publicationDescription'], lang ) + r'''</p> </div> <div class="resume-date text-md-right"> <span property="my0:publicationDate" content="''' + publication[ 'my0:publicationDate'] + r'''" class="text-primary">''' + date_print + r'''</span> </div> </div> </div> ''' text = text + r''' </div> </section> ''' return text
def generateHTMLPatents(data, lang): text = r''' <!--==================================================== PATENT ======================================================--> <section rel="my0:hasPatent" class="resume-section p-3 p-lg-5 " id="patents"> <div class="row my-auto"> <div class="col-12"> <h2 class=" text-center">''' + patentTitle[ lang] + r'''</h2> <div class="mb-5 heading-border"></div> </div> ''' patents = sorted(data['my0:hasPatent'], key=lambda x: x['my0:patentIssuedDate'], reverse=True) # print patent info for patent in patents: status = runQueryMainOntology(patent['my0:patentStatus'], lang) date_print = r'''''' if patent['my0:patentIssuedDate'] != '': date_obj = datetime.strptime(patent['my0:patentIssuedDate'], '%Y-%m-%d') date_print = r''' <span property="my0:patentIssuedDate" class="text-primary" content="''' + patent[ 'my0:patentIssuedDate'] + r'''">''' + date_obj.strftime( "%m/%Y") + r'''</span> ''' else: date_print = r''' <span property="my0:patentStatus" content="''' + patent[ 'my0:patentStatus'] + r'''" class="text-primary">''' + status + r'''</span> ''' text = text + r''' <div typeof="my0:Patent" class="resume-item col-md-12 col-sm-12 col-lg-6 "> <div class="card mx-0 p-4 mb-5" style="border-color: #010e18; box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.21);"> <div class=" resume-content mr-auto"> <h4 class="mb-3"><i class="fa fa-certificate mr-3 text-primary"></i><span property="my0:patentNumber"> ''' + patent[ 'my0:patentNumber'] + r'''</span><span property="my0:patentTitle" content="''' + getValueFromLang( patent['my0:patentTitle'], lang) + r'''"> - ''' + getValueFromLang( patent['my0:patentTitle'], lang) + r'''</span></h4> <h4 class="mb-3"><i class="fa fa-pencil text-primary mr-3"></i> <span property="my0:patentInventor" content="''' + patent[ 'my0:patentInventor'] + r'''">''' + patent[ 'my0:patentInventor'] + r'''</span> </h4> <p property="my0:patentDescription">''' + getValueFromLang( patent['my0:patentDescription'], lang) + r'''</p> </div> <div class="resume-date text-md-right"> ''' + date_print + r''' </div> </div> </div> ''' text = text + r''' </div> </section> ''' return text
def generateHTMLEducationCourses(data, lang): text = r''' <!--==================================================== EDUCATION / COURSES ======================================================--> <section class="resume-section p-3 p-lg-5 " id="education"> <div rel="my0:hasEducation" class="row my-auto"> <div class="col-12"> <h2 class=" text-center">''' + educationTitle[ lang] + r'''</h2> <div class="mb-5 heading-border"></div> </div> ''' edus = sorted(data['my0:hasEducation'], key=lambda x: x['my0:eduStartDate'], reverse=True) # print education for edu in edus: eduOrg = edu['my0:studiedIn'] eduOrgAddress = eduOrg['my0:orgAddress'] text = text + r''' <div typeof="my0:Education" class="resume-item col-md-12 col-sm-12 col-lg-8 "> <div class="card mx-0 p-4 mb-5" style="border-color: #0962a9; box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.21);"> <div class="resume-content mr-auto"> <h4 class="mb-3"><i class="fa fa-graduation-cap mr-3 text-primary"></i><span property="my0:degree" content="''' + edu[ 'my0:degree'] + r'''">''' + runQueryMainOntology( edu['my0:degree'], lang) + r'''</span> <span property="my0:degreeFieldOfStudy" content="''' + getValueFromLang( edu['my0:degreeFieldOfStudy'], lang ) + r'''"> - ''' + getValueFromLang( edu['my0:degreeFieldOfStudy'], lang ) + r'''</span></h4> <h4 class="mb-3"><i class="fa fa-map-marker mr-3" style="color: #074679;"></i><span rel="my0:studiedIn" typeOf="my0:EducationalOrg"> <span property="my0:orgName" content="''' + getValueFromLang( eduOrg['my0:orgName'], lang ) + r'''">''' + getValueFromLang( eduOrg['my0:orgName'], lang ) + r'''</span> <span rel="my0:orgAddress" typeOf="my0:Address"> <span property="my0:city" content="''' + getValueFromLang( eduOrgAddress['my0:city'], lang ) + r'''"> - ''' + getValueFromLang( eduOrgAddress['my0:city'], lang ) + r'''</span><span property="my0:country" content="''' + eduOrgAddress[ 'my0:country'] + r'''">, ''' + runQueryCountryMainOntology( eduOrgAddress['my0:country'], lang) + r'''</span></span> </h4> <p property="my0:eduDescription">''' + getValueFromLang( edu['my0:eduDescription'], lang) + r'''</p> </div> ''' + generateHTMLTwoDateSection( 'eduStartDate', edu['my0:eduStartDate'], 'eduGradDate', edu['my0:eduGradDate'], 'my0:isEduCurrent', edu['my0:isEduCurrent'], lang) + r''' </div> </div> ''' text = text + r''' </div> <div rel="my0:hasCourse" class="row my-auto" id="courses"> <div class="col-12"> <h2 class=" text-center">''' + courseTitle[ lang] + r'''</h2> <div class="mb-5 heading-border"></div> </div> ''' courses = sorted(data['my0:hasCourse'], key=lambda x: x['my0:courseStartDate'], reverse=True) # print courses for course in courses: courseOrg = course['my0:organizedBy'] text = text + r''' <div typeof="my0:Course" class="resume-item col-md-12 col-sm-12 col-lg-8 "> <div class="card mx-0 p-4 mb-5" style="border-color: #074679; box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.21);"> <div class=" resume-content mr-auto"> <h4 class="mb-3"><i class="fa fa-globe mr-3 text-primary"></i><span property="my0:courseTitle"> ''' + getValueFromLang( course['my0:courseTitle'], lang ) + r'''</span><span rel="my0:organizedBy" typeof="my0:Organization"><span property="my0:orgName" content="''' + courseOrg[ 'my0:orgName'] + r'''"> - ''' + courseOrg[ 'my0:orgName'] + r'''</span></span></h4> <p property="my0:courseDescription">''' + getValueFromLang( course['my0:courseDescription'], lang) + r'''</p> </div> ''' + generateHTMLTwoDateSection( 'courseStartDate', course['my0:courseStartDate'], 'courseFinishDate', course['my0:courseFinishDate'], '', '', lang) + r''' </div> </div> ''' text = text + r''' </div> </section> ''' return text
def generateHTMLWorkExperience(data, lang): text = r''' <!--==================================================== WORK EXPERIENCE ======================================================--> <section class="resume-section p-3 p-lg-5 " id="experience"> <div rel="my0:hasWorkHistory" class="row my-auto"> <div class="col-12"> <h2 class=" text-center">''' + workTitle[ lang] + r'''</h2> <div class="mb-5 heading-border"></div> </div> ''' works = sorted(data['my0:hasWorkHistory'], key=lambda x: x['my0:startDate'], reverse=True) for work in works: workOrg = work['my0:employedIn'] workOrgAddress = workOrg['my0:orgAddress'] text = text + r''' <div typeof="my0:WorkHistory" class="resume-item col-md-6 col-sm-12 col-lg-8"> <div class="card mx-0 p-4 mb-5" style="border-color: #2598f3; box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.21);"> <div class="resume-content mr-auto"> <h4 class="mb-3"><i class="fa fa-globe mr-3 text-primary"></i><span property="my0:jobTitle"> ''' + getValueFromLang( work['my0:jobTitle'], lang ) + r'''</span><span property="my0:jobType" content="''' + work[ 'my0:jobType'] + r'''"> (''' + runQueryMainOntology( work['my0:jobType'], lang ) + r''')</span></h4> <h4 class="mb-3"><i class="fa fa-map-marker mr-3" style="color: #074679;"></i><span rel="my0:employedIn" typeOf="my0:Company"> <span property="my0:orgName" content="''' + workOrg[ 'my0:orgName'] + r'''">''' + workOrg['my0:orgName'] + r'''</span> <span rel="my0:orgAddress" typeOf="my0:Address"> <span property="my0:city" content="''' + getValueFromLang( workOrgAddress['my0:city'], lang ) + r'''"> - ''' + getValueFromLang( workOrgAddress['my0:city'], lang ) + r'''</span><span property="my0:country" content="''' + workOrgAddress[ 'my0:country'] + r'''">, ''' + runQueryCountryMainOntology( workOrgAddress['my0:country'], lang) + r'''</span></span> </h4> <p property="my0:jobDescription">''' + getValueFromLang( work['my0:jobDescription'], lang) + r'''</p> </div> ''' + generateHTMLTwoDateSection( 'startDate', work['my0:startDate'], 'endDate', work['my0:endDate'], 'my0:isCurrent', work['my0:isCurrent'], lang) + r''' </div> </div> ''' text = text + r''' </div> </section> ''' return text
def generateHTMLABOUT(aboutData, lang): address = aboutData['my0:address'] formerName = aboutData["my0:formerName"] formerNameText = r'''''' if formerName != "": formerNameText = r''' <span property="my0:formerName" content="''' + aboutData[ 'my0:formerName'] + r'''" class="text-primary">(''' + aboutData[ 'my0:formerName'] + r''')</span> ''' countryName = runQueryCountryMainOntology(address['my0:country'], lang) fullAddress = getValueFromLang(address['my0:street'], lang) + ' ' + address['my0:postalCode'] + \ ' ' + getValueFromLang(address['my0:city'], lang) + ' ' + countryName # add initial info on person, first name, last name, descriptions text = r''' <!--==================================================== ABOUT ======================================================--> <section rel="my0:aboutPerson" typeof="my0:Person" class="resume-section p-3 p-lg-5 d-column" id="about"> <div class="row my-auto pt-5"> <h1 class="mb-0 col-12 text-center"> <span property="my0:title" content="''' + aboutData[ 'my0:title'] + r'''" class="text-primary">''' + runQueryMainOntology( aboutData['my0:title'], lang ) + r'''</span> <span property="my0:firstName" content="''' + aboutData[ 'my0:firstName'] + r'''">''' + aboutData['my0:firstName'] + r'''</span> <span property="my0:lastName" content="''' + aboutData[ 'my0:lastName'] + r'''" class="text-primary">''' + aboutData[ 'my0:lastName'] + r'''</span> ''' + formerNameText + r''' </h1> <div class="subheading mb-5 col-12 text-center" property="my0:personShortDescription">''' + getValueFromLang( aboutData['my0:personShortDescription'], lang) + r''' </div> <p property="my0:personLongDescription" class="col-12 ofsset-12 col-md-8 text-center mb-5 pt-3">''' + getValueFromLang( aboutData['my0:personLongDescription'], lang) + r''' </p> <ul rel="my0:hasWebsite" class="list-inline list-social-icons mb-0 col-12 pt-5 text-center"> ''' # add website information for website in (aboutData['my0:hasWebsite']): websiteType = getnameURI(website['my0:websiteType']).lower() websiteText = 'globe' if websiteType == 'facebook' or websiteType == 'linkedin' or websiteType == 'instagram' or websiteType == 'twitter' or websiteType == 'xing' or websiteType == 'github': websiteText = websiteType text = text + r''' <li class="list-inline-item"> <a target="_blank" href="''' + website[ 'my0:websiteURL'] + r'''" typeof="my0:Website"> <span class="fa-stack fa-lg" property="my0:websiteURL" content="''' + website[ 'my0:websiteURL'] + r'''"> <i class="fa fa-circle fa-stack-2x"></i> <i class="fa fa-''' + websiteText + r''' fa-stack-1x fa-inverse"></i> </span> <span hidden property="my0:websiteType" content="''' + website[ 'my0:websiteType'] + r'''"> </span> </a> </li> ''' # add contact information text = text + r''' </ul> </div>''' text = text + r''' <br /> <div class="row justify-content-center my-auto pt-5 text-center"> <div class="contact-cont2 col-4 col-md-2"> <div rel="my0:address" class="contact-add contact-box-desc"> <h3><i class="fa fa-map-marker cl-atlantis fa-1x"></i> Address</a></h3> <a target="_empty" href="https://www.openstreetmap.org/search?query=''' + fullAddress + r'''" typeof="my0:Address"> <span property="my0:street" content="''' + getValueFromLang( address['my0:street'], lang ) + r'''">''' + getValueFromLang( address['my0:street'], lang ) + r'''<span><br /> <span property="my0:postalCode" content="''' + address[ 'my0:postalCode'] + r'''">''' + address[ 'my0:postalCode'] + r'''</span> <span property="my0:city" content="''' + getValueFromLang( address['my0:city'], lang ) + r'''">''' + getValueFromLang( address['my0:city'], lang ) + r'''</span> <p property="my0:country" content="''' + address[ 'my0:country'] + r'''"> ''' + countryName + r'''</p> </a> </div> </div> <div class="contact-phone contact-box-desc col-4 col-md-2"> <h3><i class="fa fa-phone cl-atlantis fa-1x"></i> Phone</h3> <p property="my0:phoneNumberMobile" content="''' + aboutData[ 'my0:phoneNumberMobile'] + r'''">''' + aboutData[ 'my0:phoneNumberMobile'] + r'''</p> </div> <div class="contact-mail contact-box-desc col-4 col-md-2"> <h3><i class="fa fa-envelope-o cl-atlantis fa-1x"></i> E-mail</h3> <address property="my0:email" content="''' + aboutData[ 'my0:email'] + r'''" class="address-details-f"> <a href="mailto:''' + aboutData[ 'my0:email'] + r'''" class="">''' + aboutData[ 'my0:email'] + r'''</a> </address> </div> </div> </section> ''' return text
def generateMainDesign1(data, language): main = headerCV1 if (data['my0:aboutPerson']): item = data['my0:aboutPerson'] address = item['my0:address'] country = runQueryCountryMainOntology(address['my0:country'], language) # write personal information about the user main = main + r''' \begin{tabular*}{7in}{l@{\extracolsep{\fill}}r} \textbf{\Large ''' + item['my0:firstName'] + space + item[ 'my0:lastName'] + r'''} & \textbf{} \\ ''' + getValueFromLang( address['my0:street'], language) + space + address[ 'my0:postalCode'] + r''' & ''' + item['my0:email'] + r'''\\ ''' + getValueFromLang(address['my0:city'], language) + comma + country + r''' & ''' + item[ 'my0:phoneNumberMobile'] + r'''\\''' # write website information about the user for website in (item['my0:hasWebsite']): if doesURIContainWord(website['my0:websiteType'], 'Linkedin'): main = main + \ r'''\faLinkedin { } \href{''' + website['my0:websiteURL'] + \ r'''}{''' + website['my0:websiteURL'] + r'''} & \\''' elif doesURIContainWord(website['my0:websiteType'], 'Xing'): main = main + \ r'''\faXing { } \href{''' + website['my0:websiteURL'] + \ r'''}{''' + website['my0:websiteURL'] + r'''} & \\''' else: main = main + r'''\faGlobe { } \href{''' + website[ 'my0:websiteURL'] + r'''}{''' + website[ 'my0:websiteURL'] + r'''} & \\ ''' main = main + r''' \end{tabular*} \\''' if (data['my0:hasWorkHistory']): main = main + r''' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \resheading{''' + workTitle[language] + r'''} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{itemize}''' works = sorted(data['my0:hasWorkHistory'], key=lambda x: x['my0:startDate'], reverse=True) for item in (works): endDate = item['my0:endDate'] address = item['my0:employedIn']['my0:orgAddress'] countryName = runQueryCountryMainOntology(address['my0:country'], language) cityName = getValueFromLang(address['my0:city'], language) jobTitle = getValueFromLang(item['my0:jobTitle'], language) jobType = runQueryMainOntology(item['my0:jobType'], language) if item['my0:endDate'] == "": endDate = current[language] main = main + r''' \item \ressubheading{''' + item['my0:employedIn'][ 'my0:orgName'] + r'''}{''' + cityName + r''', ''' + countryName + r'''}{''' + jobTitle + comma + jobType + r'''}{''' + item[ 'my0:startDate'] + r''' - ''' + endDate + r'''}\\ \begin{itemize} \item[]{''' + getValueFromLang(item['my0:jobDescription'], language) + r'''} \end{itemize}''' main = main + r'''\end{itemize}''' if (data['my0:hasEducation']): main = main + r''' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \resheading{''' + educationTitle[language] + r'''} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{itemize}''' educations = sorted(data['my0:hasEducation'], key=lambda x: x['my0:eduStartDate'], reverse=True) for item in (educations): endDate = item['my0:eduGradDate'] address = item['my0:studiedIn']['my0:orgAddress'] countryName = runQueryCountryMainOntology(address['my0:country'], language) cityName = getValueFromLang(address['my0:city'], language) if item['my0:eduGradDate'] == "": endDate = current[language] main = main + r''' \item \ressubheading{''' + getValueFromLang( item['my0:studiedIn']['my0:orgName'], language ) + r'''}{''' + cityName + r''', ''' + countryName + r'''}{''' + runQueryMainOntology( item['my0:degree'], language) + comma + getValueFromLang( item['my0:degreeFieldOfStudy'], language) + r'''}{''' + item[ 'my0:eduStartDate'] + r''' - ''' + endDate + r'''}\\ \begin{itemize} \item[]{''' + getValueFromLang(item['my0:eduDescription'], language) + r'''} \end{itemize}''' main = main + r'''\end{itemize}''' if (data['my0:hasCourse']): main = main + r''' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \resheading{''' + courseTitle[language] + r'''} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{itemize}''' courses = sorted(data['my0:hasCourse'], key=lambda x: x['my0:courseStartDate'], reverse=True) for item in (courses): endDate = item['my0:courseFinishDate'] address = item['my0:organizedBy']['my0:orgAddress'] countryName = runQueryCountryMainOntology(address['my0:country'], language) cityName = getValueFromLang(address['my0:city'], language) if item['my0:courseFinishDate'] == "": endDate = current[language] main = main + r''' \item \ressubheading{''' + item['my0:organizedBy'][ 'my0:orgName'] + r'''}{''' + cityName + r''', ''' + countryName + r'''}{''' + getValueFromLang( item['my0:courseTitle'], language ) + comma + item['my0:courseURL'] + r'''}{''' + item[ 'my0:courseStartDate'] + r''' - ''' + endDate + r'''}\\ \begin{itemize} \item[]{''' + getValueFromLang(item['my0:courseDescription'], language) + r'''} \end{itemize}''' main = main + r'''\end{itemize}''' if (data['my0:hasPublication']): main = main + r''' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \resheading{''' + publicationTitle[language] + r'''} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{itemize}''' publications = sorted(data['my0:hasPublication'], key=lambda x: x['my0:publicationDate'], reverse=True) for item in (publications): main = main + r''' \item \ressubheading{''' + getValueFromLang( item['my0:publicationTitle'], language) + r'''}{''' + item[ 'my0:publicationPublisher'] + r'''}{''' + item[ 'my0:publicationAuthor'] + r'''}{''' + item[ 'my0:publicationDate'] + r'''}\\ \begin{itemize} \item[]{''' + getValueFromLang(item['my0:publicationDescription'], language) + r'''} \end{itemize}''' main = main + r'''\end{itemize}''' if (data['my0:hasProject']): main = main + r''' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \resheading{''' + projectTitle[language] + r'''} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{itemize}''' projects = sorted(data['my0:hasProject'], key=lambda x: x['my0:projectStartDate'], reverse=True) for item in (projects): endDate = item['my0:projectEndDate'] if item['my0:projectEndDate'] == "": endDate = current[language] main = main + r''' \item \ressubheading{''' + getValueFromLang( item['my0:projectName'], language ) + r'''}{''' + getValueFromLang( item['my0:projectCreator'], language ) + r'''}{''' + getValueFromLang( item['my0:projectRole'], language) + r'''}{''' + item[ 'my0:projectStartDate'] + r''' - ''' + endDate + r'''}\\ \begin{itemize} \item[]{''' + getValueFromLang(item['my0:projectDescription'], language) + r'''} \end{itemize}''' main = main + r'''\end{itemize}''' if (data['my0:hasPatent']): main = main + r''' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \resheading{''' + patentTitle[language] + r'''} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{itemize}''' patents = sorted(data['my0:hasPatent'], key=lambda x: x['my0:patentIssuedDate'], reverse=True) for item in (patents): endDate = item['my0:patentIssuedDate'] if item['my0:patentIssuedDate'] == "": endDate = pending[language] main = main + r''' \item \ressubheading{''' + item[ 'my0:patentNumber'] + r''' - ''' + getValueFromLang( item['my0:patentTitle'], language ) + r'''}{''' + getValueFromLang( item['my0:patentOffice'], language) + r'''}{''' + item[ 'my0:patentInventor'] + r'''}{''' + endDate + r'''}\\ \begin{itemize} \item[]{''' + getValueFromLang(item['my0:patentDescription'], language) + r'''} \end{itemize}''' main = main + r'''\end{itemize}''' if (data['my0:hasOtherInfo']): main = main + r''' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \resheading{''' + otherInfoTitle[language] + r'''} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{itemize}''' for item in (data['my0:hasOtherInfo']): main = main + r''' \item[] \ressubheading{''' + runQueryMainOntology( item['my0:otherInfoType'], language) + r'''}{}{}{}\\*''' + getValueFromLang( item['my0:otherInfoDescription'], language) main = main + r'''\end{itemize}''' return main