Summary: | Custom message tags won't be saved | ||
---|---|---|---|
Product: | [Applications] kmail2 | Reporter: | Freedim <coocoolatte> |
Component: | config dialog | Assignee: | kdepim bugs <kdepim-bugs> |
Status: | REPORTED --- | ||
Severity: | normal | ||
Priority: | NOR | ||
Version: | 5.9.3 | ||
Target Milestone: | --- | ||
Platform: | Debian stable | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | ||
Sentry Crash Report: |
Description
Freedim
2019-10-21 13:59:31 UTC
After a quick look with akonadi console, the error seems to be: Cannot add or update a child row: a foreign key constraint fails (`akonadi`.`tagtable`, CONSTRAINT `tagtable_ibfk_1` FOREIGN KEY (`parentId`) REFERENCES `tagtable` (`id`) ON DELETE CASCADE ON UPDATE CASCADE) Which is indeed impossible to process when the TagTable is empty. This constraint demands that the first item ever inserted in TagTable should reference a parentId, which is impossible. A possible solution I can think of would be to have a generic/dummy item in TagTable by default at installation time. (In reply to fredgib from comment #1) > After a quick look with akonadi console, the error seems to be: > > Cannot add or update a child row: a foreign key constraint fails > (`akonadi`.`tagtable`, CONSTRAINT `tagtable_ibfk_1` FOREIGN KEY (`parentId`) > REFERENCES `tagtable` (`id`) ON DELETE CASCADE ON UPDATE CASCADE) > > Which is indeed impossible to process when the TagTable is empty. This > constraint demands that the first item ever inserted in TagTable should > reference a parentId, which is impossible. > > A possible solution I can think of would be to have a generic/dummy item in > TagTable by default at installation time. I inserted a dummy message tag in TagTable with "parentId" pointing at its own Id. It allows new customised message tags to be saved with, though with big issues. I always check the box "enable toolbar button" when I create a message tag. When I click on "Apply" in the message tags settings GUI for the first time, it works and displays the new buttons. If I then create another tag/button and click on "Apply", will add a second instance of the previously created button and the newly created button. If I create a third button then click on apply, I will have 3 instances of the first button, 2 instances of the second button and 1 of the last button etc. The tags list itself only has one instance of each created tag while the button and the options in the menu "Messages > Mark As..." will have multiple instances of the created tags. If I restart kmail or the pim server with Akonadi console, nothing changes. If I restart the computer, I now also have the multiple instances appearing in the Configure Kmail > Appearance > Meassage tags GUI. From that point, I can delete the duplicate instances and reach the expected result: A list with my tags and their (unique) corresponding buttons. Forgot to mention: I changed the default value of parentId in TagTable to point to my first dummy manually inserted in TagTable. The original default value was "-1" |