class ProjectEditForm(base.EditForm): """Edit form for projects """ form_fields = project_form_fields label = _(u"Edit Project") form_name = _(u"Project settings")
def workflow_policies(context): context = getattr(context, 'context', context) placeful_workflow = getToolByName(context, 'portal_placeful_workflow', None) items = [] if placeful_workflow is not None: if PLACEFUL_WORKFLOW_POLICY in placeful_workflow.objectIds(): items.append((_(u"Default project workflow"), PLACEFUL_WORKFLOW_POLICY)) items.sort() return SimpleVocabulary.fromItems(items)
class ProjectAddForm(base.AddForm): """Add form for projects """ form_fields = project_form_fields label = _(u"Add Project") form_name = _(u"Project settings") def setUpWidgets(self, ignore_request=False): default_addable = default_addable_types(aq_inner(self.context)) self.widgets = form.setUpWidgets( self.form_fields, self.prefix, self.context, self.request, data=dict(addable_types=default_addable), ignore_request=ignore_request) def create(self, data): project = createObject(u"borg.project.Project") form.applyChanges(project, self.form_fields, data) return project
class IProject(Interface): """A project workspace, where special local roles may apply """ title = schema.TextLine(title=_(u"Title"), description=_(u"Name of the project"), required=True) description = schema.Text(title=_(u"Description"), description=_(u"A short summary of the project"), required=True) managers = schema.List( title=_(u"Managers"), description=_( u"The following users should be managers of this project"), value_type=schema.Choice( title=_(u"User id"), source=UsersSource, ), default=[], required=False) members = schema.List( title=_(u"Members"), description=_( u"The following users should be members of this project"), value_type=schema.Choice( title=_(u"User id"), source=UsersSource, ), default=[], required=False) groups = schema.List( title=_(u"Member groups"), description=_( u"Members of the following groups should be members of this project" ), value_type=schema.Choice( title=_(u"Group id"), source=GroupsSource, ), default=[], required=False) workflow_policy = schema.Choice( title=_(u"Workflow policy"), description=_(u"Choose a workflow policy for this project"), vocabulary="borg.project.WorkflowPolicies") addable_types = schema.Set( title=_(u"Addable types"), description=_(u"These types will be addable by project members"), value_type=schema.Choice(title=_(u"Type id"), vocabulary="borg.project.AddableTypes"))
IProject, ITTWLockable, INameFromTitle, ILocalPortletAssignable, ) portal_type = "b-org Project" title = u"" description = u"" managers = () members = () groups = () workflow_policy = None addable_types = () # This is a workaround for this issue: i # http://dev.plone.org/plone/ticket/10157 security = ClassSecurityInfo() security.declareProtected(Permissions.copy_or_move, 'manage_copyObjects') security.declareProtected(Permissions.copy_or_move, 'manage_pasteObjects') def __init__(self, id=None): super(Project, self).__init__(id) self.managers = OOSet() self.members = OOSet() self.groups = OOSet() self.addable_types = OOSet() projectFactory = Factory(Project, title=_(u"Create a new project"))