Merge branch 'bbmaster' of ssh://git.cy55.de/home/git/loops into bbmaster

This commit is contained in:
hplattner 2011-10-20 14:35:00 +02:00
commit f8abff58d6
32 changed files with 97 additions and 70 deletions

View file

@ -552,7 +552,7 @@ view for rendering.)
False
>>> view.renderTarget()
u'<p>Test data</p>\n<p>Another <a class="reference" href="para">paragraph</a></p>\n'
u'<p>Test data</p>\n<p>Another <a class="reference external" href="para">paragraph</a></p>\n'
u'<p>Test data</p>\n<p>Another <a class="reference create"
href="http://127.0.0.1/loops/wiki/create.html?linkid=0000001">?paragraph</a></p>\n'

View file

@ -24,7 +24,6 @@ $Id$
from itertools import groupby
from zope import interface, component, schema
from zope.app import zapi
from zope.app.catalog.interfaces import ICatalog
from zope.lifecycleevent import ObjectCreatedEvent, ObjectModifiedEvent
from zope.app.container.contained import ObjectRemovedEvent
@ -43,6 +42,7 @@ from zope.publisher.interfaces.browser import IBrowserRequest
from zope.schema.interfaces import IIterableSource
from zope.security.proxy import removeSecurityProxy
from zope.traversing.api import getName
from zope.traversing.browser import absoluteURL
from cybertools.browser.action import actions
from cybertools.composer.interfaces import IInstance
@ -182,7 +182,7 @@ class BaseRelationView(BaseView):
@Lazy
def predicateUrl(self):
return zapi.absoluteURL(self.predicate, self.request)
return absoluteURL(self.predicate, self.request)
@Lazy
def relevance(self):

View file

