37 messages in net.sourceforge.lists.plone-developersRe: CMFFormController should abort th...
FromSent OnAttachments
Dorneles TreméaNov 9, 2007 3:17 pm 
Philipp von WeitershausenNov 10, 2007 7:07 am 
Dorneles TreméaNov 10, 2007 7:58 am 
Wichert AkkermanNov 10, 2007 12:22 pm 
Martin AspeliNov 10, 2007 2:12 pm 
Wichert AkkermanNov 10, 2007 4:20 pm 
Philipp von WeitershausenNov 11, 2007 1:32 am 
Dorneles TreméaNov 11, 2007 5:19 pm 
Alan RunyanNov 11, 2007 5:20 pm 
Martin AspeliNov 11, 2007 5:44 pm 
Martin AspeliNov 11, 2007 5:51 pm 
Wichert AkkermanNov 12, 2007 4:37 am 
Sidnei da SilvaNov 12, 2007 4:43 am 
Daniel KraftNov 12, 2007 5:40 am 
Martin AspeliNov 12, 2007 5:52 am 
Dorneles TreméaNov 12, 2007 9:35 am 
Wichert AkkermanNov 12, 2007 9:56 am 
Martin AspeliNov 12, 2007 9:59 am 
Martin AspeliNov 12, 2007 10:00 am 
Dorneles TreméaNov 12, 2007 10:56 am 
Martin AspeliNov 12, 2007 11:14 am 
Martin AspeliNov 12, 2007 11:21 am 
Wichert AkkermanNov 12, 2007 11:36 am 
Martin AspeliNov 12, 2007 11:41 am 
Sidnei da SilvaNov 12, 2007 11:47 am 
Martin AspeliNov 12, 2007 12:04 pm 
Dorneles TreméaNov 12, 2007 12:28 pm 
Dorneles TreméaNov 12, 2007 12:34 pm 
Dorneles TreméaNov 12, 2007 1:29 pm 
Wichert AkkermanNov 12, 2007 1:32 pm 
Martin AspeliNov 12, 2007 1:41 pm 
Dorneles TreméaNov 12, 2007 1:44 pm 
Martin AspeliNov 12, 2007 1:46 pm 
Wichert AkkermanNov 12, 2007 1:46 pm 
Martin AspeliNov 12, 2007 1:47 pm 
Dorneles TreméaNov 12, 2007 5:11 pm 
Daniel NouriNov 13, 2007 4:14 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: CMFFormController should abort the current transaction when the validation failsActions...
From:Dorneles Treméa (deo-@public.gmane.org)
Date:Nov 11, 2007 5:19:08 pm
List:net.sourceforge.lists.plone-developers

Hello,

Do you have an example of where that would happen? I am not convinced that a change in behaviour like that will not break existing sites.

It would only happen if

a) the validator saves data

b) the data save happens even if the validator failed

In both cases, it's an explicit decision (or a bug).

exactly, and I'm advocating it's a real bug... :-)

Rolling back the transaction seems drastic. In some cases, you may even want to save something even if validation fails.

If you need to save something even if the validation fails at a later point, you can do a full commit at anytime. The same is not true when trying to abort something that you don't know that will fail...

It's not hard to write form actions so that nothing is saved.

With the current Archetypes/CMFFormController integration it is impossible... :-/

My particular use case is the following:

- There's an AT content-type, and its schema has a reference field

- This field uses a special widget (UploadReferenceWidget) that allows you upload a file, creating a new File in ZODB *and* reference that File after its creation

- What happens now is that when the validation of any other field fails, I have no chance to abort the creation of that File

I'm talking specifically about ZODB here, but the same would apply for RDB and file system changes. Again, if the validation fails, I would expect that *no* persistent changes remains.

The fix could be done in Archetypes, but 'form processing' is a more general concept, and thus I would say that CMFFormController is the best place to do it.

And last, but not least, the proposed fix has tests and none of the existing CMFPlone, Archetypes, ATContentTypes, CMFFormController, CMFEditons, ..., tests fails after applying it... ;-)

--

_______________________________________________________

Dorneles Treméa · Developer, Jarn · www.jarn.com

Plone Solutions, Development, Hosting and Support

_______________________________________________________

Plone Solutions is now known as Jarn www.jarn.com/name-change