]>
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 | ||
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 | ||
fd852409 MT |
55 | elif m.type == "config": |
56 | m._data.update(self.db.get("SELECT title, description FROM boot WHERE id = %s" % m.item)) | |
57 | ||
5470bdf1 MT |
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) |