Index: main/waeup.sirp/branches/ulif-groktoolkit-1.4/TODO_GTK1.4.txt
===================================================================
--- main/waeup.sirp/branches/ulif-groktoolkit-1.4/TODO_GTK1.4.txt	(revision 7713)
+++ main/waeup.sirp/branches/ulif-groktoolkit-1.4/TODO_GTK1.4.txt	(revision 7713)
@@ -0,0 +1,3 @@
+- Move hurry resources to fanstatic
+- Possibly turn vocabs into sources and get rid of zope.app.schema
+- Build replacement for zope.undo
Index: main/waeup.sirp/branches/ulif-groktoolkit-1.4/buildout.cfg
===================================================================
--- main/waeup.sirp/branches/ulif-groktoolkit-1.4/buildout.cfg	(revision 7712)
+++ main/waeup.sirp/branches/ulif-groktoolkit-1.4/buildout.cfg	(revision 7713)
@@ -1,6 +1,6 @@
 [buildout]
 develop = .
+#     #eggbasket
 parts =
-    eggbasket
     app
     i18n
@@ -17,4 +17,5 @@
     coverage-detect
     coverage-report
+    interactive_debugger
 # sirpctl creation must be _after_ app!
     sirpctl
@@ -26,5 +27,6 @@
 
 #extends = versions.cfg
-extends= http://grok.zope.org/releaseinfo/grok-1.1.cfg
+extends= http://grok.zope.org/releaseinfo/1.4.1/versions.cfg
+#extends= http://grok.zope.org/releaseinfo/grok-1.4/versions.cfg
 # eggs will be installed in the default buildout location
 # (see .buildout/default.cfg in your home directory)
@@ -34,24 +36,26 @@
 
 [versions]
+fanstatic = 0.11.4
 collective.recipe.sphinxbuilder = 0.7.0
 hurry.workflow = 0.11
 # Pinned to circumvent breakage in 0.4.x
 hurry.zoperesource = 0.6
+zope.fanstatic = 
 # Pinned to prevent buildout svn-error.
 lovely.recipe = 1.0.0
-megrok.layout = 1.0.2
+#megrok.layout = 1.0.2
 reportlab = 2.5
 transaction = 1.1.0
 z3c.testsetup = 0.6.1
-zc.buildout = 1.5.0
+#zc.buildout = 1.5.0
 zc.recipe.egg = 1.3.0
 zc.recipe.testrunner = 1.4.0
-zope.app.testing = 3.8.1
+#zope.app.testing = 3.8.1
 # for support of @provider directive
-zope.interface = 3.6.3
+#zope.interface = 3.6.3
 # for support of contextual default values
 zope.schema = 3.8.0
-zope.testing = 3.10.2
-zope.xmlpickle = 3.4.0
+#zope.testing = 3.10.2
+#zope.xmlpickle = 3.4.0
 # Require latest version...
 Sphinx = 1.0.7
@@ -188,2 +192,9 @@
 scripts = coveragereport
 arguments = ('${buildout:parts-directory}/coverage-detect/working-directory/coverage', '${buildout:directory}/coverage-report')
+
+[interactive_debugger]
+recipe = z3c.recipe.scripts
+eggs = waeup.sirp
+entry-points =
+  interactive_debugger=grokcore.startup.startup:interactive_debug_prompt
+arguments = zope_conf="${zope_conf:output}"
Index: main/waeup.sirp/branches/ulif-groktoolkit-1.4/etc/debug.ini.in
===================================================================
--- main/waeup.sirp/branches/ulif-groktoolkit-1.4/etc/debug.ini.in	(revision 7712)
+++ main/waeup.sirp/branches/ulif-groktoolkit-1.4/etc/debug.ini.in	(revision 7713)
@@ -1,60 +1,4 @@
-# debug.ini
-#
-# Debugging configuration for use with paster/WSGI
-#
-
-[loggers]
-keys = root, wsgi
-
-[handlers]
-keys = console, accesslog
-
-[formatters]
-keys = generic, accesslog
-
-[formatter_generic]
-format = %(asctime)s %(levelname)s [%(name)s] %(message)s
-
-[formatter_accesslog]
-format = %(message)s
-
-[handler_console]
-class = StreamHandler
-args = (sys.stderr,)
-level = NOTSET
-formatter = generic
-
-[handler_accesslog]
-class = FileHandler
-args = (os.path.join(r'${zope_conf:logfiles}', 'access.log'),
-        'a')
-level = INFO
-formatter = accesslog
-
-[logger_root]
-level = INFO
-handlers = console
-
-[logger_wsgi]
-level = INFO
-handlers = accesslog
-qualname = wsgi
-propagate = 0
-
-[filter:translogger]
-use = egg:Paste#translogger
-setup_console_handler = False
-logger_name = wsgi
-
-[filter-app:main]
-# Change the last part from 'ajax' to 'pdb' for a post-mortem debugger
-# on the console:
-use = egg:z3c.evalexception#ajax
-next = zope
-
-[app:zope]
-use = egg:waeup.sirp#debug
-filter-with = translogger
-exempt-exceptions = zope.security.interfaces.IUnauthorized
+[DEFAULT]
+zope_conf = %(here)s/zope.conf
 
 [server:main]
