etherlab/etherlab.py
changeset 2038 6f78c4ac22f9
parent 2037 d54036f70390
child 2039 3a218f6bd805
--- a/etherlab/etherlab.py	Wed Feb 29 12:00:20 2012 +0100
+++ b/etherlab/etherlab.py	Sun Mar 11 19:32:44 2012 +0100
@@ -90,9 +90,22 @@
                 entries = device.GetEntriesList()
                 entries_list = entries.items()
                 entries_list.sort()
+                entries = []
+                current_index = None
+                current_entry = None
+                for (index, subindex), entry in entries_list:
+                    entry["children"] = []
+                    if index != current_index:
+                        current_index = index
+                        current_entry = entry
+                        entries.append(entry)
+                    elif current_entry is not None:
+                        current_entry["children"].append(entry)
+                    else:
+                        entries.append(entry)
                 infos.update({"physics": device.getPhysics(),
                               "sync_managers": device.GetSyncManagers(),
-                              "entries": [entry[1] for entry in entries_list]})
+                              "entries": entries})
                 return infos
         return None
 
@@ -380,9 +393,22 @@
                 entries = device.GetEntriesList()
                 entries_list = entries.items()
                 entries_list.sort()
+                entries = []
+                current_index = None
+                current_entry = None
+                for (index, subindex), entry in entries_list:
+                    entry["children"] = []
+                    if index != current_index:
+                        current_index = index
+                        current_entry = entry
+                        entries.append(entry)
+                    elif current_entry is not None:
+                        current_entry["children"].append(entry)
+                    else:
+                        entries.append(entry)
                 infos.update({"physics": device.getPhysics(),
                               "sync_managers": device.GetSyncManagers(),
-                              "entries": [entry[1] for entry in entries_list]})
+                              "entries": entries})
                 return infos
         return None