]> git.ipfire.org Git - ipfire.org.git/blob - webapp/backend/netboot.py
.gitignore: Add .vscode
[ipfire.org.git] / webapp / backend / netboot.py
1 #!/usr/bin/python
2
3 from misc import Object
4
5 class MenuEntry(object):
6 def __init__(self, _data):
7 self._data = _data
8 self.submenu = None
9
10 @property
11 def id(self):
12 return self._data.get("id")
13
14 @property
15 def type(self):
16 return self._data.get("type", "root")
17
18 @property
19 def title(self):
20 return self._data.get("title", "")
21
22 @property
23 def description(self):
24 return self._data.get("description", "")
25
26 @property
27 def item(self):
28 if self.type == "config":
29 return self._data.get("item")
30
31 @property
32 def submenu_level(self):
33 if self.type == "header":
34 return int(self._data.get("item"))
35
36
37 class NetBoot(Object):
38 def get_menu(self, level=0):
39 menu = []
40
41 for m in self.db.query("SELECT * FROM boot_menu WHERE level = %s ORDER by level,prio", level):
42 m = MenuEntry(m)
43
44 if m.type == "header":
45 m.submenu = self.get_menu(m.submenu_level)
46
47 menu.append(m)
48
49 return menu
50
51 def get_config(self, id):
52 return self.db.get("SELECT * FROM boot WHERE id = %s", id)