Hi everyone,
in the past month more project-related work, user feedback/requests and
Javascript work has driven the development of the z3c.form framework. There
are many new exciting features. There were also some small refactoring
changes, which might require your CSS and tests to be adjusted. Please read
the changes section below carefully!
As always, the demos can be run using:
$ svn co svn://svn.zope.org/repos/main/z3c.formdemo/tags/1.4.0 formdemo
$ cd formdemo
$ python bootstrap.py
$ ./bin/buildout -N
$ ./bin/demo fg
Thanks to Roger, Windows users should be able to run the demos this way now as
well!
Visually, not much has happened; there are no new demos. However, just wait
until the next round of z3c.formjs* releases!
Changes
-------
- Feature: An event handler for ``ActionErrorOccurred`` events is registered
to merge the action error into the form's error collectors, such as
``form.widgets.errors`` and ``form.widgets['name'].error`` (if
applicable). It also sets the status of the form. (Thanks to Herman
Himmelbauer, who requested the feature, for providing use cases.)
- Feature: Action can now raise ``ActionExecutionError`` exceptions that will
be handled by the framework. These errors wrap the original error. If an
error is specific to a widget, then the widget name is passed to a special
``WidgetActionExecutionError`` error. (Thanks to Herman Himmelbauer, who
requested the feature, for providing use cases.)
- Feature: After an action handler has been executed, an action executed event
is sent to the system. If the execution was successful, the event is
``ActionSuccessfull`` event is sent. If an action execution error was
raised, the ``ActionErrorOccurred`` event is raised. (Thanks to Herman
Himmelbauer, who requested the feature, for providing use cases.)
- Feature: The ``applyChanges()`` function now returns a dictionary of changes
(grouped by interface) instead of a boolean. This allows us to generate a
more detailed object-modified event. If no changes are applied, an empty
dictionary is returned. The new behavior is compatible with the old one, so
no changes to your code are required. (Thanks to Darryl Cousins for the
request and implementation.)
- Feature: A new ``InvalidErrorViewSnippet`` class provides an error view
snippet for ``zope.interface.Invalid`` exceptions, which are frequently used
for invariants.
- Feature: When a widget is required, HTML-based widgets now declare a
"required" class.
- Feature: The validation data wrapper now knows about the context of the
validation, which provides a hook for invariants to access the environment.
- Feature: The BoolTerms term tokens are now cosntants and stay the same, even
if the label has changed. The choice for the token is "true" and "false". By
default it used to be "yes" and "no", so you probably have to change some
unit tests. Functional tests are still okay, because you select by term
title.
- Feature: BoolTerms now expose the labels for the true and false values
to the class. This makes it a matter of doing trivial sub-classing to
change the labels for boolean terms.
- Feature: Exposed several attributes of the widget manager to the form for
convenience. The attributes are: mode, ignoreContext, ignoreRequest,
ignoreReadonly.
- Feature: Provide more user-friendly error messages for number formatting.
- Refactoring: The widget specific class name was in camel-case. A converntion
that later developed uses always dash-based naming of HTML/CSS related
variables. So for example, the class name "textWidget" is now
"text-widget". This change will most likely require some changes to your CSS
declarations!
- Documentation: The text of ``field.txt`` has been reviewed linguistically.
- Documentation: While reviewing the ``form.txt`` with some people, several
unclear and incomplete statements were discovered and fixed.
- Bug (IE): In Internet Explorer, when a label for a radio input field is only
placed around the text describing the choice, then only the text is
surrounded by a dashed box. IE users reported this to be confusing, thus we
now place the label around the text and the input element so that both are
surrounded by the dashed border. In Firefox and KHTML (Safari) only the
radio button is surrounded all the time.
- Bug: When extracting and validating data in the widget manager, invariant
errors were not converted to error view snippets.
- Bug: When error view snippets were not widget-specific -- in other words,
the ``widget`` attribute was ``None`` -- rendering the template would fail.
Enjoy!
This release is the most user-friendly, powerful and highly anticipated
release of Plone ever, and has an amazing amount of new functionality.
Some highlights:
- Full versioning support, history and reverting to older revisions
- Improved performance
- Inline (Ajax) editing
- Link and reference integrity checking
- Automatic locking and unlocking
- Improved handling of permissions and sharing
- Upgraded visual (WYSIWYG) content editor
- Full-text indexing of Word and PDF documents
- Wiki support and multiple new mark-up formats
- Rules engine for content
- Strengthened security
For the full overview, see the Plone 3.0 feature list:
http://plone.org/products/plone/features/3.0.
Get Plone
=========
Download Plone 3.0 for all platforms here:
http://plone.org/download
Upgrading from a previous version of Plone? Detailed instructions can be
found in the Upgrade Manual:
http://plone.org/upgrade.
Help us spread the word!
========================
Login/register and vote for the Plone 3.0 release story:
http://digg.com/tech_news/Plone_3_0_released
Web site updates
================
Both the "Documentation section":/documentation and the "Add-on products
section":/products have been updated in time for the Plone 3.0 release —
it's now easier to find the documentation you need, as well as finding
products that support the new 3.0 release.
Books
=====
Another great thing about Plone 3.0 is that there is an up-to-date book
written by Martin Aspeli especially for this release. You can pre-order
the book now:
http://www.packtpub.com/Professional-Plone-web-applications-CMS/book
Plone Rock Stars
================
Hundreds of individuals have contributed to making Plone 3.0 the best
release ever, and we'd like to thank them all for their hard work, passion
and dedication in pushing out the best content management system on the
planet.
The Plone Community would like to express our sincere thanks to the
following people and companies for their support and dedication:
Google, Inc. -- For hosting our downloads and for graciously sponsoring
the time of Plone co-founder Alexander Limi — and of course for the
wonderful Summer of Code project that introduces new developers to Plone.
The Zope community -- For producing the software Plone is built on top of.
Jim Fulton for starting the whole thing — and for continuing to push the
envelope with Zope 3, Philipp von Weitershausen for guidance and an
excellent (and now updated) book, Andreas Jung for being the Zope release
manager. And everyone else that has contributed to Zope over the past
years.
The CMF community -- For being exceptionally helpful and talented, Plone
would not be Plone without the CMF. Special thanks to Jens Vagelpohl for
being the release manager for CMF, GenericSetup and PAS, Yvo Schubbe for
the impressive amount of work and cleanup, and of course the founder of
CMF, Tres Seaver for overall excellence and help with all things CMF.
The Plone Documentation Team -- For the amazing re-vamp of the Plone
documentation section in time for the 3.0 release:
http://plone.org/documentation
The Plone Framework Team -- For striking the perfect balance between new
features and stability.
The installer and package creators -- Sidnei da Silva and Enfold Systems
for the Windows installer, Kamal Gill for the Mac OS X installer, Steve
McMahon for the Unified *ix installer, Markus Tesmer for the SUSE package.
Martin Aspeli -- For being the main driving force behind many of the new
components in 3.0, including 'plone.portlets' and 'plone.contentrules', as
well as writing a book to coincide with the 3.0 release, "available for
pre-order at Packt Publishing:
http://www.packtpub.com/Professional-Plone-web-applications-CMS/book.
Wichert Akkerman -- For being the best release manager any project could
wish for. Thanks for your thorough review of all code, for keeping us all
in line, and for the flexibility when things out-of-the-ordinary had to be
done. He also wrote the "OpenID support" included in the Plone 3.0 release.
Hanno Schlichting -- For cleaning up and sanitizing every nook and cranny
of Plone, as well as being the Internationalization Champion.
Alexander Limi -- For taking time off his busy schedule at Google to raise
the user experience of Plone to new levels with the 3.0 release, and for
managing the community and developers.
Cornelis Kolbach -- For coming up with the NuPlone theme design, and for
many great design discussions.
Danny Bloemendaal -- For organizing the UI sprint in the Netherlands — a
crucial part of the 3.0 release process, and for contributing his great UI
ideas to Plone.
Balazs Ree and Godefroid Chapelle -- For their work on KSS, Plone's Ajax
framework.
Andi Zeidler -- For his great work on the link integrity functionality,
the views and viewlets customization components (with Weitershausen and
Mitchell), as well as the experimental support for BLOBs in Plone 3
Tom Lazar -- For integrating support for additional markup formats like
Textile and Markdown.
David "Whit" Morris -- For integrating Wicked's "wiki without the
aftertaste" support in Plone.
Duncan Booth -- For great work on improving Kupu, Plone's visual editor
for Plone 3.0.
Daniel Nouri -- For shepherding the Archetypes 1.5 release, as well as
making Plone much much faster.
Ricardo Newbery -- For taking over the maintenance of CacheFu, Plone's
caching proxy integration product. This is a crucial part of Plone's
infrastructure.
Melissa Wong -- For handling Public Relations for us open source geeks,
and making us talk to the press.
Veda Williams -- For great work on the visual redesign of the Products and
Documentation sections on plone.org.
Florian Schulze -- For ResourceRegistries and lots of Javascript work.
Ramon Navarro Bosch -- For organizing the Barcelona sprint.
David Siedband -- For organizing the Plone presence at LinuxWorld San
Francisco this year.
Jola Hyjek -- For redesigning the Plone logo.
Everyone at the conferences, sprints and workshops this year -- Especially
the people new to the Plone community. It's been great meeting you all!
--
Alexander Limi · http://limi.net
I am pleased to announce the first release of TransactionalMailHost.
TransactionalMailHost can be downloaded from
<ftp://ftp.zopyx.com/open-source/TransactionalMailHost/TransactionMailHost-0…>
What is TransactionalMailHost
=============================
TransactionalMailHost is yet another MailHost implementation. It integrates
with the transaction system of Zope in order to send out email only in
case of a committed transaction. TMH currently supports standard SMTP and
SMTP AUTH.
Requirements
============
- Zope 2.9+
- zope.sendmail
Installation
============
- Unpack the archive in your *Products* directory
- restart Zope
- create a new **TransactionMailHost** instance through the ZMI
- configure your SMTP host, port within the ZMI.
username and password are optional for SMTP AUTH
Note
====
TransactionMailHost is not fully (yet) API compatible with the Zope MailHost
implementation. It provides only one public method right now:
send(message, fromaddr, toaddrs, subject, encode)
The 'subject' and 'encode' parameters are unused right now
How does it compare to MailDropHost
===================================
MDH decouples the process of sending mail from its delivery. Like all other
MailHost implementations TransactionalMailHost blocks the current Zope
thread
until the end of delivery. This can be a big disadvantage when you send out
email to multiple addresses. If you run a site producing lots of email you
might better checkout MailDropHost.
Author
======
TransactionalMailHost was written by Andreas Jung
for ZOPYX Ltd. & Co. KG, Tuebingen, Germany.
License
=======
TransactionalMailHost is licensed under the Zope Public License 2.1.
See LICENSE.txt.
Cheers,
Andreas
--
ZOPYX Ltd. & Co. KG - Charlottenstr. 37/1 - 72070 Tübingen - Germany
Web: www.zopyx.com - Email: info(a)zopyx.com - Phone +49 - 7071 - 793376
Registergericht: Amtsgericht Stuttgart, Handelsregister A 381535
Geschäftsführer/Gesellschafter: ZOPYX Limited, Birmingham, UK
------------------------------------------------------------------------
E-Publishing, Python, Zope & Plone development, Consulting
Hi everyone,
it has been over a year, since we had a conference-independent fully Zope 3
focused sprint. And I think it is time to have one! :-)
Thanks to JSA Tech, there will be a sprint between September 24-28, 2007 right
in the center of historical Concord, Massachusetts. We have reserved a big
room where we can easily fit 35 people. For details, go to the link below:
http://wiki.zope.org/zope3/FoliageSprint
Now that some fairly large Zope 3 projects are in production, this will be a
great opportunity to share our experiences, to learn from each other and
discuss new directions that we would like to go. Upon request, I will also
give some of my Zope 3 training sessions during the sprint. So I envision the
sprint to be interesting for any level of Zope 3 developer, from the beginner
to the expert.
So sign up now! Just add yourself to the list of participants in the Wiki or
send me an E-mail, if you can't.
Regards,
Stephan
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
The CMF developer community is hereby announcing the release of CMF
version 2.1.0.
What is the CMF?
The Zope Content Management Framework provides a set of services and
content objects useful for building highly dynamic, content-oriented
portal sites. The CMF provides the foundation for popular software
packages such as Plone. It is intended to be easily customizable, in
terms of both the types of content used and the policies and services
it provides.
Where do I get it?
For release files, change logs, installation instructions and more
please visit http://www.zope.org/Products/CMF/CMF-2.1.0.
Roadmap and release information can be found at
http://www.zope.org/Products/CMF/docs/roadmap.
The CMF mailing list can be reached at the zope-cmf(a)zope.org address,
to sign up please visit http://mail.zope.org/mailman/listinfo/zope-
cmf.
Please file bug reports, feature requests or suggestions in the CMF
bug collector at http://www.zope.org/Collectors/CMF .
What has changed since the last release?
New Features
- PortalFolder: Enabled 'Components' ZMI tab.
This GenericSetup tab allows to inspect and edit component
registrations.
Bug Fixes
- Fixed all componentregistry.xml files to use plain object
paths and strip
and slashes. GenericSetup does only support registering
objects which are
in the site root.
- Allow email addresses with all-numeric domain names. The RFCs
do not
support them but they do exist.
(http://dev.plone.org/plone/ticket/6773)
Jens Vagelpohl
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)
iD8DBQFGugWYRAx5nvEhZLIRAjnSAJ4z5fR/QkeJHE97cqIiIe7DcEVJ/gCbBrso
q1IGLyfzuApQWsJRnaLphto=
=MKvj
-----END PGP SIGNATURE-----
The Zope User Group Rhineland in collaboration with the German Zope User
Group (DZUG) is happy to announce a Grok workshop with Martijn Faassen,
well known inventor of Grok.
The workshop will take place on 25th and 26th of August at the FrOSCon
conference at the "Fachhochschule Bonn-Rhein-Sieg" (university of
applied sciences) in St. Augustin near Cologne, Germany.
It will provide a practical introduction into Grok, the thing, that
makes Zope 3 even usable for cavemen.
The number of participants is limited to twenty persons. Therefore quick
registration is highly recommended.
The workshop fee is 20 EUR (10 EUR for DZUG members) plus 5 EUR for
FrOSCon admittance.
All about the workshop:
http://www.zope.de/grok-workshop
To the registration:
http://www.zope.de/redaktion/rzug-rheinland/froscon-2007/anmeldung-zum-grok…
More about the FrOSCon:
http://www.froscon.de
More about Grok:
http://grok.zope.org/
Hope to see you there,
--
Uli
I'm pleased to announce the first release of ZcxOracleDA - a Zope
database adaptor for Oracle using the cx_Oracle library.
This is an initial development release and should be used with caution!
You can download it from:
http://www.zope.org/Members/andyhird/ZcxOracleDA
>From the README.txt:
Z cxOracle DA
This is a Zope Database Adaptor for cx_Oracle. It's currently only
been tested with Zope 2.7 and above with cx_Oracle 4.3.1 and above.
Installation
You must install cx_Oracle before attempting to use this DA.
You can find cx_Oracle at::
http://cx-oracle.sourceforge.net/
Then extract this product into your Zope instances Products
directory.
Connection Strings
The connection string is passed directly to cx_Oracle.connect().
The string is usually of the form username/password@TNS
Known Issues
cx_Oracle returns date types as python datetime.datetime types. The
DA will check the queries description to see if any of the rows
being returned are of that type and if they are will convert them
on the fly to Zopes DateTime type. Unfortunately this currently
means the DA iterates through all the rows returned and modifies
the return values which is far from optimal.
Also the DA currently doesn't handle returned datetime timezones
well. It currently converts all datetimes to UTC regardless of the
timezone Oracle is using. Ideally the DA would query the current
Oracle DBTIMEZONE and use that instead. If you want to change the
timezone used for datetime conversion then edit db.py and modify
CONVERSION_TIMEZONE.