]> git.ipfire.org Git - ipfire.org.git/blob - webapp/backend/netboot.py
Remove obsolete pakfire CGI scripts.
[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 = %d 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 elif m.type == "config":
56 m._data.update(self.db.get("SELECT title, description FROM boot WHERE id = %s" % m.item))
57
58 menu.append(m)
59
60 return menu
61
62 def get_config(self, id):
63 id = int(id)
64 return self.db.get("SELECT * FROM boot WHERE id = %s", id)