@@ -192,21 +192,32 @@ public function getCalendarRevisionFingerprint(int $boardId, ?int $stackId = nul
192192 /**
193193 * @param Card|Stack $sourceItem
194194 */
195- public function getObjectRevisionFingerprint ($ sourceItem ): string {
195+ public function getObjectRevisionFingerprint ($ sourceItem, ? int $ boardId = null , ? int $ calendarStackId = null ): string {
196196 $ mode = $ this ->configService ->getCalDavListMode ();
197197 if (!($ sourceItem instanceof Card)) {
198198 return $ mode ;
199199 }
200200
201- try {
202- $ stack = $ this ->stackService ->find ($ sourceItem ->getStackId ());
203- $ boardId = $ stack ->getBoardId ();
204- } catch (\Throwable $ e ) {
205- return $ mode ;
201+ $ stackId = $ calendarStackId ?? $ sourceItem ->getStackId ();
202+ $ stack = null ;
203+
204+ if ($ mode === ConfigService::SETTING_CALDAV_LIST_MODE_LIST_AS_CATEGORY || $ boardId === null ) {
205+ try {
206+ $ stack = $ this ->stackService ->find ($ sourceItem ->getStackId ());
207+ $ boardId ??= $ stack ->getBoardId ();
208+ $ stackId = $ stack ->getId ();
209+ } catch (\Throwable $ e ) {
210+ return $ mode ;
211+ }
206212 }
207213
208- $ fingerprint = [$ mode , 'stack: ' . $ stack -> getId () ];
214+ $ fingerprint = [$ mode , 'stack: ' . $ stackId ];
209215 if ($ mode === ConfigService::SETTING_CALDAV_LIST_MODE_LIST_AS_CATEGORY ) {
216+ try {
217+ $ stack ??= $ this ->stackService ->find ($ sourceItem ->getStackId ());
218+ } catch (\Throwable $ e ) {
219+ return $ mode ;
220+ }
210221 $ fingerprint [] = $ stack ->getTitle ();
211222 $ fingerprint [] = (string )$ stack ->getDeletedAt ();
212223 }
0 commit comments