diff --git a/ChangeLog b/ChangeLog index c663d8b50..dd68a1070 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,6 +4,11 @@ ([SOGoAppointmentFolder -_sqlStringRangeFromto:]): dates are not necessarily defined in case of vTODOs; don't apply the range constraint when dates are null so the SQL query return tasks. + ([SOGoAppointmentFolder + -fetchFields:from:to:title:component:additionalFilters:includeProtectedInformation:]): + recurrent tasks are now returned as normal components and are + shown in the web interface. They are not flatten as recurrent + events are. 2009-06-08 Wolfgang Sourdeau diff --git a/SoObjects/Appointments/SOGoAppointmentFolder.m b/SoObjects/Appointments/SOGoAppointmentFolder.m index ef09772b6..66837c911 100644 --- a/SoObjects/Appointments/SOGoAppointmentFolder.m +++ b/SoObjects/Appointments/SOGoAppointmentFolder.m @@ -972,10 +972,16 @@ firstInstanceCalendarDateRange: (NGCalendarDateRange *) fir if (logger) [self debugWithFormat:@"should fetch (%@=>%@) ...", _startDate, endDate]; - sql = [NSString stringWithFormat: @"(c_iscycle = 0) %@ %@ %@ %@ %@", - dateSqlString, titleSqlString, componentSqlString, - privacySqlString, filterSqlString]; - + // We treat recurrent tasks as normal components + if ([_component caseInsensitiveCompare: @"vtodo"] == NSOrderedSame) + sql = @""; + else + sql = @"(c_iscycle = 0) "; + + sql = [sql stringByAppendingFormat: @"%@ %@ %@ %@ %@", + dateSqlString, titleSqlString, componentSqlString, + privacySqlString, filterSqlString]; + /* fetch non-recurrent apts first */ qualifier = [EOQualifier qualifierWithQualifierFormat: sql];