3 Module contenant le code permettant de créer des feuilles ods contenant
4 les tâches pour chaque contener.
7 from odf.opendocument import OpenDocumentSpreadsheet
8 from odf.style import Style, TextProperties,\
9 TableColumnProperties, ParagraphProperties, GraphicProperties
10 from odf.text import P
11 from odf.table import Table, TableColumn, TableRow, TableCell
14 def create_cell(text, style=None):
16 Permet de créer une cellule contenant le text.
18 text : une chaine de caractères
20 Revoit une cellule TableCell
25 tc = TableCell(stylename=style)
26 tc.addElement(P(text=text))
30 def create_doc(containers, container_tasks):
32 Permet de créer un document ods comprenant une feuille
33 pour chaque contener, avec la liste des tâches.
35 containers : une liste de dictionnaires de containers
36 tasks : un dictionnaire qui assosie à chaque ID de container
37 la liste des tâches qu'il contient
39 document = OpenDocumentSpreadsheet()
40 tablecontents = Style(name="Table Contents", family="paragraph")
41 tablecontents.addElement(ParagraphProperties(numberlines="false",
43 document.styles.addElement(tablecontents)
46 # Création des styles de colonnes
47 width25 = Style(name="Wshort", family="table-column")
48 width25.addElement(TableColumnProperties(columnwidth="2.5cm"))
49 document.automaticstyles.addElement(width25)
51 width3 = Style(name="Wwide", family="table-column")
52 width3.addElement(TableColumnProperties(columnwidth="3cm"))
53 document.automaticstyles.addElement(width3)
55 width9 = Style(name="Wwide", family="table-column")
56 width9.addElement(TableColumnProperties(columnwidth="9cm"))
57 document.automaticstyles.addElement(width9)
59 #Création des styles de titres
60 titre1= Style(name="titre1", family="table-cell")
61 titre1.addElement(TextProperties(fontweight="bold", fontsize="11", color="#1FA055"))
62 document.automaticstyles.addElement(titre1)
64 titre2= Style(name="titre2", family="table-cell")
65 titre2.addElement(TextProperties(fontweight="bold", fontsize="10"))
66 document.automaticstyles.addElement(titre2)
68 #container_keys = ["name", "description", "target", "milestone"]
69 task_keys = ['name', 'description', 'priority', 'state', 'manday',
70 'planned', 'milestone']
73 table = Table(name=c['name'])
75 table.addElement(TableColumn(numbercolumnsrepeated=1,stylename=width3))
76 table.addElement(TableColumn(numbercolumnsrepeated=1,stylename=width9))
77 table.addElement(TableColumn(numbercolumnsrepeated=5,stylename=width25))
78 document.spreadsheet.addElement(table)
80 tasks = container_tasks[c['id']]
84 tr.addElement(create_cell("Name :", "titre1"))
85 tr.addElement(create_cell(c["name"]))
86 tr.addElement(create_cell(""))
87 tr.addElement(create_cell("Target :", "titre1"))
88 tr.addElement(create_cell(c["target"]))
89 tr.addElement(create_cell("Milestone :", "titre1"))
90 tr.addElement(create_cell(c["milestone"]))
94 tr.addElement(create_cell("Description :", "titre1"))
95 tr.addElement(create_cell(c["description"]))
101 table.addElement(TableRow())
105 tr.addElement(create_cell("Tasks :", "titre1"))
110 tc = TableCell(stylename="titre2")
112 tc.addElement(P(text=k.capitalize()))
120 tc.addElement(P(text=t[tk]))
122 document.save("Mes_todolist.ods")