diff --git a/addons/website/__manifest__.py b/addons/website/__manifest__.py
index d2017df9336..110b532b21d 100644
--- a/addons/website/__manifest__.py
+++ b/addons/website/__manifest__.py
@@ -34,6 +34,7 @@
'views/ir_attachment_views.xml',
'views/res_partner_views.xml',
'wizard/base_language_install_views.xml',
+ 'wizard/website_robots.xml',
],
'demo': [
'data/website_demo.xml',
diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py
index 3cda9d5348f..b3b3d8a0eea 100644
--- a/addons/website/controllers/main.py
+++ b/addons/website/controllers/main.py
@@ -127,7 +127,7 @@ class Website(Home):
fields = country.get_address_fields()
return dict(fields=fields, states=[(st.id, st.name, st.code) for st in country.state_ids], phone_code=country.phone_code)
- @http.route(['/robots.txt'], type='http', auth="public")
+ @http.route(['/robots.txt'], type='http', auth="public", website=True)
def robots(self, **kwargs):
return request.render('website.robots', {'url_root': request.httprequest.url_root}, mimetype='text/plain')
diff --git a/addons/website/models/res_config_settings.py b/addons/website/models/res_config_settings.py
index a502bb2fe7d..1a7d3c93508 100644
--- a/addons/website/models/res_config_settings.py
+++ b/addons/website/models/res_config_settings.py
@@ -159,6 +159,16 @@ class ResConfigSettings(models.TransientModel):
'res_id': False,
}
+ def action_open_robots(self):
+ return {
+ 'name': _("Robots.txt"),
+ 'view_mode': 'form',
+ 'res_model': 'website.robots',
+ 'type': 'ir.actions.act_window',
+ "views": [[False, "form"]],
+ 'target': 'new',
+ }
+
def install_theme_on_current_website(self):
self.website_id._force()
action = self.env.ref('website.theme_install_kanban_action').read()[0]
diff --git a/addons/website/models/website.py b/addons/website/models/website.py
index df542be4b29..f9a6a9f4c77 100644
--- a/addons/website/models/website.py
+++ b/addons/website/models/website.py
@@ -107,6 +107,8 @@ class Website(models.Model):
menu_id = fields.Many2one('website.menu', compute='_compute_menu', string='Main Menu')
homepage_id = fields.Many2one('website.page', string='Homepage')
+ robots_txt = fields.Text('Robots.txt', translate=False, groups='website.group_website_designer')
+
def _default_favicon(self):
img_path = get_resource_path('web', 'static/src/img/favicon.ico')
with tools.file_open(img_path, 'rb') as f:
diff --git a/addons/website/views/res_config_settings_views.xml b/addons/website/views/res_config_settings_views.xml
index d2b313c7d71..2f64aa20627 100644
--- a/addons/website/views/res_config_settings_views.xml
+++ b/addons/website/views/res_config_settings_views.xml
@@ -309,6 +309,18 @@