Skip to content

Commit

Permalink
OGIP 17: Add workspace root content type
Browse files Browse the repository at this point in the history
  • Loading branch information
raphael-s committed Dec 12, 2017
1 parent 962af68 commit c4fd8c9
Show file tree
Hide file tree
Showing 32 changed files with 266 additions and 12 deletions.
1 change: 1 addition & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -545,6 +545,7 @@ Objects
- self.sablon_template
- self.tasktemplatefolder
- self.tasktemplate
- self.workspace_root
.. </fixture:objects>
Expand Down
1 change: 1 addition & 0 deletions docs/HISTORY.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ Changelog
---------------------

- Bump ftw.bumblebee to skip checksum calculation for unsupported mimetypes. [deiferni]
- OGIP 17: Add workspace root content type [raphael-s]
- Implement workspace module basics [raphael-s]
- Allow to add proposal documents to tasks. [tarnap]
- Improve Office Connector testing. [Rotonen]
Expand Down
1 change: 1 addition & 0 deletions opengever/contentstats/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
'opengever.meeting.committeecontainer',
'opengever.private.root',
'opengever.repository.repositoryroot',
'opengever.workspace.root',
]


Expand Down
7 changes: 7 additions & 0 deletions opengever/core/lawgiver.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -206,4 +206,11 @@
"
/>

<!-- Should be ignored, permission is only granted to manager on site root -->
<lawgiver:ignore
permissions="
opengever.workspace: Add WorkspaceRoot,
"
/>

</configure>
7 changes: 5 additions & 2 deletions opengever/core/locales/de/LC_MESSAGES/opengever.core.po
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: 1.0\n"
"POT-Creation-Date: 2017-10-02 12:51+0000\n"
"POT-Creation-Date: 2017-12-11 17:30+0000\n"
"PO-Revision-Date: 2017-09-18 15:21+0200\n"
"Last-Translator: Philippe Gross <p.gross@4teamwork.ch>\n"
"Language-Team: 4teamwork <info@4teamwork.ch>\n"
Expand Down Expand Up @@ -231,6 +231,10 @@ msgstr "Amtswechsler umschalten"
msgid "Unlock unused repository prefixes."
msgstr "Freigabe von ungebrauchten Aktenzeichen Prefixen."

#: ./opengever/core/profiles/default/types/opengever.workspace.root.xml
msgid "WorkspaceRoot"
msgstr "Teamräume"

#: ./opengever/core/profiles/default/types/opengever.inbox.yearfolder.xml
msgid "YearFolder"
msgstr "Jahresordner"
Expand Down Expand Up @@ -264,4 +268,3 @@ msgstr "Mit Kommentar"
#: ./opengever/core/profiles/default/actions.xml
msgid "without comment"
msgstr "Ohne Kommentar"

7 changes: 5 additions & 2 deletions opengever/core/locales/fr/LC_MESSAGES/opengever.core.po
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: 1.0\n"
"POT-Creation-Date: 2017-10-02 12:51+0000\n"
"POT-Creation-Date: 2017-12-11 17:30+0000\n"
"PO-Revision-Date: 2013-03-27 10:44+0100\n"
"Last-Translator: Philippe Gross <p.gross@4teamwork.ch>\n"
"Language-Team: 4teamwork <info@4teamwork.ch>\n"
Expand Down Expand Up @@ -226,6 +226,10 @@ msgstr "commuter l'agent public"
msgid "Unlock unused repository prefixes."
msgstr "Déblocage de préfixes de référence inutilisés."

#: ./opengever/core/profiles/default/types/opengever.workspace.root.xml
msgid "WorkspaceRoot"
msgstr "Espace partagé"

#: ./opengever/core/profiles/default/types/opengever.inbox.yearfolder.xml
msgid "YearFolder"
msgstr "Classeur pour l'année"
Expand Down Expand Up @@ -259,4 +263,3 @@ msgstr "Avec commentaire"
#: ./opengever/core/profiles/default/actions.xml
msgid "without comment"
msgstr "Sans commentaire"

7 changes: 5 additions & 2 deletions opengever/core/locales/opengever.core.pot
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2017-10-02 12:51+0000\n"
"POT-Creation-Date: 2017-12-11 17:30+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
Expand Down Expand Up @@ -229,6 +229,10 @@ msgstr ""
msgid "Unlock unused repository prefixes."
msgstr ""

#: ./opengever/core/profiles/default/types/opengever.workspace.root.xml
msgid "WorkspaceRoot"
msgstr ""

