diff --git a/website_local_font/README.rst b/website_local_font/README.rst new file mode 100644 index 0000000000..a99ca336ab --- /dev/null +++ b/website_local_font/README.rst @@ -0,0 +1,101 @@ +================== +Website Local Font +================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fwebsite-lightgray.png?logo=github + :target: https://github.com/OCA/website/tree/16.0/website_legal_page + :alt: OCA/website +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/website-16-0/website-16-0-website_legal_page + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/186/16.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows to add local fonts on Odoo website. + +By default,Odoo only allows to upload fonts available from Google(fonts.google.com) and +they can be made available locally or from Google's server in addition to the fonts +made available via website theme modules.But there's no option to upload and have local +fonts available across all website themes. + +To overcome this limitation, this module has been developed to allow users to upload +proprietary (or custom) fonts in the most widely used font formats - otf,ttf,woff and +woff2 and make it available across all website themes. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +Website editor can change easily any text of these pages using website builder. + +This legal page is complementary to the account terms. + +If you install this module with account installed too, the added page will take on a +complementary function to /terms of account, but never replace the function of the page. + + + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Onestein + +Contributors +~~~~~~~~~~~~ + +* `Onestein `_: + + * Anjeel Haria + +* `Studio73 `_: + + * Carlos Reyes + + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/website `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/website_local_font/__manifest__.py b/website_local_font/__manifest__.py index d6a28bff08..91e83acb21 100644 --- a/website_local_font/__manifest__.py +++ b/website_local_font/__manifest__.py @@ -4,7 +4,7 @@ { "name": "Website Local Font", "summary": "Allows to add local fonts on Odoo website", - "version": "15.0.1.0.0", + "version": "16.0.1.0.0", "category": "Website", "website": "https://github.com/OCA/website", "author": "Onestein, Odoo Community Association (OCA)", @@ -25,5 +25,8 @@ "website_local_font/static/src/scss/secondary_variables.scss", ), ], + "web.assets_backend": [ + "website_local_font/static/src/xml/website.editor.xml", + ], }, } diff --git a/website_local_font/models/assets.py b/website_local_font/models/assets.py index a707b65a83..d337a7e0cd 100644 --- a/website_local_font/models/assets.py +++ b/website_local_font/models/assets.py @@ -3,12 +3,13 @@ import re -from odoo import models +from odoo import api, models class Assets(models.AbstractModel): _inherit = "web_editor.assets" + @api.model def make_scss_customization(self, url, values): """ Added handling for local fonts deletion and addition in scss diff --git a/website_local_font/static/description/icon.png b/website_local_font/static/description/icon.png new file mode 100644 index 0000000000..3a0328b516 Binary files /dev/null and b/website_local_font/static/description/icon.png differ diff --git a/website_local_font/static/src/js/snippets.options.js b/website_local_font/static/src/js/snippets.options.js index b6ad54d2cc..88c6a4d614 100644 --- a/website_local_font/static/src/js/snippets.options.js +++ b/website_local_font/static/src/js/snippets.options.js @@ -26,11 +26,9 @@ odoo.define("website_local_font.editor.snippets.options", function (require) { */ start: async function () { await this._super(...arguments); - $(this.menuEl).empty(); const style = window.getComputedStyle(document.documentElement); - const nbFonts = parseInt( - weUtils.getCSSVariableValue("number-of-fonts", style) - ); + const nbFonts = + parseInt(weUtils.getCSSVariableValue("number-of-fonts", style)) || []; const localFontsProperty = weUtils.getCSSVariableValue( "local-fonts", style @@ -55,6 +53,7 @@ odoo.define("website_local_font.editor.snippets.options", function (require) { this.menuEl.appendChild(fontEl); }); if (this.localFonts.length) { + console.log(this.localFonts); const localFontsEls = fontEls.splice(-this.localFonts.length); localFontsEls.forEach((el, index) => { $(el).append( @@ -89,7 +88,6 @@ odoo.define("website_local_font.editor.snippets.options", function (require) { ); }); } - $(this.menuEl).append( $( core.qweb.render("website.add_google_font_btn", { @@ -221,9 +219,9 @@ odoo.define("website_local_font.editor.snippets.options", function (require) { if (!save) { return; } - // Remove Local font const localFontIndex = parseInt(ev.target.dataset.fontIndex); + console.log(localFontIndex); const localFont = this.localFonts[localFontIndex].split(":"); const localFontName = localFont[0]; values["delete-local-font-attachment-id"] = localFont[1]; diff --git a/website_local_font/static/src/xml/website.editor.xml b/website_local_font/static/src/xml/website.editor.xml index a3e734af2a..5bc5a1dc69 100644 --- a/website_local_font/static/src/xml/website.editor.xml +++ b/website_local_font/static/src/xml/website.editor.xml @@ -34,7 +34,9 @@ t-att-aria-label="delete_font_title" t-att-title="delete_font_title" t-att-data-font-index="index" - /> + > + Delete this font + diff --git a/website_local_font/tests/test_website_local_font.py b/website_local_font/tests/test_website_local_font.py index e9595025d9..118d810350 100644 --- a/website_local_font/tests/test_website_local_font.py +++ b/website_local_font/tests/test_website_local_font.py @@ -18,10 +18,11 @@ def test_font_file_import(font_file_name): class TestIrAttachment(common.TransactionCase): - def setUp(self): - super().setUp() - self.IrAttachment = self.env["ir.attachment"] - self.Web_Editor_Assets = self.env["web_editor.assets"] + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.IrAttachment = cls.env["ir.attachment"] + cls.Web_Editor_Assets = cls.env["web_editor.assets"] def test_add_local_font_otf(self): font_css_attachment_id = self.IrAttachment.add_local_font( @@ -77,7 +78,7 @@ def test_add_local_font_and_make_scss_customization(self): scss_file_url, {"local-fonts": "('AmaticSC-Bold': '" + str(font_css_attachment_id) + ")'"}, ) - custom_url = self.Web_Editor_Assets.make_custom_asset_file_url( + custom_url = self.Web_Editor_Assets._make_custom_asset_url( scss_file_url, "web.assets_common" ) custom_attachment = self.Web_Editor_Assets._get_custom_attachment(custom_url)