diff --git a/soitool/codebook_to_pdf.py b/soitool/codebook_to_pdf.py index 90130e44c017e6d0bdfa8385824ff19bba3f1e09..0036805e1a2978402eb5aaa14190e22df62efb37 100644 --- a/soitool/codebook_to_pdf.py +++ b/soitool/codebook_to_pdf.py @@ -38,15 +38,15 @@ PAGE_NUMBER_FONT = "Helvetica" TABLE_STYLE = TableStyle( [ - ("FONTSIZE", (0, 0), (3, 0), 16), # Header-fontsize - ("BOTTOMPADDING", (0, 0), (3, 0), 10), # Header-padding bottom + ("FONTSIZE", (0, 0), (-1, 0), 16), # Header-fontsize + ("BOTTOMPADDING", (0, 0), (-1, 0), 10), # Header-padding bottom ( "BACKGROUND", (0, 0), - (3, 0), + (-1, 0), HEADER_BG_COLOR, ), # Header background-color - ("ALIGN", (0, 0), (3, 0), "CENTER"), # Header-text centered + ("ALIGN", (0, 0), (-1, 0), "CENTER"), # Header-text centered ("GRID", (0, 0), (-1, -1), 1, colors.black), # Border around cells ] ) @@ -80,19 +80,17 @@ def generate_codebook_pdf( # Get data from database data_code, data_decode = get_codebook_data(database, small) - # Create Tables with data sorted by Word/Code and set predefined style - table_code = Table(data_code, repeatRows=1) - table_decode = Table(data_decode, repeatRows=1) - table_code.setStyle(TABLE_STYLE) - table_decode.setStyle(TABLE_STYLE) + # Create code- and decodebook-tables with predefined style + table_code = Table(data_code, style=TABLE_STYLE, repeatRows=1) + table_decode = Table(data_decode, style=TABLE_STYLE, repeatRows=1) - # Add title, vertical spacer and table for codebook elements = [] + # Add title, vertical spacer and table for codebook elements.append(title_code) elements.append(Spacer(0, 1 * cm)) elements.append(table_code) + # Double pagebreak to add separating page between code- and decodebook elements.append(PageBreak()) - # Add blank page to separate code- and decodebook elements.append(PageBreak()) # Add title, vertical spacer and table for decodebook elements.append(title_decode) @@ -158,18 +156,28 @@ def get_codebook_data(database, small=False): data_decode = [] # Add column-headers - data_code.append([HEADERS[0], HEADERS[1], HEADERS[2], HEADERS[3]]) - data_decode.append([HEADERS[0], HEADERS[1], HEADERS[2], HEADERS[3]]) + if small: + data_code.append([HEADERS[0], HEADERS[3], HEADERS[1]]) + data_decode.append([HEADERS[3], HEADERS[0], HEADERS[1]]) + else: + data_code.append([HEADERS[0], HEADERS[3], HEADERS[1], HEADERS[2]]) + data_decode.append([HEADERS[3], HEADERS[0], HEADERS[1], HEADERS[2]]) # Add row data for row in db_data_code: - data_code.append( - [row["word"], row["category"], row["type"], row["code"]] - ) + if small: + data_code.append([row["word"], row["code"], row["category"]]) + else: + data_code.append( + [row["word"], row["code"], row["category"], row["type"]] + ) for row in db_data_decode: - data_decode.append( - [row["word"], row["category"], row["type"], row["code"]] - ) + if small: + data_decode.append([row["code"], row["word"], row["category"]]) + else: + data_decode.append( + [row["code"], row["word"], row["category"], row["type"]] + ) return data_code, data_decode diff --git a/soitool/database.py b/soitool/database.py index 525b502c51560285334570c4495ca9ec5c022125..8488d85e04b312f2b14e37465e414759bbbec2a4 100644 --- a/soitool/database.py +++ b/soitool/database.py @@ -30,7 +30,7 @@ CODEBOOK = ( "CREATE TABLE Codebook(" "Word VARCHAR PRIMARY KEY NOT NULL CHECK(length(Word) > 0), " "Category VARCHAR, " - "Type VARCHAR DEFAULT 'Stor' CHECK(Type='Stor' OR Type='Liten'), " + "Type VARCHAR NOT NULL DEFAULT 'Stor' CHECK(Type='Stor' OR Type='Liten'), " "Code VARCHAR UNIQUE)" ) CATEGORYWORDS = (