mirror of
https://github.com/bringout/oca-ocb-core.git
synced 2026-04-20 11:52:04 +02:00
19.0 vanilla
This commit is contained in:
parent
d1963a3c3a
commit
2d3ee4855a
7430 changed files with 2687981 additions and 2965473 deletions
52
odoo-bringout-oca-ocb-mail/mail/controllers/mailbox.py
Normal file
52
odoo-bringout-oca-ocb-mail/mail/controllers/mailbox.py
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import http
|
||||
from odoo.http import request
|
||||
from odoo.addons.mail.tools.discuss import Store
|
||||
|
||||
|
||||
class MailboxController(http.Controller):
|
||||
@http.route("/mail/inbox/messages", methods=["POST"], type="jsonrpc", auth="user", readonly=True)
|
||||
def discuss_inbox_messages(self, fetch_params=None):
|
||||
domain = [("needaction", "=", True)]
|
||||
res = request.env["mail.message"]._message_fetch(domain, **(fetch_params or {}))
|
||||
messages = res.pop("messages")
|
||||
# sudo: bus.bus: reading non-sensitive last id
|
||||
bus_last_id = request.env["bus.bus"].sudo()._bus_last_id()
|
||||
store = Store().add(
|
||||
messages,
|
||||
extra_fields=[
|
||||
Store.One("thread", [
|
||||
Store.Attr("message_needaction_counter"),
|
||||
Store.Attr("message_needaction_counter_bus_id", bus_last_id)
|
||||
], as_thread=True)
|
||||
],
|
||||
add_followers=True
|
||||
)
|
||||
return {
|
||||
**res,
|
||||
"data": store.get_result(),
|
||||
"messages": messages.ids,
|
||||
}
|
||||
|
||||
@http.route("/mail/history/messages", methods=["POST"], type="jsonrpc", auth="user", readonly=True)
|
||||
def discuss_history_messages(self, fetch_params=None):
|
||||
domain = [("needaction", "=", False)]
|
||||
res = request.env["mail.message"]._message_fetch(domain, **(fetch_params or {}))
|
||||
messages = res.pop("messages")
|
||||
return {
|
||||
**res,
|
||||
"data": Store().add(messages).get_result(),
|
||||
"messages": messages.ids,
|
||||
}
|
||||
|
||||
@http.route("/mail/starred/messages", methods=["POST"], type="jsonrpc", auth="user", readonly=True)
|
||||
def discuss_starred_messages(self, fetch_params=None):
|
||||
domain = [("starred_partner_ids", "in", [request.env.user.partner_id.id])]
|
||||
res = request.env["mail.message"]._message_fetch(domain, **(fetch_params or {}))
|
||||
messages = res.pop("messages")
|
||||
return {
|
||||
**res,
|
||||
"data": Store().add(messages).get_result(),
|
||||
"messages": messages.ids,
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue