Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • R3/apps/generator
1 result
Show changes
Commits on Source (9)
......@@ -45,9 +45,17 @@ def core(cardDirs, localroot=os.getcwd()):
# extract the title from the QMS metadata
title, qms_yml, yml_file = library.get_title(localroot, root, file)
name = ""
nb = ""
if qms_yml:
name = library.save_tag(localroot, root, yml_file, "name")
qms.prepare_qms(localroot, root, file)
# determine the latest version number
nb = library.save_tag(localroot, root, yml_file, "history", "version")
# prepare the MD version of the QMS document
qms.prepare_qms(localroot, root, file, nb)
# remove the previous header
n = header.remove_header(localroot, root, file)
......@@ -82,7 +90,7 @@ def core(cardDirs, localroot=os.getcwd()):
# generate the header for each card
h = header.generate_header(folder, permalink, shortcut, order, legacy_from, title, description, qms_yml)
h = header.generate_header(folder, permalink, shortcut, order, legacy_from, title, description, name, nb)
# add autogenerated links to whitelist
wl += whitelist.generate_whitelist_entry(folder, permalink, shortcut)
......
......@@ -47,19 +47,27 @@ def root_href(href):
def build_section_start(title, shortcut):
title = title.replace("Gdpr", "GDPR")
title = title.replace("Handbook additional", "Handbook: PI/Supervisor specifics")
title = title.replace("Handbook annexes", "Handbook: Annexes")
title = title.replace("Covid 19", "COVID-19")
title = title.replace("Ppc", "PPC")
title = title.replace("Lab software", "Lab: Software")
title = title.replace("Lab equipment", "Lab: Equipment")
title = title.replace("Lab hsa", "Lab: Health & Safety, Access")
title = title.replace("Lab integrity", "Lab: Integrity")
title = title.replace("Qms sops", "QMS: Standard Operating Procedures (SOPS)")
title = title.replace("Qms policies", "QMS: Policies")
replaceDict = { "Gdpr": "GDPR",
"Handbook additional": "Handbook: PI/Supervisor specifics",
"Handbook annexes": "Handbook: Annexes",
"Covid 19": "COVID-19",
"Ppc": "PPC",
"Lab software": "Lab: Software",
"Lab equipment": "Lab: Equipment",
"Lab hsa": "Lab: Health & Safety, Access",
"Lab integrity": "Lab: Integrity",
"Qms sops": "QMS: Standard Operating Procedures (SOPS)",
"Qms policies": "QMS: Policies",
"Adm": "Administration",
"Aqa": "Aquatic Facility",
"Bic": "Computational (Biocore)",
"Rod": "Rodent Facility"
}
for key, value in replaceDict.items():
title = title.replace(key, value)
return f'\n\t<div class="index-box noborderbox" id="{shortcut}-card">\n\t\t<h3>{title}</h3>\n\t\t<ul>\n'
def build_section_end():
return "\t\t</ul>\n\t</div>"
\ No newline at end of file
return "\t\t</ul>\n\t</div>"
import os
from generator import format
from generator import format, qms
def remove_header(localroot, root, filename):
nfirstlines = []
......@@ -48,7 +48,7 @@ def element_header(folder, prefix, permalink, element):
return element
def generate_header(folder, permalink, shortcut, order, legacy_from, title, description, qms_yml):
def generate_header(folder, permalink, shortcut, order, legacy_from, title, description, name="", nb=""):
header = "---\n"
if len(order) > 0:
......@@ -68,13 +68,16 @@ def generate_header(folder, permalink, shortcut, order, legacy_from, title, desc
# generate specific redirects
header = element_header(folder, " - ", shortcut, header)
qmsDoc = qms.determine_qms(permalink)
# include the legacy section in the redirect_from section
if len(legacy_from) > 0:
for item in legacy_from[1:-1]:
header += str(item)
# add the title and description
if "qms" in permalink:
if qmsDoc:
if len(title) > 0:
header += 'title: "' + title + '"\n'
if len(description) > 0:
......@@ -88,7 +91,9 @@ def generate_header(folder, permalink, shortcut, order, legacy_from, title, desc
header += "---"
# add title for QMS documents
if "qms" in shortcut and qms_yml:
header += "\n# " + title
if qmsDoc:
header += qms.add_link(title, name, nb)
print(title)
return header
\ No newline at end of file
......@@ -8,7 +8,7 @@ from natsort import natsorted
from generator import helper, format
def save_tag(localroot, root, filename, tag):
def save_tag(localroot, root, filename, tag, tag2=""):
return_tag = ""
os.chdir(root)
......@@ -22,7 +22,10 @@ def save_tag(localroot, root, filename, tag):
except yaml.YAMLError as exc:
print(exc)
return_tag = metadata[0][tag]
if len(tag2)>0:
return_tag = metadata[0][tag][0][tag2]
else:
return_tag = metadata[0][tag]
else:
with open(filename, 'r') as f:
......
import os
def prepare_qms(localroot, root, filename):
def get_category(filename):
name_list = filename.split("-")
return name_list[2]
def prepare_qms(localroot, root, filename, nb):
os.chdir(root)
......@@ -15,16 +20,43 @@ def prepare_qms(localroot, root, filename):
# replace latex command for titles
filedata = filedata.replace("{-}", "##")
# get the category
category = get_category(filename)
# deal with img location
filedata = filedata.replace("policies/"+filename[:-3]+"/", "")
filedata = filedata.replace("sops/"+filename[:-3]+"/", "")
filedata = filedata.replace("policies/" + category + "/" + filename[:-3] + "/", "")
filedata = filedata.replace("sops/" + category + "/" + filename[:-3] + "/", "")
# replace img attributes
filedata = filedata.replace("{ width=50% }", "")
filedata += "<br><br>"
filedata += "<i>Displayed version: v" + nb + "</i>"
# Write the file out again
with open(filename, 'w') as file:
file.write(filedata)
# change back to the local root
os.chdir(localroot)
\ No newline at end of file
os.chdir(localroot)
def determine_qms(permalink):
if "qms" in permalink or "policies" in permalink or "sops" in permalink:
return True
else:
return False
def add_link(title, name, nb):
if os.getenv('VERSION') is None:
ver = "latest"
else:
ver = os.getenv('VERSION')
header = "\n# " + title + "\n"
header += "<center>"
header += "<a href='https://qms.lcsb.uni.lu/" + str(ver) + "/" + str(name) + "_v" + nb.replace(".", "") +".pdf'>Download the signed document (version v" + nb + ")</a>"
header += "</center>"
return header
\ No newline at end of file