fix undeleting notes with a relation, closes #3583

This commit is contained in:
zadam 2023-02-01 23:06:55 +01:00
parent 290f7e2101
commit e7c6d912a4
3 changed files with 8 additions and 5 deletions

View File

@ -80,14 +80,14 @@ class AbstractEntity {
*
* @returns {this}
*/
save() {
save(opts = {}) {
const entityName = this.constructor.entityName;
const primaryKeyName = this.constructor.primaryKeyName;
const isNewEntity = !this[primaryKeyName];
if (this.beforeSaving) {
this.beforeSaving();
this.beforeSaving(opts);
}
const pojo = this.getPojoToSave();

View File

@ -176,8 +176,10 @@ class Attribute extends AbstractEntity {
return !(this.attributeId in this.becca.attributes);
}
beforeSaving() {
this.validate();
beforeSaving(opts = {}) {
if (!opts.skipValidation) {
this.validate();
}
this.name = sanitizeAttributeName(this.name);

View File

@ -661,7 +661,8 @@ function undeleteBranch(branchId, deleteId, taskContext) {
OR (type = 'relation' AND value = ?))`, [deleteId, note.noteId, note.noteId]);
for (const attribute of attributes) {
new Attribute(attribute).save();
// relation might point to a note which hasn't been undeleted yet and would thus throw up
new Attribute(attribute).save({skipValidation: true});
}
const childBranchIds = sql.getColumn(`