adrien.aribaut-gaudin commited on
Commit
445a883
1 Parent(s): 8e58322

fix: table insertion with index

Browse files
Files changed (1) hide show
  1. src/domain/doc.py +22 -5
src/domain/doc.py CHANGED
@@ -426,7 +426,8 @@ class Doc:
426
  log_dict = {'list_mapping': log}
427
  return log_dict
428
 
429
- def table_insertion(self, paragraph: Paragraph, content: dict):
 
430
  #the content is the content of the table with the following format:
431
  #content = {
432
  # "header": ["header1", "header2", "header3"],
@@ -436,9 +437,26 @@ class Doc:
436
  # ["row3", "row3", "row3"],
437
  # ]
438
  #}
439
- self.xdoc.add_table(rows = len(content["rows"]) + 1, cols = len(content["headers"]))
440
- #Normal table default style
441
- table = self.xdoc.tables[-1]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
442
  #add the header
443
  for i, header in enumerate(content["headers"]):
444
  table.cell(0, i).text = header
@@ -448,7 +466,6 @@ class Doc:
448
  table.cell(i+1, j).text = cell
449
  #insert the table after the paragraph
450
  self.move_table_after(table, paragraph.xparagraph)
451
- self.rearrange_tables()
452
  #save the doc
453
  self.save_as_docx()
454
  return table
 
426
  log_dict = {'list_mapping': log}
427
  return log_dict
428
 
429
+ def table_insertion(self, index: str, content: dict):
430
+ #the index is the index of the block in the docx file where to insert the table
431
  #the content is the content of the table with the following format:
432
  #content = {
433
  # "header": ["header1", "header2", "header3"],
 
437
  # ["row3", "row3", "row3"],
438
  # ]
439
  #}
440
+ list_of_indexes = index.split(".")
441
+ index_in_list = [eval(i) for i in list_of_indexes]
442
+ #find the container which has the index
443
+ paragraph : Paragraph = None
444
+ containers : [Container] = self.container.containers
445
+ for c in containers:
446
+ if c.index == index_in_list:
447
+ if c.title:
448
+ paragraph = c.title
449
+ else:
450
+ paragraph = c.paragraphs[0]
451
+ break
452
+ if not paragraph:
453
+ print("The index is not valid")
454
+ return None
455
+
456
+ table = self.xdoc.add_table(rows = len(content["rows"]) + 1, cols = len(content["headers"]))
457
+ #set style below
458
+
459
+
460
  #add the header
461
  for i, header in enumerate(content["headers"]):
462
  table.cell(0, i).text = header
 
466
  table.cell(i+1, j).text = cell
467
  #insert the table after the paragraph
468
  self.move_table_after(table, paragraph.xparagraph)
 
469
  #save the doc
470
  self.save_as_docx()
471
  return table