X-CGP-ClamAV-Result: CLEAN X-VirusScanner: Niversoft's CGPClamav Helper v1.25a (ClamAV 1.4.3/27980) X-Junk-Score: 20 [X] X-KAS-Score: 20 [X] From: "Theodore Petrosky" Received: from [34.2.68.31] (HELO sonic.asd.mail.yahoo.com) by post.selbstdenker.com (CommuniGate Pro SMTP 6.3.18) with ESMTPS id 35571812 for webobjects-dev@wocommunity.org; Thu, 23 Apr 2026 22:36:18 +0200 Received-SPF: pass receiver=post.selbstdenker.com; client-ip=34.2.68.31; envelope-from=tedpet5@yahoo.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1776976567; bh=VSLTMoNv8Xb4ONU32lZ4aIWoCO0j3erFp8Selb9mGs8=; h=Date:To:From:Subject:References:From:Subject:Reply-To; b=k7u5k36eOb7wFRh7GFkMUMRQp1KhtbQm4iMucJD29my/2VkO5JMWDA40eFn6ukbFmIfIaBU4f6LoYURuCNKWcDSnhzGpix5IELZPj0Ntlyg6JKajK2Fta32MwSXnVzLcjCFAoZVFKDV8TqnLnAZbgfvPV8BzNqqePl/XgdvJoRTxGVDOir0iyzQfpKAMaaBE7pnwtG7J8zdMvKbHZoBV/DkGzvNyhtWazBi7//9Se4tVcAjt8dNCL9t/g2+EUTW8zwZXxAxTiP+gH4LzATTfyo5dybjfkeThNUtpfJEvu53IW4DGiV6XQGi0Vq513EvQrXXU7NPcANQu0gogHntwNg== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1776976567; bh=Hx7c6KKj+INnyBmoBjV0+qvYTIFvSbSmC7T9JML7cAL=; h=X-Sonic-MF:Date:To:From:Subject:From:Subject; b=HRzGV7MJAx3OBhQUQjz3nsC991S+WkynNkPMIYQAvfeOZ9rM7QbM3Dnps2XXxfzdxHWVDe46wHEtSkqxisenOy1mecc8nrzPJN7cxO1i7TtsN8/3tFENZPvjb3ajh/VGfR9PQu2sN/g2KhiJnDkZ9vH0mTzBtUP+3HPZuA28Ob8pagojZVDfwQ9FqRatwqdXT6cr2pZKJXAblDGAVixmDxG5r0if3zmtx4cxpYfJ0F6SjmVQcUbfpsaRy84PXZ8TP7iaIEEmjWF2sKvCDfDX1xyf1s7rolW6+8f3iiR85XQazATKuvzHCzz1fYUKgB4l0bO4zuusAkFowtLeWU0ffA== X-YMail-OSG: Q7ihnwkVM1nhQxWTVmCwZU0jqHlm8WGeKvbTvZFyXnWFAhzjuvdoab_ulXjHYoR kPBIf6QJacbHbSGP0SsCwyn1F8e5gvz2xDCLT0oqi1BGI4w8LT77E6epTIb_jmprj3exkBuiM0IN QvsEs_6WqolqtK1OAlCNW9BUJnTFO122mqvuvRaJ..QIsa_WzUgASO531Ph3OOV9fbW2OwSwmQei vU4X8gAGSBFGQ6VBDn1zaRmBBL4R2MzNOelf8i4ijdzWlZ7s9VgNyp0C.qVO_y9SlvQGMPFQ60qw Q4r8QsLC1AJrWIh7_hNPUQfXakYC3kcbhu42fDDTJLHyjEg3w_CDb8Mg0Aefp9yMYf9ReGSEDvVZ VIuRp1lAs280SVfKlrFCCuZ645HmXr.x1awuq.HH6GGsPiCAjt..PVfb8bV3BKNlVAgerzvgt3K2 jIm3wGgWlGSopGHiBQLkG7uXY6kQyL6vHej.fWUEqwjb.j03_4W7dBWBkWFPmExfwjQP6uBHJIdM u66BWsVLowWE_QktgPNre43uU0XxgWTFUcRTuqGPGKc1KqHtfwR7a5VBLEYYJOjVql2CKnMqgwbn 151fFeSiyyjBitWoo889oJfbDYRAjjurdfc.U004m9Dj8qEcN_nl.NveBoKJ7gg1LI78tVGZfFXp 3UtQwtm8YEWvbjMBJtkOttvKqqT.rrC83QhuFDbyMBaZqOb35iSsuXKHZfiyQ7Q7lc2CNHGpTRle Z7Ka4rDfxsHvIkZ.UdNo3g0dQMO8jO7IDI7nNxrWQ3YRLZwjKRIfQlAcEyQPxMb8CSUx.WyGPSTf dknEI.XIhOz.xD6vPKHDJq.5wutharKmtS8_acggfx2Mu_c86.OJqw6OjdjSdsX6nja1X_OYVz8S aiowU0.0dWrR61gECS9NOcVRNMUh_LAR3A.XJsrpVIAQ2vejX9qZYstWIzm7Ba4ves3ZOwUijW9I Fl.yA9RxJA1PyoAAWr_Z9Ig46e98ZqMHoO_KmXLFTqLkKQ9QA6mej7ig_JNAbogK1pImvVm61mIh PHLHKgcDPTjKVTk07xWRSl3IpwgmhktSTU1L30dXkZTIInb9UZgdA.TGDIt4T3t00UJtTo6NlOu8 P_HAYYu48aGVfkBFaLJ4h7.suq7.ZAKywbBdluR7lwc.NS7RH1tL3MFykM5hexKAyiSi5D4rVwgv kcMdsN1VwQ6_JRiFMGGpW0hqwIKWdSjoB4daMemg7ykrshPQtDdjoaBMcnScUZ6a8vUheaNxlPYj g0qeeyAejpqZxZDxJgsi_MeMeXIsGEn_aRSFAi1szcn0dHzn.oanWPks1O8qr5lLksFv3SdaJ6mJ FvKNHW2Jn5_9.XuJV0OYrVOUCwkCrbayuq6vKZ7VDBM7EOPTPLzca1D_kEeufv8PqHQ9R5Ouw1Gl c5icqnq0FnU3mmuyss9cbO.rDHHDK3FarWtCAJFm6PLvkpGMyeia5lwBLH6uaFN6wkBlZqK0C1My 4mt86NCYH5a6vet06_p7AiD13Rp.75bM1GBkbPW_q5c1FfC7QPZt08P6PEqCE7kIoj4GUgRXdunO 8dt7NO.et1UC39mmOMdhhlReg0cPKBKYewN9aFC0A5qIIhaMfEQ4NjorK_XtUImXdwGCayE8bLoM rG.r.PHqeXVVzeQAeqDBCetEbc_KJ6ac6x1YOEBWtUPa2FKLcrUYpmZoMnvmATACm951SQStFJLq kya.raBErlcZduK797OYZIDLaxTgUNjlwWJLScDSwF1q5q6h8Lwr1XBL3ZII5ynh7MWpHNkTJMlb UGSCXtjkKpqhWDXGx9nkjXDboW0S1DcWA93xZb67WPG3SuyT8IQCO1SCRD7E3op7smbeYKba27tj U0m1zE3x6LCzCy2AhX7Xrwlo2SU7LBa2W9iqIv.yukYr7QMYwTQO7JFL9wck3ETuqJVPPCGw5AnL NMOqI5Rkzt_lD9gtcJCAm1OTg7YORzVjX3kXflwTVf6Zdkfo- X-Sonic-MF: X-Sonic-ID: f3565e64-e586-4792-ab3c-c350d5567e69 Received: from sonic.gate.mail.ne1.yahoo.com by mail-asdoutdeli-p-cin-usea4-prod-sonicconsumer-svc-102 with HTTP; Thu, 23 Apr 2026 20:36:07 +0000 Received: from dip81.lsn.bf1.yahoo.com ([67.195.177.90]) by hello (SMTP) with SMTP ID 6a62f90c2bbedb7e83623cff912b2fe6 for ; Thu, 23 Apr 2026 20:36:03 +0000 (UTC) Content-Type: multipart/alternative; boundary="------------BpHEwipJavcBsIPXh8vMwTMQ" Message-ID: <1b1b38e7-b8a8-4185-a370-6f3b47dea376@yahoo.com> Date: Thu, 23 Apr 2026 16:36:02 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: WO Development Subject: error in ERMODEditRelationshipPage References: <1b1b38e7-b8a8-4185-a370-6f3b47dea376.ref@yahoo.com> X-Mailer: WebService/1.1.25598 mail.core.serving.mcws.prd.acl:role.token.mcws.jsmtp.yahoo Content-Length: 17189 This is a multi-part message in MIME format. --------------BpHEwipJavcBsIPXh8vMwTMQ Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit I asked on the list if anyone had a problem with turning off buttons on this template (ERMODEditRelationshipPage). the consensus being maybe use css! I could not get the edit button to go away. I was about to resort to css, but I decided to figure out my error in logic. So I cloned the template  (ERMODEditRelationshipPage) into my project and started to examine. I found the method that returns the boolean and it did not look right. It looks like, if the edit list is empty or the user is setting the key 'shouldShowEditListButton' to false, do not show the edit button. public Boolean shouldShowEditListButton() {         Boolean shouldShowEditListButton = !isListEmpty();         if (shouldShowEditListButton && ERXValueUtilities .booleanValue(d2wContext().valueForKey("shouldShowEditListButton"))) {             shouldShowEditListButton = true;         }         return shouldShowEditListButton;     } However, setting shouldShowEditListButton to false did not work. So I copied and pasted this method into chatgpt and she was very nice. I loved how she mentioned that: …the method does nothing meaningful. * If|shouldShowEditListButton|is already|true|, you set it to|true|again. * If it’s|false|, the|if|never runs. 👉 So the second condition has*no effect at all*. She then gave me some options: Option 1: Show button when list is NOT empty*and*flag is true public boolean shouldShowEditListButton() { return !isListEmpty() && ERXValueUtilities.booleanValue( d2wContext().valueForKey("shouldShowEditListButton") ); } Option 2: Show button when list is NOT empty*or*flag is true public boolean shouldShowEditListButton() { return !isListEmpty() || ERXValueUtilities.booleanValue( d2wContext().valueForKey("shouldShowEditListButton") ); } I will put this in a pull request to fix it Most importantly she mentioned that I should be using boolean instead of Boolean BTW I asked her what happens if the flag ie. valueForKey("shouldShowEditListButton") were null and chatgpt answered: It depends on*|ERXValueUtilities.booleanValue()|*, but in the Wonder framework (ERX), it is designed to be*null-safe*. so she (chatgpt) understood that this is a Wonder project and what goes on in wonder!!! How did she understand Wonder? I wonder what else we can ask her to do? Ted --------------BpHEwipJavcBsIPXh8vMwTMQ Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit

