[IMP] mail: send cache control header on avatars

Before this PR cache control header for avatar was set to no-cache which is not
the right value.
This PR mark the avatar routes response as immutable when a unique string is
present. We also use the partner write_date as unique string when possible.

task-3551636

closes odoo/odoo#141326

X-original-commit: 3de4f1f1225229cbdb0512df5790ce491f04ea7e
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
This commit is contained in:
Didier (did)
2023-11-07 21:02:27 +00:00
parent 7b1dd79f46
commit 4064508af5
11 changed files with 98 additions and 19 deletions
+4 -1
View File
@@ -6,6 +6,7 @@ from datetime import datetime, timedelta
from functools import wraps
from inspect import Parameter, signature
import odoo
from odoo.tools import consteq, get_lang
from odoo import _, api, fields, models
from odoo.http import request
@@ -163,7 +164,7 @@ class MailGuest(models.Model):
def _guest_format(self, fields=None):
if not fields:
fields = {'id': True, 'name': True, 'im_status': True}
fields = {'id': True, 'name': True, 'im_status': True, "write_date": True}
guests_formatted_data = {}
for guest in self:
data = {}
@@ -173,6 +174,8 @@ class MailGuest(models.Model):
data['name'] = guest.name
if 'im_status' in fields:
data['im_status'] = guest.im_status
if "write_date" in fields:
data["write_date"] = odoo.fields.Datetime.to_string(guest.write_date)
data['type'] = "guest"
guests_formatted_data[guest] = data
return guests_formatted_data
+4 -1
View File
@@ -3,6 +3,7 @@
import re
import odoo
from odoo import _, api, fields, models, tools
from odoo.osv import expression
@@ -213,7 +214,7 @@ class Partner(models.Model):
def mail_partner_format(self, fields=None):
partners_format = dict()
if not fields:
fields = {'id': True, 'name': True, 'email': True, 'active': True, 'im_status': True, 'is_company': True, 'user': {}}
fields = {'id': True, 'name': True, 'email': True, 'active': True, 'im_status': True, 'is_company': True, 'user': {}, "write_date": True}
for partner in self:
data = {}
if 'id' in fields:
@@ -228,6 +229,8 @@ class Partner(models.Model):
data['im_status'] = partner.im_status
if 'is_company' in fields:
data['is_company'] = partner.is_company
if "write_date" in fields:
data["write_date"] = odoo.fields.Datetime.to_string(partner.write_date)
if 'user' in fields:
internal_users = partner.user_ids - partner.user_ids.filtered('share')
main_user = internal_users[0] if len(internal_users) > 0 else partner.user_ids[0] if len(partner.user_ids) > 0 else self.env['res.users']