[Seaside] "Injecting" options into a Magritte description
Jupiter Jones
jupiter.jones at mail.com
Tue Oct 1 20:15:20 UTC 2013
Hi Esteban,
There are a few of includesSubString's that need to changed if you're using Pharo2, but it appears to work fairly well (ie. I haven't tested everything, but what I am using is working well).
Good luck :)
Cheers,
Jupiter
On 02/10/2013, at 12:46 AM, "Esteban A. Maringolo" <emaringolo at gmail.com> wrote:
> Thanks Diego,
>
> I found the presentation (Dry-ing Magritte). I should take a look into it.
>
> Anybody knows if the JQueryMobile (aka JQM:
> http://jquerymobile.seasidehosting.st) is still operational and
> compatible with the latest stable version of Seaside?
> Plus... did ever existed a Magritte-JQM package?
>
>
> Thanks,
>
> Esteban A. Maringolo
>
>
> 2013/10/1 Diego Lont <diego.lont at delware.nl>:
>> Hi Esteban,
>>
>> I did a presentation on ESUG this year on it. The presentation should be
>> online by now. Also it contains a demo, that explains how it is build and
>> some of the tools it contains. It lacks a lot of tests and the documentation
>> could be more extensive, I am working on that. But if you have questions
>> about it, I am happy to answer you (and at the same time put them in
>> documentation).
>>
>> Cheers,
>> Diego
>>
>> On Oct 1, 2013, at 3:05 PM, Esteban A. Maringolo wrote:
>>
>> Hi Diego,
>>
>> Thanks for the advice, I think I can replicate the WAObject methods in my
>> own classes, and avoid subclassing it.
>>
>> Regarding the Memento error, it has to do with the fact the objects come
>> from the database (GLORP).
>> Maybe because GLORP uses proxies. Looking for this, I found a mail from
>> several years ago about redefining #= as:
>> = anObject
>> ^self == anObject yourSelf
>>
>>
>> The QCMagritte name sounds familiar to me, but I really don't know what it
>> is. Is there a blog post, presentation, website or something before looking
>> into the code? :) The SmalltalkHub summary seems interesting.
>>
>> Regards,
>>
>>
>>
>> Esteban A. Maringolo
>>
>>
>> 2013/10/1 Diego Lont <diego.lont at delware.nl>
>>>
>>> Hi Esteban,
>>>
>>> I have a similar solution in QC Magritte, that allows the session to be
>>> acquired from the objects as well. I use it for my rights, as my user is in
>>> my session. As you can see in the seaside implementation WAObject already
>>> implements request-context, session and application. I do recommend that you
>>> use an indirection, that you put in your description "self allStores" and
>>> implement the allStores as "self session allStores". But other than that I
>>> think the solution is sound.
>>>
>>> As for the validation error. From what you have written here I have no
>>> clue what the problem is. In Magritte the memento stores an original value.
>>> If the original value is not exactly the same as the value of the model, it
>>> gives a validation error. Maybe you can put a halt here and find out what
>>> the difference is. Maybe you recreate a certain object (return a copy) that
>>> causes the difference?
>>>
>>> If you need a more dynamic solution (with updating values), please take a
>>> look at QCMagritte. It can be found at smalltalkhub, and loaded by:
>>>
>>> Gofer new
>>> url: 'http://smalltalkhub.com/mc/DiegoLont/QCMagritte/main';
>>> package: 'ConfigurationOfQCMagritte';
>>> load.
>>>
>>> ((Smalltalk at: #ConfigurationOfQCMagritte) project version: '0.1') load:
>>> 'Demo'.
>>>
>>> (Smalltalk at: #ZnZincServerAdaptor) startOn: 8080. "only if seaside is
>>> not started yet"
>>>
>>>
>>> Cheers,
>>> Diego
>>>
>>> On Oct 1, 2013, at 4:51 AM, Esteban A. Maringolo wrote:
>>>
>>>> I don't know whether it has to do with my previous solution. But now I'm
>>>> getting a 'Input is conflicting with concurrent modification' validation
>>>> error, when there is no concurrent use (it is just me using the app).
>>>>
>>>> The model I'm editing has only two attributes: #time and #store, and I'm
>>>> not changing #store, even if I don't change anything I get the same error.
>>>>
>>>> Any clues?
>>>>
>>>> Esteban A. Maringolo
>>>>
>>>>
>>>> 2013/9/30 Esteban A. Maringolo <emaringolo at gmail.com>
>>>> Answering myself...
>>>>
>>>> Maybe not an elegant solution (nor a scalable one) but I found I can use
>>>> the dynamic variable scoping to access the current session.
>>>>
>>>> I changed my description to use:
>>>>
>>>> descriptionStore
>>>> <magritteDescription>
>>>>
>>>> ^MASingleOptionDescription new
>>>> label: 'Store';
>>>> accessor: #store;
>>>> beRequired;
>>>> options: self currentSession allStores;
>>>> yourself
>>>>
>>>>
>>>> #currentSession
>>>> ^WACurrentRequestContext value session
>>>>
>>>>
>>>> It still smells bad, for some reason DynamicVariable's seems "hacky" to
>>>> me.
>>>>
>>>> Maybe they're more clever than what I'm used to.
>>>>
>>>> Regards,
>>>>
>>>>
>>>> Esteban.
>>>>
>>>>
>>>> _______________________________________________
>>>> seaside mailing list
>>>> seaside at lists.squeakfoundation.org
>>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>>
>>> _______________________________________________
>>> seaside mailing list
>>> seaside at lists.squeakfoundation.org
>>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>
>>
>> _______________________________________________
>> seaside mailing list
>> seaside at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>
>>
>>
>> _______________________________________________
>> seaside mailing list
>> seaside at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
>>
> _______________________________________________
> seaside mailing list
> seaside at lists.squeakfoundation.org
> http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
More information about the seaside
mailing list