#: ./opengever/core/profiles/default/types/opengever.inbox.yearfolder.xml
msgid "YearFolder"
msgstr ""
Expand Down Expand Up @@ -262,4 +266,3 @@ msgstr ""
#: ./opengever/core/profiles/default/actions.xml
msgid "without comment"
msgstr ""

5 changes: 5 additions & 0 deletions opengever/core/profiles/default/rolemap.xml
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,11 @@
</permission>


<permission name="opengever.workspace: Add WorkspaceRoot" acquire="True">
<role name="Manager" />
</permission>


<!--migrated from opengever/policy/base/profiles/default/rolemap.xml-->
<permission name="plone.restapi: Use REST API" acquire="True">
<role name="Manager" />
Expand Down
1 change: 1 addition & 0 deletions opengever/core/profiles/default/types.xml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@
<!--migrated from opengever/disposition/profiles/default/types.xml-->
<object name="opengever.disposition.disposition" meta_type="Dexterity FTI" />

<object name="opengever.workspace.root" meta_type="Dexterity FTI" />

<!--migrated from opengever/policy/base/profiles/default/types.xml-->
<object name="Plone Site" meta_type="Factory-based Type Information with dynamic views" />
Expand Down
1 change: 1 addition & 0 deletions opengever/core/profiles/default/types/Plone_Site.xml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<element value="opengever.inbox.container" />
<element value="opengever.meeting.committeecontainer" />
<element value="opengever.private.root" />
<element value="opengever.workspace.root" />
</property>


Expand Down
64 changes: 64 additions & 0 deletions opengever/core/profiles/default/types/opengever.workspace.root.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<object xmlns:i18n="http://xml.zope.org/namespaces/i18n" name="opengever.workspace.root" meta_type="Dexterity FTI" i18n:domain="opengever.core">

<!-- Basic metadata -->
<property name="title" i18n:translate="">WorkspaceRoot</property>
<property name="description" i18n:translate="" />
<property name="icon_expr" />
<property name="allow_discussion">False</property>
<property name="global_allow">False</property>
<property name="filter_content_types">True</property>
<property name="allowed_content_types">
</property>

<!-- schema interface -->
<property name="schema">opengever.workspace.workspace_root.IWorkspaceRootSchema</property>

<!-- class used for content items -->
<property name="klass">opengever.workspace.workspace_root.WorkspaceRoot</property>

<!-- add permission -->
<property name="add_permission">opengever.workspace.AddWorkspace</property>

<!-- enabled behaviors -->
<property name="behaviors">
<element value="plone.app.lockingbehavior.behaviors.ILocking" />
<element value="ftw.journal.interfaces.IAnnotationsJournalizable" />
<element value="opengever.base.behaviors.translated_title.ITranslatedTitle" />
</property>

<!-- View information -->
<property name="immediate_view">view</property>
<property name="default_view">view</property>
<property name="default_view_fallback">False</property>
<property name="view_methods">
<element value="view" />
</property>

<!-- Method aliases -->
<alias from="(Default)" to="(selected layout)" />
<alias from="edit" to="@@edit" />
<alias from="sharing" to="@@sharing" />
<alias from="view" to="@@view" />

<!-- Actions -->
<action
title="View"
action_id="view"
category="object"
condition_expr=""
url_expr="string:${object_url}"
visible="False">
<permission value="View" />
</action>

<action
title="Edit"
action_id="edit"
category="object"
condition_expr="not:object/@@plone_lock_info/is_locked_for_current_user|python:True"
url_expr="string:${object_url}/edit"
visible="True">
<permission value="Modify portal content" />
</action>

</object>
4 changes: 4 additions & 0 deletions opengever/core/profiles/default/workflows.xml
Original file line number Diff line number Diff line change
Expand Up @@ -177,4 +177,8 @@
</type>
</bindings>

<bindings>
<type type_id="opengever.workspace.root" />
</bindings>

</object>
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<rolemap>

<permissions>
<permission name="opengever.workspace: Add WorkspaceRoot" acquire="True">
<role name="Manager" />
</permission>
</permissions>

</rolemap>
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<object name="portal_types" meta_type="Plone Types Tool">

<object name="opengever.workspace.root" meta_type="Dexterity FTI" />

</object>
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<object name="Plone Site">

<property name="allowed_content_types" purge="False">
<element value="opengever.workspace.root" />
</property>

</object>
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<object xmlns:i18n="http://xml.zope.org/namespaces/i18n" name="opengever.workspace.root" meta_type="Dexterity FTI" i18n:domain="opengever.workspace">

