Skip to content

/ Zope / gocept svn checkins / Archive / 2008 / 2008-11 / SVN: r6983 - in CMFWebmail/trunk: . gocept gocept/webmail gocept/webmail/browser gocept/webmail/profiles/default gocept/webmail/skins/cmfwebmail_javascript gocept/webmail/skins/cmfwebmail_templates products/CMFWebmail

[ << ] [ >> ]

[ SVN: r6981 - gocept.pagewithimage/trunk/gocept/pag... ] [ SVN: r6985 - in CMFWebmail/trunk/gocept/webmail: ... ]

SVN: r6983 - in CMFWebmail/trunk: . gocept gocept/webmail gocept/webmail/browser gocept/webmail/profiles/default gocept/webmail/skins/cmfwebmail_javascript gocept/webmail/skins/cmfwebmail_templates products/CMFWebmail
Christian Zagrodnick <cz(at)gocept.com>
2008-11-05 10:52:51 [ FULL ]
Author: zagy
Date: Wed Nov  5 10:52:49 2008
New Revision: 6983

Log:
eggification of CMFWebmail to gocept.webmail.

not all files are in the right place, yet. stay tuned.


Added:
   CMFWebmail/trunk/gocept/
   CMFWebmail/trunk/gocept/__init__.py   (contents, props changed)
   CMFWebmail/trunk/gocept/webmail/   (props changed)
      - copied from r6981, CMFWebmail/trunk/products/CMFWebmail/
   CMFWebmail/trunk/gocept/webmail/README.js
      - copied unchanged from r6982,
CMFWebmail/trunk/products/CMFWebmail/README.js
   CMFWebmail/trunk/gocept/webmail/README.txt
      - copied, changed from r6982,
CMFWebmail/trunk/products/CMFWebmail/README.txt
   CMFWebmail/trunk/setup.py   (contents, props changed)
Removed:
   CMFWebmail/trunk/gocept/webmail/profiles/default/skins.xml
   CMFWebmail/trunk/gocept/webmail/profiles/default/viewlets.xml
   CMFWebmail/trunk/products/CMFWebmail/
Modified:
   CMFWebmail/trunk/buildout.cfg
   CMFWebmail/trunk/gocept/webmail/__init__.py
   CMFWebmail/trunk/gocept/webmail/browser/configure.zcml
   CMFWebmail/trunk/gocept/webmail/browser/profile.pt
   CMFWebmail/trunk/gocept/webmail/configure.zcml
   CMFWebmail/trunk/gocept/webmail/profiles/default/rolemap.xml
   CMFWebmail/trunk/gocept/webmail/skins/cmfwebmail_javascript/composer-main.js
   CMFWebmail/trunk/gocept/webmail/skins/cmfwebmail_javascript/composer.js
   CMFWebmail/trunk/gocept/webmail/skins/cmfwebmail_templates/management.pt
  
CMFWebmail/trunk/gocept/webmail/skins/cmfwebmail_templates/webmail_composer.pt
   CMFWebmail/trunk/gocept/webmail/tests.py
   CMFWebmail/trunk/gocept/webmail/webmailer.py
   CMFWebmail/trunk/gocept/webmail/xmlcompare.txt

Modified: CMFWebmail/trunk/buildout.cfg
==============================================================================
--- CMFWebmail/trunk/buildout.cfg	(original)
+++ CMFWebmail/trunk/buildout.cfg	Wed Nov  5 10:52:49 2008
(at)(at) -25,12 +25,13 (at)(at)
 eggs =
     gocept.imapapi
     gocept.restmail
+    gocept.webmail
     lxml
     zc.testbrowser
 
 # Reference any eggs you are developing here, one per line
 # e.g.: develop = src/my.package
-develop = 
+develop = .
 
 versions = versions
 
(at)(at) -81,10 +82,9 (at)(at)
 # e.g. zcml = my.package my.other.package
 zcml =
     gocept.restmail
+    gocept.webmail
 
-products =
-    ${buildout:directory}/products
-    ${productdistros:location}
+products = ${productdistros:location} 
 
 [zopepy]
 recipe = zc.recipe.egg
(at)(at) -164,14 +164,16 (at)(at)
 
 [fakezope2eggs]
 recipe = affinitic.recipe.fakezope2eggs