@ -105,7 +105,7 @@
name="AddLoopsContainer.html"
for="zope.app.container.interfaces.IAdding"
class="loops.browser.manager.LoopsAddForm"
permission="zope.ManageApplication"
permission="zope.ManageSite"
/>
<addMenuItem
@ -125,7 +125,7 @@
name="edit.html"
for="loops.interfaces.ILoops"
class="loops.browser.manager.LoopsEditForm"
permission="zope.ManageApplication"
permission="zope.ManageSite"
menu="zmi_views" title="Edit"
/>

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2006 Helmut Merz helmutm@cy55.de
# Copyright (c) 2011 Helmut Merz helmutm@cy55.de
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -22,7 +22,6 @@ Definition of view classes for the top-level loops container.
$Id$
"""
from zope.app import zapi
from zope import component
from zope.lifecycleevent import ObjectCreatedEvent, ObjectModifiedEvent
from zope.event import notify

View file

@ -25,7 +25,6 @@ $Id$
from urlparse import urlparse, urlunparse
from zope import component, interface, schema
from zope.cachedescriptors.property import Lazy
from zope.app import zapi
from zope.annotation.interfaces import IAnnotations
from zope.app.catalog.interfaces import ICatalog
from zope.app.container.browser.contents import JustContents
@ -39,8 +38,10 @@ from zope.lifecycleevent import ObjectCreatedEvent, ObjectModifiedEvent
from zope.lifecycleevent import Attributes
from zope.formlib.form import Form, FormFields
from zope.proxy import removeAllProxies
from zope.publisher.defaultview import getDefaultViewName
from zope.security import canAccess, canWrite, checkPermission
from zope.security.proxy import removeSecurityProxy
from zope.traversing.api import getParent, getParents, getPath
from cybertools.ajax import innerHtml
from cybertools.browser import configurator
@ -243,7 +244,7 @@ class NodeView(BaseView):
return u''
if text.startswith('<'): # seems to be HTML
return text
source = zapi.createObject(self.context.contentType, text)
source = component.createObject(self.context.contentType, text)
view = component.getMultiAdapter((removeAllProxies(source), self.request))
return view.render()
@ -316,7 +317,7 @@ class NodeView(BaseView):
menu = self.menuObject
parentMenu = None
while menu is not None:
parent = zapi.getParent(menu)
parent = getParent(menu)
if INode.providedBy(parent):
parentMenu = parent.getMenu()
if parentMenu is None or parentMenu is menu:
@ -348,7 +349,7 @@ class NodeView(BaseView):
@Lazy
def parents(self):
return zapi.getParents(self.context)
return getParents(self.context)
@Lazy
def nearestMenuItem(self):
@ -413,7 +414,7 @@ class NodeView(BaseView):
target = self.virtualTargetObject
if target is not None:
# zope.app.publisher.browser
name = zapi.getDefaultViewName(target, self.request)
name = getDefaultViewName(target, self.request)
return self.targetView(name)
return u''
@ -732,8 +733,8 @@ class ConfigureView(NodeView):
container = type.defaultContainer
name = form.get('create.name', '')
if not name:
viewManagerPath = zapi.getPath(root.getViewManager())
name = zapi.getPath(self.context)[len(viewManagerPath)+1:]
viewManagerPath = getPath(root.getViewManager())
name = getPath(self.context)[len(viewManagerPath)+1:]
name = name.replace('/', '.')
# check for duplicates:
num = 1
@ -850,7 +851,7 @@ class NodeViewConfigurator(configurator.AnnotationViewConfigurator):
@property
def viewProperties(self):
result = []
for p in list(reversed(zapi.getParents(self.context))) + [self.context]:
for p in list(reversed(getParents(self.context))) + [self.context]:
if not INode.providedBy(p) or p.nodeType != 'menu':
continue
ann = IAnnotations(p)

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2006 Helmut Merz helmutm@cy55.de
# Copyright (c) 2011 Helmut Merz helmutm@cy55.de
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -22,10 +22,10 @@ Utilities.
$Id$
"""
from zope.app import zapi
from zope.app.pagetemplate import ViewPageTemplateFile
from zope.app.publisher.browser.menu import BrowserMenu
from zope.app.publisher.interfaces.browser import IBrowserSubMenuItem
from zope import component
from zope.formlib.namedtemplate import NamedTemplateImplementation
@ -45,7 +45,7 @@ class LoopsMenu(BrowserMenu):
def getMenuItems(self, object, request):
"""Return menu item entries in a TAL-friendly form."""
result = sorted([(item.order, item.action.lower(), item)
for name, item in zapi.getAdapters(
for name, item in component.getAdapters(
(object, request), self.getMenuItemType())
if item.available()])
return [

View file

@ -432,10 +432,12 @@
<!-- utilities -->
<utility
provides="cybertools.storage.interfaces.IExternalStorage"
factory="cybertools.storage.filesystem.instanceVarSubdirectoryStorage"
name="varsubdir" />
<utility
provides="cybertools.storage.interfaces.IExternalStorage"
factory="cybertools.storage.filesystem.fullPathStorage"
name="fullpath" />

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2008 Helmut Merz helmutm@cy55.de
# Copyright (c) 2011 Helmut Merz helmutm@cy55.de
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -27,8 +27,8 @@ from BTrees.IFBTree import weightedIntersection, weightedUnion, IFBucket
from zope import schema, component
from zope.interface import Interface, Attribute, implements
from zope.app.catalog.interfaces import ICatalog
from zope.app.intid.interfaces import IIntIds
from zope.cachedescriptors.property import Lazy
from zope.intid.interfaces import IIntIds
from cybertools.typology.interfaces import IType
from loops.common import AdapterBase

View file

@ -26,10 +26,10 @@ from BTrees.IIBTree import IITreeSet
from BTrees.IFBTree import IFBucket, IFBTree, IFTreeSet
from BTrees.IOBTree import IOBucket, IOBTree
from zope import interface, component
from zope.app.intid.interfaces import IIntIds
from zope.component import adapts
from zope.interface import implements, implementer
from zope.cachedescriptors.property import Lazy
from zope.intid.interfaces import IIntIds
from cybertools.catalog.query import Term, Eq, Between, And, Or
from cybertools.catalog.query import Text as BaseText

1
external/browser.py vendored
View file

@ -27,7 +27,6 @@ import os
import time
from zope import component
from zope.interface import Interface, implements
from zope.app import zapi
from zope.app.pagetemplate.viewpagetemplatefile import ViewPageTemplateFile
from zope.cachedescriptors.property import Lazy
from zope.security.proxy import removeSecurityProxy

View file

@ -24,7 +24,6 @@ $Id$
"""
from zope import interface, component
from zope.app import zapi
from zope.component import adapts
from zope.interface import implements
from zope.cachedescriptors.property import Lazy

View file

@ -155,7 +155,7 @@ with a principal folder:
>>> from zope.app.authentication.authentication import PluggableAuthentication
>>> from zope.app.security.interfaces import IAuthentication
>>> ensureUtility(site, IAuthentication, '', PluggableAuthentication,
... copy_to_zlog=False, asObject=True)
... copy_to_zlog=False)
<...PluggableAuthentication...>
>>> pau = component.getUtility(IAuthentication, context=site)
@ -265,7 +265,7 @@ Automatic security settings on persons
Person objects that have a user assigned to them receive this user
(principal) as their owner.
>>> from zope.app.securitypolicy.interfaces import IPrincipalRoleMap
>>> from zope.securitypolicy.interfaces import IPrincipalRoleMap
>>> IPrincipalRoleMap(concepts['john']).getPrincipalsAndRoles()
[('loops.Owner', 'users.john', PermissionSetting: Allow)]
>>> IPrincipalRoleMap(concepts['person.newuser']).getPrincipalsAndRoles()

View file

@ -65,11 +65,11 @@
provides="zope.app.authentication.interfaces.ICredentialsPlugin"
factory="loops.organize.auth.LoopsSessionCredentialsPlugin" />
<zope:localUtility class="loops.organize.auth.PersonBasedAuthenticator">
<zope:class class="loops.organize.auth.PersonBasedAuthenticator">
<require
permission="zope.ManageServices"
attributes="prefix" />
</zope:localUtility>
</zope:class>
<!-- other adapters -->

View file

@ -24,10 +24,10 @@ $Id$
from zope.interface import Interface, Attribute
from zope import interface, component, schema
from zope.app import zapi
from zope.app.principalannotation import annotations
from zope.app.security.interfaces import IAuthentication, PrincipalLookupError
from zope.security.proxy import removeSecurityProxy
from zope.traversing.api import getName
from cybertools.organize.interfaces import IAddress as IBaseAddress
from cybertools.organize.interfaces import IPerson as IBasePerson
@ -70,7 +70,7 @@ class UserId(schema.TextLine):
if person is not None and person != context:
raiseValidationError(
_(u'There is alread a person ($person) assigned to user $userId.',
mapping=dict(person=zapi.getName(person),
mapping=dict(person=getName(person),
userId=userId)))

View file

@ -12,7 +12,6 @@ Let's do some basic set up
>>> site = placefulSetUp(True)
>>> from zope import component, interface
>>> from zope.app import zapi
and setup a simple loops site with a concept manager and some concepts
(with all the type machinery, what in real life is done via standard

View file

@ -24,7 +24,6 @@ $Id$
"""
from zope import interface, component
from zope.app import zapi
from zope.component import adapts
from zope.interface import implements
from zope.cachedescriptors.property import Lazy

View file

@ -17,8 +17,8 @@ from zope.app.principalannotation import annotations
from zope.app.principalannotation.interfaces import IPrincipalAnnotationUtility
from zope.app.security.interfaces import IAuthentication
from zope.app.security.principalregistry import PrincipalRegistry
from zope.app.securitypolicy.interfaces import IRolePermissionManager
from zope.app.securitypolicy.interfaces import IPrincipalRoleManager
from zope.securitypolicy.interfaces import IRolePermissionManager
from zope.securitypolicy.interfaces import IPrincipalRoleManager
from cybertools.util.jeep import Jeep
from loops.common import adapted
@ -50,7 +50,7 @@ def setupObjectsForTesting(site, concepts):
loopsRoot = concepts.getLoopsRoot()
setupData = setupUtilitiesAndAdapters(loopsRoot)
ensureUtility(site, IAuthentication, '', PluggableAuthentication,
copy_to_zlog=False, asObject=True)
copy_to_zlog=False)
pau = component.getUtility(IAuthentication, context=site)
# create principal folder and user(s)
pFolder = PrincipalFolder('users.')

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2009 Helmut Merz helmutm@cy55.de
# Copyright (c) 2011 Helmut Merz helmutm@cy55.de
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -28,7 +28,7 @@ from zope.app.authentication.interfaces import IAuthenticatorPlugin
from zope.app.authentication.groupfolder import GroupFolder
from zope.app.security.interfaces import IAuthentication, PrincipalLookupError
from zope.app.security.settings import Allow, Deny, Unset
from zope.app.securitypolicy.interfaces import IPrincipalRoleManager
from zope.securitypolicy.interfaces import IPrincipalRoleManager
from zope.traversing.api import getParents
from loops.common import adapted
from loops.type import getOptionsDict

View file

@ -27,8 +27,8 @@ from BTrees.IFBTree import weightedIntersection, weightedUnion, IFBucket
from zope import schema, component
from zope.interface import Interface, Attribute, implements
from zope.app.catalog.interfaces import ICatalog
from zope.app.intid.interfaces import IIntIds
from zope.cachedescriptors.property import Lazy
from zope.intid.interfaces import IIntIds
from cybertools.typology.interfaces import IType
from loops.common import AdapterBase

View file

@ -28,17 +28,17 @@ from zope.app.security.interfaces import IPermission
from zope.app.security.settings import Allow, Deny, Unset
from zope.app.securitypolicy.browser import granting
from zope.app.securitypolicy.browser.rolepermissionview import RolePermissionView
from zope.app.securitypolicy.interfaces import IPrincipalRoleManager, \
IRolePermissionMap
from zope.app.securitypolicy.interfaces import IPrincipalPermissionManager, \
IPrincipalPermissionMap
from zope.app.securitypolicy.zopepolicy import SettingAsBoolean
from zope import component
from zope.event import notify
from zope.interface import implements
from zope.cachedescriptors.property import Lazy
from zope.lifecycleevent import ObjectCreatedEvent, ObjectModifiedEvent
from zope.security.proxy import removeSecurityProxy
from zope.securitypolicy.interfaces import IPrincipalRoleManager, \
IRolePermissionMap
from zope.securitypolicy.interfaces import IPrincipalPermissionManager, \
IPrincipalPermissionMap
from zope.securitypolicy.zopepolicy import SettingAsBoolean
from zope.traversing.api import getName, getParent, getParents
from loops.common import adapted

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2010 Helmut Merz helmutm@cy55.de
# Copyright (c) 2011 Helmut Merz helmutm@cy55.de
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -24,9 +24,9 @@ $Id$
from zope import interface, component
from zope.app.pagetemplate import ViewPageTemplateFile
from zope.app.securitypolicy.interfaces import IRolePermissionMap
from zope.app.securitypolicy.zopepolicy import SettingAsBoolean
from zope.cachedescriptors.property import Lazy
from zope.securitypolicy.interfaces import IRolePermissionMap
from zope.securitypolicy.zopepolicy import SettingAsBoolean
from zope.traversing.api import getName, getParent
from loops.browser.concept import ConceptView

View file

@ -27,14 +27,14 @@ from zope import component
from zope.annotation.interfaces import IAttributeAnnotatable
from zope.app.container.interfaces import IObjectAddedEvent
from zope.app.security.settings import Allow, Deny, Unset
from zope.app.securitypolicy.interfaces import IPrincipalRoleManager
from zope.app.securitypolicy.interfaces import IRolePermissionManager
from zope.cachedescriptors.property import Lazy
from zope.interface import implements
from zope.lifecycleevent import IObjectCreatedEvent, IObjectModifiedEvent
from zope.security import canAccess, canWrite
from zope.security import checkPermission as baseCheckPermission
from zope.security.management import getInteraction
from zope.securitypolicy.interfaces import IPrincipalRoleManager
from zope.securitypolicy.interfaces import IRolePermissionManager
from zope.traversing.api import getName
from zope.traversing.interfaces import IPhysicallyLocatable

View file

@ -16,15 +16,15 @@
<zope:adapter
for="loops.interfaces.IConcept"
factory="zope.app.securitypolicy.rolepermission.AnnotationRolePermissionManager"
factory="zope.securitypolicy.rolepermission.AnnotationRolePermissionManager"
trusted="true" />
<zope:adapter
for="loops.interfaces.IResource"
factory="zope.app.securitypolicy.rolepermission.AnnotationRolePermissionManager"
factory="zope.securitypolicy.rolepermission.AnnotationRolePermissionManager"
trusted="true" />
<zope:adapter
for="loops.interfaces.IView"
factory="zope.app.securitypolicy.rolepermission.AnnotationRolePermissionManager"
factory="zope.securitypolicy.rolepermission.AnnotationRolePermissionManager"
trusted="true" />
<zope:adapter factory="loops.security.setter.ConceptSecuritySetter" />

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2008 Helmut Merz helmutm@cy55.de
# Copyright (c) 2011 Helmut Merz helmutm@cy55.de
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -24,16 +24,16 @@ $Id$
"""
from zope.app.security.settings import Allow, Deny, Unset
from zope.app.securitypolicy.interfaces import IPrincipalRoleMap, IRolePermissionMap
from zope.app.securitypolicy.zopepolicy import ZopeSecurityPolicy
from zope.app.securitypolicy.zopepolicy import SettingAsBoolean, \
globalRolesForPrincipal, globalRolesForPermission
from zope import component
from zope.component import adapts
from zope.cachedescriptors.property import Lazy
from zope.interface import classProvides
from zope.security.interfaces import ISecurityPolicy
from zope.security.proxy import removeSecurityProxy
from zope.securitypolicy.interfaces import IPrincipalRoleMap, IRolePermissionMap
from zope.securitypolicy.zopepolicy import ZopeSecurityPolicy
from zope.securitypolicy.zopepolicy import SettingAsBoolean, \
globalRolesForPrincipal, globalRolesForPermission
from loops.interfaces import IConcept, IResource

View file

@ -24,14 +24,14 @@ $Id$
"""
from zope.app.security.settings import Allow, Deny, Unset
from zope.app.securitypolicy.interfaces import \
IRolePermissionMap, IRolePermissionManager, \
IPrincipalRoleMap, IPrincipalRoleManager
from zope import component
from zope.component import adapts
from zope.cachedescriptors.property import Lazy
from zope.interface import implements, Interface
from zope.security.proxy import isinstance
from zope.securitypolicy.interfaces import \
IRolePermissionMap, IRolePermissionManager, \
IPrincipalRoleMap, IPrincipalRoleManager
from loops.common import adapted, AdapterBase, baseObject
from loops.interfaces import IConceptSchema, IBaseResourceSchema, ILoopsAdapter

3
setup.cfg Normal file
View file

@ -0,0 +1,3 @@
[egg_info]
tag_build = dev
tag_svn_revision = true

29
setup_egg.py Normal file
View file

@ -0,0 +1,29 @@
from setuptools import setup, find_packages
import sys, os
version = '2.0'
setup(name='loops',
version=version,
description="loops",
long_description="""\
linked objects for organizational process services""",
classifiers=[], # Get strings from http://pypi.python.org/pypi?%3Aaction=list_classifiers
keywords='',
author='Helmut Merz',
author_email='helmutm@cy55.de',
url='',
license='GPL',
packages=find_packages(exclude=['ez_setup', 'examples', 'tests']),
include_package_data=True,
zip_safe=False,
install_requires=[
# -*- Extra requirements: -*-
'zope.app.securitypolicy',
'zope.app.session',
'cybertools',
],
entry_points="""
# -*- Entry points: -*-
""",
)

View file

@ -23,7 +23,6 @@ resources e.g. from forms that are called on view/node objects.
$Id$
"""
from zope.app import zapi
from zope.cachedescriptors.property import Lazy
from zope.component import adapts
from zope.i18nmessageid import MessageFactory

View file

@ -16,9 +16,6 @@ from zope.app.principalannotation import PrincipalAnnotationUtility
from zope.app.principalannotation.interfaces import IPrincipalAnnotationUtility
from zope.app.security.principalregistry import principalRegistry
from zope.app.security.interfaces import IAuthentication
from zope.app.securitypolicy.zopepolicy import ZopeSecurityPolicy
from zope.app.securitypolicy.principalrole import AnnotationPrincipalRoleManager
from zope.app.securitypolicy.rolepermission import AnnotationRolePermissionManager
from zope.app.session.interfaces import IClientIdManager, ISessionDataContainer
from zope.app.session import session
from zope.dublincore.annotatableadapter import ZDCAnnotatableAdapter
@ -27,6 +24,9 @@ from zope.interface import Interface, implements
from zope.publisher.interfaces.browser import IBrowserRequest, IBrowserView
from zope.security.checker import Checker, defineChecker
from zope.security.management import setSecurityPolicy
from zope.securitypolicy.zopepolicy import ZopeSecurityPolicy
from zope.securitypolicy.principalrole import AnnotationPrincipalRoleManager
from zope.securitypolicy.rolepermission import AnnotationRolePermissionManager
from cybertools.browser.controller import Controller
from cybertools.catalog.keyword import KeywordIndex

View file

@ -1,11 +1,9 @@
# $Id$
import unittest, doctest
from zope.testing.doctestunit import DocFileSuite
from zope.interface.verify import verifyClass
from zope.interface import implements
from zope.app import zapi
from zope.app.intid.interfaces import IIntIds
from zope.intid.interfaces import IIntIds
from loops.interfaces import ILoops
from loops.base import Loops
@ -48,8 +46,8 @@ def test_suite():
flags = doctest.NORMALIZE_WHITESPACE | doctest.ELLIPSIS
return unittest.TestSuite((
unittest.makeSuite(Test),
DocFileSuite('../README.txt', optionflags=flags),
DocFileSuite('../helpers.txt', optionflags=flags),
doctest.DocFileSuite('../README.txt', optionflags=flags),
doctest.DocFileSuite('../helpers.txt', optionflags=flags),
))
if __name__ == '__main__':

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2006 Helmut Merz helmutm@cy55.de
# Copyright (c) 2011 Helmut Merz helmutm@cy55.de
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -24,8 +24,8 @@ $Id$
import os
from zope import component
from zope.app.intid.interfaces import IIntIds
from zope.interface import directlyProvides, directlyProvidedBy
from zope.intid.interfaces import IIntIds
from zope.i18nmessageid import MessageFactory
from zope.schema import vocabulary

View file

@ -26,11 +26,11 @@ from zope import component
from zope.app.container.btree import BTreeContainer
from zope.app.container.contained import Contained
from zope.app.container.ordered import OrderedContainer
from zope.app.intid.interfaces import IIntIds
from zope.cachedescriptors.property import Lazy, readproperty
from zope.component import adapts
from zope.interface import implements
from zope.interface import alsoProvides, directlyProvides, directlyProvidedBy
from zope.intid.interfaces import IIntIds
from zope.publisher.browser import applySkin
from zope import schema
from zope.security import canAccess