[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:
@@ -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
|
||||
|
||||
@@ -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']
|
||||
|
||||
Reference in New Issue
Block a user