From dece49eb2656aa10ec9ebf9f10696235e1468fe0 Mon Sep 17 00:00:00 2001
From: laurentheirendt <laurent.heirendt@uni.lu>
Date: Fri, 11 Feb 2022 14:08:15 +0100
Subject: [PATCH] draft: ordering of sections

---
 .ci/generateIndex.py | 83 +++++++++++++++++++++++++++++++++++---------
 1 file changed, 67 insertions(+), 16 deletions(-)

diff --git a/.ci/generateIndex.py b/.ci/generateIndex.py
index 4dcff3ab..c2f81086 100644
--- a/.ci/generateIndex.py
+++ b/.ci/generateIndex.py
@@ -161,8 +161,8 @@ index = ''
 index += '\n<div class="index-box-container">\n'
 whiteList = ''
 
-localIndexArr = [[]] * len(sections)
-orderArr = [[]] * len(sections)
+localIndexArr = {k: [] for k in range(len(sections))}
+orderArr = {k: [] for k in range(len(sections))}
 
 for folder in cardDirs:
     # FolderFlag gets set to true at the first iteration
@@ -182,9 +182,6 @@ for folder in cardDirs:
                 indexS = sections.index(d)
                 maxOrder = 0
 
-                # reset the ordering array per section
-                orderArr[indexS] = []
-
                 if len(localIndexArr[indexS]) == 0:
                     localIndexArr[indexS] = ["\n"]
 
@@ -220,6 +217,9 @@ for folder in cardDirs:
                                 # define the header for each card
                                 header = "---\n"
 
+                                #print("orderArr --- ")
+                                #print(orderArr)
+
                                 if len(order) > 0:
                                     header += "order: " + str(order) + "\n"
                                     #  append the order of the card
@@ -233,12 +233,26 @@ for folder in cardDirs:
                                         # 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]
+                                    tmp = orderArr[indexS].copy()
                                     tmp.append(maxOrder + int(order))
+                                    #print("tmp --- ")
+                                    #print(tmp)
+                                    #print("")
+                                    #print("indexS")
+                                    #print(indexS)
+                                    #print("orderArr --- ")
+                                    #print(orderArr)
+                                    #print("orderArr[indexS] --- ")
+                                    #print(orderArr[indexS])
                                     orderArr[indexS] = tmp
+
+                                    #print("orderArr --- ")
+                                    #print(orderArr)
                                 else:
                                     orderArr[indexS] = []
 
+
+
                                 header += "layout: page\n"
                                 header += "permalink: " + permalink + "\n"
                                 header += "shortcut: " + root_handbook(shortcut) + "\n"
@@ -294,18 +308,55 @@ for folder in cardDirs:
                                 # output
                                 print(" + New header added.")
                                 print("-----------------------")
-
-                # join all subcategories to the index
-                # if all subcategories have a predefined order
-                if len(orderArr[indexS]) <= len(localIndexArr[indexS]) and len(orderArr[indexS]) > 0:
-                    X = localIndexArr[indexS][1:]
-                    Y = orderArr[indexS]
-                    localIndexArr[indexS] = [x for _, x in sorted(zip(Y, X))]
-                # natural sorting otherwise
-                else:
-                    localIndexArr[indexS] = natsorted(localIndexArr[indexS])
+                                #print("")
+
+
+                #debugging
+                #print("--- debugging ---")
+                #print(indexS)
+                #print("---")
+                #print(localIndexArr[indexS])
+                #print("---")
+                #print(orderArr)
+                #print("")
+
+# ordering of cards
+#print("-- sorting --")
+for d in sections:
+    #print("section: " + d)
+    indexS = sections.index(d)
+    #print(indexS)
+    #print("")
+    #print("-- order --")
+    #print(orderArr[indexS])
+    #print("-- before ordering --")
+    #print(localIndexArr[indexS])
+    #print("")
+    #print(len(orderArr[indexS]))
+    #print(len(localIndexArr[indexS]))
+
+    # join all subcategories to the index
+    # if all subcategories have a predefined order
+    if len(orderArr[indexS]) == len(localIndexArr[indexS])-1 and len(orderArr[indexS]) > 0:
+        print("")
+        X = localIndexArr[indexS][1:]
+        Y = orderArr[indexS]
+
+        #print("-- X --")
+        #print(X)
+        #print("-- Y --")
+        #print(Y)
+        localIndexArr[indexS] = [x for _, x in sorted(zip(Y, X))]
+    # natural sorting otherwise
+    else:
+        localIndexArr[indexS] = natsorted(localIndexArr[indexS])
+
+    #print("-- after ordering --")
+    #print(localIndexArr[indexS])
+    #print("")
 
 print(localIndexArr)
+#print(sections)
 
 # determine the index
 k = 0
-- 
GitLab