-additional-fake-eggs =
-                        ZODB3
-                        mechanize
-                        ClientForm
+additional-fake-eggs = 
+    ZODB3
+    mechanize
+    ClientForm
 
 [test]
 recipe = collective.recipe.z2testrunner
-packages = gocept.imapapi
+packages = 
+    gocept.imapapi
     gocept.restmail
-    Products.CMFWebmail
+    gocept.webmail
+extra-paths = .
 zope2part = instance

Added: CMFWebmail/trunk/gocept/__init__.py
==============================================================================
--- (empty file)
+++ CMFWebmail/trunk/gocept/__init__.py	Wed Nov  5 10:52:49 2008
(at)(at) -0,0 +1,8 (at)(at)
+# Copyright (c) 2008 gocept gmbh & co. kg
+# See also LICENSE.txt
+#namespace package boilerplate
+try:
+    __import__('pkg_resources').declare_namespace(__name__)
+except ImportError, e:
+    from pkgutil import extend_path
+    __path__ = extend_path(__path__, __name__)

Copied: CMFWebmail/trunk/gocept/webmail/README.txt (from r6982,
CMFWebmail/trunk/products/CMFWebmail/README.txt)
==============================================================================
--- CMFWebmail/trunk/products/CMFWebmail/README.txt	(original)
+++ CMFWebmail/trunk/gocept/webmail/README.txt	Wed Nov  5 10:52:49 2008
(at)(at) -1,6 +1,6 (at)(at)
-===================
-Products.CMFWebmail
-===================
+==============
+gocept.webmail
+==============
 
 This product is a CMF extension that provides a Web-2.0-y user interface to
 read and write email using the RESTful interface provided by gocept.restmail.
(at)(at) -9,6 +9,7 (at)(at)
 running[#setup]_:
 
 >>> browser.js.open_tab()
+>>> time.sleep(0.1)
 >>> browser.open('/webmail')
 >>> browser.getLink('Join').click()
 >>> time.sleep(0.5)
(at)(at) -22,6 +23,7 (at)(at)
 short-cut for logging into that account:
 
 >>> wait_for_text('Return to homepage')
+>>> time.sleep(0.5)
 >>> browser.getControl(name='login').click()
 
 Accessing the profile
(at)(at) -455,15 +457,13 (at)(at)
     >>> import sys
     >>> def wait_for_text(string):
     ...     print >> sys.stderr, string
-    ...     found = False
     ...     for i in xrange(100):
     ...         if string in browser.contents:
-    ...             found = True
     ...             break
     ...         sys.stderr.write('.')
     ...         sys.stderr.flush()
     ...         time.sleep(0.1)
-    ...     if not found:
+    ...     else:
     ...         print >> sys.stderr, 'Did not find', string
  
     Define a helper function to expand/collapse entries in the mail folder

Modified: CMFWebmail/trunk/gocept/webmail/__init__.py
==============================================================================
--- CMFWebmail/trunk/products/CMFWebmail/__init__.py	(original)
+++ CMFWebmail/trunk/gocept/webmail/__init__.py	Wed Nov  5 10:52:49 2008
(at)(at) -1,26 +1,22 (at)(at)
 import os.path
 
-import Products.CMFCore.DirectoryView
 import Products.CMFSetup
 import Products.CMFSetup.interfaces
 
 
-Products.CMFCore.DirectoryView.registerDirectory('skins', globals())
-
 def initialize(context):
 
-    import Products.CMFWebmail.webmailer
+    import gocept.webmail.webmailer
 
     context.registerClass(
-        Products.CMFWebmail.webmailer.Webmailer,
+        gocept.webmail.webmailer.Webmailer,
         meta_type='Webmailer',
         constructors=(
-            Products.CMFWebmail.webmailer.manage_addWebmailerForm,
-            Products.CMFWebmail.webmailer.manage_addWebmailer),
+            gocept.webmail.webmailer.manage_addWebmailerForm,
+            gocept.webmail.webmailer.manage_addWebmailer),
         )
 
     Products.CMFSetup.profile_registry.registerProfile(
-        name='default', title='cmfwebmail', description='',
-        product='CMFWebmail',
-        path='profiles/default',
+        name='gocept.webmail', title='gocept.webmail', description='',
+        path=os.path.join(os.path.dirname(__file__), 'profiles', 'default'),
         profile_type=Products.CMFSetup.interfaces.EXTENSION)

