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