From f4a14b9216a01e08ba544c843e4f36a6c6dacfc9 Mon Sep 17 00:00:00 2001
From: laurentheirendt <laurent.heirendt@uni.lu>
Date: Tue, 18 Jan 2022 08:12:55 +0100
Subject: [PATCH] WIP: generate index script

---
 .ci/generateIndex.py | 45 ++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 41 insertions(+), 4 deletions(-)

diff --git a/.ci/generateIndex.py b/.ci/generateIndex.py
index ca411536..568096b6 100644
--- a/.ci/generateIndex.py
+++ b/.ci/generateIndex.py
@@ -148,7 +148,10 @@ index += '\n<div class="index-box-container">\n'
 whiteList = ''
 
 localIndexArr = [[]] * len(sections)
+orderArr = [[]] * len(sections)
 for folder in cardDirs:
+    # FolderFlag gets set to true at the first iteration
+    folderFlag = True
 
     # check if folder exists
     if path.isdir(folder):
@@ -163,12 +166,12 @@ for folder in cardDirs:
 
                 # get the index of the section
                 indexS = sections.index(d)
+                maxOrder = 0
 
                 #print(indexS)
                 if len(localIndexArr[indexS]) == 0:
                     localIndexArr[indexS] = ["\n"]
 
-                orderArr = []
                 # walk through the folders with all the cards
                 for root, dirs, files in os.walk(folder+"/"+d):
                     for file in files:
@@ -200,9 +203,38 @@ for folder in cardDirs:
 
                                 # define the header for each card
                                 header = "---\n"
+
+
+                                print(orderArr)
+
                                 if len(order) > 0:
                                     header += "order: " + str(order) + "\n"
-                                    orderArr.append(int(order))
+                                    #  append the order of the card
+                                    # find the maximum of existing orders
+
+                                    if folderFlag:
+                                        if len(orderArr[indexS]) > 0:
+                                            maxOrder = max(orderArr[indexS])
+                                        else:
+                                            maxOrder = 0
+                                        # after determining the max order, set the folder flag to False to avoid another entry into the same block of code
+                                        folderFlag = False
+
+                                    tmp = orderArr[indexS]
+                                    print("tmp")
+                                    print(tmp)
+                                    tmp.append(maxOrder + int(order))
+                                    orderArr[indexS] = tmp
+                                    print(tmp)
+                                else:
+                                    orderArr[indexS] = []
+
+                                print(orderArr)
+                                print("maxOrder: " + str(maxOrder))
+                                print("folderFlag: " + str(folderFlag))
+                                print("indexS: " + str(indexS))
+
+
                                 header += "layout: page\n"
                                 header += "permalink: " + permalink + "\n"
                                 header += "shortcut: " + root_handbook(shortcut) + "\n"
@@ -259,10 +291,15 @@ for folder in cardDirs:
                                 print(" + New header added.")
                                 print("-----------------------")
 
-                if len(orderArr) > 0:
+                if len(orderArr[indexS]) > 0:
+                    print("here")
+                    print(localIndexArr[indexS])
+                    print(orderArr[indexS])
                     X = localIndexArr[indexS][1:]
-                    Y = orderArr
+                    Y = orderArr[indexS]
                     localIndexArr[indexS] = [x for _, x in sorted(zip(Y, X))]
+
+                    print(localIndexArr[indexS])
                 else:
                     # join all subcategories to the index
                     localIndexArr[indexS] = natsorted(localIndexArr[indexS])
-- 
GitLab