+#-*- coding: utf-8 -*-
+"""
+Module contenant le code permettant de créer des feuilles ods contenant les tâches pour chaque contener.
+"""
+
+from odf.opendocument import OpenDocumentSpreadsheet
+from odf.style import Style, TextProperties, TableColumnProperties,\
+ParagraphProperties
+from odf.text import P
+from odf.table import Table, TableColumn, TableRow, TableCell
+
+
+def create_cell(text):
+ """
+ Permet de créer une cellule contenant le text.
+
+ text : une chaine de caractères
+
+ Revoit une cellule TableCell
+ """
+ tc = TableCell()
+ tc.addElement(P(text=text))
+ return tc
+
+
+def create_doc(containers, container_tasks):
+ """
+ Permet de créer un document ods comprenant une feuille pour chaque contener, avec la liste des tâches.
+
+ containers : une liste de dictionnaires de containers
+ tasks : un dictionnaire qui assosie à chaque ID de container la liste des tâches qu'il contient
+ """
+ document = OpenDocumentSpreadsheet()
+ tablecontents = Style(name="Table Contents", family="paragraph")
+ tablecontents.addElement(ParagraphProperties(numberlines="false", linenumber="0"))
+ document.styles.addElement(tablecontents)
+
+ #container_keys = ['name','description']
+ task_keys = ['name', 'description', 'manday', 'priority', 'state', 'planned', 'milestone']
+
+ for c in containers:
+ table = Table(name=c['name'])
+ document.spreadsheet.addElement(table)
+
+ tasks = container_tasks[c['id']]
+
+ tr = TableRow()
+ table.addElement(tr)
+ tr.addElement(create_cell("Name"))
+ tr.addElement(create_cell(c["name"]))
+ tr.addElement(create_cell(""))
+ tr.addElement(create_cell("Target"))
+ tr.addElement(create_cell(c["target"]))
+
+ tr = TableRow()
+ table.addElement(tr)
+ tr.addElement(create_cell("Description"))
+ tr.addElement(create_cell(c["description"]))
+ tr.addElement(create_cell(""))
+ tr.addElement(create_cell("Milestone"))
+ tr.addElement(create_cell(c["milestone"]))
+
+ if not tasks:
+ continue
+
+ tr = TableRow()
+ table.addElement(tr)
+
+ tr = TableRow()
+ table.addElement(tr)
+ for k in task_keys:
+ tc = TableCell()
+ tc.addElement(P(text=k))
+ tr.addElement(tc)
+
+ for t in tasks:
+ tr = TableRow()
+ table.addElement(tr)
+ for tk in task_keys:
+ tc = TableCell()
+ tc.addElement(P(text=t[tk]))
+ tr.addElement(tc)
+
+ document.save("Mes todolist.ods")
\ No newline at end of file