X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/d2410575d72f68d7777c4344600b1af75f2515c1..eb1b2a97a14f9a4daa772709972e0d1650ac4fd3:/forum/modules/ui.py diff --git a/forum/modules/ui.py b/forum/modules/ui.py index 5cfcac4..2694110 100644 --- a/forum/modules/ui.py +++ b/forum/modules/ui.py @@ -1,37 +1,51 @@ class Registry(list): - def add(self, register): + def add(self, item): for i, r in enumerate(self): - if r.weight > register.weight: - self.insert(i, register) + if r.weight > item.weight: + self.insert(i, item) return - self.append(register) + self.append(item) -"""Links next in the very top of the page""" -HEADER_LINKS = 'HEADER_LINKS' + def find_by_name(self, name): + for i in self: + if i.name and (i.name == name): + return i + + def remove_by_name(self, name): + for i, r in enumerate(self): + if r.name and (r.name == name): + return self.pop(i) -"""The tabs next to the top of the page""" + +HEAD_CONTENT = 'HEAD_CONTENT' +HEADER_LINKS = 'HEADER_LINKS' PAGE_TOP_TABS = 'PAGE_TOP_TABS' +FOOTER_LINKS = 'FOOTER_LINKS' +PROFILE_TABS = 'PROFILE_TABS' + +USER_MENU = 'USER_MENU' __CONTAINER = { + HEAD_CONTENT: Registry(), HEADER_LINKS: Registry(), - PAGE_TOP_TABS: Registry() + PAGE_TOP_TABS: Registry(), + FOOTER_LINKS: Registry(), + PROFILE_TABS: Registry(), + + USER_MENU: Registry(), } -def register(registry, ui_object): +def register(registry, *ui_objects): if not registry in __CONTAINER: raise('unknown registry') - __CONTAINER[registry].add(ui_object) - -def register_multi(registry, *ui_objects): for ui_object in ui_objects: - register(registry, ui_object) - + __CONTAINER[registry].add(ui_object) def get_registry_by_name(name): name = name.upper()