Samuel,

Ok this gets me in the ball park. In my person entity, I created in my Person 
entity:

        NSArray<Book> pertinentBooks = null;
        NSArray<Book> sortedBooks = null;


        @Override
        public void awakeFromFetch(EOEditingContext editingContext) {
                // TODO Auto-generated method stub
                super.awakeFromFetch(editingContext);

                NSArray<Show> shows = 
PersonShow.SHOW.arrayValueInObject(personShows());

                @SuppressWarnings("unchecked")
                NSArray<Book> showBooks = 
ERXArrayUtilities.flatten(Show.BOOKS.arrayValueInObject(shows));
                
                pertinentBooks = 
Book.INSTRUMENT_FAMILY.eq(this.instrumentFamily()).filtered(showBooks);
                
                sortedBooks = Book.BOOK_TITLE.ascs().sorted(pertinentBooks);
        }

I put some logs and when a Person is edited, I can get the pertinentBooks array 
in the person entity. But I have a toMany to BookPerson:

100 : pageConfiguration = 'CreateEmbeddedBookPerson' => displayPropertyKeys = 
("book",  "isPrimaryPlayer") [com.webobjects.directtoweb.Assignment]
100 : (pageConfiguration = 'CreateEmbeddedBookPerson' and propertyKey = 'book') 
=> componentName = "ERD2WEditToOneRelationship" 
[com.webobjects.directtoweb.Assignment]

and of course:

100 : (propertyType = 'r' and relationship.destinationEntity.name = 'Book') => 
keyWhenRelationship = "showBook" [com.webobjects.directtoweb.Assignment]

So I need the list of this relationship to be the sortedBooks from Person. Or 
maybe send the sortedBooks array as the list element?


On Feb 2, 2015, at 11:23 AM, Samuel Pelletier <[email protected]> wrote:

> Hi,
> 
> I would do it in code in the person class using ERXKeys and let EOF do the 
> required fetched.
> 
> // Get all shows for a person
> NSArray<Show> shows = this.shows();
> 
> // Get all book for the person shows, flatten is required because the initial 
> result is an array of array
> NSArray<Book> showsBooks = 
> ERXArrayUtilities.flatten(Show.BOOKS.arrayValueInObject(shows));
> 
> //Filter the book for the person Instrument
> NSArray<Book> pertinentBooks = 
> Book.INSTRUMENT.eq(this.instrument()).filtered(showsBooks);
> 
> // Sort the array before display
> NSArray<Book> sortedBooks = Book.TITLE.ascs().sorted(pertinentBooks);
> 
> Samuel
> 
> 
>> Le 2015-01-29 à 09:12, Theodore Petrosky <[email protected]> a écrit :
>> 
>> I have an Entity Person that has a toMany to Book.
>> 
>> When I click the ‘new’ button in my EditRelationshipEmbeddedBookPerson I 
>> want to limit the popupButton to only those books that this person should 
>> see.
>> 
>> The Person has an instrument. The Book has an instrument. so the popup list 
>> should be only those books with the same instrument.
>> 
>> But one layer deeper. a Person is assigned to one or many Shows. the Books 
>> belong to a show. So if Person 1 only play one show and plays viola (I know 
>> its a handicapped Person), the popup list only shows that one book as 
>> available to assign.
>> 
>> I don’t see how to create a fetch spec that i can pass in my Person and 
>> limit the popup list.
>> 
>> Am I clear? We could change the instrument if thinking its a Viola makes one 
>> squeamish!
>> 
>> Ted
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list      ([email protected])
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/webobjects-dev/samuel%40samkar.com
>> 
>> This email sent to [email protected]
> 

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to