fix undeleting note when its relation points to yet-undeleted note

This commit is contained in:
zadam 2023-01-24 09:43:10 +01:00
parent a888f9aa04
commit 64e7150765
3 changed files with 8 additions and 5 deletions

View file

@ -80,14 +80,14 @@ class AbstractBeccaEntity {
*
* @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 BAttribute extends AbstractBeccaEntity {
return !(this.attributeId in this.becca.attributes);
}
beforeSaving() {
this.validate();
beforeSaving(opts = {}) {
if (!opts.skipValidation) {
this.validate();
}
this.name = sanitizeAttributeName(this.name);

View file

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