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} * @returns {this}
*/ */
save() { save(opts = {}) {
const entityName = this.constructor.entityName; const entityName = this.constructor.entityName;
const primaryKeyName = this.constructor.primaryKeyName; const primaryKeyName = this.constructor.primaryKeyName;
const isNewEntity = !this[primaryKeyName]; const isNewEntity = !this[primaryKeyName];
if (this.beforeSaving) { if (this.beforeSaving) {
this.beforeSaving(); this.beforeSaving(opts);
} }
const pojo = this.getPojoToSave(); const pojo = this.getPojoToSave();

View File

@ -176,8 +176,10 @@ class Attribute extends AbstractEntity {
return !(this.attributeId in this.becca.attributes); return !(this.attributeId in this.becca.attributes);
} }
beforeSaving() { beforeSaving(opts = {}) {
this.validate(); if (!opts.skipValidation) {
this.validate();
}
this.name = sanitizeAttributeName(this.name); 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]); OR (type = 'relation' AND value = ?))`, [deleteId, note.noteId, note.noteId]);
for (const attribute of attributes) { 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(` const childBranchIds = sql.getColumn(`