diff --git a/cv.py b/cv.py index da82c0a..8c9f1e1 100644 --- a/cv.py +++ b/cv.py @@ -2,12 +2,19 @@ import shutil import sys -from pylatex import Command, Document - -from cv_sections import (competence, contact, education, experience, heading, - reward, work) +from cv_sections import ( + competence, + contact, + education, + experience, + heading, + license, + reward, + work, +) from cv_setups import colors, docsetup from cv_setups import packages as pkgs +from pylatex import Command, Document def fill_document(doc): @@ -18,6 +25,7 @@ def fill_document(doc): experience.add_experience(doc, cv_data) education.add_education(doc, cv_data) work.add_work_experience(doc, cv_data) + license.add_license(doc, cv_data) reward.add_reward(doc, cv_data) competence.add_competence(doc, cv_data) cv_file.close() diff --git a/cv_sections/license.py b/cv_sections/license.py new file mode 100644 index 0000000..d05d616 --- /dev/null +++ b/cv_sections/license.py @@ -0,0 +1,24 @@ +from pylatex import Command, NoEscape, Section + + +def add_license(doc, cv_data): + with doc.create(Section("Professional Memberships & Licenses")): + for index, license in enumerate(cv_data["license"]): + doc.append(Command("textbf", arguments=NoEscape(license["title"]))) + date = f"Issued {license['issued']}" + if "expiration" in license: + date += f". Expires {license['expiration']}" + + doc.append(Command("hfill", arguments=NoEscape(f"{date}"))) + doc.append(NoEscape("\\\\")) + doc.append( + Command( + "href", + arguments=NoEscape(license["issuer_url"]), + extra_arguments=license["issuer"], + ) + ) + if index == len(cv_data["license"]) - 1: + doc.append(NoEscape("\n\n\n")) + else: + doc.append(NoEscape("\n\\vspace{0.1cm}\n\n")) diff --git a/export/CV.pdf b/export/CV.pdf index 880614f..12fe1d8 100644 Binary files a/export/CV.pdf and b/export/CV.pdf differ diff --git a/export/CV.tex b/export/CV.tex index cf79648..2834438 100644 --- a/export/CV.tex +++ b/export/CV.tex @@ -262,6 +262,22 @@ \section{Industry Experience}% \href{https://www.netgear.com/home/mobile-wifi/hotspots/}{NETGEAR}% \hfill{Jan 2019 - Aug 2019}% +% +\section{Professional Memberships \& Licenses}% +\label{sec:ProfessionalMembershipsLicenses}% +\textbf{TCPS 2: CORE-2022 (Course on Research Ethics)}% +\hfill{Issued Dec 2023}% +\\% +\href{http://tcps2core.ca/welcome}{Panel on Research Ethics}% + +\vspace{0.1cm} + +% +\textbf{Canada GCP - Research Coordinator/Assistant 1}% +\hfill{Issued Dec 2023. Expires Dec 2026}% +\\% +\href{https://www.citiprogram.org/verify/?w863ec4d4-5ec7-4d72-a8ff-2be72bd60ee5-59908595}{Collaborative Institutional Training Initiative}% + % \section{Awards}% \label{sec:Awards}% diff --git a/import/cv.json b/import/cv.json index f62403d..2e5010a 100644 --- a/import/cv.json +++ b/import/cv.json @@ -123,6 +123,21 @@ "completion": "2019" } ], + "license": [ + { + "title": "TCPS 2: CORE-2022 (Course on Research Ethics)", + "issuer": "Panel on Research Ethics", + "issuer_url": "http://tcps2core.ca/welcome", + "issued": "Dec 2023" + }, + { + "title": "Canada GCP - Research Coordinator/Assistant 1", + "issuer": "Collaborative Institutional Training Initiative", + "issuer_url": "https://www.citiprogram.org/verify/?w863ec4d4-5ec7-4d72-a8ff-2be72bd60ee5-59908595", + "issued": "Dec 2023", + "expiration": "Dec 2026" + } + ], "technique": [ "Python (+ machine learning \\& astronomy libraries and quantum computing frameworks)", "C/C++",