From 2a5ae0346df95e5b4f9a7d8531574dce70abe31f Mon Sep 17 00:00:00 2001 From: Chris McDonough Date: Wed, 22 Dec 2010 22:34:20 -0500 Subject: - The ``pyramid_zodb`` Paster template no longer employs ZCML. Instead, it is based on scanning. - Changed the "ZODB + Traversal Wiki Tutorial" based on changes to ``pyramid_zodb`` Paster template. --- .../wiki/src/authorization/development.ini | 30 ++++- .../wiki/src/authorization/tutorial/__init__.py | 17 ++- .../wiki/src/authorization/tutorial/configure.zcml | 25 ----- .../wiki/src/authorization/tutorial/login.py | 13 ++- .../wiki/src/authorization/tutorial/views.py | 16 +-- docs/tutorials/wiki/src/basiclayout/CHANGES.txt | 2 +- .../tutorials/wiki/src/basiclayout/development.ini | 29 +++++ docs/tutorials/wiki/src/basiclayout/setup.cfg | 1 - docs/tutorials/wiki/src/basiclayout/setup.py | 8 +- .../wiki/src/basiclayout/tutorial/__init__.py | 4 +- .../wiki/src/basiclayout/tutorial/configure.zcml | 17 --- .../basiclayout/tutorial/templates/mytemplate.pt | 104 +++++++++-------- .../wiki/src/basiclayout/tutorial/tests.py | 1 + .../wiki/src/basiclayout/tutorial/views.py | 4 + docs/tutorials/wiki/src/models/development.ini | 29 +++++ .../tutorials/wiki/src/models/tutorial/__init__.py | 6 +- .../wiki/src/models/tutorial/configure.zcml | 17 --- docs/tutorials/wiki/src/models/tutorial/views.py | 3 + docs/tutorials/wiki/src/viewdecorators/CHANGES.txt | 4 - docs/tutorials/wiki/src/viewdecorators/README.txt | 4 - .../wiki/src/viewdecorators/development.ini | 19 ---- docs/tutorials/wiki/src/viewdecorators/setup.cfg | 28 ----- docs/tutorials/wiki/src/viewdecorators/setup.py | 44 -------- .../wiki/src/viewdecorators/tutorial/__init__.py | 21 ---- .../src/viewdecorators/tutorial/configure.zcml | 13 --- .../wiki/src/viewdecorators/tutorial/models.py | 22 ---- .../src/viewdecorators/tutorial/static/favicon.ico | Bin 1406 -> 0 bytes .../src/viewdecorators/tutorial/static/logo.png | Bin 6641 -> 0 bytes .../src/viewdecorators/tutorial/static/pylons.css | 73 ------------ .../src/viewdecorators/tutorial/static/style.css | 109 ------------------ .../src/viewdecorators/tutorial/templates/edit.pt | 30 ----- .../tutorial/templates/mytemplate.pt | 69 ------------ .../src/viewdecorators/tutorial/templates/view.pt | 26 ----- .../wiki/src/viewdecorators/tutorial/tests.py | 124 --------------------- .../wiki/src/viewdecorators/tutorial/views.py | 62 ----------- docs/tutorials/wiki/src/views/development.ini | 30 ++++- docs/tutorials/wiki/src/views/tutorial/__init__.py | 7 +- .../wiki/src/views/tutorial/configure.zcml | 36 ------ docs/tutorials/wiki/src/views/tutorial/views.py | 12 +- 39 files changed, 231 insertions(+), 828 deletions(-) delete mode 100644 docs/tutorials/wiki/src/authorization/tutorial/configure.zcml delete mode 100644 docs/tutorials/wiki/src/basiclayout/tutorial/configure.zcml delete mode 100644 docs/tutorials/wiki/src/models/tutorial/configure.zcml delete mode 100644 docs/tutorials/wiki/src/viewdecorators/CHANGES.txt delete mode 100644 docs/tutorials/wiki/src/viewdecorators/README.txt delete mode 100644 docs/tutorials/wiki/src/viewdecorators/development.ini delete mode 100644 docs/tutorials/wiki/src/viewdecorators/setup.cfg delete mode 100644 docs/tutorials/wiki/src/viewdecorators/setup.py delete mode 100644 docs/tutorials/wiki/src/viewdecorators/tutorial/__init__.py delete mode 100644 docs/tutorials/wiki/src/viewdecorators/tutorial/configure.zcml delete mode 100644 docs/tutorials/wiki/src/viewdecorators/tutorial/models.py delete mode 100644 docs/tutorials/wiki/src/viewdecorators/tutorial/static/favicon.ico delete mode 100644 docs/tutorials/wiki/src/viewdecorators/tutorial/static/logo.png delete mode 100644 docs/tutorials/wiki/src/viewdecorators/tutorial/static/pylons.css delete mode 100644 docs/tutorials/wiki/src/viewdecorators/tutorial/static/style.css delete mode 100644 docs/tutorials/wiki/src/viewdecorators/tutorial/templates/edit.pt delete mode 100644 docs/tutorials/wiki/src/viewdecorators/tutorial/templates/mytemplate.pt delete mode 100644 docs/tutorials/wiki/src/viewdecorators/tutorial/templates/view.pt delete mode 100644 docs/tutorials/wiki/src/viewdecorators/tutorial/tests.py delete mode 100644 docs/tutorials/wiki/src/viewdecorators/tutorial/views.py delete mode 100644 docs/tutorials/wiki/src/views/tutorial/configure.zcml (limited to 'docs/tutorials/wiki/src') diff --git a/docs/tutorials/wiki/src/authorization/development.ini b/docs/tutorials/wiki/src/authorization/development.ini index a102b721b..6f4c33d93 100644 --- a/docs/tutorials/wiki/src/authorization/development.ini +++ b/docs/tutorials/wiki/src/authorization/development.ini @@ -4,12 +4,14 @@ reload_templates = true debug_authorization = false debug_notfound = false debug_routematch = false +debug_templates = true +default_locale_name = en zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 [pipeline:main] pipeline = + egg:WebError#evalerror egg:repoze.zodbconn#closer - egg:Paste#evalerror egg:repoze.tm#tm tutorial @@ -17,3 +19,29 @@ pipeline = use = egg:Paste#http host = 0.0.0.0 port = 6543 + +# Begin logging configuration + +[loggers] +keys = root + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = INFO +handlers = console + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s + +# End logging configuration diff --git a/docs/tutorials/wiki/src/authorization/tutorial/__init__.py b/docs/tutorials/wiki/src/authorization/tutorial/__init__.py index 742627a3f..3e9266754 100644 --- a/docs/tutorials/wiki/src/authorization/tutorial/__init__.py +++ b/docs/tutorials/wiki/src/authorization/tutorial/__init__.py @@ -1,6 +1,11 @@ -from pyramid.config import Configurator from repoze.zodbconn.finder import PersistentApplicationFinder + +from pyramid.config import Configurator +from pyramid.authentication import AuthTktAuthenticationPolicy +from pyramid.authorization import ACLAuthorizationPolicy + from tutorial.models import appmaker +from tutorial.security import groupfinder def main(global_config, **settings): """ This function returns a WSGI application. @@ -8,6 +13,9 @@ def main(global_config, **settings): It is usually called by the PasteDeploy framework during ``paster serve``. """ + authn_policy = AuthTktAuthenticationPolicy(secret='sosecret', + callback=groupfinder) + authz_policy = ACLAuthorizationPolicy() zodb_uri = settings.get('zodb_uri') if zodb_uri is None: raise ValueError("No 'zodb_uri' in application configuration.") @@ -15,6 +23,9 @@ def main(global_config, **settings): finder = PersistentApplicationFinder(zodb_uri, appmaker) def get_root(request): return finder(request.environ) - config = Configurator(root_factory=get_root, settings=settings) - config.load_zcml('configure.zcml') + config = Configurator(root_factory=get_root, settings=settings, + authentication_policy=authn_policy, + authorization_policy=authz_policy) + config.add_static_view('static', 'tutorial:static') + config.scan('tutorial') return config.make_wsgi_app() diff --git a/docs/tutorials/wiki/src/authorization/tutorial/configure.zcml b/docs/tutorials/wiki/src/authorization/tutorial/configure.zcml deleted file mode 100644 index d0e65516e..000000000 --- a/docs/tutorials/wiki/src/authorization/tutorial/configure.zcml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/docs/tutorials/wiki/src/authorization/tutorial/login.py b/docs/tutorials/wiki/src/authorization/tutorial/login.py index a1194feb0..59e71a1d9 100644 --- a/docs/tutorials/wiki/src/authorization/tutorial/login.py +++ b/docs/tutorials/wiki/src/authorization/tutorial/login.py @@ -1,15 +1,16 @@ from pyramid.httpexceptions import HTTPFound -from pyramid.view import view_config -from pyramid.url import resource_url - from pyramid.security import remember from pyramid.security import forget +from pyramid.view import view_config +from pyramid.url import resource_url -from tutorial.models import Wiki from tutorial.security import USERS -@view_config(context=Wiki, name='login', renderer='templates/login.pt') +@view_config(context='pyramid.exceptions.Forbidden', + renderer='templates/login.pt') +@view_config(context='tutorial.models.Wiki', name='login', + renderer='templates/login.pt') def login(request): login_url = resource_url(request.context, request, 'login') referrer = request.url @@ -36,7 +37,7 @@ def login(request): password = password, ) -@view_config(context=Wiki, name='logout') +@view_config(context='tutorial.models.Wiki', name='logout') def logout(request): headers = forget(request) return HTTPFound(location = resource_url(request.context, request), diff --git a/docs/tutorials/wiki/src/authorization/tutorial/views.py b/docs/tutorials/wiki/src/authorization/tutorial/views.py index 3143ab552..183cb2a8d 100644 --- a/docs/tutorials/wiki/src/authorization/tutorial/views.py +++ b/docs/tutorials/wiki/src/authorization/tutorial/views.py @@ -3,22 +3,20 @@ import re from pyramid.httpexceptions import HTTPFound from pyramid.url import resource_url - -from pyramid.security import authenticated_userid - from pyramid.view import view_config +from pyramid.security import authenticated_userid from tutorial.models import Page -from tutorial.models import Wiki # regular expression used to find WikiWords wikiwords = re.compile(r"\b([A-Z]\w+[A-Z]+\w+)") -@view_config(context=Wiki, permission='view') +@view_config(context='tutorial.models.Wiki', permission='view') def view_wiki(context, request): return HTTPFound(location = resource_url(context, request, 'FrontPage')) -@view_config(context=Page, renderer='templates/view.pt', permission='view') +@view_config(context='tutorial.models.Page', + renderer='templates/view.pt', permission='view') def view_page(context, request): wiki = context.__parent__ @@ -41,7 +39,8 @@ def view_page(context, request): return dict(page = context, content = content, edit_url = edit_url, logged_in = logged_in) -@view_config(context=Wiki, name='add_page', renderer='templates/edit.pt', +@view_config(name='add_page', context='tutorial.models.Wiki', + renderer='templates/edit.pt', permission='edit') def add_page(context, request): name = request.subpath[0] @@ -61,7 +60,8 @@ def add_page(context, request): return dict(page = page, save_url = save_url, logged_in = logged_in) -@view_config(context=Page, name='edit_page', renderer='templates/edit.pt', +@view_config(name='edit_page', context='tutorial.models.Page', + renderer='templates/edit.pt', permission='edit') def edit_page(context, request): if 'form.submitted' in request.params: diff --git a/docs/tutorials/wiki/src/basiclayout/CHANGES.txt b/docs/tutorials/wiki/src/basiclayout/CHANGES.txt index ffa255da8..35a34f332 100644 --- a/docs/tutorials/wiki/src/basiclayout/CHANGES.txt +++ b/docs/tutorials/wiki/src/basiclayout/CHANGES.txt @@ -1,4 +1,4 @@ 0.0 --- -- Initial version +- Initial version diff --git a/docs/tutorials/wiki/src/basiclayout/development.ini b/docs/tutorials/wiki/src/basiclayout/development.ini index fdae922e9..6f4c33d93 100644 --- a/docs/tutorials/wiki/src/basiclayout/development.ini +++ b/docs/tutorials/wiki/src/basiclayout/development.ini @@ -4,10 +4,13 @@ reload_templates = true debug_authorization = false debug_notfound = false debug_routematch = false +debug_templates = true +default_locale_name = en zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 [pipeline:main] pipeline = + egg:WebError#evalerror egg:repoze.zodbconn#closer egg:repoze.tm#tm tutorial @@ -16,3 +19,29 @@ pipeline = use = egg:Paste#http host = 0.0.0.0 port = 6543 + +# Begin logging configuration + +[loggers] +keys = root + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = INFO +handlers = console + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s + +# End logging configuration diff --git a/docs/tutorials/wiki/src/basiclayout/setup.cfg b/docs/tutorials/wiki/src/basiclayout/setup.cfg index 3d7ea6e23..23b2ad983 100644 --- a/docs/tutorials/wiki/src/basiclayout/setup.cfg +++ b/docs/tutorials/wiki/src/basiclayout/setup.cfg @@ -25,4 +25,3 @@ domain = tutorial input_file = tutorial/locale/tutorial.pot output_dir = tutorial/locale previous = true - diff --git a/docs/tutorials/wiki/src/basiclayout/setup.py b/docs/tutorials/wiki/src/basiclayout/setup.py index a0de6ec81..7fb15b782 100644 --- a/docs/tutorials/wiki/src/basiclayout/setup.py +++ b/docs/tutorials/wiki/src/basiclayout/setup.py @@ -19,9 +19,8 @@ setup(name='tutorial', description='tutorial', long_description=README + '\n\n' + CHANGES, classifiers=[ - "Intended Audience :: Developers", - "Framework :: Pylons", "Programming Language :: Python", + "Framework :: Pylons", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", ], @@ -32,8 +31,8 @@ setup(name='tutorial', packages=find_packages(), include_package_data=True, zip_safe=False, - install_requires=requires, - tests_require=requires, + install_requires = requires, + tests_require= requires, test_suite="tutorial", entry_points = """\ [paste.app_factory] @@ -41,3 +40,4 @@ setup(name='tutorial', """, paster_plugins=['pyramid'], ) + diff --git a/docs/tutorials/wiki/src/basiclayout/tutorial/__init__.py b/docs/tutorials/wiki/src/basiclayout/tutorial/__init__.py index 8325865c0..a9f776980 100644 --- a/docs/tutorials/wiki/src/basiclayout/tutorial/__init__.py +++ b/docs/tutorials/wiki/src/basiclayout/tutorial/__init__.py @@ -13,6 +13,6 @@ def main(global_config, **settings): def get_root(request): return finder(request.environ) config = Configurator(root_factory=get_root, settings=settings) - config.load_zcml('configure.zcml') + config.add_static_view('static', 'tutorial:static') + config.scan('tutorial') return config.make_wsgi_app() - diff --git a/docs/tutorials/wiki/src/basiclayout/tutorial/configure.zcml b/docs/tutorials/wiki/src/basiclayout/tutorial/configure.zcml deleted file mode 100644 index ab7fd6fbe..000000000 --- a/docs/tutorials/wiki/src/basiclayout/tutorial/configure.zcml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - diff --git a/docs/tutorials/wiki/src/basiclayout/tutorial/templates/mytemplate.pt b/docs/tutorials/wiki/src/basiclayout/tutorial/templates/mytemplate.pt index a5a0dd214..6ad23d44f 100644 --- a/docs/tutorials/wiki/src/basiclayout/tutorial/templates/mytemplate.pt +++ b/docs/tutorials/wiki/src/basiclayout/tutorial/templates/mytemplate.pt @@ -8,57 +8,67 @@ + - -
-
- -

