mirror of
https://gitlab.com/flectra-hq/flectra.git
synced 2025-02-25 18:55:21 -06:00
[PATCH] Upstream patch - 11092023
This commit is contained in:
@@ -14,6 +14,7 @@ from flectra import api, http, SUPERUSER_ID, _
|
||||
from flectra.exceptions import AccessDenied
|
||||
from flectra.http import request
|
||||
from flectra import registry as registry_get
|
||||
from flectra.tools.misc import clean_context
|
||||
|
||||
from flectra.addons.auth_signup.controllers.main import AuthSignupHome as Home
|
||||
from flectra.addons.web.controllers.main import db_monodb, ensure_db, set_cookie_and_redirect, login_and_redirect
|
||||
@@ -126,7 +127,7 @@ class OAuthController(http.Controller):
|
||||
if not http.db_filter([dbname]):
|
||||
return BadRequest()
|
||||
provider = state['p']
|
||||
context = state.get('c', {})
|
||||
context = clean_context(state.get('c', {}))
|
||||
registry = registry_get(dbname)
|
||||
with registry.cursor() as cr:
|
||||
try:
|
||||
|
||||
@@ -7,7 +7,6 @@ from unittest.mock import patch
|
||||
|
||||
from flectra import http
|
||||
from flectra.tests import common, tagged
|
||||
from flectra.tools import mute_logger
|
||||
from flectra.tools.misc import get_lang
|
||||
from flectra.addons.web.controllers.main import ExportXlsxWriter
|
||||
from flectra.addons.mail.tests.common import mail_new_test_user
|
||||
@@ -413,38 +412,3 @@ class TestComputedBinaryExport(XlsxCreatorCase):
|
||||
['FlectraBot (1)'],
|
||||
["['computed value']"],
|
||||
])
|
||||
|
||||
@mute_logger('flectra.addons.web.controllers.main')
|
||||
def test_export_with_deleted_field(self):
|
||||
model = self.env['ir.model']._get('res.partner')
|
||||
url = '/web/export/namelist'
|
||||
header = {"Content-Type": "application/json"}
|
||||
|
||||
custom_field = self.env['ir.model.fields'].create([{
|
||||
'name': 'x_test',
|
||||
'ttype': 'char',
|
||||
'field_description': 'test field',
|
||||
'model_id': model.id,
|
||||
}])
|
||||
|
||||
export_template = self.env['ir.exports'].create({
|
||||
'name': custom_field.name,
|
||||
'export_fields': [(0, 0, {'name': custom_field.name})],
|
||||
})
|
||||
|
||||
data = json.dumps({
|
||||
'params': {
|
||||
'model': model.model,
|
||||
'export_id': export_template.id,
|
||||
},
|
||||
})
|
||||
|
||||
export_line_field = self.env['ir.exports.line'].search([('name', '=', export_template.name)])
|
||||
|
||||
self.url_open(url, data, headers=header).json()
|
||||
self.assertTrue(export_line_field.exists())
|
||||
|
||||
custom_field.unlink()
|
||||
|
||||
self.url_open(url, data, headers=header).json()
|
||||
self.assertFalse(export_line_field.exists())
|
||||
|
||||
@@ -1807,15 +1807,7 @@ class Export(http.Controller):
|
||||
def namelist(self, model, export_id):
|
||||
# TODO: namelist really has no reason to be in Python (although itertools.groupby helps)
|
||||
export = request.env['ir.exports'].browse([export_id]).read()[0]
|
||||
exported_fields = request.env['ir.exports.line'].browse(export['export_fields'])
|
||||
fields = self.fields_get(model)
|
||||
|
||||
for invalid_fields in exported_fields.filtered(lambda f: f.name not in fields):
|
||||
# ir.exports.line lack a ondelete=cascade foreign key on ir.model.fields
|
||||
_logger.warning("Field %r not found for saved ir.exports of model %s, deleting", invalid_fields.name, model)
|
||||
invalid_fields.unlink()
|
||||
|
||||
export_fields_list = exported_fields.read()
|
||||
export_fields_list = request.env['ir.exports.line'].browse(export['export_fields']).read()
|
||||
|
||||
fields_data = self.fields_info(
|
||||
model, [f['name'] for f in export_fields_list])
|
||||
|
||||
Reference in New Issue
Block a user