Well, that still is a fixed set of functionality that is dependent on  
the stage. So you're afraid that adding stages will be difficult  
because now you only need to add a template and some config. But  
because you're afraid that adding stages might be difficult in the  
future you have to add complicated code now. In my experience that  
rarely pays of. There are certainly situations where it does, so  
that's your call.

There is no way of providing a dependency depending of the value of  
the incoming value, a dependency is provided if the validator returns  
"true". So there's some hacks that you can use - you could have  
multiple validators, one for each value. You'd have to set the  
severity to "info" so that the field is not marked as "failed". That  
way each validator provides a unique dependency that you can depend  
on. It's a bit hacky but it should work.

felix

On Sep 30, 2009, at 7:15 PM, Michal Charemza wrote:

> Alas I can't read German..
>
> However, I think I do disagree with what the "functionality" is in my
> case. I would say the the functionality is:
>
> "Validate the input for the current stage, save the data, and move to
> the next stage"
>
> But also: having a different action for each different stage would
> make it trickier to add stages later. Right now I have that stages
> defined in some simple php "config" code (order of stages, "nice"
> names of stages etc...), with associated template files for the forms
> themselves (It's a mild hack, but I think I can live with it). To
> add / remove stages later I can edit these files. If each stage is a
> different action, I would have to create a new action.
>
> Michal.
>
>
> On 30 Sep 2009, at 14:43, Felix Gilcher wrote:
>
>> I think you misunderstand the DRY principle. It's not "write every
>> line of code only once" but "have a single point of responsibility  
>> for
>> every functionality", often also called "single point of truth".  
>> Since
>> the functionality is "validate the input for stage X in wizard Y and
>> then save that data" it's perfectly DRY to have a separate action for
>> each step of each wizard. You can always use config file inheritance
>> or xincludes to have common validation in a single place. You can  
>> also
>> use inheritance and composition to factor out common code into base
>> classes or models used in multiple places.
>>
>> There's a pretty good writeup about DRY in german here: 
>> http://www.ruby-mine.de/2009/5/27/repeat-yourself-hin-und-wieder
>>
>> felix
>>
>> On Sep 30, 2009, at 3:31 PM, Michal Charemza wrote:
>>
>>>
>>> On 30 Sep 2009, at 14:21, Felix Gilcher wrote:
>>>
>>>> Why don't you use separate Actions for each stage?
>>>
>>> I was hoping to have things a bit more general: on this site there
>>> are
>>> in fact 2 separate wizards for different (but related) things. Plus,
>>> each stage is presented very similarly, and goes through a very
>>> similar action: validate the input, and go onto the next stage. It
>>> seems a bit non DRY to have each stage as a separate action. But
>>> would
>>> that be the preferred solution...?
>>>
>>> Michal.
>>>
>>> _______________________________________________
>>> users mailing list
>>> [email protected]
>>> http://lists.agavi.org/mailman/listinfo/users
>>>
>>
>> --
>> Felix Gilcher
>>
>> Bitextender GmbH
>> Paul-Heyse-Str. 6
>> D-80336 München
>>
>> T: +49 89 57 08 15 16
>> F: +49 89 57 08 15 17
>> M: +49 172 840 88 28
>>
>> [email protected]
>> http://www.bitextender.com/
>>
>> Amtsgericht München, HRB 174280
>> Geschäftsführer: David Zülke, Florian Clever
>>
>>
>> _______________________________________________
>> users mailing list
>> [email protected]
>> http://lists.agavi.org/mailman/listinfo/users
>
>
> _______________________________________________
> users mailing list
> [email protected]
> http://lists.agavi.org/mailman/listinfo/users
>


_______________________________________________
users mailing list
[email protected]
http://lists.agavi.org/mailman/listinfo/users

Reply via email to