- Welcome to ${project}, an application generated by
- the Pyramid web application development framework. -

+
+ -
-
-
-
-

Search Pyramid documentation

-
- - -
+
+
+ +

+ Welcome to ${project}, an application generated by
+ the Pyramid web application development framework. +

- +
+
+
+

Search Pyramid documentation

+
+ + +
+
+
diff --git a/docs/tutorials/wiki/src/basiclayout/tutorial/tests.py b/docs/tutorials/wiki/src/basiclayout/tutorial/tests.py index 26ee6671e..0a3d507a0 100644 --- a/docs/tutorials/wiki/src/basiclayout/tutorial/tests.py +++ b/docs/tutorials/wiki/src/basiclayout/tutorial/tests.py @@ -16,3 +16,4 @@ class ViewTests(unittest.TestCase): request = testing.DummyRequest() info = my_view(request) self.assertEqual(info['project'], 'tutorial') + diff --git a/docs/tutorials/wiki/src/basiclayout/tutorial/views.py b/docs/tutorials/wiki/src/basiclayout/tutorial/views.py index 93d619d83..555f49e6d 100644 --- a/docs/tutorials/wiki/src/basiclayout/tutorial/views.py +++ b/docs/tutorials/wiki/src/basiclayout/tutorial/views.py @@ -1,2 +1,6 @@ +from pyramid.view import view_config +from tutorial.models import MyModel + +@view_config(context=MyModel, renderer='tutorial:templates/mytemplate.pt') def my_view(request): return {'project':'tutorial'} diff --git a/docs/tutorials/wiki/src/models/development.ini b/docs/tutorials/wiki/src/models/development.ini index fdae922e9..6f4c33d93 100644 --- a/docs/tutorials/wiki/src/models/development.ini +++ b/docs/tutorials/wiki/src/models/development.ini @@ -4,10 +4,13 @@ reload_templates = true debug_authorization = false debug_notfound = false debug_routematch = false +debug_templates = true +default_locale_name = en zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 [pipeline:main] pipeline = + egg:WebError#evalerror egg:repoze.zodbconn#closer egg:repoze.tm#tm tutorial @@ -16,3 +19,29 @@ pipeline = use = egg:Paste#http host = 0.0.0.0 port = 6543 + +# Begin logging configuration + +[loggers] +keys = root + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = INFO +handlers = console + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s + +# End logging configuration diff --git a/docs/tutorials/wiki/src/models/tutorial/__init__.py b/docs/tutorials/wiki/src/models/tutorial/__init__.py index cf0d14b2d..bf0f683bf 100644 --- a/docs/tutorials/wiki/src/models/tutorial/__init__.py +++ b/docs/tutorials/wiki/src/models/tutorial/__init__.py @@ -4,9 +4,6 @@ from tutorial.models import appmaker def main(global_config, **settings): """ This function returns a WSGI application. - - It is usually called by the PasteDeploy framework during - ``paster serve``. """ zodb_uri = settings.get('zodb_uri') if zodb_uri is None: @@ -16,6 +13,7 @@ def main(global_config, **settings): def get_root(request): return finder(request.environ) config = Configurator(root_factory=get_root, settings=settings) - config.load_zcml('configure.zcml') + config.add_static_view('static', 'tutorial:static') + config.scan('tutorial') return config.make_wsgi_app() diff --git a/docs/tutorials/wiki/src/models/tutorial/configure.zcml b/docs/tutorials/wiki/src/models/tutorial/configure.zcml deleted file mode 100644 index 38675eb13..000000000 --- a/docs/tutorials/wiki/src/models/tutorial/configure.zcml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - diff --git a/docs/tutorials/wiki/src/models/tutorial/views.py b/docs/tutorials/wiki/src/models/tutorial/views.py index 93d619d83..2346602c9 100644 --- a/docs/tutorials/wiki/src/models/tutorial/views.py +++ b/docs/tutorials/wiki/src/models/tutorial/views.py @@ -1,2 +1,5 @@ +from pyramid.view import view_config + +@view_config(renderer='tutorial:templates/mytemplate.pt') def my_view(request): return {'project':'tutorial'} diff --git a/docs/tutorials/wiki/src/viewdecorators/CHANGES.txt b/docs/tutorials/wiki/src/viewdecorators/CHANGES.txt deleted file mode 100644 index ffa255da8..000000000 --- a/docs/tutorials/wiki/src/viewdecorators/CHANGES.txt +++ /dev/null @@ -1,4 +0,0 @@ -0.0 ---- - -- Initial version diff --git a/docs/tutorials/wiki/src/viewdecorators/README.txt b/docs/tutorials/wiki/src/viewdecorators/README.txt deleted file mode 100644 index d41f7f90f..000000000 --- a/docs/tutorials/wiki/src/viewdecorators/README.txt +++ /dev/null @@ -1,4 +0,0 @@ -tutorial README - - - diff --git a/docs/tutorials/wiki/src/viewdecorators/development.ini b/docs/tutorials/wiki/src/viewdecorators/development.ini deleted file mode 100644 index a102b721b..000000000 --- a/docs/tutorials/wiki/src/viewdecorators/development.ini +++ /dev/null @@ -1,19 +0,0 @@ -[app:tutorial] -use = egg:tutorial -reload_templates = true -debug_authorization = false -debug_notfound = false -debug_routematch = false -zodb_uri = file://%(here)s/Data.fs?connection_cache_size=20000 - -[pipeline:main] -pipeline = - egg:repoze.zodbconn#closer - egg:Paste#evalerror - egg:repoze.tm#tm - tutorial - -[server:main] -use = egg:Paste#http -host = 0.0.0.0 -port = 6543 diff --git a/docs/tutorials/wiki/src/viewdecorators/setup.cfg b/docs/tutorials/wiki/src/viewdecorators/setup.cfg deleted file mode 100644 index 3d7ea6e23..000000000 --- a/docs/tutorials/wiki/src/viewdecorators/setup.cfg +++ /dev/null @@ -1,28 +0,0 @@ -[nosetests] -match=^test -nocapture=1 -cover-package=tutorial -with-coverage=1 -cover-erase=1 - -[compile_catalog] -directory = tutorial/locale -domain = tutorial -statistics = true - -[extract_messages] -add_comments = TRANSLATORS: -output_file = tutorial/locale/tutorial.pot -width = 80 - -[init_catalog] -domain = tutorial -input_file = tutorial/locale/tutorial.pot -output_dir = tutorial/locale - -[update_catalog] -domain = tutorial -input_file = tutorial/locale/tutorial.pot -output_dir = tutorial/locale -previous = true - diff --git a/docs/tutorials/wiki/src/viewdecorators/setup.py b/docs/tutorials/wiki/src/viewdecorators/setup.py deleted file mode 100644 index 5ee1333bc..000000000 --- a/docs/tutorials/wiki/src/viewdecorators/setup.py +++ /dev/null @@ -1,44 +0,0 @@ -import os - -from setuptools import setup, find_packages - -here = os.path.abspath(os.path.dirname(__file__)) -README = open(os.path.join(here, 'README.txt')).read() -CHANGES = open(os.path.join(here, 'CHANGES.txt')).read() - -requires = [ - 'pyramid', - 'repoze.zodbconn', - 'repoze.tm', - 'ZODB3', - 'WebError', - 'docutils', - ] - -setup(name='tutorial', - version='0.0', - description='tutorial', - long_description=README + '\n\n' + CHANGES, - classifiers=[ - "Intended Audience :: Developers", - "Framework :: Pylons", - "Programming Language :: Python", - "Topic :: Internet :: WWW/HTTP", - "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", - ], - author='', - author_email='', - url='', - keywords='web pylons pyramid', - packages=find_packages(), - include_package_data=True, - zip_safe=False, - install_requires=requires, - tests_require=requires, - test_suite="tutorial", - entry_points = """\ - [paste.app_factory] - main = tutorial:main - """, - paster_plugins = ['pyramid'], - ) diff --git a/docs/tutorials/wiki/src/viewdecorators/tutorial/__init__.py b/docs/tutorials/wiki/src/viewdecorators/tutorial/__init__.py deleted file mode 100644 index cf0d14b2d..000000000 --- a/docs/tutorials/wiki/src/viewdecorators/tutorial/__init__.py +++ /dev/null @@ -1,21 +0,0 @@ -from pyramid.config import Configurator -from repoze.zodbconn.finder import PersistentApplicationFinder -from tutorial.models import appmaker - -def main(global_config, **settings): - """ This function returns a WSGI application. - - It is usually called by the PasteDeploy framework during - ``paster serve``. - """ - zodb_uri = settings.get('zodb_uri') - if zodb_uri is None: - raise ValueError("No 'zodb_uri' in application configuration.") - - finder = PersistentApplicationFinder(zodb_uri, appmaker) - def get_root(request): - return finder(request.environ) - config = Configurator(root_factory=get_root, settings=settings) - config.load_zcml('configure.zcml') - return config.make_wsgi_app() - diff --git a/docs/tutorials/wiki/src/viewdecorators/tutorial/configure.zcml b/docs/tutorials/wiki/src/viewdecorators/tutorial/configure.zcml deleted file mode 100644 index be5b84c43..000000000 --- a/docs/tutorials/wiki/src/viewdecorators/tutorial/configure.zcml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - diff --git a/docs/tutorials/wiki/src/viewdecorators/tutorial/models.py b/docs/tutorials/wiki/src/viewdecorators/tutorial/models.py deleted file mode 100644 index 9761856c6..000000000 --- a/docs/tutorials/wiki/src/viewdecorators/tutorial/models.py +++ /dev/null @@ -1,22 +0,0 @@ -from persistent import Persistent -from persistent.mapping import PersistentMapping - -class Wiki(PersistentMapping): - __name__ = None - __parent__ = None - -class Page(Persistent): - def __init__(self, data): - self.data = data - -def appmaker(zodb_root): - if not 'app_root' in zodb_root: - app_root = Wiki() - frontpage = Page('This is the front page') - app_root['FrontPage'] = frontpage - frontpage.__name__ = 'FrontPage' - frontpage.__parent__ = app_root - zodb_root['app_root'] = app_root - import transaction - transaction.commit() - return zodb_root['app_root'] diff --git a/docs/tutorials/wiki/src/viewdecorators/tutorial/static/favicon.ico b/docs/tutorials/wiki/src/viewdecorators/tutorial/static/favicon.ico deleted file mode 100644 index 71f837c9e..000000000 Binary files a/docs/tutorials/wiki/src/viewdecorators/tutorial/static/favicon.ico and /dev/null differ diff --git a/docs/tutorials/wiki/src/viewdecorators/tutorial/static/logo.png b/docs/tutorials/wiki/src/viewdecorators/tutorial/static/logo.png deleted file mode 100644 index 88f5d9865..000000000 Binary files a/docs/tutorials/wiki/src/viewdecorators/tutorial/static/logo.png and /dev/null differ diff --git a/docs/tutorials/wiki/src/viewdecorators/tutorial/static/pylons.css b/docs/tutorials/wiki/src/viewdecorators/tutorial/static/pylons.css deleted file mode 100644 index c153be07f..000000000 --- a/docs/tutorials/wiki/src/viewdecorators/tutorial/static/pylons.css +++ /dev/null @@ -1,73 +0,0 @@ -html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-size:100%;/* 16px */ -vertical-align:baseline;background:transparent;} -body{line-height:1;} -ol,ul{list-style:none;} -blockquote,q{quotes:none;} -blockquote:before,blockquote:after,q:before,q:after{content:'';content:none;} -/* remember to define focus styles! */ -:focus{outline:0;} -/* remember to highlight inserts somehow! */ -ins{text-decoration:none;} -del{text-decoration:line-through;} -/* tables still need 'cellspacing="0"' in the markup */ -table{border-collapse:collapse;border-spacing:0;} -/* restyling */ -sub{vertical-align:sub;font-size:smaller;line-height:normal;} -sup{vertical-align:super;font-size:smaller;line-height:normal;} -/* lists */ -ul,menu,dir{display:block;list-style-type:disc;margin:1em 0;padding-left:40px;} -ol{display:block;list-style-type:decimal-leading-zero;margin:1em 0;padding-left:40px;} -li{display:list-item;} -/* nested lists have no top/bottom margins */ -ul ul,ul ol,ul dir,ul menu,ul dl,ol ul,ol ol,ol dir,ol menu,ol dl,dir ul,dir ol,dir dir,dir menu,dir dl,menu ul,menu ol,menu dir,menu menu,menu dl,dl ul,dl ol,dl dir,dl menu,dl dl{margin-top:0;margin-bottom:0;} -/* 2 deep unordered lists use a circle */ -ol ul,ul ul,menu ul,dir ul,ol menu,ul menu,menu menu,dir menu,ol dir,ul dir,menu dir,dir dir{list-style-type:circle;} -/* 3 deep (or more) unordered lists use a square */ -ol ol ul,ol ul ul,ol menu ul,ol dir ul,ol ol menu,ol ul menu,ol menu menu,ol dir menu,ol ol dir,ol ul dir,ol menu dir,ol dir dir,ul ol ul,ul ul ul,ul menu ul,ul dir ul,ul ol menu,ul ul menu,ul menu menu,ul dir menu,ul ol dir,ul ul dir,ul menu dir,ul dir dir,menu ol ul,menu ul ul,menu menu ul,menu dir ul,menu ol menu,menu ul menu,menu menu menu,menu dir menu,menu ol dir,menu ul dir,menu menu dir,menu dir dir,dir ol ul,dir ul ul,dir menu ul,dir dir ul,dir ol menu,dir ul menu,dir menu menu,dir dir menu,dir ol dir,dir ul dir,dir menu dir,dir dir dir{list-style-type:square;} -.hidden{display:none;} -p{line-height:1.5em;} -h1{font-size:1.75em;/* 28px */ -line-height:1.7em;font-family:helvetica,verdana;} -h2{font-size:1.5em;/* 24px */ -line-height:1.7em;font-family:helvetica,verdana;} -h3{font-size:1.25em;/* 20px */ -line-height:1.7em;font-family:helvetica,verdana;} -h4{font-size:1em;line-height:1.7em;font-family:helvetica,verdana;} -html,body{width:100%;height:100%;} -body{margin:0;padding:0;background-color:#ffffff;position:relative;font:16px/24px "Nobile","Lucida Grande",Lucida,Verdana,sans-serif;} -a{color:#1b61d6;text-decoration:none;} -a:hover{color:#e88f00;text-decoration:underline;} -body h1, -body h2, -body h3, -body h4, -body h5, -body h6{font-family:"Nobile","Lucida Grande",Lucida,Verdana,sans-serif;font-weight:normal;color:#144fb2;font-style:normal;} -#wrap {min-height: 100%;} -#header,#footer{width:100%;color:#ffffff;height:40px;position:absolute;text-align:center;line-height:40px;overflow:hidden;font-size:12px;} -#header{background-color:#e88f00;top:0;font-size:14px;} -#footer{background-color:#000000;bottom:0;position: relative;margin-top:-40px;clear:both;} -.header,.footer{width:700px;margin-right:auto;margin-left:auto;} -.wrapper{width:100%} -#top,#bottom{width:100%;} -#top{color:#888;background-color:#eee;height:300px;border-bottom:2px solid #ddd;} -#bottom{color:#222;background-color:#ffffff;overflow:hidden;padding-bottom:80px;} -.top,.bottom{width:700px;margin-right:auto;margin-left:auto;} -.top{padding-top:100px;} -.app-welcome{margin-top:25px;} -.app-name{color:#000000;font-weight:bold;} -.bottom{padding-top:50px;} -#left{width:325px;float:left;padding-right:25px;} -#right{width:325px;float:right;padding-left:25px;} -.align-left{text-align:left;} -.align-right{text-align:right;} -.align-center{text-align:center;} -ul.links{margin:0;padding:0;} -ul.links li{list-style-type:none;font-size:14px;} -form{border-style:none;} -fieldset{border-style:none;} -input{color:#222;border:1px solid #ccc;font-family:sans-serif;font-size:12px;line-height:16px;} -input[type=text]{} -input[type=submit]{background-color:#ddd;font-weight:bold;} -/*Opera Fix*/ -body:before {content:"";height:100%;float:left;width:0;margin-top:-32767px;} diff --git a/docs/tutorials/wiki/src/viewdecorators/tutorial/static/style.css b/docs/tutorials/wiki/src/viewdecorators/tutorial/static/style.css deleted file mode 100644 index cad87e0d4..000000000 --- a/docs/tutorials/wiki/src/viewdecorators/tutorial/static/style.css +++ /dev/null @@ -1,109 +0,0 @@ -html, body { - color: black; - background-color: #ddd; - font: x-small "Lucida Grande", "Lucida Sans Unicode", geneva, sans-serif; - margin: 0; - padding: 0; -} - -td, th {padding:3px;border:none;} -tr th {text-align:left;background-color:#f0f0f0;color:#333;} -tr.odd td {background-color:#edf3fe;} -tr.even td {background-color:#fff;} - -#header { - height: 80px; - width: 777px; - background: blue URL('../images/header_inner.png') no-repeat; - border-left: 1px solid #aaa; - border-right: 1px solid #aaa; - margin: 0 auto 0 auto; -} - -a.link, a, a.active { - color: #369; -} - - -#main_content { - color: black; - font-size: 127%; - background-color: white; - width: 757px; - margin: 0 auto 0 auto; - border-left: 1px solid #aaa; - border-right: 1px solid #aaa; - padding: 10px; -} - -#sidebar { - border: 1px solid #aaa; - background-color: #eee; - margin: 0.5em; - padding: 1em; - float: right; - width: 200px; - font-size: 88%; -} - -#sidebar h2 { - margin-top: 0; -} - -#sidebar ul { - margin-left: 1.5em; - padding-left: 0; -} - -h1,h2,h3,h4,h5,h6,#getting_started_steps { - font-family: "Century Schoolbook L", Georgia, serif; - font-weight: bold; -} - -h2 { - font-size: 150%; -} - -#footer { - border: 1px solid #aaa; - border-top: 0px none; - color: #999; - background-color: white; - padding: 10px; - font-size: 80%; - text-align: center; - width: 757px; - margin: 0 auto 1em auto; -} - -.code { - font-family: monospace; -} - -span.code { - font-weight: bold; - background: #eee; -} - -#status_block { - margin: 0 auto 0.5em auto; - padding: 15px 10px 15px 55px; - background: #cec URL('../images/ok.png') left center no-repeat; - border: 1px solid #9c9; - width: 450px; - font-size: 120%; - font-weight: bolder; -} - -.notice { - margin: 0.5em auto 0.5em auto; - padding: 15px 10px 15px 55px; - width: 450px; - background: #eef URL('../images/info.png') left center no-repeat; - border: 1px solid #cce; -} - -.fielderror { - color: red; - font-weight: bold; -} diff --git a/docs/tutorials/wiki/src/viewdecorators/tutorial/templates/edit.pt b/docs/tutorials/wiki/src/viewdecorators/tutorial/templates/edit.pt deleted file mode 100644 index 525bd43df..000000000 --- a/docs/tutorials/wiki/src/viewdecorators/tutorial/templates/edit.pt +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - Pyramid tutorial wiki (based on TurboGears 20-Minute Wiki) Editing: ${page.__name__} - - - - - -
-
Viewing - Page Name Goes Here
- You can return to the FrontPage. -
- -
-
-