Advertisement
Guest User

Untitled

a guest
Apr 17th, 2014
34
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.88 KB | None | 0 0
  1. class MyViewlet(grok.Viewlet):
  2. grok.name('my-viewlet')
  3. grok.order(0)
  4. grok.context(Interface)
  5. grok.viewletmanager(IBelowContent)
  6. index=ViewPageTemplateFile('templates/templatefile.pt')
  7.  
  8.  
  9. def update(self):
  10. self.context = aq_inner(self.context)
  11. self.project = self.getProject()
  12. self.project_array = self.getProjectArray()
  13.  
  14. @memoize
  15. def getProject(self):
  16. portal_catalog = getToolByName(self.context, 'portal_catalog')
  17. site = self.context.portal_url.getPortalObject()
  18. folder_path = "/" . join(site.getPhysicalPath())
  19. folder_path += "/afolder"
  20. results = portal_catalog.searchResults({
  21. 'portal_type':'Document',
  22. 'path':{'query': folder_path,'depth': 1},
  23. 'sort_on':'getObjPositionInParent'
  24. })
  25. project_array = processResults(results)
  26. if(project_array):
  27. return project_array[0]
  28. else:
  29. return False
  30.  
  31. @memoize
  32. def getProjectArray(self):
  33. portal_catalog = getToolByName(self.context, 'portal_catalog')
  34. portal_state = getMultiAdapter((self.context, self.request), name=u'plone_portal_state')
  35. site = portal_state.portal()
  36. folder_path = "/" . join(site.getPhysicalPath())
  37. folder_path += "/afolder"
  38. results = portal_catalog.searchResults({
  39. 'portal_type':'Document',
  40. 'path':{'query': folder_path,'depth': 1},
  41. 'sort_on':'getObjPositionInParent'
  42. })
  43. project_array = processResults(results)
  44. if not project_array:
  45. return False
  46. for i in project_array:
  47. i['class']='';
  48. project_array[0]['class']='active'
  49. return project_array
  50.  
  51.  
  52. def render(self):
  53. return self.index()
  54.  
  55. <tal:block
  56. tal:define="our_url context/@@plone_context_state/canonical_object_url;
  57. home_url context/@@plone_portal_state/portal_url;"
  58. tal:condition="python:our_url == home_url">
  59. <div id="previous-projects-viewlet" class="respond">
  60. <div id="projects">
  61. <div id="projects-container">
  62. <tal:block tal:repeat="project view/project_array">
  63. <tal:block tal:define="iobject project/brain/getObject">
  64. <div tal:attributes="id string:project-${repeat/project/index};
  65. class string:${project/class} project;"
  66. tal:content="structure iobject"/>
  67. </tal:block>
  68. </tal:block>
  69. </div>
  70. </div>
  71. </div>
  72. </tal:block>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement