TechbeeAT / jtxBoard

jtx Board allows you to manage your Journals (like meeting minutes), Notes and Tasks in one Android app. The app is compatible with the iCal standard (RFC5545) and is integrated with DAVx5 to allow the synchronisation of entries through CalDAV.
https://jtx.techbee.at/
GNU General Public License v3.0
363 stars 10 forks source link

Syncing with NextCloud Deck #127

Closed gbraad closed 1 year ago

gbraad commented 1 year ago

Describe the bug Not sure where the issue is, but I use Nextcloud Deck (https://apps.nextcloud.com/apps/deck) and would like to see this in the kanban view of JTX. I have setup a sync with DAVx5 and the todos showed up.

However, I had to assign "To do" to "Needs action", "Doing" to "In process" and "Done" to "Completed", but now the sync does not work anymore.

To Reproduce Steps to reproduce the behavior:

  1. Go to NextCloud deck and create a new board
  2. Setup sync
  3. Assign the "Status" to the lists
  4. See error

Expected behavior Syncs to still work

Device and version:

gbraad commented 1 year ago

The sync returns a 404 error for stack-1.ics of this board. But when I open this link by hand, it returns the resource correctly.


I redacted part of the log, but this is what I get:

HTTP REQUEST
Request{method=PUT, url=https://SERVER/remote.php/dav/calendars/gbraad/app-generated--deck--board-1/stack-1.ics, headers=[User-Agent:DAVx5/4.2.6-ose (2022/12/13; dav4jvm; okhttp/4.10.0) Android/10, Accept-Language:en-US, en;q=0.7, *;q=0.5]}
BEGIN:VCALENDAR
VERSION:2.0
PRODID:+//IDN bitfire.at//ical4android
BEGIN:VTODO
DTSTAMP:20230105T152623Z
UID:deck-stack-1
SEQUENCE:1
CREATED:20230105T104425Z
LAST-MODIFIED:20230105T142723Z
SUMMARY:List : To do
STATUS:NEEDS-ACTION
PRIORITY:0
END:VTODO
END:VCALENDAR
HTTP RESPONSE
Response{protocol=h2, code=404, message=, url=https://SERVER/remote.php/dav/calendars/gbraad/app-generated--deck--board-1/stack-1.ics}
<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
  <s:exception>Sabre\DAV\Exception\NotFound</s:exception>
  <s:message>Node with name 'stack-1.ics' could not be found</s:message>
</d:error>

So I am not sure who is error. Most likely the server in this case.

patrickunterwegs commented 1 year ago

Hey @gbraad , thanks for the error report! I'm not sure if I can follow you. So you sync entries that you have been seeing in Nextcloud Deck with jtx Board.

And then you had to edit the status of entries to use the standard ones from the iCalendar specification? You have edited the entries in jtx Board? But then an error occurred during the synchronisation. Where did the error pop up, in DAVx5?

May I also ask you to provide the debug logs that DAVx5 is offering when the error appears?

gbraad commented 1 year ago

Where did the error pop up, in DAVx5?

I saw no updates happening on sync; force sync in davx5, check JTX, etc. But then noticed that errors in DAVx5 are only shown in the notification error of Android. This shows a 404 ^^^ I had already updated the message above here to include a part of this.

So it fails to sync (using PUT`). This sounds like an issue with the server.

patrickunterwegs commented 1 year ago

Alright, thanks, I'll try to reproduce this soon!

gbraad commented 1 year ago

There are severe limitations too. Since this is based on VTODO, there is no way to move between what is rerpesented as lists, and the progress can't be set (however this is shown).

If another view on this might work, like sorting on the 'list' name, this might work.

I'll try to debug and test this a little more.

gbraad commented 1 year ago

Any update will result in a 404 for PUT. Just adding a subtask to the VTODO? will fail the syncing process.

Will try to get more details on the server side too.

gbraad commented 1 year ago

Ref: https://github.com/nextcloud/deck/issues/3103

gbraad commented 1 year ago

Feels almost like an alternative view on Nextcloud tasks, to allow grouping based on a field/status, would be a better option... And/or to add support for VJOURNAL?

Hope to hear if this is related to a conversion issue maybe.

patrickunterwegs commented 1 year ago

Hi @gbraad , did you actually manage to edit entries from a Deck-collection in jtx Board? This should not be possible, CalDAV-Access for Deck-Collections should be read-only. I have found a place where this is possible (by clicking on the summary, the condition was missing there to block editing).

patrickunterwegs commented 1 year ago

Nextcloud Deck is currently using categories to tag a status (instead of the actual status field). This makes the Kanban-Board of jtx Board and Deck incompatible. So I'd say this is more like a feature request to provide a Kanban-Board based on Categories.

rogercreagh commented 1 year ago

this relates to #94 If Nextcloud deck is already using VTODO categories as Kanban columns (which makes sense as the VCALENDAR item STATUS property has restricted values then perhaps that is the way to go for a Kanban view in JTX.

For me a Kanban view seems a bit pointless for Journal entries (which don't have progression anyway). Perhaps the existing Kanban view in JTX should be renamed Status view for all entry types, and a new Kanban view just for TODOs should be implemented.

I guess (I haven't tried it) that NC deck only allows one category per item since it is using them for columns, which would have to be an option to enforce a single category on TODOs for Kanban compatibility (eg with NC Deck)

Journal entries and Notes require the possibility of multiple categories per item, so it would have to be a specific Too option. This would also mean that you would restrict the available categories for ToDos to a subset of the fulllist.

rfc2822 commented 1 year ago

The 404 is because Nextcloud doesn't offer write support over CalDAV yet: nextcloud/deck#15; see also nextcloud/deck#2355