]>
Commit | Line | Data |
---|---|---|
5470bdf1 MT |
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 | ||
31c90b72 | 49 | for m in self.db.query("SELECT * FROM boot_menu WHERE level = %s ORDER by level,prio", level): |
5470bdf1 MT |
50 | m = MenuEntry(m) |
51 | ||
52 | if m.type == "header": | |
53 | m.submenu = self.get_menu(m.submenu_level) | |
54 | ||
fd852409 | 55 | elif m.type == "config": |
31c90b72 MT |
56 | c = self.db.get("SELECT * FROM boot WHERE id = %s", m.item) |
57 | if c: | |
58 | m._data.update(c) | |
fd852409 | 59 | |
5470bdf1 MT |
60 | menu.append(m) |
61 | ||
62 | return menu | |
63 | ||
64 | def get_config(self, id): | |
5470bdf1 | 65 | return self.db.get("SELECT * FROM boot WHERE id = %s", id) |