<!-- Basic metadata -->
<property name="title" i18n:translate="">WorkspaceRoot</property>
<property name="description" i18n:translate="" />
<property name="icon_expr" />
<property name="allow_discussion">False</property>
<property name="global_allow">False</property>
<property name="filter_content_types">True</property>
<property name="allowed_content_types">
</property>

<!-- schema interface -->
<property name="schema">opengever.workspace.workspace_root.IWorkspaceRootSchema</property>

<!-- class used for content items -->
<property name="klass">opengever.workspace.workspace_root.WorkspaceRoot</property>

<!-- add permission -->
<property name="add_permission">opengever.workspace.AddWorkspace</property>

<!-- enabled behaviors -->
<property name="behaviors">
<element value="plone.app.lockingbehavior.behaviors.ILocking" />
<element value="ftw.journal.interfaces.IAnnotationsJournalizable" />
<element value="opengever.base.behaviors.translated_title.ITranslatedTitle" />
</property>

<!-- View information -->
<property name="immediate_view">view</property>
<property name="default_view">view</property>
<property name="default_view_fallback">False</property>
<property name="view_methods">
<element value="view" />
</property>

<!-- Method aliases -->
<alias from="(Default)" to="(selected layout)" />
<alias from="edit" to="@@edit" />
<alias from="sharing" to="@@sharing" />
<alias from="view" to="@@view" />

<!-- Actions -->
<action
title="View"
action_id="view"
category="object"
condition_expr=""
url_expr="string:${object_url}"
visible="False">
<permission value="View" />
</action>

<action
title="Edit"
action_id="edit"
category="object"
condition_expr="not:object/@@plone_lock_info/is_locked_for_current_user|python:True"
url_expr="string:${object_url}/edit"
visible="True">
<permission value="Modify portal content" />
</action>

</object>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
from ftw.upgrade import UpgradeStep


class AddWorkspaceRootContentType(UpgradeStep):
"""Add workspace root content type.
"""

def __call__(self):
self.install_upgrade_profile()
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<object name="portal_workflow" meta_type="Plone Workflow Tool">

<bindings>
<type type_id="opengever.workspace.root"/>
</bindings>

</object>
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,12 @@
"title_de": "Kontakte",
"title_fr": "Contacts",
"_transitions": "publish"
},
{
"_path": "workspaces",
"_type": "opengever.workspace.root",
"title_de": "Teamräume",
"title_fr": "Espace partagé",
"_transitions": "publish"
}
]
7 changes: 7 additions & 0 deletions opengever/testing/builders/dx.py
Original file line number Diff line number Diff line change
Expand Up @@ -556,3 +556,10 @@ def __init__(self, *args, **kwargs):


builder_registry.register('proposaltemplate', ProposalTemplateBuilder)


class WorkspaceRootBuilder(DexterityBuilder):
portal_type = 'opengever.workspace.root'


builder_registry.register('workspace_root', WorkspaceRootBuilder)
7 changes: 7 additions & 0 deletions opengever/testing/fixtures.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ def __init__(self):
with self.features('meeting'):
self.create_committees()
self.create_inbox()
self.create_workspace_root()

with self.freeze_at_hour(14):
with self.login(self.dossier_responsible):
Expand Down Expand Up @@ -850,6 +851,12 @@ def create_committee(self, title, repository_folder, group_id,
group_id=group_id))
return committee

def create_workspace_root(self):
self.workspace_root = self.register('workspace_root', create(
Builder('workspace_root').having(id=u'workspaces',
title_de=u'Teamr\xe4ume',
title_fr=u'Espace partag\xe9')))

@contextmanager
def login(self, user):
old_manager = getSecurityManager()
Expand Down
3 changes: 1 addition & 2 deletions opengever/workspace/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
from interfaces import IWorkspaceSettings
from opengever.workspace.interfaces import IWorkspaceSettings
from plone import api
from zope.i18nmessageid import MessageFactory


_ = MessageFactory('opengever.workspace')


Expand Down
Empty file.
6 changes: 6 additions & 0 deletions opengever/workspace/browser/configure.zcml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:browser="http://namespaces.zope.org/browser"
i18n_domain="opengever.workspace">

</configure>
3 changes: 3 additions & 0 deletions opengever/workspace/configure.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,7 @@

<i18n:registerTranslations directory="locales" />

<include file="permissions.zcml" />
<include package=".browser" />

</configure>

0 comments on commit c4fd8c9

Please sign in to comment.