diff --git a/addons/web/controllers/database.py b/addons/web/controllers/database.py index f797a4663f1..7168a5d2eeb 100644 --- a/addons/web/controllers/database.py +++ b/addons/web/controllers/database.py @@ -88,14 +88,14 @@ class Database(http.Controller): return self._render_template(error=error) @http.route('/web/database/duplicate', type='http', auth="none", methods=['POST'], csrf=False) - def duplicate(self, master_pwd, name, new_name): + def duplicate(self, master_pwd, name, new_name, neutralize_database=False): insecure = odoo.tools.config.verify_admin_password('admin') if insecure and master_pwd: dispatch_rpc('db', 'change_admin_password', ["admin", master_pwd]) try: if not re.match(DBNAME_PATTERN, new_name): raise Exception(_('Invalid database name. Only alphanumerical characters, underscore, hyphen and dot are allowed.')) - dispatch_rpc('db', 'duplicate_database', [master_pwd, name, new_name]) + dispatch_rpc('db', 'duplicate_database', [master_pwd, name, new_name, neutralize_database]) if request.db == name: request.env.cr.close() # duplicating a database leads to an unusable cursor return request.redirect('/web/database/manager') @@ -141,7 +141,7 @@ class Database(http.Controller): return self._render_template(error=error) @http.route('/web/database/restore', type='http', auth="none", methods=['POST'], csrf=False) - def restore(self, master_pwd, backup_file, name, copy=False): + def restore(self, master_pwd, backup_file, name, copy=False, neutralize_database=False): insecure = odoo.tools.config.verify_admin_password('admin') if insecure and master_pwd: dispatch_rpc('db', 'change_admin_password', ["admin", master_pwd]) @@ -150,7 +150,7 @@ class Database(http.Controller): db.check_super(master_pwd) with tempfile.NamedTemporaryFile(delete=False) as data_file: backup_file.save(data_file) - db.restore_db(name, data_file.name, str2bool(copy)) + db.restore_db(name, data_file.name, str2bool(copy), neutralize_database) return request.redirect('/web/database/manager') except Exception as e: error = "Database restore error: %s" % (str(e) or repr(e)) diff --git a/addons/web/static/src/public/database_manager.qweb.html b/addons/web/static/src/public/database_manager.qweb.html index 8c4b6df6698..a194e8354d8 100644 --- a/addons/web/static/src/public/database_manager.qweb.html +++ b/addons/web/static/src/public/database_manager.qweb.html @@ -134,6 +134,12 @@ +
+ +
+ +
+

In order to avoid conflicts between databases, Odoo needs to know if this database was moved or copied.
@@ -211,6 +217,12 @@ +

+ +
+ +
+