[OGo-Bugs][Bug 1916] Support non-participant role for teams regarding conflict detection

bugs@opengroupware.org bugs@opengroupware.org
Tue, 25 Sep 2007 14:37:22 +0200 (CEST)


Please do not reply directly to this email. All additional
comments should be made in the comments box of this bug
report.

http://bugzilla.opengroupware.org/bugzilla/show_bug.cgi?id=1916





------- Additional Comments From awilliam@whitemice.org  2007-09-25 14:36 -------
>From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.5) Gecko/20061023
SUSE/2.0.0.5-1.1 Firefox/2.0.0.5

Description of problem:
A team participant with a role of non-participant should not produce a conflict
for team or team members.  Use non-participant teams is useful for
informationally posting an event onto the calendar view of a group.

Version-Release number of selected component (if applicable):
TRUNK

How reproducible:
Always

Steps to Reproduce:
I have user A who is member of team X.

I create an appointment with a participant of X and a role of
NON-PARTICIPANT.

I create an overlapping appointment with a participant of A and a role
of REQ-PARTICIPANT.

Actual Results:  I see a conflict.

Expected Results:  My understanding was that a role of NON-PARTICIPANT
would suppress conflict.


Additional info:

The same is true if I create an appointment with A:NON-PARTICIPANT and
another overlapping appointment with A:REQ-PARTICIPANT.  The
NON-PARTICIPANT appointment sees a conflict with the REQ-PARTICIPANT
appointment but the REQ-PARTICIPANT does not see a conflict with the
NON-PARTICIPANT appointment.

Shouldn't conflicts always appear from both sides?

My understanding of conflicts is from the map:
Conflict-Map as implemented in the conflicts command:
              CHAIR REQ-PART OPT-PART NON-PART <NULL>
NEEDS-ACTI  yes   yes      might    no       yes
<NULL>        yes   yes      might    no       yes
ACCEPTED      yes   yes      yes      no       yes
DECLINED      no    no       no       no       no
TENTATIVE     yes   yes      yes      no       yes
DELEGATED     no    no       no       no       no

------- Additional Comments From awilliam@whitemice.org  2007-09-25 14:37 -------
>From helge -

> I see a conflict.
> Is this a bug?  My understanding was that a role of NON-PARTICIPANT
> would suppress conflict.

Hm. Possibly. Actually I'm not sure whether groups work with those  
extended status codes. (you usually flatten groups when you want to  
use the extended stuff because the 'confirm' stuff only makes sense  
with individual participants, but of course NON-PARTICIPANT seems  
reasonable).


> The same is true if I create an appointment with A:NON-PARTICIPANT and
> another overlapping appointment with A:REQ-PARTICIPANT.  The
> NON-PARTICIPANT appointment sees a conflict with the REQ-PARTICIPANT
> appointment but the REQ-PARTICIPANT does not see a conflict with the
> NON-PARTICIPANT appointment.
>
> Shouldn't conflicts always appear from both sides?

This is a good question :-) For REQ vs OPT vs NON-PART - probably.  
But for status values, I'm not sure - eg if a value is tentative it  
might depend which direction you check.

> My understanding of conflicts is from the map:
> Conflict-Map as implemented in the conflicts command:
>               CHAIR REQ-PART OPT-PART NON-PART <NULL>
> NEEDS-ACTION  yes   yes      might    no       yes
> <NULL>        yes   yes      might    no       yes
> ACCEPTED      yes   yes      yes      no       yes
> DECLINED      no    no       no       no       no
> TENTATIVE     yes   yes      yes      no       yes
> DELEGATED     no    no       no       no       no

Puh. This is 3 year old code :-)

The SQL pattern seems to be this one:
     pattern =
       @"(%A > %@) AND (%A < %@) "
       @"AND (%A = 0 OR %A IS NULL) "
       @"AND (%A = 0 OR %A IS NULL) "
       @"AND ((%A IN (%@)) AND "
       // conflict for NEED-INFO CHAIR and REQ-PART events and then  
for all
       // ACCEPTED/TENTATIVE events (unless used with a non-part)
       // args: stat, stat, role, role, role, stat, stat, role
       // TODO: move to an own qualifier which is static and conjoined?
       @"(((%A IS NULL OR %A = 'NEEDS-ACTION') AND "
       @"  (%A = 'CHAIR' OR %A = 'REQ-PARTICIPANT' OR %A IS NULL)) "
       @" OR "
       @" ((%A = 'ACCEPTED' OR %A = 'TENTATIVE') AND "
       @"  (NOT %A = 'NON-PARTICIPANT')))"
       @")"
       ;

And it seems to use directed joins. Not sure, probably a review of  
all that stuff would make sense.

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.