@@ -63,5 +7,43 @@
 port = 8080
 
-[DEFAULT]
-# set the name of the zope.conf file
-zope_conf = %(here)s/zope.conf
+[pipeline:main]
+pipeline = accesslogging evalexception fanstatic grok
+
+[filter:accesslogging]
+use = egg:Paste#translogger
+
+[filter:evalexception]
+use = egg:z3c.evalexception#ajax
+
+[filter:fanstatic]
+use = egg:fanstatic#fanstatic
+versioning = true
+recompute_hashes = true
+
+[app:grok]
+use = egg:grokcore.startup#debug
+exempt-exceptions = zope.security.interfaces.IUnauthorized
+
+# Logging configuration
+
+[loggers]
+keys = root
+
+[logger_root]
+level = DEBUG
+handlers = console
+
+[handlers]
+keys = console
+
+[handler_console]
+class = StreamHandler
+args = (sys.stderr,)
+level = DEBUG
+formatter = generic
+
+[formatters]
+keys = generic
+
+[formatter_generic]
+format = %(asctime)s %(levelname)s [%(name)s] %(message)s
Index: main/waeup.sirp/branches/ulif-groktoolkit-1.4/etc/deploy.ini.in
===================================================================
--- main/waeup.sirp/branches/ulif-groktoolkit-1.4/etc/deploy.ini.in	(revision 7712)
+++ main/waeup.sirp/branches/ulif-groktoolkit-1.4/etc/deploy.ini.in	(revision 7713)
@@ -55,4 +55,6 @@
 host = 0.0.0.0
 port = 8080
+threadpool_workers = 50
+use_threadpool = True
 
 [DEFAULT]
Index: main/waeup.sirp/branches/ulif-groktoolkit-1.4/etc/site.zcml.in
===================================================================
--- main/waeup.sirp/branches/ulif-groktoolkit-1.4/etc/site.zcml.in	(revision 7712)
+++ main/waeup.sirp/branches/ulif-groktoolkit-1.4/etc/site.zcml.in	(revision 7713)
@@ -30,10 +30,10 @@
       <!-- Replace the following directive if you do not want
            public access -->
-      <grant permission="zope.app.dublincore.view"
-             principal="zope.Anybody" />
+      <!-- grant permission="zope.app.dublincore.view"
+             principal="zope.Anybody" / -->
       <grant permission="zope.View"
              principal="zope.Authenticated" />
-      <grant permission="zope.app.dublincore.view"
-             principal="zope.Authenticated" />
+      <!-- grant permission="zope.app.dublincore.view"
+             principal="zope.Authenticated" / -->
       <grant permission="waeup.Public"
              principal="zope.Everybody" />
Index: main/waeup.sirp/branches/ulif-groktoolkit-1.4/etc/zope.conf.in
===================================================================
--- main/waeup.sirp/branches/ulif-groktoolkit-1.4/etc/zope.conf.in	(revision 7712)
+++ main/waeup.sirp/branches/ulif-groktoolkit-1.4/etc/zope.conf.in	(revision 7713)
@@ -3,4 +3,10 @@
 
 <zodb>
+
+  #cache-size
+
+  # num of concurrent pre-opened ZODB threads; default: 7
+  pool-size 50
+
   # Standard blob storage
   <blobstorage>
@@ -25,4 +31,31 @@
 #    #client zeo1
 #  </zeoclient>
