util/generate-hugo-content.py: add support for fsc.csv

Currently the only difference is the name of the module column and
that there are no mandatory fields so we need to be careful there.
This commit is contained in:
Alan Orth 2021-12-21 18:17:59 +02:00
parent f1807806d1
commit d37bfc453f

View File

@ -44,8 +44,19 @@ def parseSchema(schema_df):
# For example Certifying Body, FSC audit, Certificate, etc # For example Certifying Body, FSC audit, Certificate, etc
cluster = row["idss element cluster"].capitalize() cluster = row["idss element cluster"].capitalize()
# For example Assurance, Certification, Core, Impact, etc # Extract the module (whether from IDSS or extension), for example
module = row["idss schema module"].capitalize() # Assurance, Certification, Core, Impact, etc
if "idss schema module" in df.columns:
module = row["idss schema module"]
# Use the default home layout
layout = "home"
elif "fsc extension module" in df.columns:
module = row["fsc extension module"]
# Since we know this is the FSC schema we can set the layout to
# use the custom fsc layout instead of the default home layout.
layout = "fsc"
# Generate a "safe" version of the element name for use in URLs and # Generate a "safe" version of the element name for use in URLs and
# files by combining the cluster and the element name. This could # files by combining the cluster and the element name. This could
@ -79,8 +90,12 @@ def parseSchema(schema_df):
if row["element controlled values or terms"]: if row["element controlled values or terms"]:
controlled_vocab = True controlled_vocab = True
controlled_vocabulary_src=f"data/controlled-vocabularies/{element_name_safe}.txt" controlled_vocabulary_src = (
controlled_vocabulary_dst=f"site/content/terms/{element_name_safe}/vocabulary.txt" f"data/controlled-vocabularies/{element_name_safe}.txt"
)
controlled_vocabulary_dst = (
f"site/content/terms/{element_name_safe}/vocabulary.txt"
)
copyfile(controlled_vocabulary_src, controlled_vocabulary_dst) copyfile(controlled_vocabulary_src, controlled_vocabulary_dst)
@ -89,7 +104,7 @@ def parseSchema(schema_df):
else: else:
controlled_vocab = False controlled_vocab = False
if row["mandatory?"] == "MANDATORY": if "mandatory?" in df.columns and row["mandatory?"] == "MANDATORY":
required = True required = True
else: else:
required = False required = False
@ -129,6 +144,8 @@ def parseSchema(schema_df):
if cluster: if cluster:
indexLines.append(f"cluster: '{cluster}'\n") indexLines.append(f"cluster: '{cluster}'\n")
indexLines.append(f"policy: '{policy}'\n") indexLines.append(f"policy: '{policy}'\n")
if layout:
indexLines.append(f"layout: '{layout}'\n")
## TODO: use some real date...? ## TODO: use some real date...?
# indexLines.append(f"date: '2019-05-04T00:00:00+00:00'\n") # indexLines.append(f"date: '2019-05-04T00:00:00+00:00'\n")
indexLines.append("---") indexLines.append("---")