collective.preventactions 0.4.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- collective/preventactions/__init__.py +9 -0
- collective/preventactions/behaviors/__init__.py +0 -0
- collective/preventactions/behaviors/configure.zcml +24 -0
- collective/preventactions/behaviors/prevent_actions.py +5 -0
- collective/preventactions/browser/__init__.py +0 -0
- collective/preventactions/browser/configure.zcml +49 -0
- collective/preventactions/browser/preventactions.py +92 -0
- collective/preventactions/browser/static/.gitkeep +0 -0
- collective/preventactions/browser/views.py +17 -0
- collective/preventactions/configure.zcml +58 -0
- collective/preventactions/interfaces.py +13 -0
- collective/preventactions/locales/collective.preventactions.pot +91 -0
- collective/preventactions/locales/de/LC_MESSAGES/collective.preventactions.po +88 -0
- collective/preventactions/locales/en/LC_MESSAGES/collective.preventactions.po +88 -0
- collective/preventactions/locales/fr/LC_MESSAGES/collective.preventactions.po +88 -0
- collective/preventactions/locales/nl/LC_MESSAGES/collective.preventactions.po +88 -0
- collective/preventactions/prevent.py +30 -0
- collective/preventactions/profiles/default/actions.xml +56 -0
- collective/preventactions/profiles/default/browserlayer.xml +6 -0
- collective/preventactions/profiles/default/metadata.xml +4 -0
- collective/preventactions/profiles/testing/metadata.xml +7 -0
- collective/preventactions/profiles/testing/properties.xml +4 -0
- collective/preventactions/profiles/testing/types/Document.xml +19 -0
- collective/preventactions/profiles/uninstall/actions.xml +40 -0
- collective/preventactions/profiles/uninstall/browserlayer.xml +6 -0
- collective/preventactions/setuphandlers.py +29 -0
- collective/preventactions/testing.py +20 -0
- collective/preventactions/testing.zcml +19 -0
- collective/preventactions/tests/__init__.py +0 -0
- collective/preventactions/tests/test_actions.py +102 -0
- collective/preventactions/tests/test_behaviors.py +22 -0
- collective/preventactions/tests/test_form.py +118 -0
- collective/preventactions/tests/test_install.py +86 -0
- collective/preventactions/tests/test_portal_actions.py +56 -0
- collective/preventactions/tests/test_views.py +32 -0
- collective_preventactions-0.4.0.dist-info/METADATA +177 -0
- collective_preventactions-0.4.0.dist-info/RECORD +39 -0
- collective_preventactions-0.4.0.dist-info/WHEEL +5 -0
- collective_preventactions-0.4.0.dist-info/top_level.txt +1 -0
|
File without changes
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
<configure
|
|
2
|
+
xmlns="http://namespaces.zope.org/zope"
|
|
3
|
+
xmlns:browser="http://namespaces.zope.org/browser"
|
|
4
|
+
xmlns:i18n="http://namespaces.zope.org/i18n"
|
|
5
|
+
xmlns:plone="http://namespaces.plone.org/plone"
|
|
6
|
+
xmlns:zcml="http://namespaces.zope.org/zcml"
|
|
7
|
+
i18n_domain="collective.preventactions"
|
|
8
|
+
>
|
|
9
|
+
|
|
10
|
+
<include
|
|
11
|
+
package="plone.behavior"
|
|
12
|
+
file="meta.zcml"
|
|
13
|
+
/>
|
|
14
|
+
|
|
15
|
+
<plone:behavior
|
|
16
|
+
name="collective.preventactions.prevent_actions"
|
|
17
|
+
title="PreventActions"
|
|
18
|
+
description="This behaviors adds prevent actions on a content type"
|
|
19
|
+
provides=".prevent_actions.IPreventActionsMarker"
|
|
20
|
+
marker=".prevent_actions.IPreventActionsMarker"
|
|
21
|
+
/>
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
</configure>
|
|
File without changes
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<configure
|
|
2
|
+
xmlns="http://namespaces.zope.org/zope"
|
|
3
|
+
xmlns:browser="http://namespaces.zope.org/browser"
|
|
4
|
+
xmlns:plone="http://namespaces.plone.org/plone"
|
|
5
|
+
xmlns:zcml="http://namespaces.zope.org/zcml"
|
|
6
|
+
i18n_domain="collective.preventactions"
|
|
7
|
+
>
|
|
8
|
+
|
|
9
|
+
<!-- Publish static files -->
|
|
10
|
+
<browser:resourceDirectory
|
|
11
|
+
name="collective.preventactions"
|
|
12
|
+
directory="static"
|
|
13
|
+
/>
|
|
14
|
+
|
|
15
|
+
<include
|
|
16
|
+
package="Products.CMFCore"
|
|
17
|
+
file="permissions.zcml"
|
|
18
|
+
/>
|
|
19
|
+
|
|
20
|
+
<browser:page
|
|
21
|
+
name="prevent-actions"
|
|
22
|
+
for="OFS.interfaces.IItem"
|
|
23
|
+
class=".preventactions.PreventActionsView"
|
|
24
|
+
permission="cmf.ManagePortal"
|
|
25
|
+
layer="..interfaces.ICollectivePreventActionsLayer"
|
|
26
|
+
/>
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
<class class="plone.dexterity.content.DexterityContent">
|
|
30
|
+
<implements interface=".preventactions.IPreventActions" />
|
|
31
|
+
</class>
|
|
32
|
+
|
|
33
|
+
<browser:page
|
|
34
|
+
name="is_deletable"
|
|
35
|
+
for="OFS.interfaces.IItem"
|
|
36
|
+
class=".views.IsDeletable"
|
|
37
|
+
permission="zope2.Public"
|
|
38
|
+
layer="..interfaces.ICollectivePreventActionsLayer"
|
|
39
|
+
/>
|
|
40
|
+
|
|
41
|
+
<browser:page
|
|
42
|
+
name="is_moveable"
|
|
43
|
+
for="OFS.interfaces.IItem"
|
|
44
|
+
class=".views.IsMoveable"
|
|
45
|
+
permission="zope2.Public"
|
|
46
|
+
layer="..interfaces.ICollectivePreventActionsLayer"
|
|
47
|
+
/>
|
|
48
|
+
|
|
49
|
+
</configure>
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
from collective.preventactions import _
|
|
2
|
+
from collective.preventactions.interfaces import IPreventDelete
|
|
3
|
+
from collective.preventactions.interfaces import IPreventMoveOrRename
|
|
4
|
+
from plone.z3cform.layout import wrap_form
|
|
5
|
+
from z3c.form import button
|
|
6
|
+
from z3c.form import field
|
|
7
|
+
from z3c.form import form
|
|
8
|
+
from z3c.form.browser.checkbox import SingleCheckBoxFieldWidget
|
|
9
|
+
from zope import schema
|
|
10
|
+
from zope.interface import alsoProvides
|
|
11
|
+
from zope.interface import Interface
|
|
12
|
+
from zope.interface import noLongerProvides
|
|
13
|
+
|
|
14
|
+
import logging
|
|
15
|
+
|
|
16
|
+
logger = logging.getLogger("collective.preventactions")
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class PreventBool(schema.Bool):
|
|
20
|
+
_type = bool
|
|
21
|
+
|
|
22
|
+
def __init__(self, title, description, default, iface=None):
|
|
23
|
+
super().__init__(
|
|
24
|
+
title=title, description=description, required=False, default=default
|
|
25
|
+
)
|
|
26
|
+
self.iface = iface
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class IPreventActions(Interface):
|
|
30
|
+
"""Define form fields"""
|
|
31
|
+
|
|
32
|
+
delete = PreventBool(
|
|
33
|
+
title=_("This object can not be deleted"),
|
|
34
|
+
description=_("If checked, this object can not be deleted."),
|
|
35
|
+
default=False,
|
|
36
|
+
iface=IPreventDelete,
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
move_or_rename = PreventBool(
|
|
40
|
+
title=_("This object can not be moved or renamed"),
|
|
41
|
+
description=_("If checked, this object can not be moved or renamed (id)."),
|
|
42
|
+
default=False,
|
|
43
|
+
iface=IPreventMoveOrRename,
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class PreventActionsForm(form.Form):
|
|
48
|
+
fields = field.Fields(IPreventActions)
|
|
49
|
+
label = _("Prevent actions")
|
|
50
|
+
description = _("What actions do you want to prevent ?")
|
|
51
|
+
fields["delete"].widgetFactory = SingleCheckBoxFieldWidget
|
|
52
|
+
fields["move_or_rename"].widgetFactory = SingleCheckBoxFieldWidget
|
|
53
|
+
|
|
54
|
+
def updateWidgets(self):
|
|
55
|
+
"""Customize widget options before rendering the form."""
|
|
56
|
+
super().updateWidgets()
|
|
57
|
+
|
|
58
|
+
# Dump out all widgets - note that each <fieldset> is a subform
|
|
59
|
+
# and this function only concerns the current fieldset
|
|
60
|
+
for widget_name in self.widgets:
|
|
61
|
+
widget = self.widgets[widget_name]
|
|
62
|
+
checked = widget.field.iface.providedBy(self.context)
|
|
63
|
+
if checked:
|
|
64
|
+
widget.value = ["selected"]
|
|
65
|
+
else:
|
|
66
|
+
widget.value = []
|
|
67
|
+
|
|
68
|
+
@button.buttonAndHandler(_("Save"))
|
|
69
|
+
def handleApply(self, action):
|
|
70
|
+
data, errors = self.extractData()
|
|
71
|
+
if errors:
|
|
72
|
+
self.status = self.formErrorsMessage
|
|
73
|
+
return
|
|
74
|
+
|
|
75
|
+
for name, value in data.items():
|
|
76
|
+
if value:
|
|
77
|
+
alsoProvides(self.context, self.fields[name].field.iface)
|
|
78
|
+
self.widgets[name].value = ["selected"]
|
|
79
|
+
else:
|
|
80
|
+
noLongerProvides(self.context, self.fields[name].field.iface)
|
|
81
|
+
self.widgets[name].value = []
|
|
82
|
+
# The uninstall profile finds marked objects through the catalog.
|
|
83
|
+
self.context.reindexObject(idxs=["object_provides"])
|
|
84
|
+
|
|
85
|
+
self.status = _("Changes saved")
|
|
86
|
+
|
|
87
|
+
@button.buttonAndHandler("Cancel")
|
|
88
|
+
def handleCancel(self, action):
|
|
89
|
+
"""User cancelled. Redirect back to the front page."""
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
PreventActionsView = wrap_form(PreventActionsForm)
|
|
File without changes
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from collective.preventactions.interfaces import IPreventDelete
|
|
2
|
+
from collective.preventactions.interfaces import IPreventMoveOrRename
|
|
3
|
+
from Products.Five.browser import BrowserView
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class IsDeletable(BrowserView):
|
|
7
|
+
"""Return True if we can delete object"""
|
|
8
|
+
|
|
9
|
+
def __call__(self):
|
|
10
|
+
return not IPreventDelete.providedBy(self.context)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class IsMoveable(BrowserView):
|
|
14
|
+
"""Return True if we can move or rename object"""
|
|
15
|
+
|
|
16
|
+
def __call__(self):
|
|
17
|
+
return not IPreventMoveOrRename.providedBy(self.context)
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
<configure
|
|
2
|
+
xmlns="http://namespaces.zope.org/zope"
|
|
3
|
+
xmlns:cmf="http://namespaces.zope.org/cmf"
|
|
4
|
+
xmlns:five="http://namespaces.zope.org/five"
|
|
5
|
+
xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
|
|
6
|
+
xmlns:grok="http://namespaces.zope.org/grok"
|
|
7
|
+
xmlns:i18n="http://namespaces.zope.org/i18n"
|
|
8
|
+
i18n_domain="collective.preventactions"
|
|
9
|
+
>
|
|
10
|
+
|
|
11
|
+
<!-- Zope2 initialization -->
|
|
12
|
+
<five:registerPackage
|
|
13
|
+
package="."
|
|
14
|
+
initialize=".initialize"
|
|
15
|
+
/>
|
|
16
|
+
|
|
17
|
+
<!-- Include sub-packages that use their own configure.zcml files. -->
|
|
18
|
+
<include package=".browser" />
|
|
19
|
+
<include package=".behaviors" />
|
|
20
|
+
|
|
21
|
+
<!-- Register the installation GenericSetup extension profile -->
|
|
22
|
+
<genericsetup:registerProfile
|
|
23
|
+
name="default"
|
|
24
|
+
title="collective.preventactions"
|
|
25
|
+
description="Extension profile for collective.preventactions."
|
|
26
|
+
provides="Products.GenericSetup.interfaces.EXTENSION"
|
|
27
|
+
directory="profiles/default"
|
|
28
|
+
/>
|
|
29
|
+
|
|
30
|
+
<genericsetup:registerProfile
|
|
31
|
+
name="uninstall"
|
|
32
|
+
title="collective.preventactions: uninstall"
|
|
33
|
+
description="Uninstalls collective.preventactions."
|
|
34
|
+
provides="Products.GenericSetup.interfaces.EXTENSION"
|
|
35
|
+
for="plone.base.interfaces.IPloneSiteRoot"
|
|
36
|
+
directory="profiles/uninstall"
|
|
37
|
+
post_handler=".setuphandlers.uninstall"
|
|
38
|
+
/>
|
|
39
|
+
|
|
40
|
+
<utility
|
|
41
|
+
factory=".setuphandlers.HiddenProfiles"
|
|
42
|
+
name="collective.preventactions.hiddenprofiles"
|
|
43
|
+
/>
|
|
44
|
+
|
|
45
|
+
<i18n:registerTranslations directory="locales" />
|
|
46
|
+
|
|
47
|
+
<subscriber
|
|
48
|
+
for="OFS.interfaces.IItem
|
|
49
|
+
OFS.interfaces.IObjectWillBeRemovedEvent"
|
|
50
|
+
handler=".prevent.deleteObject"
|
|
51
|
+
/>
|
|
52
|
+
|
|
53
|
+
<subscriber
|
|
54
|
+
for="OFS.interfaces.IItem
|
|
55
|
+
OFS.interfaces.IObjectWillBeMovedEvent"
|
|
56
|
+
handler=".prevent.moveOrRenameObject"
|
|
57
|
+
/>
|
|
58
|
+
</configure>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
from zope.interface import Interface
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class ICollectivePreventActionsLayer(Interface):
|
|
5
|
+
"""Marker interface that defines a Zope 3 browser layer."""
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class IPreventDelete(Interface):
|
|
9
|
+
"""Marker interface for prevent delete object"""
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class IPreventMoveOrRename(Interface):
|
|
13
|
+
"""Marker interface for prevent move / rename object"""
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
#--- PLEASE EDIT THE LINES BELOW CORRECTLY ---
|
|
2
|
+
#SOME DESCRIPTIVE TITLE.
|
|
3
|
+
#FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
4
|
+
msgid ""
|
|
5
|
+
msgstr ""
|
|
6
|
+
"Project-Id-Version: PACKAGE VERSION\n"
|
|
7
|
+
"POT-Creation-Date: 2025-03-06 23:11+0000\n"
|
|
8
|
+
"PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n"
|
|
9
|
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
10
|
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
11
|
+
"MIME-Version: 1.0\n"
|
|
12
|
+
"Content-Type: text/plain; charset=utf-8\n"
|
|
13
|
+
"Content-Transfer-Encoding: 8bit\n"
|
|
14
|
+
"Plural-Forms: nplurals=1; plural=0\n"
|
|
15
|
+
"Language-Code: en\n"
|
|
16
|
+
"Language-Name: English\n"
|
|
17
|
+
"Preferred-Encodings: utf-8 latin1\n"
|
|
18
|
+
"Domain: collective.preventactions\n"
|
|
19
|
+
|
|
20
|
+
#: collective/preventactions/browser/preventactions.py:86
|
|
21
|
+
msgid "Changes saved"
|
|
22
|
+
msgstr ""
|
|
23
|
+
|
|
24
|
+
#: collective/preventactions/configure.zcml:23
|
|
25
|
+
msgid "Extension profile for collective.preventactions."
|
|
26
|
+
msgstr ""
|
|
27
|
+
|
|
28
|
+
#: collective/preventactions/browser/preventactions.py:37
|
|
29
|
+
msgid "If checked, this object can not be deleted."
|
|
30
|
+
msgstr ""
|
|
31
|
+
|
|
32
|
+
#: collective/preventactions/browser/preventactions.py:44
|
|
33
|
+
msgid "If checked, this object can not be moved or renamed (id)."
|
|
34
|
+
msgstr ""
|
|
35
|
+
|
|
36
|
+
#: collective/preventactions/browser/preventactions.py:52
|
|
37
|
+
#: collective/preventactions/profiles/default/actions.xml
|
|
38
|
+
msgid "Prevent actions"
|
|
39
|
+
msgstr ""
|
|
40
|
+
|
|
41
|
+
#: collective/preventactions/behaviors/configure.zcml:17
|
|
42
|
+
msgid "PreventActions"
|
|
43
|
+
msgstr ""
|
|
44
|
+
|
|
45
|
+
#: collective/preventactions/browser/preventactions.py:71
|
|
46
|
+
msgid "Save"
|
|
47
|
+
msgstr ""
|
|
48
|
+
|
|
49
|
+
#: collective/preventactions/behaviors/configure.zcml:17
|
|
50
|
+
msgid "This behaviors adds prevent actions on a content type"
|
|
51
|
+
msgstr ""
|
|
52
|
+
|
|
53
|
+
#: collective/preventactions/browser/preventactions.py:36
|
|
54
|
+
msgid "This object can not be deleted"
|
|
55
|
+
msgstr ""
|
|
56
|
+
|
|
57
|
+
#: collective/preventactions/browser/preventactions.py:43
|
|
58
|
+
msgid "This object can not be moved or renamed"
|
|
59
|
+
msgstr ""
|
|
60
|
+
|
|
61
|
+
#: collective/preventactions/configure.zcml:32
|
|
62
|
+
msgid "Uninstalls collective.preventactions."
|
|
63
|
+
msgstr ""
|
|
64
|
+
|
|
65
|
+
#: collective/preventactions/browser/preventactions.py:53
|
|
66
|
+
msgid "What actions do you want to prevent ?"
|
|
67
|
+
msgstr ""
|
|
68
|
+
|
|
69
|
+
#: collective/preventactions/prevent.py:19
|
|
70
|
+
msgid "You can not delete this object"
|
|
71
|
+
msgstr ""
|
|
72
|
+
|
|
73
|
+
#: collective/preventactions/prevent.py:28
|
|
74
|
+
msgid "You can not move or rename this object"
|
|
75
|
+
msgstr ""
|
|
76
|
+
|
|
77
|
+
#: collective/preventactions/configure.zcml:23
|
|
78
|
+
msgid "collective.preventactions"
|
|
79
|
+
msgstr ""
|
|
80
|
+
|
|
81
|
+
#: collective/preventactions/testing.zcml:15
|
|
82
|
+
msgid "collective.preventactions desc"
|
|
83
|
+
msgstr ""
|
|
84
|
+
|
|
85
|
+
#: collective/preventactions/testing.zcml:15
|
|
86
|
+
msgid "collective.preventactions test"
|
|
87
|
+
msgstr ""
|
|
88
|
+
|
|
89
|
+
#: collective/preventactions/configure.zcml:32
|
|
90
|
+
msgid "collective.preventactions: uninstall"
|
|
91
|
+
msgstr ""
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
msgid ""
|
|
2
|
+
msgstr ""
|
|
3
|
+
"Project-Id-Version: PACKAGE VERSION\n"
|
|
4
|
+
"POT-Creation-Date: 2025-03-06 23:11+0000\n"
|
|
5
|
+
"PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n"
|
|
6
|
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
7
|
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
8
|
+
"MIME-Version: 1.0\n"
|
|
9
|
+
"Content-Type: text/plain; charset=utf-8\n"
|
|
10
|
+
"Content-Transfer-Encoding: 8bit\n"
|
|
11
|
+
"Plural-Forms: nplurals=1; plural=0\n"
|
|
12
|
+
"Language-Code: de\n"
|
|
13
|
+
"Language-Name: Deutsch\n"
|
|
14
|
+
"Preferred-Encodings: utf-8 latin1\n"
|
|
15
|
+
"Domain: collective.preventactions\n"
|
|
16
|
+
|
|
17
|
+
#: collective/preventactions/browser/preventactions.py:86
|
|
18
|
+
msgid "Changes saved"
|
|
19
|
+
msgstr "Modifikationen gespeichert"
|
|
20
|
+
|
|
21
|
+
#: collective/preventactions/configure.zcml:23
|
|
22
|
+
msgid "Extension profile for collective.preventactions."
|
|
23
|
+
msgstr "Erweiterungsprofil für collective.preventactions."
|
|
24
|
+
|
|
25
|
+
#: collective/preventactions/browser/preventactions.py:37
|
|
26
|
+
msgid "If checked, this object can not be deleted."
|
|
27
|
+
msgstr "Sollte diese Option aktiviert sein, kann das Objekt nicht gelöscht werden."
|
|
28
|
+
|
|
29
|
+
#: collective/preventactions/browser/preventactions.py:44
|
|
30
|
+
msgid "If checked, this object can not be moved or renamed (id)."
|
|
31
|
+
msgstr "Sollte diese Option aktiviert sein, kann das Objekt nicht verschoben oder umbenannt werden (ID)."
|
|
32
|
+
|
|
33
|
+
#: collective/preventactions/browser/preventactions.py:52
|
|
34
|
+
#: collective/preventactions/profiles/default/actions.xml
|
|
35
|
+
msgid "Prevent actions"
|
|
36
|
+
msgstr "Aktionen verhindern"
|
|
37
|
+
|
|
38
|
+
#: collective/preventactions/behaviors/configure.zcml:17
|
|
39
|
+
msgid "PreventActions"
|
|
40
|
+
msgstr "PreventActions"
|
|
41
|
+
|
|
42
|
+
#: collective/preventactions/browser/preventactions.py:71
|
|
43
|
+
msgid "Save"
|
|
44
|
+
msgstr "Speichern"
|
|
45
|
+
|
|
46
|
+
#: collective/preventactions/behaviors/configure.zcml:17
|
|
47
|
+
msgid "This behaviors adds prevent actions on a content type"
|
|
48
|
+
msgstr "Dieses Verhalten fügt einem Inhaltstyp verhinderte Aktionen hinzu"
|
|
49
|
+
|
|
50
|
+
#: collective/preventactions/browser/preventactions.py:36
|
|
51
|
+
msgid "This object can not be deleted"
|
|
52
|
+
msgstr "Dieses Objekt kann nicht gelöscht werden"
|
|
53
|
+
|
|
54
|
+
#: collective/preventactions/browser/preventactions.py:43
|
|
55
|
+
msgid "This object can not be moved or renamed"
|
|
56
|
+
msgstr "Dieses Objekt kann nicht verschoben oder umbenannt werden"
|
|
57
|
+
|
|
58
|
+
#: collective/preventactions/configure.zcml:32
|
|
59
|
+
msgid "Uninstalls collective.preventactions."
|
|
60
|
+
msgstr "Deinstalliert collective.preventactions."
|
|
61
|
+
|
|
62
|
+
#: collective/preventactions/browser/preventactions.py:53
|
|
63
|
+
msgid "What actions do you want to prevent ?"
|
|
64
|
+
msgstr "Welche Aktionen möchten Sie verhindern ?"
|
|
65
|
+
|
|
66
|
+
#: collective/preventactions/prevent.py:19
|
|
67
|
+
msgid "You can not delete this object"
|
|
68
|
+
msgstr "Du kannst dieses Objekt nicht löschen"
|
|
69
|
+
|
|
70
|
+
#: collective/preventactions/prevent.py:28
|
|
71
|
+
msgid "You can not move or rename this object"
|
|
72
|
+
msgstr "Du kannst dieses Objekt nicht verschieben oder umbenennen"
|
|
73
|
+
|
|
74
|
+
#: collective/preventactions/configure.zcml:23
|
|
75
|
+
msgid "collective.preventactions"
|
|
76
|
+
msgstr "collective.preventactions"
|
|
77
|
+
|
|
78
|
+
#: collective/preventactions/testing.zcml:15
|
|
79
|
+
msgid "collective.preventactions desc"
|
|
80
|
+
msgstr "collective.preventactions desc"
|
|
81
|
+
|
|
82
|
+
#: collective/preventactions/testing.zcml:15
|
|
83
|
+
msgid "collective.preventactions test"
|
|
84
|
+
msgstr "collective.preventactions test"
|
|
85
|
+
|
|
86
|
+
#: collective/preventactions/configure.zcml:32
|
|
87
|
+
msgid "collective.preventactions: uninstall"
|
|
88
|
+
msgstr "collective.preventactions: deinstallieren"
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
msgid ""
|
|
2
|
+
msgstr ""
|
|
3
|
+
"Project-Id-Version: PACKAGE VERSION\n"
|
|
4
|
+
"POT-Creation-Date: 2025-03-06 23:11+0000\n"
|
|
5
|
+
"PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n"
|
|
6
|
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
7
|
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
8
|
+
"MIME-Version: 1.0\n"
|
|
9
|
+
"Content-Type: text/plain; charset=utf-8\n"
|
|
10
|
+
"Content-Transfer-Encoding: 8bit\n"
|
|
11
|
+
"Plural-Forms: nplurals=1; plural=0\n"
|
|
12
|
+
"Language-Code: en\n"
|
|
13
|
+
"Language-Name: English\n"
|
|
14
|
+
"Preferred-Encodings: utf-8 latin1\n"
|
|
15
|
+
"Domain: collective.preventactions\n"
|
|
16
|
+
|
|
17
|
+
#: collective/preventactions/browser/preventactions.py:86
|
|
18
|
+
msgid "Changes saved"
|
|
19
|
+
msgstr ""
|
|
20
|
+
|
|
21
|
+
#: collective/preventactions/configure.zcml:23
|
|
22
|
+
msgid "Extension profile for collective.preventactions."
|
|
23
|
+
msgstr ""
|
|
24
|
+
|
|
25
|
+
#: collective/preventactions/browser/preventactions.py:37
|
|
26
|
+
msgid "If checked, this object can not be deleted."
|
|
27
|
+
msgstr ""
|
|
28
|
+
|
|
29
|
+
#: collective/preventactions/browser/preventactions.py:44
|
|
30
|
+
msgid "If checked, this object can not be moved or renamed (id)."
|
|
31
|
+
msgstr ""
|
|
32
|
+
|
|
33
|
+
#: collective/preventactions/browser/preventactions.py:52
|
|
34
|
+
#: collective/preventactions/profiles/default/actions.xml
|
|
35
|
+
msgid "Prevent actions"
|
|
36
|
+
msgstr ""
|
|
37
|
+
|
|
38
|
+
#: collective/preventactions/behaviors/configure.zcml:17
|
|
39
|
+
msgid "PreventActions"
|
|
40
|
+
msgstr ""
|
|
41
|
+
|
|
42
|
+
#: collective/preventactions/browser/preventactions.py:71
|
|
43
|
+
msgid "Save"
|
|
44
|
+
msgstr ""
|
|
45
|
+
|
|
46
|
+
#: collective/preventactions/behaviors/configure.zcml:17
|
|
47
|
+
msgid "This behaviors adds prevent actions on a content type"
|
|
48
|
+
msgstr ""
|
|
49
|
+
|
|
50
|
+
#: collective/preventactions/browser/preventactions.py:36
|
|
51
|
+
msgid "This object can not be deleted"
|
|
52
|
+
msgstr ""
|
|
53
|
+
|
|
54
|
+
#: collective/preventactions/browser/preventactions.py:43
|
|
55
|
+
msgid "This object can not be moved or renamed"
|
|
56
|
+
msgstr ""
|
|
57
|
+
|
|
58
|
+
#: collective/preventactions/configure.zcml:32
|
|
59
|
+
msgid "Uninstalls collective.preventactions."
|
|
60
|
+
msgstr ""
|
|
61
|
+
|
|
62
|
+
#: collective/preventactions/browser/preventactions.py:53
|
|
63
|
+
msgid "What actions do you want to prevent ?"
|
|
64
|
+
msgstr ""
|
|
65
|
+
|
|
66
|
+
#: collective/preventactions/prevent.py:19
|
|
67
|
+
msgid "You can not delete this object"
|
|
68
|
+
msgstr ""
|
|
69
|
+
|
|
70
|
+
#: collective/preventactions/prevent.py:28
|
|
71
|
+
msgid "You can not move or rename this object"
|
|
72
|
+
msgstr ""
|
|
73
|
+
|
|
74
|
+
#: collective/preventactions/configure.zcml:23
|
|
75
|
+
msgid "collective.preventactions"
|
|
76
|
+
msgstr ""
|
|
77
|
+
|
|
78
|
+
#: collective/preventactions/testing.zcml:15
|
|
79
|
+
msgid "collective.preventactions desc"
|
|
80
|
+
msgstr ""
|
|
81
|
+
|
|
82
|
+
#: collective/preventactions/testing.zcml:15
|
|
83
|
+
msgid "collective.preventactions test"
|
|
84
|
+
msgstr ""
|
|
85
|
+
|
|
86
|
+
#: collective/preventactions/configure.zcml:32
|
|
87
|
+
msgid "collective.preventactions: uninstall"
|
|
88
|
+
msgstr ""
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
msgid ""
|
|
2
|
+
msgstr ""
|
|
3
|
+
"Project-Id-Version: PACKAGE VERSION\n"
|
|
4
|
+
"POT-Creation-Date: 2025-03-06 23:11+0000\n"
|
|
5
|
+
"PO-Revision-Date: YEAR-MO-DA HO:MI +ZONE\n"
|
|
6
|
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
7
|
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
8
|
+
"MIME-Version: 1.0\n"
|
|
9
|
+
"Content-Type: text/plain; charset=utf-8\n"
|
|
10
|
+
"Content-Transfer-Encoding: 8bit\n"
|
|
11
|
+
"Plural-Forms: nplurals=1; plural=0\n"
|
|
12
|
+
"Language-Code: fr\n"
|
|
13
|
+
"Language-Name: Français\n"
|
|
14
|
+
"Preferred-Encodings: utf-8 latin1\n"
|
|
15
|
+
"Domain: collective.preventactions\n"
|
|
16
|
+
|
|
17
|
+
#: collective/preventactions/browser/preventactions.py:86
|
|
18
|
+
msgid "Changes saved"
|
|
19
|
+
msgstr "Changements sauvegardés"
|
|
20
|
+
|
|
21
|
+
#: collective/preventactions/configure.zcml:23
|
|
22
|
+
msgid "Extension profile for collective.preventactions."
|
|
23
|
+
msgstr "Profil d'extension pour collective.preventactions."
|
|
24
|
+
|
|
25
|
+
#: collective/preventactions/browser/preventactions.py:37
|
|
26
|
+
msgid "If checked, this object can not be deleted."
|
|
27
|
+
msgstr "Si coché, cet objet ne peut pas être supprimé."
|
|
28
|
+
|
|
29
|
+
#: collective/preventactions/browser/preventactions.py:44
|
|
30
|
+
msgid "If checked, this object can not be moved or renamed (id)."
|
|
31
|
+
msgstr "Si coché, cet objet ne peut pas être déplacé ou renommé (id)."
|
|
32
|
+
|
|
33
|
+
#: collective/preventactions/browser/preventactions.py:52
|
|
34
|
+
#: collective/preventactions/profiles/default/actions.xml
|
|
35
|
+
msgid "Prevent actions"
|
|
36
|
+
msgstr "Prevent actions"
|
|
37
|
+
|
|
38
|
+
#: collective/preventactions/behaviors/configure.zcml:17
|
|
39
|
+
msgid "PreventActions"
|
|
40
|
+
msgstr "PreventActions"
|
|
41
|
+
|
|
42
|
+
#: collective/preventactions/browser/preventactions.py:71
|
|
43
|
+
msgid "Save"
|
|
44
|
+
msgstr "Sauvegarder"
|
|
45
|
+
|
|
46
|
+
#: collective/preventactions/behaviors/configure.zcml:17
|
|
47
|
+
msgid "This behaviors adds prevent actions on a content type"
|
|
48
|
+
msgstr "Ce comportement permet d'empêcher des actions sur un type de contenu"
|
|
49
|
+
|
|
50
|
+
#: collective/preventactions/browser/preventactions.py:36
|
|
51
|
+
msgid "This object can not be deleted"
|
|
52
|
+
msgstr "Cet objet ne peut pas être supprimé"
|
|
53
|
+
|
|
54
|
+
#: collective/preventactions/browser/preventactions.py:43
|
|
55
|
+
msgid "This object can not be moved or renamed"
|
|
56
|
+
msgstr "Cet objet ne peut pas être déplacé ou renommé"
|
|
57
|
+
|
|
58
|
+
#: collective/preventactions/configure.zcml:32
|
|
59
|
+
msgid "Uninstalls collective.preventactions."
|
|
60
|
+
msgstr "Désinstalle collective.preventactions."
|
|
61
|
+
|
|
62
|
+
#: collective/preventactions/browser/preventactions.py:53
|
|
63
|
+
msgid "What actions do you want to prevent ?"
|
|
64
|
+
msgstr "Quelles actions voulez-vous empêcher ?"
|
|
65
|
+
|
|
66
|
+
#: collective/preventactions/prevent.py:19
|
|
67
|
+
msgid "You can not delete this object"
|
|
68
|
+
msgstr "Vous ne pouvez pas supprimer cet objet"
|
|
69
|
+
|
|
70
|
+
#: collective/preventactions/prevent.py:28
|
|
71
|
+
msgid "You can not move or rename this object"
|
|
72
|
+
msgstr "Vous ne pouvez pas déplacer ou renommer cet objet"
|
|
73
|
+
|
|
74
|
+
#: collective/preventactions/configure.zcml:23
|
|
75
|
+
msgid "collective.preventactions"
|
|
76
|
+
msgstr "collective.preventactions"
|
|
77
|
+
|
|
78
|
+
#: collective/preventactions/testing.zcml:15
|
|
79
|
+
msgid "collective.preventactions desc"
|
|
80
|
+
msgstr "collective.preventactions desc"
|
|
81
|
+
|
|
82
|
+
#: collective/preventactions/testing.zcml:15
|
|
83
|
+
msgid "collective.preventactions test"
|
|
84
|
+
msgstr "collective.preventactions test"
|
|
85
|
+
|
|
86
|
+
#: collective/preventactions/configure.zcml:32
|
|
87
|
+
msgid "collective.preventactions: uninstall"
|
|
88
|
+
msgstr "collective.preventactions: désinstaller"
|