I asked on the list if anyone had a problem with turning off buttons on this template (ERMODEditRelationshipPage). the consensus being maybe use css! 

I could not get the edit button to go away. I was about to resort to css, but I decided to figure out my error in logic. So I cloned the template  (ERMODEditRelationshipPage) into my project and started to examine. I found the method that returns the boolean and it did not look right. It looks like, if the edit list is empty or the user is setting the key 'shouldShowEditListButton' to false, do not show the edit button.

public Boolean shouldShowEditListButton() {
        Boolean shouldShowEditListButton = !isListEmpty();
        if (shouldShowEditListButton && ERXValueUtilities
                .booleanValue(d2wContext().valueForKey("shouldShowEditListButton"))) {
            shouldShowEditListButton = true;
        }
        return shouldShowEditListButton;    
    }

However, setting shouldShowEditListButton to false did not work. So I copied and pasted this method into chatgpt and she was very nice. I loved how she mentioned that:

…the method does nothing meaningful.

  • If shouldShowEditListButton is already true, you set it to true again.
  • If it’s false, the if never runs.

👉 So the second condition has no effect at all.

She then gave me some options:

Option 1: Show button when list is NOT empty and flag is true

public boolean shouldShowEditListButton() { return !isListEmpty() && ERXValueUtilities.booleanValue( d2wContext().valueForKey("shouldShowEditListButton") ); }

Option 2: Show button when list is NOT empty or flag is true

public boolean shouldShowEditListButton() { return !isListEmpty() || ERXValueUtilities.booleanValue( d2wContext().valueForKey("shouldShowEditListButton") ); }
I will put this in a pull request to fix it

Most importantly she mentioned that I should be using boolean instead of Boolean

BTW

I asked her what happens if the flag ie. valueForKey("shouldShowEditListButton") were null and chatgpt answered:
It depends on ERXValueUtilities.booleanValue(), but in the Wonder framework (ERX), it is designed to be null-safe.
so she (chatgpt) understood that this is a Wonder project and what goes on in wonder!!! 
How did she understand Wonder? I wonder what else we can ask her to do?
Ted
--------------BpHEwipJavcBsIPXh8vMwTMQ--