From patchwork Wed Nov 9 19:26:15 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zygmunt Krynicki X-Patchwork-Id: 4992 Return-Path: X-Original-To: patchwork@peony.canonical.com Delivered-To: patchwork@peony.canonical.com Received: from fiordland.canonical.com (fiordland.canonical.com [91.189.94.145]) by peony.canonical.com (Postfix) with ESMTP id 66C2F23E0F for ; Wed, 9 Nov 2011 19:26:20 +0000 (UTC) Received: from mail-fx0-f52.google.com (mail-fx0-f52.google.com [209.85.161.52]) by fiordland.canonical.com (Postfix) with ESMTP id 5B4E0A18896 for ; Wed, 9 Nov 2011 19:26:20 +0000 (UTC) Received: by mail-fx0-f52.google.com with SMTP id n26so2870852faa.11 for ; Wed, 09 Nov 2011 11:26:20 -0800 (PST) Received: by 10.152.148.165 with SMTP id tt5mr2479108lab.23.1320866779081; Wed, 09 Nov 2011 11:26:19 -0800 (PST) X-Forwarded-To: linaro-patchwork@canonical.com X-Forwarded-For: patch@linaro.org linaro-patchwork@canonical.com Delivered-To: patches@linaro.org Received: by 10.152.10.72 with SMTP id g8cs183732lab; Wed, 9 Nov 2011 11:26:18 -0800 (PST) Received: by 10.227.208.213 with SMTP id gd21mr2764786wbb.19.1320866776335; Wed, 09 Nov 2011 11:26:16 -0800 (PST) Received: from indium.canonical.com (indium.canonical.com. [91.189.90.7]) by mx.google.com with ESMTPS id en2si3318047wbb.5.2011.11.09.11.26.15 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 09 Nov 2011 11:26:16 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of bounces@canonical.com designates 91.189.90.7 as permitted sender) client-ip=91.189.90.7; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of bounces@canonical.com designates 91.189.90.7 as permitted sender) smtp.mail=bounces@canonical.com Received: from ackee.canonical.com ([91.189.89.26]) by indium.canonical.com with esmtp (Exim 4.71 #1 (Debian)) id 1RODmp-0000e1-Hp for ; Wed, 09 Nov 2011 19:26:15 +0000 Received: from ackee.canonical.com (localhost [127.0.0.1]) by ackee.canonical.com (Postfix) with ESMTP id 7AB64E0990 for ; Wed, 9 Nov 2011 19:26:15 +0000 (UTC) MIME-Version: 1.0 X-Launchpad-Project: lava-server X-Launchpad-Branch: ~linaro-validation/lava-server/trunk X-Launchpad-Message-Rationale: Subscriber X-Launchpad-Branch-Revision-Number: 277 X-Launchpad-Notification-Type: branch-revision To: Linaro Patch Tracker From: noreply@launchpad.net Subject: [Branch ~linaro-validation/lava-server/trunk] Rev 277: Allow applications to export simple menu Message-Id: <20111109192615.3833.53387.launchpad@ackee.canonical.com> Date: Wed, 09 Nov 2011 19:26:15 -0000 Reply-To: noreply@launchpad.net Sender: bounces@canonical.com Errors-To: bounces@canonical.com Precedence: bulk X-Generated-By: Launchpad (canonical.com); Revision="14263"; Instance="launchpad-lazr.conf" X-Launchpad-Hash: e86a8c250e9f0340d84e0ee5a9665ce0bd6bc791 ------------------------------------------------------------ revno: 277 committer: Zygmunt Krynicki branch nick: lava-server timestamp: Wed 2011-11-09 00:48:55 +0100 message: Allow applications to export simple menu modified: lava_server/context_processors.py lava_server/extension.py --- lp:lava-server https://code.launchpad.net/~linaro-validation/lava-server/trunk You are subscribed to branch lp:lava-server. To unsubscribe from this branch go to https://code.launchpad.net/~linaro-validation/lava-server/trunk/+edit-subscription === modified file 'lava_server/context_processors.py' --- lava_server/context_processors.py 2011-10-11 09:20:14 +0000 +++ lava_server/context_processors.py 2011-11-08 23:48:55 +0000 @@ -19,12 +19,28 @@ import versiontools import lava_server -from lava_server.extension import loader +from lava_server.extension import Menu, loader +from django.core.urlresolvers import reverse def lava(request): + menu_list = [ + Menu("LAVA", reverse('lava.home')), + ] + for extension in loader.extensions: + menu = extension.get_menu() + if menu: + menu_list.append(menu) + menu_list.extend([ + Menu("Documentation", "http://lava.rtfd.org/"), + Menu("API", reverse("lava.api_help"), [ + Menu("Available Methods", reverse("lava.api_help")), + Menu("Authentication Tokens", reverse("linaro_django_xmlrpc.views.tokens")), + ]) + ]) return { 'lava': { + 'menu_list': menu_list, 'extension_list': loader.extensions, 'version': versiontools.format_version( lava_server.__version__, hint=lava_server)}} === modified file 'lava_server/extension.py' --- lava_server/extension.py 2011-10-11 09:58:00 +0000 +++ lava_server/extension.py 2011-11-08 23:48:55 +0000 @@ -92,6 +92,23 @@ Absolute URL of the main view """ + @abstractmethod + def get_menu(self): + """ + Return a Menu object + """ + + +class Menu(object): + """ + Menu (for navigation) + """ + + def __init__(self, label, url, sub_menu=None): + self.label = label + self.url = url + self.sub_menu = sub_menu or [] + class LavaServerExtension(ILavaServerExtension): """ @@ -115,6 +132,10 @@ Name of the main view """ + def get_menu(self): + from django.core.urlresolvers import reverse + return Menu(self.name, reverse(self.main_view_name)) + @property def front_page_template(self): return None