Browse Source

🚑 mail_archives various errors

pull/210/head
KolushovAlexandr 5 years ago
parent
commit
79722147d6
No known key found for this signature in database GPG Key ID: C3E04B793421FD2
  1. 2
      mail_archives/__manifest__.py
  2. 7
      mail_archives/doc/changelog.rst
  3. 53
      mail_archives/static/src/js/archives.js
  4. 2
      mail_archives/static/src/xml/menu.xml

2
mail_archives/__manifest__.py

@ -3,7 +3,7 @@
"summary": """Adds menu to find old messages""", "summary": """Adds menu to find old messages""",
"category": "Discuss", "category": "Discuss",
"images": ['images/1.jpg'], "images": ['images/1.jpg'],
"version": "12.0.1.0.0",
"version": "12.0.1.0.1",
"author": "IT-Projects LLC, Pavel Romanchenko", "author": "IT-Projects LLC, Pavel Romanchenko",
"support": "apps@it-projects.info", "support": "apps@it-projects.info",

7
mail_archives/doc/changelog.rst

@ -1,3 +1,10 @@
`1.0.1`
-------
- **Fix:** Mails from channels were not downloaded automatically
- **Fix:** Fetching mails from another threads
- **Fix:** Incorrect counter
`1.0.0` `1.0.0`
------- -------

53
mail_archives/static/src/js/archives.js

@ -5,6 +5,7 @@ var core = require('web.core');
var session = require('web.session'); var session = require('web.session');
var Manager = require('mail.Manager'); var Manager = require('mail.Manager');
var Mailbox = require('mail.model.Mailbox'); var Mailbox = require('mail.model.Mailbox');
var SearchableThread = require('mail.model.SearchableThread');
var _t = core._t; var _t = core._t;
@ -18,24 +19,62 @@ Manager.include({
this._addMailbox({ this._addMailbox({
id: 'channel_archive', id: 'channel_archive',
name: _t("Archive"), name: _t("Archive"),
mailboxCounter: data.needaction_inbox_counter || 0,
mailboxCounter: 0,
}); });
} }
}, },
});
SearchableThread.include({
_fetchMessages: function (pDomain, loadMore) {
var self = this;
if (this._id !== 'mailbox_channel_archive') {
return this._super(pDomain, loadMore);
}
_makeMessage: function (data) {
var message = this._super(data);
message._addThread('mailbox_channel_archive');
return message;
// this is a copy-paste from super method
var domain = this._getThreadDomain();
var cache = this._getCache(pDomain);
if (pDomain) {
domain = domain.concat(pDomain || []);
}
if (loadMore) {
var minMessageID = cache.messages[0].getID();
domain = [['id', '<', minMessageID]].concat(domain);
}
return this._rpc({
model: 'mail.message',
method: 'message_fetch',
args: [domain],
kwargs: this._getFetchMessagesKwargs(),
}).then(function (messages) {
// except this function. It adds the required thread to downloaded messages
_.each(messages, function(m){
m.channel_ids.push('mailbox_channel_archive');
});
if (!cache.allHistoryLoaded) {
cache.allHistoryLoaded = messages.length < self._FETCH_LIMIT;
}
cache.loaded = true;
_.each(messages, function (message) {
self.call('mail_service', 'addMessage', message, {
silent: true,
domain: pDomain,
});
});
cache = self._getCache(pDomain || []);
return cache.messages;
});
}, },
}); });
Mailbox.include({ Mailbox.include({
_getThreadDomain: function () { _getThreadDomain: function () {
if (this._id === 'mailbox_channel_archive') { if (this._id === 'mailbox_channel_archive') {
return ['|',
return ['|','|',
['partner_ids', 'in', [session.partner_id]], ['partner_ids', 'in', [session.partner_id]],
['author_id', 'in', [session.partner_id]]
['author_id', 'in', [session.partner_id]],
['channel_ids.channel_partner_ids', 'in', [session.partner_id]],
]; ];
} }
return this._super(); return this._super();

2
mail_archives/static/src/xml/menu.xml

@ -6,8 +6,6 @@
<div t-attf-class="o_mail_discuss_title_main o_mail_discuss_item #{(activeThreadID == 'channel_archive') ? 'o_active': ''}" <div t-attf-class="o_mail_discuss_title_main o_mail_discuss_item #{(activeThreadID == 'channel_archive') ? 'o_active': ''}"
data-thread-id="mailbox_channel_archive"> data-thread-id="mailbox_channel_archive">
<span class="o_channel_name mail_archives"> <i class="fa fa-archive"/> Archive </span> <span class="o_channel_name mail_archives"> <i class="fa fa-archive"/> Archive </span>
<t t-set="counter" t-value="starredCounter"/>
<t t-call="mail.discuss.SidebarCounter"/>
</div> </div>
</t> </t>
</t> </t>

Loading…
Cancel
Save