Skip to content

Commit

Permalink
add roster portlet
Browse files Browse the repository at this point in the history
  • Loading branch information
Adam Forsythe-Cheasley committed Jun 25, 2014
1 parent 0bbb797 commit 110873c
Show file tree
Hide file tree
Showing 4 changed files with 114 additions and 17 deletions.
45 changes: 28 additions & 17 deletions src/ploneintranet/workspace/browser/configure.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,36 @@
xmlns:plone="http://namespaces.plone.org/plone"
i18n_domain="ploneintranet.workspace">

<include package="plone.app.portlets" />

<browser:page
name="policies"
for="ploneintranet.workspace.workspacefolder.IWorkspaceFolder"
class=".forms.PolicyForm"
permission="cmf.ModifyPortalContent"
/>

<browser:page
name="policies"
for="ploneintranet.workspace.workspacefolder.IWorkspaceFolder"
class=".forms.PolicyForm"
permission="cmf.ModifyPortalContent"
/>
name="transfer"
for="ploneintranet.workspace.workspacefolder.IWorkspaceFolder"
class=".forms.TransferMembershipForm"
permission="cmf.ModifyPortalContent"
/>

<browser:page
name="transfer"
for="ploneintranet.workspace.workspacefolder.IWorkspaceFolder"
class=".forms.TransferMembershipForm"
permission="cmf.ModifyPortalContent"
/>
<browser:page
name="invite"
for="ploneintranet.workspace.workspacefolder.IWorkspaceFolder"
class=".forms.InviteForm"
permission="cmf.ModifyPortalContent"
/>

<browser:page
name="invite"
for="ploneintranet.workspace.workspacefolder.IWorkspaceFolder"
class=".forms.InviteForm"
permission="cmf.ModifyPortalContent"
/>
<plone:portlet
name="portlets.RosterPortlet"
interface=".portlets.IRosterPortlet"
assignment=".portlets.Assignment"
renderer=".portlets.Renderer"
addview=".portlets.AddForm"
editview=".portlets.EditForm"
/>

</configure>
52 changes: 52 additions & 0 deletions src/ploneintranet/workspace/browser/portlets.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
from plone.app.portlets.portlets import base
from plone.portlets.interfaces import IPortletDataProvider
from zope.formlib.form import Fields
from zope.interface import implements


class IRosterPortlet(IPortletDataProvider):
"""
Provides a button to participants which links to the roster view
"""


class Assignment(base.Assignment):

implements(IRosterPortlet)

@property
def title(self):
return u"Roster"


class Renderer(base.Renderer):

render = ViewPageTemplateFile("templates/roster_portlet.pt")

@property
def available(self):
return True

def on_workspace(self):
"""
are we within a workspace?
"""
return getattr(self.context, 'acquire_workspace', None) is not None


class AddForm(base.AddForm):

form_fields = Fields(IRosterPortlet)
label = u"Add roster portlet"
description = "This portlet gives participants access to the roster view"

def create(self, data):
return Assignment()


class EditForm(base.EditForm):

form_fields = Fields(IRosterPortlet)
label = "Edit roster portlet"
description = "This portlet gives participants access to the roster view"
12 changes: 12 additions & 0 deletions src/ploneintranet/workspace/browser/templates/roster_portlet.pt
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<dl class="portlet portletAnnualSubscription">
<dt class="portletHeader">
<a href=""
tal:attributes="href string:${context/absolute_url}/@@edit-roster"
tal:condition="view/on_workspace">
Roster
</a>
<p tal:condition="not:view/on_workspace">
The roster view is not available outside of a workspace.
</p>
</dt>
</dl>
22 changes: 22 additions & 0 deletions src/ploneintranet/workspace/profiles/default/portlets.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version="1.0"?>
<portlets
xmlns:i18n="http://xml.zope.org/namespaces/i18n"
i18n:domain="plone">

<portlet
addview="portlets.RosterPortlet"
title="Roster"
description="Give participants access to the roster view">
<for interface="plone.app.portlets.interfaces.IColumn" />
</portlet>
<assignment
type="portlets.RosterPortlet"
manager="plone.rightcolumn"
category="content_type"
key="ploneintranet.workspace.workspacefolder"
name="portlets.RosterPortlet"
insert-before="*"
>
</assignment>

</portlets>

0 comments on commit 110873c

Please sign in to comment.