Modified: CMFWebmail/trunk/gocept/webmail/browser/configure.zcml
==============================================================================
--- CMFWebmail/trunk/products/CMFWebmail/browser/configure.zcml	(original)
+++ CMFWebmail/trunk/gocept/webmail/browser/configure.zcml	Wed Nov  5 10:52:49
2008
(at)(at) -2,10 +2,10 (at)(at)
   xmlns:browser="http://namespaces.zope.org/browser">
 
   <browser:page
-     for="..webmailer.Webmailer"
+     for="..interfaces.IWebmailer"
      name="index_html"
      class=".webmailer.RedirectToProfile"
-     permission="CMFWebmail.View"
+     permission="gocept.webmail.View"
      />
 
   <browser:page
(at)(at) -13,8 +13,27 (at)(at)
      name="index_html"
      class=".profile.Profile"
      template="profile.pt"
-     permission="CMFWebmail.View"
+     permission="gocept.webmail.View"
      />
 
+  <browser:page
+     for="gocept.restmail.interfaces.IProfile"
+     name="management"
+     template="../skins/cmfwebmail_templates/management.pt"
+     permission="gocept.webmail.View"
+     />
+
+  <browser:page
+     for="gocept.restmail.interfaces.IDraftMessage"
+     name="webmail_composer"
+     template="../skins/cmfwebmail_templates/webmail_composer.pt"
+     permission="gocept.webmail.View"
+     />
+
+  <browser:resourceDirectory
+    name="gocept.webmail"
+    directory="../skins"/>
+
+
 </configure>
 

Modified: CMFWebmail/trunk/gocept/webmail/browser/profile.pt
==============================================================================
--- CMFWebmail/trunk/products/CMFWebmail/browser/profile.pt	(original)
+++ CMFWebmail/trunk/gocept/webmail/browser/profile.pt	Wed Nov  5 10:52:49 2008
(at)(at) -3,12 +3,13 (at)(at)
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html class="webmailer">
   <head 
-    tal:define="yui_base_url context/yui/build/absolute_url">
+    tal:define="webmailer nocall:context/(at)(at)webmailer;
+                yui_base_url
string:${webmailer/++resource++gocept.webmail}/cmfwebmail_yui/yui/build">
     <title>Portal</title>
     
     <script type="text/javascript" tal:content="string:
       var yui_base_url = '$yui_base_url';
-      var app_base_url = '${context/portal_url}';
+      var app_base_url =
'${webmailer/++resource++gocept.webmail}/cmfwebmail_javascript';
       var profile_url = '${context/absolute_url}';
       var banner_url = '${view/banner_url}';">
     </script>
(at)(at) -17,14 +18,14 (at)(at)
       tal:attributes="src
string:$yui_base_url/yuiloader/yuiloader-beta-min.js">
     </script>
     <script type="text/javascript" src="utilities.js"
-      tal:attributes="src context/utilities.js/absolute_url">
+      tal:attributes="src
string:${webmailer/++resource++gocept.webmail}/cmfwebmail_javascript/utilities.js">
     </script> 
     <script type="text/javascript" src="webmailer-main.js"
-      tal:attributes="src context/webmailer-main.js/absolute_url">
+      tal:attributes="src
string:${webmailer/++resource++gocept.webmail}/cmfwebmail_javascript/webmailer-main.js">
     </script> 
 
     <link rel="stylesheet" type="text/css"
-        tal:attributes="href context/webmail.css/absolute_url"/>
+      tal:attributes="href
string:${webmailer/++resource++gocept.webmail}/cmfwebmail_styles/webmail.css"/>
 
   </head>
 

Modified: CMFWebmail/trunk/gocept/webmail/configure.zcml
==============================================================================
--- CMFWebmail/trunk/products/CMFWebmail/configure.zcml	(original)
+++ CMFWebmail/trunk/gocept/webmail/configure.zcml	Wed Nov  5 10:52:49 2008
(at)(at) -1,11 +1,27 (at)(at)
 <configure xmlns="http://namespaces.zope.org/zope"
-           xmlns:five="http://namespaces.zope.org/five">
+           xmlns:five="http://namespaces.zope.org/five"
+           xmlns:browser="http://namespaces.zope.org/browser">
 
+  <five:registerPackage package="." initialize=".initialize" />
   <five:traversable class=".webmailer.Webmailer" />
 
