app/soc/logic/site/sidebar.py
changeset 517 661ab830e921
parent 516 ec1dcd70b97e
child 518 d9d31d316a74
--- a/app/soc/logic/site/sidebar.py	Thu Nov 20 21:01:18 2008 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-#!/usr/bin/python2.5
-#
-# Copyright 2008 the Melange authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-"""Site-wide sidebar menu creation.
-
-"""
-
-__authors__ = [
-  '"Todd Larsen" <tlarsen@google.com>',
-  ]
-
-
-from google.appengine.api import users
-
-from soc.logic import accounts
-from soc.logic import menu
-from soc.logic.site import map
-
-
-def buildUserSidebar(account=None, **ignored):
-  """Returns a list of menu items for the User portion of the sidebar.
-  
-  Args:
-    account: a Google Account (users.User) object; default is None, in which
-      case users.get_current_user() is called 
-    **ignored: other keyword arguments supplied to other sidebar builder
-      functions, but ignored by this one
-  """
-  if account is None:
-    account = users.get_current_user()
-
-  if not account:
-    return [map.user_signin_sub_menu.makeMenuItem()]
-
-  return [map.user_signout_sub_menu.makeMenuItem()]
-
-
-def buildSiteSidebar(is_admin=None, **ignored):
-  """Returns a list of menu items for the Developer portion of the sidebar.
-  
-  Args:
-    is_admin: Boolean indicating that current user is a "Developer"
-      (site super-user); default is None, in which case
-      accounts.isDeveloper() is called 
-    **ignored: other keyword arguments supplied to other sidebar builder
-      functions, but ignored by this one
-  """
-  if is_admin is None:
-    is_admin = accounts.isDeveloper()
-
-  if not is_admin:
-    # user is either not logged in or not a "Developer", so return no menu
-    return None
-
-  return [map.site_sub_menu.makeMenuItem()]
-
-
-def buildProgramsSidebar(**unused):
-  """Mock-up for Programs section of sidebar menu.
-  
-  Args:
-    **unused: all keyword arguments are currently unused in this mock-up
-  
-  TODO: actually implement this once Program entities are present in the
-    Datastore.
-  """
-  return [
-    menu.MenuItem(
-      'Google Summer of Code',
-      value='/program/gsoc2009/home',
-      sub_menu=menu.Menu(items=[
-        menu.MenuItem(
-          'Community',
-          value='/program/gsoc2009/community'),
-        menu.MenuItem(
-          'FAQs',
-          value='/program/gsoc2009/document/faqs'),
-        menu.MenuItem(
-          'Terms of Service',
-          value='/program/gsoc2009/document/tos'),
-        ]
-      )
-    ),
-    menu.MenuItem(
-      'Google Highly Open Participation',
-      value='/program/ghop2008/home',
-      sub_menu=menu.Menu(items=[
-        menu.MenuItem(
-          'Community',
-          value='/program/ghop2008/community'),
-        menu.MenuItem(
-          'FAQs',
-          value='/program/ghop2008/document/faqs'),
-        menu.MenuItem(
-          'Contest Rules',
-          value='/program/ghop2008/document/rules'),
-        ]
-      )
-    ),
-  ]
-  
-
-DEF_SIDEBAR_BUILDERS = [
-  buildUserSidebar,
-  buildSiteSidebar,
-  buildProgramsSidebar,
-]
-
-def buildSidebar(path=None, builders=DEF_SIDEBAR_BUILDERS, **builder_args):
-  """Calls all sidebar builders to construct the sidebar menu.
-
-  Args:
-    builders: list of functions that take context as a single
-      argument; default is the list of sidebar builder functions present
-      in soc.logic.site.sidebar
-    **builder_args: keyword arguments passed to each sidebar builder function
-      
-  Returns:
-    an soc.logic.menu.Menu object containing the sidebar menu items 
-  """
-  menu_items = []
-
-  # call each of the sidebar builders and append any menu items they create
-  for builder in builders:
-    built_items = builder(**builder_args)
-    
-    if built_items:
-      menu_items.extend(built_items)
-
-  # try to determine which of the menu items is the current path, to indicate
-  # that it is "selected"
-  if not path:
-    # path argument not supplied, so see if an HTTP request object was
-    # supplied in the builder_args
-    request = builder_args.get('request')
-
-    if request:
-      # there is an HTTP request object, so use the path stored in it
-      path = request.path
-
-  if path:
-    # TODO(tlarsen): scan through list and mark current request.path 
-    # as "selected"
-    pass
-
-  return menu.Menu(items=menu_items)