diff --git a/demo/demo/panels.py b/demo/demo/panels.py index bbb99d3..b58f8d8 100644 --- a/demo/demo/panels.py +++ b/demo/demo/panels.py @@ -69,3 +69,31 @@ def headings(context, request): @panel_config(name='footer') def footer(context, request): return '

© Pylons Project 2012

' + +# Example of class-based panel +class UserPanel(object): + def __init__(self, context, request): + self.context = context + self.request = request + + @panel_config(name='usermenu', + renderer='demo:templates/panels/usermenu.pt') + def __call__(self, user_info=None): + """ Show the username of the passed in user. If None, + get the current user off the request. """ + + if user_info is None: + # Presumes request.user has some info, just a demo + user = self.request.user + user_info = dict( + first_name=user['firstname'], + last_name=user['lastname'], + username=user['username'] + ) + + label = user_info['first_name'] + ' ' + user_info['last_name'] + href = '/profiles/' + user_info['username'] + return dict( + label=label, + href=href + ) diff --git a/demo/demo/templates/home.pt b/demo/demo/templates/home.pt index 86c053f..d1065ba 100644 --- a/demo/demo/templates/home.pt +++ b/demo/demo/templates/home.pt @@ -6,7 +6,14 @@
- ${panel('headings')} +

${panel('headings')}

+

User Info

+

${panel('usermenu', + user_info={ + 'first_name': 'Jane', + 'last_name': 'Doe', + 'username': 'jdoe'} + )}

diff --git a/demo/demo/templates/panels/usermenu.pt b/demo/demo/templates/panels/usermenu.pt new file mode 100644 index 0000000..1776a8e --- /dev/null +++ b/demo/demo/templates/panels/usermenu.pt @@ -0,0 +1,3 @@ +
+ ${label} +
\ No newline at end of file