78 lines
2.4 KiB
JavaScript
78 lines
2.4 KiB
JavaScript
/** @odoo-module **/
|
|
|
|
// ensure mail override is applied first.
|
|
import '@mail/../tests/helpers/mock_server';
|
|
|
|
import { patch } from '@web/core/utils/patch';
|
|
import { MockServer } from '@web/../tests/helpers/mock_server';
|
|
|
|
import { date_to_str } from 'web.time';
|
|
|
|
patch(MockServer.prototype, 'note', {
|
|
//--------------------------------------------------------------------------
|
|
// Private
|
|
//--------------------------------------------------------------------------
|
|
|
|
/**
|
|
* @override
|
|
*/
|
|
async _performRPC(route, args) {
|
|
if (route === '/note/new') {
|
|
return this._mockRouteNoteNew(args);
|
|
}
|
|
return this._super(...arguments);
|
|
},
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Private Mocked Routes
|
|
//--------------------------------------------------------------------------
|
|
|
|
/**
|
|
* Simulates the `/note/new` route.
|
|
*
|
|
* @private
|
|
*/
|
|
_mockRouteNoteNew(values) {
|
|
const noteId = this.pyEnv['note.note'].create({ memo: values['note'] });
|
|
if (values['date_deadline']) {
|
|
this.pyEnv['mail.activity'].create({
|
|
date_deadline: date_to_str(new Date(values['date_deadline'])),
|
|
note_id: noteId,
|
|
res_model: 'note.note',
|
|
});
|
|
}
|
|
},
|
|
|
|
//--------------------------------------------------------------------------
|
|
// Private Mocked Methods
|
|
//--------------------------------------------------------------------------
|
|
|
|
/**
|
|
* Simulates `systray_get_activities` on `res.users`.
|
|
*
|
|
* @override
|
|
*/
|
|
_mockResUsersSystrayGetActivities() {
|
|
const activities = this._super(...arguments);
|
|
const noteCount = this.pyEnv['note.note'].searchCount([['user_id', '=', this.currentUserId]]);
|
|
if (noteCount) {
|
|
const noteIndex = activities.findIndex(act => act['model'] === 'note.note');
|
|
if (noteIndex) {
|
|
activities[noteIndex]['name'] = 'Notes';
|
|
} else {
|
|
activities.push({
|
|
id: 'note.note', // for simplicity
|
|
type: 'activity',
|
|
name: 'Notes',
|
|
model: 'note.note',
|
|
planned_count: 0,
|
|
today_count: 0,
|
|
overdue_count: 0,
|
|
total_count: 0,
|
|
});
|
|
}
|
|
}
|
|
return activities;
|
|
},
|
|
});
|