-  <permission id="CMFWebmail.View"
-              title="View CMFWebmail content" />
+  <permission id="gocept.webmail.View"
+              title="View gocept.webmail content" />
 
   <include package=".browser" />
 
+   <view
+     for="*"
+     name="webmailer"
+     type="*"
+     factory=".webmailer.get_webmailer"
+     />
+
+   <view
+     for="*"
+     name="profile"
+     type="*"
+     factory=".webmailer.get_profile"
+     />
+
 </configure>

Modified: CMFWebmail/trunk/gocept/webmail/profiles/default/rolemap.xml
==============================================================================
---
CMFWebmail/trunk/products/CMFWebmail/profiles/default/rolemap.xml	(original)
+++ CMFWebmail/trunk/gocept/webmail/profiles/default/rolemap.xml	Wed Nov  5
10:52:49 2008
(at)(at) -4,7 +4,7 (at)(at)
     <role name="Authenticated"/>
   </roles>
   <permissions>
-    <permission name="View CMFWebmail content"
+    <permission name="View gocept.webmail content"
                 acquire="True">
       <role name="Authenticated"/>
     </permission>

Modified:
CMFWebmail/trunk/gocept/webmail/skins/cmfwebmail_javascript/composer-main.js
==============================================================================
---
CMFWebmail/trunk/products/CMFWebmail/skins/cmfwebmail_javascript/composer-main.js	(original)
+++
CMFWebmail/trunk/gocept/webmail/skins/cmfwebmail_javascript/composer-main.js	Wed
Nov  5 10:52:49 2008
(at)(at) -18,8 +18,10 (at)(at)
                 units: [{ position: 'center',
                           body: 'composer', gutter: '10'}]});
             app.layout.on('render', function() {
-                app.units.composer =
app.layout.getUnitByPosition('center').body;
-                app.composer = new YAHOO.gocept.webmailer.Composer(draft_url,
profile_url);
+                app.units.composer = app.layout.getUnitByPosition(
+                    'center').body;
+                app.composer = new YAHOO.gocept.webmailer.Composer(
+                    draft_url, profile_url);
             });
             app.layout.render();
         },

