-
-
Notifications
You must be signed in to change notification settings - Fork 697
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[ADD]website_rewrite_absolute_url: Module to add absolute url redirects
- Loading branch information
1 parent
db98c3b
commit 5e8c205
Showing
10 changed files
with
80 additions
and
0 deletions.
There are no files selected for viewing
1 change: 1 addition & 0 deletions
1
setup/website_rewrite_absolute_url/odoo/addons/website_rewrite_absolute_url
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
../../../../website_rewrite_absolute_url |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
import setuptools | ||
|
||
setuptools.setup( | ||
setup_requires=['setuptools-odoo'], | ||
odoo_addon=True, | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). | ||
|
||
from . import models |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). | ||
|
||
{ | ||
'name': 'Rewrite rules with absolute url', | ||
'version': '16.0.1.0.0', | ||
'category': 'base', | ||
'summary': 'Rewrite rules with absolute url', | ||
'author': 'Nextev, Odoo Community Association (OCA)', | ||
"website": "https://github.com/OCA/website", | ||
'license': 'AGPL-3', | ||
'depends': ['website'], | ||
'data': ['views/website_rewrite.xml'], | ||
'installable': True | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import website_rewrite |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
import re | ||
import werkzeug | ||
|
||
from odoo import models, fields, api, _ | ||
from odoo.exceptions import ValidationError | ||
|
||
|
||
class WebsiteRewrite(models.Model): | ||
_inherit = 'website.rewrite' | ||
|
||
absolute_url = fields.Boolean("Is absolute url") | ||
|
||
@api.constrains('url_to', 'url_from', 'redirect_type') | ||
def _check_url_to(self): | ||
for rewrite in self: | ||
if rewrite.redirect_type in ['301', '302', '308']: | ||
if not rewrite.url_to: | ||
raise ValidationError(_('"URL to" can not be empty.')) | ||
elif not rewrite.absolute_url and not rewrite.url_to.startswith('/'): | ||
raise ValidationError(_('"URL to" must start with a leading slash.')) | ||
for param in re.findall('/<.*?>', rewrite.url_from): | ||
if param not in rewrite.url_to: | ||
raise ValidationError(_('"URL to" must contain parameter %s used in "URL from".') % param) | ||
for param in re.findall('/<.*?>', rewrite.url_to): | ||
if param not in rewrite.url_from: | ||
raise ValidationError(_('"URL to" cannot contain parameter %s which is not used in "URL from".') % param) | ||
try: | ||
converters = self.env['ir.http']._get_converters() | ||
routing_map = werkzeug.routing.Map(strict_slashes=False, converters=converters) | ||
if not rewrite.absolute_url: | ||
rule = werkzeug.routing.Rule(rewrite.url_to) | ||
routing_map.add(rule) | ||
else: | ||
routing_map.bind(rewrite.url_to) | ||
except ValueError as e: | ||
raise ValidationError(_('"URL to" is invalid: %s') % e) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
* Nextev <https://www.nextev.it> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
This module allows to add absolute url redirects. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
Website > Configuration > Redirects | ||
|
||
To add an absolute url redirect first check "Is absolute url" and then add it on "Url to" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
<?xml version="1.0" encoding="utf-8"?> | ||
<odoo> | ||
<record id="rewrite_absolute_url" model="ir.ui.view"> | ||
<field name="name">rewrite.absolute.url</field> | ||
<field name="model">website.rewrite</field> | ||
<field name="inherit_id" ref="website.view_website_rewrite_form"/> | ||
<field name="arch" type="xml"> | ||
<field name="url_to" position="after"> | ||
<field name="absolute_url"/> | ||
</field> | ||
</field> | ||
</record> | ||
|
||
</odoo> |