+
+# Uncomment this if you want to run a ZEO server instead:
+#  <zeo>
+#    # required; 'host:port' for TCP/IP, path to a socket file for UDP
+#    address localhost:8090
+#
+#    # optional; 'address' remarks apply
+#    #monitor-address localhost:8091
+#
+#    # optional; keep queue of last N transactions. Speeds up client cache verif.
+#    #invalidation-queue-size 10
+#
+#    # optional; is this a read-only instance? true or false
+#    #read-only false
+#
+#    # optional; seconds to wait for client to commit after acquiring lock
+#    #transaction-timeout 20
+#
+#    # optional; authentication protocol. With ZEO only 'digest' supported
+#    #authentication-protocol digest 
+#
+#    # optional; Path of the database containing authentication credentials.
+#    #authentication-database
+#
+#    # optional; the authentication realm of server
+#    #authentication-realm myrealm
+#  </zeo>
 
 </zodb>
Index: main/waeup.sirp/branches/ulif-groktoolkit-1.4/setup.py
===================================================================
--- main/waeup.sirp/branches/ulif-groktoolkit-1.4/setup.py	(revision 7712)
+++ main/waeup.sirp/branches/ulif-groktoolkit-1.4/setup.py	(revision 7713)
@@ -14,4 +14,7 @@
     'hurry.jqueryui',
     'hurry.workflow >= 0.11',
+    'fanstatic',
+    #'zope.fanstatic',
+    'js.jquery_datatables',
     # Add extra requirements here
     'docutils', # For RST-processing...
@@ -24,9 +27,16 @@
     'reportlab',
     'PIL',
-    'zope.app.authentication', # BBB: During switch to grok 1.1
-    'zope.app.file',
-    'zope.app.testing',        # XXX: test_permissions needs this
-    'zope.app.undo',
-    'zope.file',
+    #'zope.app.authentication', # BBB: During switch to grok 1.1
+    'zope.authentication',
+    'zope.pluggableauth',
+    'zope.principalannotation',
+    #'zope.app.file',
+    #'zope.app.testing',        # XXX: test_permissions needs this
+    #'zope.app.undo',
+    #'zope.app.zcmlfiles',
+    #'zope.app.wsgi',
+    #'zope.app.appsetup',
+    #'zope.file',
+    'zope.app.schema',         # XXX: for registering named vocabs
     'zope.interface >= 3.6.0',
     'zope.testbrowser',        # XXX: test_permissions needs this
@@ -122,4 +132,6 @@
       main = grokcore.startup:application_factory
       debug = grokcore.startup:debug_application_factory
+      [fanstatic.libraries]
+      waeup.sirp = waeup.sirp.browser.resources:waeup_kofa
 
       """,
Index: main/waeup.sirp/branches/ulif-groktoolkit-1.4/src/waeup/sirp/browser/resources.py
===================================================================
--- main/waeup.sirp/branches/ulif-groktoolkit-1.4/src/waeup/sirp/browser/resources.py	(revision 7712)
+++ main/waeup.sirp/branches/ulif-groktoolkit-1.4/src/waeup/sirp/browser/resources.py	(revision 7713)
@@ -197,10 +197,14 @@
 #: use of datatables you might want to add some specialized CSS like
 #: `datatable_css` below.
-datatables = ResourceInclusion(waeup_sirp, 'jquery.dataTables.js',
-                               minified='jquery.dataTables.min.js',
-                               depends=[jquery])
+from js.jquery_datatables import jquery_datatables as datatables
+from fanstatic import Library, Resource
+waeup_kofa = Library('waeup_kofa', 'static')
+#datatables = ResourceInclusion(waeup_sirp, 'jquery.dataTables.js',
+#                               minified='jquery.dataTables.min.js',
+#                               depends=[jquery])
 
 #: A stylesheet for datatables
-datatables_css = ResourceInclusion(waeup_sirp, 'datatables.css')
+#datatables_css = ResourceInclusion(waeup_sirp, 'datatables.css')
+datatables_css = Resource(waeup_kofa, 'datatables.css')
 
 #: A resource that turns HTML tables into sortable, searchable and :
@@ -251,6 +255,8 @@
 #: for details.
 #:
-datatable = ResourceInclusion(waeup_sirp, 'datatable.js',
-                              depends=[datatables, datatables_css])
+#datatable = ResourceInclusion(waeup_sirp, 'datatable.js',
+#                              depends=[datatables, datatables_css])
+datatable = Resource(waeup_kofa, 'datatable.js',
+                     depends=[datatables, datatables_css])
 
 #: Register Twitter's Bootsrap css including dropdown js as a resource.