Modified:
CMFWebmail/trunk/gocept/webmail/skins/cmfwebmail_javascript/composer.js
==============================================================================
---
CMFWebmail/trunk/products/CMFWebmail/skins/cmfwebmail_javascript/composer.js	(original)
+++ CMFWebmail/trunk/gocept/webmail/skins/cmfwebmail_javascript/composer.js	Wed
Nov  5 10:52:49 2008
(at)(at) -100,7 +100,8 (at)(at)
             
             // Initialize the rich text editor for the body.
             composer.editor = new YAHOO.widget.SimpleEditor(
-                composer.getControl('Body').id, {css: '(at)import
url(editor.css);'});
+                composer.getControl('Body').id, {
+                    css: '(at)import url(' + editor_style_url + ');'});
             composer.editor._defaultToolbar.titlebar = false; 
             composer.editor.on('editorKeyPress', composer.handleEditorKey,
composer, true);
             composer.editor.on('editorContentLoaded', function() {

Modified:
CMFWebmail/trunk/gocept/webmail/skins/cmfwebmail_templates/management.pt
==============================================================================
---
CMFWebmail/trunk/products/CMFWebmail/skins/cmfwebmail_templates/management.pt	(original)
+++
CMFWebmail/trunk/gocept/webmail/skins/cmfwebmail_templates/management.pt	Wed
Nov  5 10:52:49 2008
(at)(at) -3,27 +3,29 (at)(at)
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html class="webmailer">
   <head
-    tal:define="yui_base_url context/yui/build/absolute_url">
+    tal:define="webmailer nocall:context/(at)(at)webmailer;
+                yui_base_url
string:${webmailer/++resource++gocept.webmail}/cmfwebmail_yui/yui/build">
     <title>Manage accounts</title>
 
     <script type="text/javascript" tal:content="string:
       var yui_base_url = '$yui_base_url';
-      var app_base_url = '${context/portal_url}';">
+      var app_base_url =
+      '${webmailer/++resource++gocept.webmail}/cmfwebmail_javascript';">
     </script>
     
     <script type="text/javascript"
       tal:attributes="src
string:$yui_base_url/yuiloader/yuiloader-beta-min.js">
     </script>
     <script type="text/javascript" src="utilities.js"
-      tal:attributes="src context/utilities.js/absolute_url">
+      tal:attributes="src
string:${webmailer/++resource++gocept.webmail}/cmfwebmail_javascript/utilities.js">
     </script> 
+    
     <script type="text/javascript" src="management-main.js"
-      tal:attributes="src context/management-main.js/absolute_url">
+      tal:attributes="src
string:${webmailer/++resource++gocept.webmail}/cmfwebmail_javascript/management-main.js">
     </script> 
 
     <link rel="stylesheet" type="text/css"
-        tal:attributes="href context/webmail.css/absolute_url"/>
-    
+      tal:attributes="href
string:${webmailer/++resource++gocept.webmail}/cmfwebmail_styles/webmail.css"/>
   </head>
 
   <body class="yui-skin-sam">

Modified:
CMFWebmail/trunk/gocept/webmail/skins/cmfwebmail_templates/webmail_composer.pt
==============================================================================
---
CMFWebmail/trunk/products/CMFWebmail/skins/cmfwebmail_templates/webmail_composer.pt	(original)
+++
CMFWebmail/trunk/gocept/webmail/skins/cmfwebmail_templates/webmail_composer.pt	Wed
Nov  5 10:52:49 2008
(at)(at) -3,28 +3,30 (at)(at)
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 <html class="webmailer">
   <head 
-    tal:define="yui_base_url context/yui/build/absolute_url">
+    tal:define="webmailer nocall:context/(at)(at)webmailer;
+                yui_base_url
string:${webmailer/++resource++gocept.webmail}/cmfwebmail_yui/yui/build">
     <title>Compose message</title>
     
     <script type="text/javascript" tal:content="string:
       var yui_base_url = '$yui_base_url';
-      var app_base_url = '${context/portal_url}';
+      var app_base_url =
'${webmailer/++resource++gocept.webmail}/cmfwebmail_javascript';
+      var profile_url = '${context/(at)(at)profile/absolute_url}';
       var draft_url = '${context/absolute_url}';
-      var profile_url =
'${context/aq_parent/aq_parent/(at)(at)absolute_url}';">
+      var editor_style_url =
'${webmailer/++resource++gocept.webmail}/cmfwebmail_styles/editor.css';
+      ">
     </script>
-
     <script type="text/javascript"
       tal:attributes="src
string:$yui_base_url/yuiloader/yuiloader-beta-min.js">
     </script>
     <script type="text/javascript" src="utilities.js"
-      tal:attributes="src context/utilities.js/absolute_url">
+      tal:attributes="src
string:${webmailer/++resource++gocept.webmail}/cmfwebmail_javascript/utilities.js">
     </script> 
     <script type="text/javascript" src="composer-main.js"
-      tal:attributes="src context/composer-main.js/absolute_url">
+      tal:attributes="src
string:${webmailer/++resource++gocept.webmail}/cmfwebmail_javascript/composer-main.js">
     </script> 
 
     <link rel="stylesheet" type="text/css"
-        tal:attributes="href context/webmail.css/absolute_url"/>
+      tal:attributes="href
string:${webmailer/++resource++gocept.webmail}/cmfwebmail_styles/webmail.css"/>
 
   </head>
 

Modified: CMFWebmail/trunk/gocept/webmail/tests.py
==============================================================================
--- CMFWebmail/trunk/products/CMFWebmail/tests.py	(original)
+++ CMFWebmail/trunk/gocept/webmail/tests.py	Wed Nov  5 10:52:49 2008
(at)(at) -14,7 +14,7 (at)(at)
 import AccessControl.SecurityManagement
 
 import gocept.restmail.tests
-import Products.CMFWebmail.webmailer
+import gocept.webmail.webmailer
 
 
 checker = renormalizing.RENormalizing([
(at)(at) -34,13 +34,13 (at)(at)
 
     # add a CMF Site with the CMFWebmail product
     addConfiguredSite(app, 'webmail', 'CMFDefault:default',
-                      extension_ids=('CMFWebmail:default', ))
+                      extension_ids=('other:gocept.webmail', ))
     cmfsite = test.app['webmail']
 
     # Add a webmail profile to the site
     cmfsite._setObject(
         'mail',
-        Products.CMFWebmail.webmailer.Webmailer('mail'))
+        gocept.webmail.webmailer.Webmailer('mail'))
 
 
 def tearDown(test):
(at)(at) -49,21 +49,26 (at)(at)
     pass
 
 
+flags = (doctest.ELLIPSIS + doctest.REPORT_NDIFF +
+         doctest.NORMALIZE_WHITESPACE + doctest.INTERPRET_FOOTNOTES)
+
+
 def test_suite():
     suite = unittest.TestSuite()
+    suite.addTest(doctest.DocFileSuite(
+        'xmlcompare.txt',
+        optionflags=flags))
     suite.addTest(gocept.restmail.tests.FunctionalDocFileSuite(
-        'README.txt', 'xmlcompare.txt',
+        'README.txt',
         globs=dict(Browser=zc.testbrowser.real.Browser),
-        optionflags=(
-            doctest.ELLIPSIS + doctest.REPORT_NDIFF +
-            doctest.NORMALIZE_WHITESPACE + doctest.INTERPRET_FOOTNOTES),
+        optionflags=flags,
         checker=checker,
-        products=['CMFWebmail',
-                  'ZCTextIndex',
-                  'CMFCore',
-                  'CMFDefault',
-                  'CMFSetup',
-                  'MailHost'],
+        products=[
+            'CMFCore',
+            'CMFDefault',
+            'CMFSetup',
+            'ZCTextIndex',
+        ],
         setUp=setUp,
         tearDown=tearDown))
     return suite

Modified: CMFWebmail/trunk/gocept/webmail/webmailer.py
==============================================================================
--- CMFWebmail/trunk/products/CMFWebmail/webmailer.py	(original)
+++ CMFWebmail/trunk/gocept/webmail/webmailer.py	Wed Nov  5 10:52:49 2008
(at)(at) -5,14 +5,15 (at)(at)
 import Products.BTreeFolder2.BTreeFolder2
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile
 
-import Products.CMFWebmail.interfaces
+import gocept.restmail.interfaces
+import gocept.webmail.interfaces
 
 
 class Webmailer(Products.BTreeFolder2.BTreeFolder2.BTreeFolder2):
     """Webmailer base object, containing the profiles.
     """
 
-    zope.interface.implements(Products.CMFWebmail.interfaces.IWebmailer)
+    zope.interface.implements(gocept.webmail.interfaces.IWebmailer)
 
     _properties = (dict(id='banner_url', type='string', mode='w'),)
 
(at)(at) -30,3 +31,17 (at)(at)
     webmailer = container[id]
     context.REQUEST.RESPONSE.redirect(
         webmailer.absolute_url() + '/manage_workspace')
+
+
+def get_webmailer(context, request):
+    candidate = context
+    while not gocept.webmail.interfaces.IWebmailer.providedBy(candidate):
+        candidate = candidate.getParentNode()
+    return candidate
+
+
+def get_profile(context, request):
+    candidate = context
+    while not gocept.restmail.interfaces.IProfile.providedBy(candidate):
+        candidate = candidate.getParentNode()
+    return candidate

Modified: CMFWebmail/trunk/gocept/webmail/xmlcompare.txt
==============================================================================
--- CMFWebmail/trunk/products/CMFWebmail/xmlcompare.txt	(original)
+++ CMFWebmail/trunk/gocept/webmail/xmlcompare.txt	Wed Nov  5 10:52:49 2008
(at)(at) -16,7 +16,7 (at)(at)
 The `xmlcompare` tool tries to make it simpler to write expectations for a
 given XML document and analyze differences if they occur.
 
->>> from Products.CMFWebmail.xmlcompare import compare
+>>> from gocept.webmail.xmlcompare import compare
 
 When a comparison results in no differences, the compare function simply
 returns:

Added: CMFWebmail/trunk/setup.py
==============================================================================
--- (empty file)
+++ CMFWebmail/trunk/setup.py	Wed Nov  5 10:52:49 2008
(at)(at) -0,0 +1,22 (at)(at)
+# Copyright (c) 2008 gocept gmbh & co. kg
+# See also LICENSE.txt
+
+from setuptools import setup, find_packages
+
+
+setup(
+    name='gocept.webmail',
+    version='0.1dev',
+    author='gocept gmbh & co. kg',
+    author_email='mail(at)gocept.com',
+    description='A UI for gocept.restmail.',
+    packages=find_packages(),
+    include_package_data=True,
+    zip_safe=False,
+    license='ZPL 2.1',
+    namespace_packages=['gocept'],
+    install_requires=[
+        'gocept.restmail',
+        'setuptools',
+    ],
+)

MailBoxer