apimenu.py 1.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. # -*- coding: utf-8 -*-
  2. import tg
  3. from pod.lib import base as plb
  4. from pod.lib import dbapi as pld
  5. from pod.model import data as pmd
  6. from pod.model import serializers as pms
  7. class PODApiMenuController(plb.BaseController):
  8. @tg.expose('json')
  9. @pms.PBNodeForMenu
  10. def children(self, id='#'):
  11. try:
  12. real_id = int(id)
  13. except Exception:
  14. real_id = None
  15. current_user = pld.PODStaticController.getCurrentUser()
  16. api_controller = pld.PODUserFilteredApiController(current_user.user_id)
  17. allowed_nodes = api_controller.getListOfAllowedNodes()
  18. parent_node = api_controller.getNode(real_id)
  19. child_nodes = api_controller.getChildNodesForMenu(parent_node, allowed_nodes)
  20. return child_nodes
  21. @tg.expose('json')
  22. @pms.NodeTreeItemForMenu
  23. def initialize(self, current_node_id=0, id='#'):
  24. try:
  25. real_id = int(id)
  26. except Exception:
  27. real_id = None
  28. current_user = pld.PODStaticController.getCurrentUser()
  29. api_controller = pld.PODUserFilteredApiController(current_user.user_id)
  30. current_node = None
  31. try:
  32. current_node = api_controller.getNode(current_node_id)
  33. except:
  34. print("Node not found: {0}".format(current_node_id))
  35. allowed_nodes = api_controller.getListOfAllowedNodes()
  36. initial_menu_structure = api_controller.buildTreeListForMenu(current_node, allowed_nodes)
  37. return initial_menu_structure