Re: limiting a fetch in a D2W list page
Re: limiting a fetch in a D2W list page
- Subject: Re: limiting a fetch in a D2W list page
- From: Ramsey Gurley <email@hidden>
- Date: Mon, 14 May 2012 08:30:47 -0700
You mean the find button on the query all entities page?
> I don't think that works for the QueryAll page, but you could possibly use an editing context delegate in that case.
:-)
On May 14, 2012, at 7:53 AM, Theodore Petrosky wrote:
> I am still trying to figure out why the delegate does not get fired when the user clicks the Find button.
>
> if the user clicks the advanced button and then the find button, the delegate is fired and the list is limited to this user's objects. However, if (from the defaultPage) the user clicks Find, the delegate is not fired, He/She get all objects even those belonging to other users.
>
>
> Ted
>
>
> --- On Mon, 5/14/12, David LeBer <email@hidden> wrote:
>
>> From: David LeBer <email@hidden>
>> Subject: Re: limiting a fetch in a D2W list page
>> To: "Theodore Petrosky" <email@hidden>
>> Cc: "WebObjects Development" <email@hidden>
>> Date: Monday, May 14, 2012, 8:49 AM
>> If the PERSON_KEY is the same (ie:
>> 'person') for each of the entities you need to qualify
>> against, you should be able to just use the string "person"
>> in your qualifier.
>>
>> private EOQualifier qualifierFromSender(ERD2WQueryPage
>> sender) {
>> return ERXQ.and(sender.qualifier(),
>> ERXQ.equals("person", ((Session)sender.session().user())));
>> }
>>
>> D
>>
>> --
>> David LeBer
>> Codeferous Software
>>
>> On 2012-05-14, at 12:24 AM, Theodore Petrosky wrote:
>>
>>> two things.
>>>
>>> first I need to learn some java. is there a way to do
>> this better?
>>>
>>> private EOQualifier qualifierFromSender(ERD2WQueryPage
>> sender) {
>>>
>>> EOQualifier q = sender.qualifier();
>>>
>> NSLog.out.appendln("* sender.entityName()
>> " + sender.entityName());
>>>
>>> Person sessionPerson = ((Session)
>> sender.session()).user();
>>>
>>> if
>> (sender.entityName().equals("MeetingChecklist")) {
>>> q =
>> ERXQ.and(ERXQ.equals(MeetingChecklist.PERSON_KEY,
>> sessionPerson));
>>> }
>>>
>>> if
>> (sender.entityName().equals("KickOffBrief")) {
>>> q =
>> ERXQ.and(ERXQ.equals(KickOffBrief.PERSON_KEY,
>> sessionPerson));
>>> }
>>>
>>> if
>> (sender.entityName().equals("CreativeBrief")) {
>>> q =
>> ERXQ.and(ERXQ.equals(CreativeBrief.PERSON_KEY,
>> sessionPerson));
>>> }
>>>
>>> return q;
>>> }
>>> it works, but it is ugly.
>>>
>>> I have these three 'if' statements. Each of the
>> entities has a person key. Is there a way to do something
>> like:
>>>
>>> q =
>> ERXQ.and(ERXQ.equals(sender.entityName().PERSON_KEY,
>> sessionPerson));
>>>
>>> obviously this will fail as there is no way for the
>> compiler to know that sender.entityName() has a key called
>> PERSON_KEY. I know it works, but I am trying to learn new
>> stuff.
>>>
>>>
>>> and 'b',
>>>
>>> you said:
>>>
>>>>
>>>> Interesting. I thought that worked. Try setting
>> the
>>>> auxiliaryQualifier instead of the qualifier on your
>> database
>>>> datasource. Does that help?
>>>>
>>>
>>> I am hunting but I don't understand the
>> 'auxiliaryQualifier' reference.
>>>
>>>
>>> --- On Sat, 5/12/12, Ramsey Gurley <email@hidden>
>> wrote:
>>>
>>>> From: Ramsey Gurley <email@hidden>
>>>> Subject: Re: limiting a fetch in a D2W list page
>>>> To: "Theodore Petrosky" <email@hidden>
>>>> Cc: "email@hidden
>> Development" <email@hidden>
>>>> Date: Saturday, May 12, 2012, 12:25 PM
>>>> On May 12, 2012, at 6:24 AM, Theodore
>>>> Petrosky wrote:
>>>>
>>>>> The documentation at D2W+Flow+Control seems to
>> say that
>>>> I can create a 'delegate' copying what is there and
>> create a
>>>> rule that ties my entity to it.
>>>>>
>>>>> as there is no additional qualifier in:
>>>>>
>>>>> private EOQualifier
>> qualifierFromSender(ERD2WQueryPage
>>>> sender) {
>>>>> EOQualifier q =
>> sender.qualifier();
>>>>> // q =
>> ... create
>>>> your OR qualifier here
>>>>>
>>>>
>>>>>
>> NSLog.out.appendln("
>>>> *in the delegate
>> "
>>>> + q );
>>>>>
>>>>> return q;
>>>>> }
>>>>>
>>>>> I only get the NSLog message when I enter the
>> advanced
>>>> search area. I assumed with a delegate assigned to
>> the
>>>> entity, that whenever I viewed the entity, the
>> delegate
>>>> would fire. It doesn't fire if I just click the
>> "Find"
>>>> button (so the delegate is not used). I have to
>> stop
>>>> assuming.
>>>>
>>>> Interesting. I thought that worked. Try setting
>> the
>>>> auxiliaryQualifier instead of the qualifier on your
>> database
>>>> datasource. Does that help?
>>>>
>>>>>
>>>>> also interesting
>> 'ERDDelayedObjectCreationAssignment'
>>>> doesn't exist as a class to choose in the
>> RuleModeler.
>>>>
>>>> Copy paste :)
>>>>
>>>>>
>>>>> Lastly, how can I get the session method user()
>> to
>>>> compare to?
>>>>
>>>> sender.session().valueForKey("user")?
>>>>
>>>>>
>>>>> What am I missing?
>>>>>
>>>>> Ted
>>>>>
>>>>> --- On Fri, 5/11/12, Ramsey Gurley <email@hidden>
>>>> wrote:
>>>>>
>>>>>> From: Ramsey Gurley <email@hidden>
>>>>>> Subject: Re: limiting a fetch in a D2W list
>> page
>>>>>> To: "Theodore Petrosky" <email@hidden>
>>>>>> Cc: email@hidden
>>>>>> Date: Friday, May 11, 2012, 4:14 PM
>>>>>> http://wiki.wocommunity.org/display/WO/D2W+Flow+Control
>>>>>>
>>>>>> See ERDQueryDataSourceDelegateInterface for
>> Query
>>>> pages. I
>>>>>> don't think that works for the QueryAll
>> page, but
>>>> you could
>>>>>> possibly use an editing context delegate in
>> that
>>>> case.
>>>>>>
>>>>>> Ramsey
>>>>>>
>>>>>>
>>>>>> On May 11, 2012, at 1:00 PM, Theodore
>> Petrosky
>>>> wrote:
>>>>>>
>>>>>>> my d2w app has a session user. when a
>> user
>>>> selects a
>>>>>> tab, my MainNavigationController fires a
>> method to
>>>> create
>>>>>> the list page.
>>>>>>>
>>>>>>> the method creates an
>> EODatabaseDataSource and
>>>> then a
>>>>>> fetch spec that limits the result to rows
>> that were
>>>> created
>>>>>> by THIS user.
>>>>>>>
>>>>>>>
>> ERXFetchSpecification<KickOffBrief> fs =
>>>> new
>>>>>>
>>>>
>> ERXFetchSpecification<KickOffBrief>(KickOffBrief.ENTITY_NAME,
>>>>>> ERXQ.equals(KickOffBrief.IS_FILED_KEY,
>>>>>>
>>>>
>> false).and(KickOffBrief.PERSON.eq(session().user())),
>>>>>> null);
>>>>>>>
>>>>>>> How can I add the user qualification to
>> the D2W
>>>> created
>>>>>> search query? Or when I am on a
>> QueryKickOffBrief
>>>> page, how
>>>>>> do I add the
>>>> and(KickOffBrief.PERSON.eq(session().user())
>>>>>> qualifier to the resultant page?
>>>>>>>
>>>>>>> Ted
>>>>>>>
>>>>>>>
>>>>>>>
>>>> _______________________________________________
>>>>>>> Do not post admin requests to the list.
>> They
>>>> will be
>>>>>> ignored.
>>>>>>> Webobjects-dev mailing list
>>
>>>> (email@hidden)
>>>>>>> Help/Unsubscribe/Update your
>> Subscription:
>>>>>>>
>>>>>>> This email sent to email@hidden
>>>>>>
>>>>>>
>>>>>
>>>>>
>> _______________________________________________
>>>>> Do not post admin requests to the list. They
>> will be
>>>> ignored.
>>>>> Webobjects-dev mailing list
>> (email@hidden)
>>>>> Help/Unsubscribe/Update your Subscription:
>>>>>
>>>>> This email sent to email@hidden
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Do not post admin requests to the list. They will be
>> ignored.
>>> Webobjects-dev mailing list (email@hidden)
>>> Help/Unsubscribe/Update your Subscription:
>>>
>>> This email sent to email@hidden
>>
>>
>
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
>
> This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden