diff --git a/odex25_donation/droggol_theme_common/COPYRIGHT b/odex25_donation/droggol_theme_common/COPYRIGHT index e27598c6a..29dedfc41 100644 --- a/odex25_donation/droggol_theme_common/COPYRIGHT +++ b/odex25_donation/droggol_theme_common/COPYRIGHT @@ -1,7 +1,7 @@ Most of the files are -Copyright (c) 2019 - present Droggol Infotech Private Limited. +Copyright (c) 2019 - present Droggol. Some javascript files might be from from third parties libraries. In that case the original diff --git a/odex25_donation/droggol_theme_common/__init__.py b/odex25_donation/droggol_theme_common/__init__.py index 65496fc9c..4992d8df7 100644 --- a/odex25_donation/droggol_theme_common/__init__.py +++ b/odex25_donation/droggol_theme_common/__init__.py @@ -1,6 +1,4 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () +# Copyright (c) 2019-Present Droggol. () -from . import controllers from . import models -from . import deprecated diff --git a/odex25_donation/droggol_theme_common/__manifest__.py b/odex25_donation/droggol_theme_common/__manifest__.py index ede21c388..b587f31b9 100644 --- a/odex25_donation/droggol_theme_common/__manifest__.py +++ b/odex25_donation/droggol_theme_common/__manifest__.py @@ -1,66 +1,51 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () +# Copyright (c) 2019-Present Droggol. () { 'name': 'Droggol Theme Common', 'description': 'Droggol Theme Common', 'category': 'eCommerce', - 'version': '16.0.0.0.8', + 'version': '14.0.0.3.8', 'depends': [ 'sale_product_configurator', 'website_sale_comparison', 'website_sale_wishlist', 'website_sale_stock', - 'website_sale_stock_wishlist', ], 'license': 'OPL-1', - 'author': 'Droggol Infotech Private Limited', - 'company': 'Droggol Infotech Private Limited', - 'maintainer': 'Droggol Infotech Private Limited', + 'author': 'Droggol', + 'company': 'Droggol', + 'maintainer': 'Droggol', 'website': 'https://www.droggol.com/', - 'price': 10.00, + 'price': 15.00, 'currency': 'USD', 'live_test_url': '', 'data': [ 'security/ir.model.access.csv', - 'deprecated/ir.model.access.csv', - 'views/templates.xml', + 'data/groups.xml', + 'views/assets.xml', + 'views/backend_templates.xml', + 'views/dr_config_template.xml', # Backend 'views/backend/menu_label.xml', 'views/backend/website_menu.xml', + 'views/backend/product_brand.xml', 'views/backend/product_label.xml', + 'views/backend/product_tags.xml', 'views/backend/product_template.xml', 'views/backend/product_attribute.xml', - 'views/backend/product_brand.xml', - 'views/backend/dr_website_content.xml', 'views/backend/product_pricelist.xml', 'views/backend/pwa_shortcuts.xml', 'views/backend/res_config_settings.xml', - 'views/backend/dr_theme_config.xml', + 'views/backend/dr_config.xml', 'views/backend/category_label.xml', 'views/backend/product_category.xml', - 'views/backend/website.xml', - - # Snippets - 'views/snippets/s_mega_menu.xml', ], - 'assets': { - 'web.assets_frontend': [ - 'droggol_theme_common/static/src/scss/variants.scss', - ], - 'web.assets_backend': [ - 'droggol_theme_common/static/src/scss/variants.scss', - 'droggol_theme_common/static/src/js/components/*.xml', - 'droggol_theme_common/static/src/js/hooks.js', - ], - 'website.assets_editor': [ - 'droggol_theme_common/static/src/js/components/*.js', - 'droggol_theme_common/static/src/js/components/*.scss', - 'droggol_theme_common/static/src/js/navbar/*.js', - ] - }, + 'qweb': [ + 'static/src/xml/backend/list_view_brand.xml', + ], } diff --git a/odex25_donation/droggol_theme_common/controllers/__init__.py b/odex25_donation/droggol_theme_common/controllers/__init__.py deleted file mode 100644 index ef9adf569..000000000 --- a/odex25_donation/droggol_theme_common/controllers/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () - -from . import main diff --git a/odex25_donation/droggol_theme_common/controllers/main.py b/odex25_donation/droggol_theme_common/controllers/main.py deleted file mode 100644 index 689a4d902..000000000 --- a/odex25_donation/droggol_theme_common/controllers/main.py +++ /dev/null @@ -1,12 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () - -from odoo import http -from odoo.http import request - - -class DroggolThemeCommon(http.Controller): - - @http.route(['/droggol_theme_common/design_content/'], type='http', website=True, auth='user') - def design_content(self, content, **post): - return request.render('droggol_theme_common.design_content', {'content': content, 'no_header': True, 'no_footer': True}) diff --git a/odex25_donation/droggol_theme_common/data/groups.xml b/odex25_donation/droggol_theme_common/data/groups.xml new file mode 100644 index 000000000..7b064137e --- /dev/null +++ b/odex25_donation/droggol_theme_common/data/groups.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/odex25_donation/droggol_theme_common/deprecated/__init__.py b/odex25_donation/droggol_theme_common/deprecated/__init__.py deleted file mode 100644 index 34c2e4517..000000000 --- a/odex25_donation/droggol_theme_common/deprecated/__init__.py +++ /dev/null @@ -1,8 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () - -# [Files will be removed in a future version] -# Contains deprecated fields and models - -from . import deprecated_v16 -from . import deprecated_v15 diff --git a/odex25_donation/droggol_theme_common/deprecated/deprecated_v15.py b/odex25_donation/droggol_theme_common/deprecated/deprecated_v15.py deleted file mode 100644 index 5ccdf226f..000000000 --- a/odex25_donation/droggol_theme_common/deprecated/deprecated_v15.py +++ /dev/null @@ -1,66 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () - -from odoo import fields, models -from odoo.tools.translate import html_translate - - -class DrProductBrand(models.Model): - _name = 'dr.product.brand' - _inherit = ['website.multi.mixin'] - _description = 'Product Brand' - _order = 'sequence,id' - - name = fields.Char(required=True, translate=True) - description = fields.Char(translate=True) - image = fields.Binary() - sequence = fields.Integer(string='Sequence') - active = fields.Boolean(default=True) - - -class DrProductOffer(models.Model): - _name = 'dr.product.offer' - _description = 'Product Offers' - _order = 'sequence,id' - - name = fields.Char(string='Title', required=True, translate=True) - description = fields.Char(string='Description', required=True, translate=True) - icon = fields.Char(default='list') - sequence = fields.Integer(string='Sequence') - dialog_content = fields.Html(sanitize_attributes=False, translate=html_translate, sanitize_form=False) - product_id = fields.Many2one('product.template') - tag_id = fields.Many2one('dr.product.tags') - - -class DrProductTabs(models.Model): - _name = 'dr.product.tabs' - _description = 'Product Tabs' - _order = 'sequence,id' - - name = fields.Char(string='Title', required=True, translate=True) - icon = fields.Char(default='list') - content = fields.Html(sanitize_attributes=False, translate=html_translate, sanitize_form=False) - sequence = fields.Integer(string='Sequence') - product_id = fields.Many2one('product.template') - tag_id = fields.Many2one('dr.product.tags') - - -class DrProductTagsExt(models.Model): - _inherit = 'dr.product.tags' - - dr_tab_ids = fields.One2many('dr.product.tabs', 'tag_id', string='Tabs', help='Display in product detail page on website.') - dr_offer_ids = fields.One2many('dr.product.offer', 'tag_id', string='Offers', help='Display in product detail page on website.') - - -class ProductTemplate(models.Model): - _inherit = 'product.template' - - dr_brand_id = fields.Many2one('dr.product.brand') - dr_offer_ids = fields.One2many('dr.product.offer', 'product_id', help='Display in product detail page on website.') - dr_tab_ids = fields.One2many('dr.product.tabs', 'product_id', help='Display in product detail page on website.') - - -class WebsiteMenu(models.Model): - _inherit = 'website.menu' - - dr_is_special_menu = fields.Boolean() diff --git a/odex25_donation/droggol_theme_common/deprecated/deprecated_v16.py b/odex25_donation/droggol_theme_common/deprecated/deprecated_v16.py deleted file mode 100644 index 24fa53a1c..000000000 --- a/odex25_donation/droggol_theme_common/deprecated/deprecated_v16.py +++ /dev/null @@ -1,21 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () - -from odoo import fields, models - - -class DrProductTags(models.Model): - _name = 'dr.product.tags' - _inherit = ['website.multi.mixin'] - _description = 'Product Tags' - - name = fields.Char(required=True, translate=True) - product_ids = fields.Many2many('product.template', 'dr_product_tags_rel', 'tag_id', 'product_id', string='Products') - product_count = fields.Integer(compute='_compute_product_count') - active = fields.Boolean(default=True) - - -class ProductTemplate(models.Model): - _inherit = 'product.template' - - dr_tag_ids = fields.Many2many('dr.product.tags', 'dr_product_tags_rel', 'product_id', 'tag_id', string='Tags') diff --git a/odex25_donation/droggol_theme_common/deprecated/ir.model.access.csv b/odex25_donation/droggol_theme_common/deprecated/ir.model.access.csv deleted file mode 100644 index e7cbf19ce..000000000 --- a/odex25_donation/droggol_theme_common/deprecated/ir.model.access.csv +++ /dev/null @@ -1,8 +0,0 @@ -id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink -access_dr_product_brand_manager,dr.product.brand.manager,model_dr_product_brand,sales_team.group_sale_manager,1,1,1,1 -access_dr_product_tabs_manager,dr.product.tabs.manager,model_dr_product_tabs,sales_team.group_sale_manager,1,1,1,1 -access_dr_product_tabs_public,dr.product.tabs.public,model_dr_product_tabs,,1,0,0,0 -access_dr_product_offer_manager,dr.product.offer.manager,model_dr_product_offer,sales_team.group_sale_manager,1,1,1,1 -access_dr_product_offer_public,dr.product.offer.public,model_dr_product_offer,,1,0,0,0 -access_dr_product_tags_manager,dr.product.tags.manager,model_dr_product_tags,sales_team.group_sale_manager,1,1,1,1 -access_dr_product_tags_public,dr.product.tags.public,model_dr_product_tags,,1,0,0,0 diff --git a/odex25_donation/droggol_theme_common/i18n/ar.po b/odex25_donation/droggol_theme_common/i18n/ar.po deleted file mode 100644 index 77bc9fa35..000000000 --- a/odex25_donation/droggol_theme_common/i18n/ar.po +++ /dev/null @@ -1,2177 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * droggol_theme_common -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-08-24 12:14+0000\n" -"PO-Revision-Date: 2023-08-24 12:14+0000\n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "" -"" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_website_content_view_form -msgid "" -"\n" -" Design\n" -" \n" -" \n" -" Content\n" -" " -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_category_mega_menu_snippet -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_category_tabs_snippet -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_tp_mega_menu_category_snippet -msgid "" -"Click Here! " -"to configure snippet." -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Starting at $30" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Starting at $40" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "About" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Accessories" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_brand__active -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_label__active -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tags__active -msgid "Active" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_product_brand_values_view_tree -msgid "Add New Brand" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_5 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Aenean" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -msgid "" -"Aenean Sale" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -msgid "" -"Aenean Sale" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "" -"Allows users to follow up product's Add to Cart button until bottom scroll " -"reached." -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "" -"Allows users to install your website as an application on mobile and " -"desktop." -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "App Shortcuts" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "" -"App shortcuts help users quickly start common or recommended tasks within " -"your web app." -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Apply filters with lazy method" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "" -"Apply manual discounts on sales order lines or display discounts computed " -"from pricelists (option to activate in the pricelist configuration)." -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_product_label_view_form -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_product_label_view_search -msgid "Archived" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Article" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields.selection,name:droggol_theme_common.selection__dr_website_content__content_type__attribute_popup -msgid "Attribute Popup" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model,name:droggol_theme_common.model_product_attribute_value -msgid "Attribute Value" -msgstr "قيمة الخاصية" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_product_brand_values_view_search -msgid "Attributes" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields.selection,name:droggol_theme_common.selection__product_attribute__dr_search_suggestion__auto -msgid "Autocomplete" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields.selection,name:droggol_theme_common.selection__product_attribute__dr_search_suggestion__auto_suggestion -msgid "Autocomplete & Suggestion" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "B2B Mode" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "B2b Configuration" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_label__background_color -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_public_category_label__background_color -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_menu_label__background_color -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "Background Color" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_label__background_color_rgb -msgid "Background Color RGB" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields.selection,name:droggol_theme_common.selection__dr_product_label__style__2 -msgid "Badge" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -msgid "Bags" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Bags & Purses" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Basic" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Basic Grid" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Behavior of load more products" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Blog" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Boots" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Bottom bar allow movement between primary destinations on the website." -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Bottombar" -msgstr "" - -#. module: droggol_theme_common -#. odoo-python -#: code:addons/droggol_theme_common/models/product_attribute.py:0 -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_product__dr_brand_value_id -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_template__dr_brand_value_id -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_product_brand_values_view_form -#, python-format -msgid "Brand" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Brand Page" -msgstr "" - -#. module: droggol_theme_common -#. odoo-python -#: code:addons/droggol_theme_common/models/product_attribute.py:0 -#, python-format -msgid "Brand attribute must have display type \"Radio Image\"." -msgstr "" - -#. module: droggol_theme_common -#. odoo-python -#: code:addons/droggol_theme_common/models/website.py:0 -#: model:ir.actions.act_window,name:droggol_theme_common.dr_product_brand_values_action -#: model:ir.ui.menu,name:droggol_theme_common.menu_dr_product_brand_values -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_product_brand_values_view_search -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_product_brand_values_view_tree -#, python-format -msgid "Brands" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Buttombar Buttons" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model,name:droggol_theme_common.model_dr_cache_mixin -msgid "Cache Mixin" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Career" -msgstr "" - -#. module: droggol_theme_common -#. odoo-python -#: code:addons/droggol_theme_common/models/website.py:0 -#, python-format -msgid "Cart" -msgstr "سله التبرعات" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Cart Flow" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Case Study" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Categories" -msgstr "اقسام التبرع" - -#. module: droggol_theme_common -#. odoo-python -#: code:addons/droggol_theme_common/models/website.py:0 -#, python-format -msgid "Category" -msgstr "اقسام التبرع" - -#. module: droggol_theme_common -#: model:ir.model,name:droggol_theme_common.model_dr_product_public_category_label -msgid "Category Label" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.actions.act_window,name:droggol_theme_common.dr_category_label_action -#: model:ir.ui.menu,name:droggol_theme_common.menu_dr_category_label -msgid "Category Labels" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Category Pills" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Category sidebar style" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields.selection,name:droggol_theme_common.selection__dr_product_label__style__3 -msgid "Circle" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -msgid "Client Image #{number}" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Clothing" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Coats & Jackets" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Collapsible attributes" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Collapsible category" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Company" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model,name:droggol_theme_common.model_res_config_settings -msgid "Config Settings" -msgstr "تهيئة الإعدادات " - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "Configure Shortcuts" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Configure action buttons of product card in shop page." -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Configure actions and style of product card." -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Contact" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tabs__content -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_content__content -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_website_content_view_form -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_website_content_view_search -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_website_content_view_tree -msgid "Content" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_website_content_view_search -msgid "Content Type" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.actions.act_window,name:droggol_theme_common.dr_website_content_action -#: model:ir.ui.menu,name:droggol_theme_common.menu_dr_website_content -msgid "Contents" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Cover" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_public_category__dr_category_cover_image -msgid "Cover Image" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_brand__create_uid -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_label__create_uid -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_offer__create_uid -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_public_category_label__create_uid -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tabs__create_uid -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tags__create_uid -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_pwa_shortcuts__create_uid -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_theme_config__create_uid -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_content__create_uid -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_menu_label__create_uid -msgid "Created by" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_brand__create_date -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_label__create_date -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_offer__create_date -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_public_category_label__create_date -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tabs__create_date -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tags__create_date -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_pwa_shortcuts__create_date -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_theme_config__create_date -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_content__create_date -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_menu_label__create_date -msgid "Created on" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -msgid "Dapibus" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.xml:0 -#: model:ir.model.fields.selection,name:droggol_theme_common.selection__product_attribute__dr_radio_image_style__default -#, python-format -msgid "Default" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Default view mode" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_brand__description -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_offer__description -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_pwa_shortcuts__description -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_content__description -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_attribute_value__dr_brand_description -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_pwa_shortcuts_view_form -msgid "Description" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.xml:0 -#, python-format -msgid "Dialog" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_offer__dialog_content -msgid "Dialog Content" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Disable grouping of brands" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_website_sale_extra_field__dr_label -msgid "Display Label" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_brand__display_name -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_label__display_name -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_offer__display_name -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_public_category_label__display_name -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tabs__display_name -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tags__display_name -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_pwa_shortcuts__display_name -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_theme_config__display_name -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_content__display_name -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_menu_label__display_name -msgid "Display Name" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_attribute__display_type -msgid "Display Type" -msgstr "نوع العرض" - -#. module: droggol_theme_common -#: model:ir.model.fields,help:droggol_theme_common.field_dr_product_tags__dr_offer_ids -#: model:ir.model.fields,help:droggol_theme_common.field_dr_product_tags__dr_tab_ids -#: model:ir.model.fields,help:droggol_theme_common.field_product_product__dr_offer_ids -#: model:ir.model.fields,help:droggol_theme_common.field_product_product__dr_tab_ids -#: model:ir.model.fields,help:droggol_theme_common.field_product_template__dr_offer_ids -#: model:ir.model.fields,help:droggol_theme_common.field_product_template__dr_tab_ids -msgid "Display in product detail page on website." -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_product__dr_document_ids -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_template__dr_document_ids -msgid "Documents" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,help:droggol_theme_common.field_product_product__dr_document_ids -#: model:ir.model.fields,help:droggol_theme_common.field_product_template__dr_document_ids -msgid "Documents publicly downloadable from eCommerce product page." -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_5 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Donec non" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_5 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Donec ultrices" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_product__dr_brand_id -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_template__dr_brand_id -msgid "Dr Brand" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_product__dr_brand_attribute_ids -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_template__dr_brand_attribute_ids -msgid "Dr Brand Attribute" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_res_config_settings__dr_has_custom_module -msgid "Dr Has Custom Module" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_website_menu__dr_is_special_menu -msgid "Dr Is Special Menu" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_product__dr_offer_ids -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_template__dr_offer_ids -msgid "Dr Offer" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_product__dr_ptav_ids -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_template__dr_ptav_ids -msgid "Dr Ptav" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_product__dr_show_out_of_stock -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_template__dr_show_out_of_stock -msgid "Dr Show Out Of Stock" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_product__dr_tab_ids -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_template__dr_tab_ids -msgid "Dr Tab" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Dresses" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.actions.act_window,name:droggol_theme_common.dr_theme_config_action -#: model:ir.model,name:droggol_theme_common.model_dr_theme_config -#: model:ir.ui.menu,name:droggol_theme_common.dr_theme_config_menu -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_theme_config_view_tree -msgid "Droggol Theme Config" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -msgid "Duis" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model,name:droggol_theme_common.model_website_sale_extra_field -msgid "E-Commerce Extra Info Shown on product page" -msgstr "المعلومات الإضافية للتجارة الإلكترونية المعروضة على صفحة المنتج " - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "Enable Offline Page" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "Enable Progressive Web Apps" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Enable advance search" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Enable category pills" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Enable product offers" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Enable sticky add to cart" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Enable zoom" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_5 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Etiam" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_content__identifier -msgid "Extra Label" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_website_sale_extra_field__field_id -msgid "Field" -msgstr "حقل" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Filter Position" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Filter Style" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Flats" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_website_content_view_form -msgid "FontAwesome" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_public_category__dr_search_formulate -msgid "Formulated Search" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_product__dr_free_qty -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_template__dr_free_qty -msgid "Free To Use Quantity" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Fuzzy search" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "General" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "Grant discounts on sales order lines" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Grid Rows" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_product_brand_values_view_search -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_website_content_view_search -msgid "Group By" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Heels" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Help center" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Hide country flag" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Hide extra attributes" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Hide in desktop device" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_website_menu__dr_highlight_menu -msgid "Highlight Menu" -msgstr "" - -#. module: droggol_theme_common -#. odoo-python -#: code:addons/droggol_theme_common/models/website.py:0 -#, python-format -msgid "Home" -msgstr "منصه التبرعات" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_brand__id -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_label__id -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_offer__id -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_public_category_label__id -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tabs__id -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tags__id -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_pwa_shortcuts__id -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_theme_config__id -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_content__id -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_menu_label__id -msgid "ID" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_offer__icon -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tabs__icon -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_pwa_shortcuts__icon -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_content__icon -msgid "Icon" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "Icon (192x192)" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "Icon (512x512)" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_public_category__dr_category_icon -msgid "Icon Image" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_pwa_shortcuts_view_form -msgid "Icon size must be 192x192." -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_brand__image -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_attribute_value__dr_image -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_template_attribute_value__dr_image -#: model:ir.model.fields.selection,name:droggol_theme_common.selection__product_attribute__dr_radio_image_style__image -msgid "Image" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields.selection,name:droggol_theme_common.selection__product_attribute__dr_radio_image_style__image_text -msgid "Image + Text" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Image Fill" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Image Size" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_attribute__dr_is_brand -msgid "Is Brand?" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,help:droggol_theme_common.field_dr_website_content__identifier -msgid "It is just displayed in backend dropdown and breadcrumb" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Jeans" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Jewelry" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_theme_config__key -msgid "Key" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_product__dr_label_id -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_public_category__dr_category_label_id -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_template__dr_label_id -#: model:ir.model.fields,field_description:droggol_theme_common.field_website_menu__dr_menu_label_id -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_product_label_view_form -msgid "Label" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.actions.act_window,name:droggol_theme_common.dr_product_label_action -#: model:ir.ui.menu,name:droggol_theme_common.menu_dr_product_label -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_category_label_view_tree -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_product_label_view_search -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_product_label_view_tree -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_website_menu_label_view_tree -msgid "Labels" -msgstr "" - -#. module: droggol_theme_common -#. odoo-python -#: code:addons/droggol_theme_common/models/website.py:0 -#, python-format -msgid "Language and Pricelist selector" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Language/Pricelist Selector" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_brand____last_update -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_label____last_update -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_offer____last_update -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_public_category_label____last_update -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tabs____last_update -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tags____last_update -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_pwa_shortcuts____last_update -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_theme_config____last_update -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_content____last_update -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_menu_label____last_update -msgid "Last Modified on" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_brand__write_uid -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_label__write_uid -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_offer__write_uid -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_public_category_label__write_uid -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tabs__write_uid -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tags__write_uid -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_pwa_shortcuts__write_uid -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_theme_config__write_uid -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_content__write_uid -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_menu_label__write_uid -msgid "Last Updated by" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_brand__write_date -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_label__write_date -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_offer__write_date -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_public_category_label__write_date -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tabs__write_date -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tags__write_date -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_pwa_shortcuts__write_date -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_theme_config__write_date -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_content__write_date -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_menu_label__write_date -msgid "Last Updated on" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Layout" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -msgid "Limited Collection" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Listing" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Masonry" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_5 -msgid "Mega Menu Image 0#{title}" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Mega Menu Image 01" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.actions.act_window,name:droggol_theme_common.dr_website_menu_label_action -#: model:ir.ui.menu,name:droggol_theme_common.menu_dr_website_menu_label -msgid "Menu Labels" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Mobile" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -msgid "Morbi vel" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_brand__name -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_label__name -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_public_category_label__name -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tags__name -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_pwa_shortcuts__name -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_content__name -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_menu_label__name -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_product_brand_values_view_form -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_product_brand_values_view_tree -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "Name" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "New in" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -msgid "Newly Launched" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.xml:0 -#, python-format -msgid "Notification" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -msgid "Nulla vehicula" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -msgid "Nullam" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -msgid "" -"Nullam Popular" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_5 -msgid "Nullam mattis" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -msgid "" -"Nullam mattis Exclusive" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_5 -msgid "Nullam sed" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_pricelist_item__dr_offer_finish_msg -msgid "Offer Finish Message" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_pricelist_item__dr_offer_msg -msgid "Offer Message" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields.selection,name:droggol_theme_common.selection__dr_website_content__content_type__offer_popup -msgid "Offer Popup" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_content__dr_offer_products_ids -msgid "Offer Products" -msgstr "" - -#. module: droggol_theme_common -#. odoo-python -#: code:addons/droggol_theme_common/models/website.py:0 -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tags__dr_offer_ids -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_product__dr_product_offer_ids -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_template__dr_product_offer_ids -#, python-format -msgid "Offers" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.xml:0 -#, python-format -msgid "Open Cart Sidebar" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Opening" -msgstr "" - -#. module: droggol_theme_common -#. odoo-python -#: code:addons/droggol_theme_common/models/website.py:0 -#, python-format -msgid "Orders" -msgstr "تبرعاتي" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Overview" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_res_config_settings__dr_pwa_activated -#: model:ir.model.fields,field_description:droggol_theme_common.field_website__dr_pwa_activated -msgid "PWA Activated" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_res_config_settings__dr_pwa_background_color -#: model:ir.model.fields,field_description:droggol_theme_common.field_website__dr_pwa_background_color -msgid "PWA Background Color" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_res_config_settings__dr_pwa_icon_192 -#: model:ir.model.fields,field_description:droggol_theme_common.field_website__dr_pwa_icon_192 -msgid "PWA Icon 192x192" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_res_config_settings__dr_pwa_icon_512 -#: model:ir.model.fields,field_description:droggol_theme_common.field_website__dr_pwa_icon_512 -msgid "PWA Icon 512x512" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_res_config_settings__dr_pwa_name -#: model:ir.model.fields,field_description:droggol_theme_common.field_website__dr_pwa_name -msgid "PWA Name" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_res_config_settings__dr_pwa_offline_page -#: model:ir.model.fields,field_description:droggol_theme_common.field_website__dr_pwa_offline_page -msgid "PWA Offline Page" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_res_config_settings__dr_pwa_short_name -#: model:ir.model.fields,field_description:droggol_theme_common.field_website__dr_pwa_short_name -msgid "PWA Short Name" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.actions.act_window,name:droggol_theme_common.dr_pwa_shortcuts_action -#: model:ir.model,name:droggol_theme_common.model_dr_pwa_shortcuts -msgid "PWA Shortcuts" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_res_config_settings__dr_pwa_start_url -#: model:ir.model.fields,field_description:droggol_theme_common.field_website__dr_pwa_start_url -msgid "PWA Start URL" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_res_config_settings__dr_pwa_theme_color -#: model:ir.model.fields,field_description:droggol_theme_common.field_website__dr_pwa_theme_color -msgid "PWA Theme Color" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_website__dr_pwa_version -msgid "PWA Version" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Parallax" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_attribute__dr_attribute_popup_id -msgid "Popup" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Portfolio" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model,name:droggol_theme_common.model_product_pricelist_item -msgid "Pricelist Rule" -msgstr "قاعدة قائمة الأسعار " - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Pricelist per customer" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Pricing" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model,name:droggol_theme_common.model_product_template -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_offer__product_id -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tabs__product_id -msgid "Product" -msgstr "المنتج" - -#. module: droggol_theme_common -#: model:ir.model,name:droggol_theme_common.model_product_attribute -msgid "Product Attribute" -msgstr "خاصية المنتج" - -#. module: droggol_theme_common -#: model:ir.model,name:droggol_theme_common.model_dr_product_brand -msgid "Product Brand" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Product Card" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Product Card Actions" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_label__product_count -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tags__product_count -msgid "Product Count" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Product Detail" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model,name:droggol_theme_common.model_dr_product_label -msgid "Product Label" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Product Navigation" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#: model:ir.model,name:droggol_theme_common.model_dr_product_offer -#, python-format -msgid "Product Offers" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields.selection,name:droggol_theme_common.selection__dr_website_content__content_type__tab -msgid "Product Tab" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model,name:droggol_theme_common.model_dr_product_tabs -msgid "Product Tabs" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model,name:droggol_theme_common.model_dr_product_tags -msgid "Product Tags" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model,name:droggol_theme_common.model_product_template_attribute_line -msgid "Product Template Attribute Line" -msgstr "بند خاصية قالب المنتج" - -#. module: droggol_theme_common -#: model:ir.model,name:droggol_theme_common.model_product_template_attribute_value -msgid "Product Template Attribute Value" -msgstr "قيمة خاصية قالب المنتج " - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tags__product_ids -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_product_label_view_form -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_website_content_view_form -msgid "Products" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Products limit" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "Progressive Web Apps (PWA)" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -msgid "Proin" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -msgid "" -"Proin New" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -msgid "" -"Proin New" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -msgid "Proin eu" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_5 -msgid "Proin lobortis" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -msgid "Quisque" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields.selection,name:droggol_theme_common.selection__product_attribute__display_type__radio_circle -msgid "Radio Circle" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields.selection,name:droggol_theme_common.selection__product_attribute__display_type__radio_image -msgid "Radio Image" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields.selection,name:droggol_theme_common.selection__product_attribute__display_type__radio_square -msgid "Radio Square" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,help:droggol_theme_common.field_dr_product_brand__website_id -#: model:ir.model.fields,help:droggol_theme_common.field_dr_product_tags__website_id -msgid "Restrict publishing to this website." -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Result Limit" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Rich" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Rich View" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_website__dr_sale_special_offer -msgid "Sale Special Offer" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model,name:droggol_theme_common.model_sale_order -msgid "Sales Order" -msgstr "أمر البيع" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Sandals" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Save" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Scarves & Hats" -msgstr "" - -#. module: droggol_theme_common -#. odoo-python -#. odoo-javascript -#: code:addons/droggol_theme_common/models/website.py:0 -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -#, python-format -msgid "Search" -msgstr "بحث" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_attribute_value__ds_name -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_public_category__ds_name -msgid "Search DS Name" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_attribute__dr_search_suggestion -msgid "Search suggestion type" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -msgid "See all the products at once." -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_brand__sequence -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_offer__sequence -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tabs__sequence -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_pwa_shortcuts__sequence -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_content__sequence -msgid "Sequence" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Shoes" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Shop" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Shop Filter" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Shop Now" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -msgid "Shop Offer Image 01" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Shop page main layout." -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_pwa_shortcuts__short_name -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "Short Name" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_res_config_settings__dr_pwa_shortcuts -#: model:ir.model.fields,field_description:droggol_theme_common.field_website__dr_pwa_shortcuts -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_pwa_shortcuts_view_form -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_pwa_shortcuts_view_tree -msgid "Shortcuts" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Shorts" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show Bottombar" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show Bottombar On Scroll" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_attribute__dr_is_show_shop_search -msgid "Show Searchbar in Shop Filter" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show add to cart" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show attribute count" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show availability filter" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show category count" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show category link in menu sidebar" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show child categories pills of active category" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show compare" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show filters in sidebar" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "Show offline page when there is no internet." -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show product category pills on top of the shop page." -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show product count in category sidebar" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show product preview swatches" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show quick view" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show rating" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show rating filter" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show similar products" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show sort and filter button on shop" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show stock label" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show view switcher" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Show wishlist" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Showcase" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Shows button to see next, previous products based on product sequence." -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -#, python-format -msgid "Sidebar" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_public_category__dr_category_sidebar_cover -msgid "Sidebar Cover" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Sidebar: Fluid" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Skirts" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Slippers" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Smart Autocomplete" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Smart Suggestion" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Socks" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields.selection,name:droggol_theme_common.selection__website_menu__dr_highlight_menu__soft -msgid "Soft" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields.selection,name:droggol_theme_common.selection__website_menu__dr_highlight_menu__solid -msgid "Solid" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields.selection,name:droggol_theme_common.selection__dr_product_label__style__4 -msgid "Square" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "Start URL" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Sticky Add to Cart" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_label__style -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_attribute__dr_radio_image_style -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_product_label_view_search -#, python-format -msgid "Style" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_template_attribute_value__dr_thumb_image -msgid "Swatch Image" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_content__dr_tab_products_ids -msgid "Tab Products" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tags__dr_tab_ids -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_product__dr_product_tab_ids -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_template__dr_product_tab_ids -msgid "Tabs" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_offer__tag_id -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tabs__tag_id -#: model:ir.model.fields.selection,name:droggol_theme_common.selection__dr_product_label__style__1 -msgid "Tag" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_product__dr_tag_ids -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_template__dr_tag_ids -msgid "Tags" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_1 -msgid "Terms" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_label__text_color -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_public_category_label__text_color -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_menu_label__text_color -msgid "Text Color" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,help:droggol_theme_common.field_dr_pwa_shortcuts__url -msgid "The URL opened when a user activates the app shortcut." -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,help:droggol_theme_common.field_product_attribute__display_type -msgid "The display type used in the Product Configurator." -msgstr "نوع العرض المستخدم في أداة تهيئة المنتج. " - -#. module: droggol_theme_common -#: model:ir.model.fields,help:droggol_theme_common.field_dr_pwa_shortcuts__name -msgid "" -"The human-readable label for the app shortcut when displayed to the user." -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,help:droggol_theme_common.field_dr_pwa_shortcuts__short_name -msgid "The human-readable label used where space is limited." -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,help:droggol_theme_common.field_dr_pwa_shortcuts__description -msgid "The human-readable purpose for the app shortcut." -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "Theme Color" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Theme Configuration" -msgstr "" - -#. module: droggol_theme_common -#. odoo-python -#: code:addons/droggol_theme_common/models/res_config_settings.py:0 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -#, python-format -msgid "Theme Customizations" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.product_public_category_form_view_inherit_droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.product_template_form_view_inherit_droggol_theme_common -msgid "Theme Prime" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.ui.menu,name:droggol_theme_common.menu_theme_prime_config -msgid "Theme Prime Configuration" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "" -"These icons are used in places like the home screen, app launcher, task " -"switcher, splash screen, etc." -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_offer__name -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tabs__name -msgid "Title" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Tweak filters behavior on shop." -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Tweak search behavior for your website." -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Tweak your shop behavior." -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_website_content__content_type -msgid "Type" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_pwa_shortcuts__url -msgid "URL" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,help:droggol_theme_common.field_product_public_category__dr_search_formulate -msgid "" -"Use to search multi level categories e.g. Men Shirt (Here men and " -"shirt are diffrent category but will be displayed as one in smart search)" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "Used in the app install prompt." -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "Used on the splash screen when the application is first launched." -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "Used on the user's home screen, launcher, or other places." -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "Used on toolbar, and may be in the app's preview in task switchers." -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.xml:0 -#, python-format -msgid "User Guide" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_theme_config__value -msgid "Value" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -msgid "View all products" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_3 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_5 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_6 -msgid "Vivamus" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_2 -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.s_mega_menu_prime_4 -msgid "Want to explore our products?" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model,name:droggol_theme_common.model_website -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_brand__website_id -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_product_tags__website_id -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_pwa_shortcuts__website_id -#: model:ir.model.fields,field_description:droggol_theme_common.field_dr_theme_config__website_id -msgid "Website" -msgstr "الموقع الإلكتروني" - -#. module: droggol_theme_common -#: model:ir.model,name:droggol_theme_common.model_dr_website_content -msgid "Website Content" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model,name:droggol_theme_common.model_website_menu -msgid "Website Menu" -msgstr "قائمة الموقع الإلكتروني " - -#. module: droggol_theme_common -#: model:ir.model,name:droggol_theme_common.model_dr_website_menu_label -msgid "Website Menu Label" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model.fields,field_description:droggol_theme_common.field_product_template_attribute_line__dr_attribute_popup_id -msgid "Website Popup" -msgstr "" - -#. module: droggol_theme_common -#: model:ir.model,name:droggol_theme_common.model_product_public_category -msgid "Website Product Category" -msgstr "فئة منتج الموقع الإلكتروني " - -#. module: droggol_theme_common -#. odoo-python -#: code:addons/droggol_theme_common/models/website.py:0 -#, python-format -msgid "Wishlist" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "You can change behaviour of sidebars." -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "You can change how products are being added in cart." -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.dr_website_content_view_form -msgid "You can find icon at" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "You will be able to add offers on product and show details in dialog." -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.res_config_settings_view_form -msgid "Your application will start from this URL when it is launched." -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Zoom Product Images" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Zoom factor" -msgstr "" - -#. module: droggol_theme_common -#. odoo-javascript -#: code:addons/droggol_theme_common/static/src/js/components/theme_config.js:0 -#, python-format -msgid "Zoom product images in product detail page and quick view." -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.product_attribute_view_form_inherit_droggol_theme_common -msgid "eCommerce" -msgstr "" - -#. module: droggol_theme_common -#: model_terms:ir.ui.view,arch_db:droggol_theme_common.product_attribute_view_form_inherit_droggol_theme_common -msgid "eCommerce Filter Visibility" -msgstr "" diff --git a/odex25_donation/droggol_theme_common/models/__init__.py b/odex25_donation/droggol_theme_common/models/__init__.py index 881e1f2b4..6cd19b457 100644 --- a/odex25_donation/droggol_theme_common/models/__init__.py +++ b/odex25_donation/droggol_theme_common/models/__init__.py @@ -1,18 +1,16 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () +# Copyright (c) 2019-Present Droggol. () -from . import dr_cache_mixin -from . import dr_category_label from . import dr_product_label -from . import dr_pwa_shortcuts -from . import dr_theme_config -from . import dr_website_content +from . import dr_product_brand +from . import dr_product_tags +from . import dr_product_tabs +from . import product_template from . import dr_website_menu_label from . import product_attribute -from . import product_pricelist_item -from . import product_public_category -from . import product_template -from . import res_config_settings -from . import sale_order from . import website -from . import website_menu +from . import product_pricelist_item +from . import dr_pwa_shortcuts +from . import res_config_settings +from . import dr_config +from . import dr_category_lable diff --git a/odex25_donation/droggol_theme_common/models/dr_cache_mixin.py b/odex25_donation/droggol_theme_common/models/dr_cache_mixin.py deleted file mode 100644 index 8df1da004..000000000 --- a/odex25_donation/droggol_theme_common/models/dr_cache_mixin.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () - -from odoo import api, models - - -class DrCacheMixin(models.AbstractModel): - _name = 'dr.cache.mixin' - _description = 'Cache Mixin' - - _fields_to_watch = [] - - @api.model_create_multi - def create(self, vals_list): - self.clear_caches() - return super().create(vals_list) - - def write(self, vals): - self.clear_caches() - return super().write(vals) - - def unlink(self): - self.clear_caches() - return super().unlink() diff --git a/odex25_donation/droggol_theme_common/models/dr_category_label.py b/odex25_donation/droggol_theme_common/models/dr_category_label.py deleted file mode 100644 index 5c54b9894..000000000 --- a/odex25_donation/droggol_theme_common/models/dr_category_label.py +++ /dev/null @@ -1,13 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () - -from odoo import fields, models - - -class DrProductPublicCategoryLabel(models.Model): - _name = 'dr.product.public.category.label' - _description = 'Category Label' - - name = fields.Char(required=True, translate=True) - background_color = fields.Char('Background Color', default='#000000') - text_color = fields.Char('Text Color', default='#FFFFFF') diff --git a/odex25_donation/droggol_theme_common/models/dr_category_lable.py b/odex25_donation/droggol_theme_common/models/dr_category_lable.py new file mode 100644 index 000000000..a7838f708 --- /dev/null +++ b/odex25_donation/droggol_theme_common/models/dr_category_lable.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2019-Present Droggol. () + +from odoo import fields, models + + +class DrWebsiteCategoryLabel(models.Model): + _name = 'dr.product.public.category.label' + _description = 'Category Label' + + name = fields.Char(required=True, translate=True) + color = fields.Selection([('green', 'Green'), ('blue', 'Blue'), ('red', 'Red'), ('orange', 'Orange'), ('gray', 'Gray'), ('black', 'Black')]) + category_ids = fields.One2many('product.public.category', 'dr_category_label_id') + category_count = fields.Integer(compute='_compute_category_count') + + def _compute_category_count(self): + for label in self: + label.category_count = len(label.category_ids) + + def action_open_category(self): + self.ensure_one() + action = self.env.ref('website_sale.product_public_category_action').read()[0] + action['domain'] = [('dr_category_label_id', '=', self.id)] + action['context'] = {} + return action + + +class DrProductPublicCategory(models.Model): + _inherit = 'product.public.category' + + dr_category_label_id = fields.Many2one('dr.product.public.category.label', string='Label') + dr_category_cover_image = fields.Binary(string='Cover Image') diff --git a/odex25_donation/droggol_theme_common/models/dr_theme_config.py b/odex25_donation/droggol_theme_common/models/dr_config.py similarity index 51% rename from odex25_donation/droggol_theme_common/models/dr_theme_config.py rename to odex25_donation/droggol_theme_common/models/dr_config.py index 470f80dff..2d14f4b3b 100644 --- a/odex25_donation/droggol_theme_common/models/dr_theme_config.py +++ b/odex25_donation/droggol_theme_common/models/dr_config.py @@ -1,23 +1,38 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () +# Copyright (c) 2019-Present Droggol. () + -import json import logging +import json + from odoo import _, api, fields, models, tools +from odoo.http import request + + _logger = logging.getLogger(__name__) class DrThemeConfig(models.Model): + _name = 'dr.theme.config' - _inherit = 'dr.cache.mixin' _description = 'Droggol Theme Config' - _rec_name = 'key' + _rec_name = "key" key = fields.Char(required=True) value = fields.Char() website_id = fields.Many2one('website') + @api.model_create_multi + def create(self, vals_list): + self.clear_caches() + return super(DrThemeConfig, self).create(vals_list) + + def write(self, vals): + self.clear_caches() + res = super(DrThemeConfig, self).write(vals) + return res + @api.model @tools.ormcache('website_id') def _get_all_config(self, website_id): @@ -29,7 +44,7 @@ class DrThemeConfig(models.Model): result_configs[config.key] = config.value == 'True' elif config.key.startswith('json_'): config_value = json.loads(config.value) - if isinstance(config_value, dict) and result_configs.get(config.key): + if isinstance(config_value, dict): result_configs[config.key].update(config_value) else: result_configs[config.key] = config_value @@ -47,29 +62,64 @@ class DrThemeConfig(models.Model): def _get_default_theme_config(self, website_id): website = self.env['website'].sudo().browse(website_id) + + # TODO: Clear cache on website write (when theme is installed) + return { - 'json_sidebar_config': {'category_sidebar_style': '2', 'category_sidebar_show_count': True, 'menu_sidebar_show_category': True}, - 'json_shop_layout': {'layout': 'prime', 'show_view_switcher': True, 'default_view_mode': 'grid', 'load_more_products': 'button'}, - 'json_shop_product_item': {'style': '1', 'image_size': 'default', 'image_fill': 'cover', 'show_add_to_cart': True, 'show_wishlist': True, 'show_compare': True, 'show_quick_view': True, 'show_similar_products': True, 'show_product_preview_swatches': True, 'show_rating': True, 'show_stock_label': False}, - 'json_shop_category_pills': {'active': True, 'style': '1', 'show_child_categories': True, 'hide_in_desktop': False}, - 'json_shop_filters': {'lazy_method': True, 'filter_style': '1', 'filter_position': 'left', 'show_in_sidebar': False, 'collapsible_category': True, 'collapsible_attribute': True, 'show_category_count': True, 'show_attribute_count': False, 'hide_extra_attrib_value': False, 'show_rating_filter': True, 'show_availability_filter': False}, - 'json_zoom': {'zoom_enabled': True, 'zoom_factor': 2}, + 'bool_enable_ajax_load_on_click': False, 'bool_enable_ajax_load': False, - 'json_bottom_bar': {'show_bottom_bar': True, 'show_bottom_bar_on_scroll': False, 'filters': True, 'actions': ['tp_home', 'tp_search', 'tp_wishlist', 'tp_offer', 'tp_brands', 'tp_category', 'tp_orders']}, + 'bool_show_bottom_bar_onscroll': False, + 'bool_display_bottom_bar': True, + 'bool_mobile_filters': True, + 'json_zoom': { + 'zoom_enabled': True, + 'zoom_factor': 2, + 'disable_small': False + }, + 'json_category_pills': { + 'enable': True, + 'enable_child': True, + 'hide_desktop': True, + 'show_title': True, + 'style': 1, + }, + 'json_grid_product': { + 'show_color_preview': True, + 'show_quick_view': True, + 'show_similar_products': True, + 'show_rating': True, + }, + 'json_shop_filters': { + 'in_sidebar': False, + 'collapsible': True, + 'show_category_count': True, + 'show_attrib_count': False, + 'hide_attrib_value': False, + 'show_price_range_filter': True, + 'price_range_display_type': 'sales_price', + 'show_rating_filter': True, + 'show_brand_search': True, + 'show_labels_search': True, + 'show_tags_search': True, + 'brands_style': 1, + 'tags_style': 1, + }, 'bool_sticky_add_to_cart': True, - 'json_general_language_pricelist_selector': {'hide_country_flag': False}, - 'json_b2b_shop_config': {'dr_enable_b2b': False, 'dr_only_assigned_pricelist': False}, - 'json_mobile': {}, - 'json_product_search': {'advance_search': True, 'search_category': True, 'search_attribute': True, 'search_suggestion': True, 'search_limit': 10, 'search_max_product': 3, 'search_fuzzy': True}, - 'json_brands_page': {'disable_brands_grouping': False}, + 'bool_general_show_category_search': True, + 'json_general_language_pricelist_selector': { + 'hide_country_flag': False, + }, + 'json_brands_page': { + 'disable_brands_grouping': False, + }, 'cart_flow': 'default', + 'json_bottom_bar_config': ['tp_home', 'tp_search', 'tp_wishlist', 'tp_offer', 'tp_brands', 'tp_category', 'tp_orders'], 'theme_installed': website.theme_id and website.theme_id.name.startswith('theme_prime') or False, 'pwa_active': website.dr_pwa_activated, 'bool_product_offers': True, - 'bool_show_products_nav': True, } - def save_config(self, website_id, configs): + def _save_config(self, website_id, configs): all_config = self.search([('website_id', '=', website_id)]) for key, value in configs.items(): key, value = self._prepare_value_for_write(key, value) @@ -86,3 +136,14 @@ class DrThemeConfig(models.Model): elif key.startswith('int_'): value = value return key.strip(), value + + +class Http(models.AbstractModel): + _inherit = 'ir.http' + + @api.model + def get_dr_theme_config(self): + result = {} + if request.website: + result = request.website._get_dr_theme_config() + return result diff --git a/odex25_donation/droggol_theme_common/models/dr_product_brand.py b/odex25_donation/droggol_theme_common/models/dr_product_brand.py new file mode 100644 index 000000000..e3e5b999c --- /dev/null +++ b/odex25_donation/droggol_theme_common/models/dr_product_brand.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2019-Present Droggol. () + +from odoo import api, fields, models + + +class DrProductBrand(models.Model): + _name = 'dr.product.brand' + _inherit = ['website.multi.mixin'] + _description = 'Product Brand' + _order = 'sequence,id' + + name = fields.Char(required=True, translate=True) + description = fields.Char(translate=True) + image = fields.Binary() + product_ids = fields.One2many('product.template', 'dr_brand_id') + product_count = fields.Integer(compute='_compute_product_count') + sequence = fields.Integer(string='Sequence') + active = fields.Boolean(default=True) + + def _compute_product_count(self): + for brand in self: + brand.product_count = len(brand.product_ids) + + def action_open_products(self): + self.ensure_one() + action = self.env.ref('website_sale.product_template_action_website').read()[0] + action['domain'] = [('dr_brand_id', '=', self.id)] + return action + + @api.model + def reorder_sequence(self): + sequence = 1 + for brand in self.search([], order='name'): + brand.sequence = sequence + sequence += 1 diff --git a/odex25_donation/droggol_theme_common/models/dr_product_label.py b/odex25_donation/droggol_theme_common/models/dr_product_label.py index 4c070d4bd..5f06a017a 100644 --- a/odex25_donation/droggol_theme_common/models/dr_product_label.py +++ b/odex25_donation/droggol_theme_common/models/dr_product_label.py @@ -1,38 +1,37 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () +# Copyright (c) 2019-Present Droggol. () -from PIL import ImageColor from odoo import api, fields, models class DrProductLabel(models.Model): _name = 'dr.product.label' _description = 'Product Label' - _inherit = 'dr.cache.mixin' name = fields.Char(required=True, translate=True) - background_color = fields.Char('Background Color', default='#000000') - background_color_rgb = fields.Char(compute='_compute_background_color_rgb', store=True, string='Background Color RGB') - text_color = fields.Char('Text Color', default='#FFFFFF') - style = fields.Selection([('1', 'Tag'), ('2', 'Badge'), ('3', 'Circle'), ('4', 'Square')], default='1', required=True) + color = fields.Selection([ + ('green', 'Green'), + ('blue', 'Blue'), + ('orange', 'Orange'), + ('red', 'Red'), + ('gray', 'Gray'), + ('black', 'Black'), + ]) + style = fields.Selection([ + ('1', 'Tag'), + ('2', 'Badge'), + ('3', 'Circle'), + ], default='1', required=True) + product_ids = fields.One2many('product.template', 'dr_label_id') product_count = fields.Integer(compute='_compute_product_count') active = fields.Boolean(default=True) def _compute_product_count(self): - label_data = self.env['product.template'].read_group([('dr_label_id', 'in', self.ids)], ['dr_label_id'], ['dr_label_id']) - mapped_data = dict([(x['dr_label_id'][0], x['dr_label_id_count']) for x in label_data]) for label in self: - label.product_count = mapped_data.get(label.id, 0) - - @api.depends('background_color') - def _compute_background_color_rgb(self): - for label in self: - colors = ImageColor.getcolor(label.background_color, 'RGB') - label.background_color_rgb = '%s, %s, %s' % (colors[0], colors[1], colors[2]) + label.product_count = len(label.product_ids) def action_open_products(self): self.ensure_one() action = self.env.ref('website_sale.product_template_action_website').read()[0] action['domain'] = [('dr_label_id', '=', self.id)] - action['context'] = {} return action diff --git a/odex25_donation/droggol_theme_common/models/dr_product_tabs.py b/odex25_donation/droggol_theme_common/models/dr_product_tabs.py new file mode 100644 index 000000000..2819085d0 --- /dev/null +++ b/odex25_donation/droggol_theme_common/models/dr_product_tabs.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2019-Present Droggol. () + +from odoo import api, fields, models + + +class DrProductTabs(models.Model): + _name = 'dr.product.tabs' + _description = 'Product Tabs' + _order = 'sequence,id' + + name = fields.Char(string='Title', required=True, translate=True) + icon = fields.Char(default='list') + content = fields.Html(sanitize_attributes=False, translate=True, sanitize_form=False) + sequence = fields.Integer(string='Sequence') + product_id = fields.Many2one('product.template') + tag_id = fields.Many2one('dr.product.tags') + + +class DrProductOffer(models.Model): + _name = 'dr.product.offer' + _description = 'Product Offers' + _order = 'sequence,id' + + name = fields.Char(string='Title', required=True, translate=True) + description = fields.Char(string='Description', required=True, translate=True) + icon = fields.Char(default='list') + sequence = fields.Integer(string='Sequence') + dialog_content = fields.Html(sanitize_attributes=False, translate=True, sanitize_form=False) + product_id = fields.Many2one('product.template') + tag_id = fields.Many2one('dr.product.tags') diff --git a/odex25_donation/droggol_theme_common/models/dr_product_tags.py b/odex25_donation/droggol_theme_common/models/dr_product_tags.py new file mode 100644 index 000000000..720f12450 --- /dev/null +++ b/odex25_donation/droggol_theme_common/models/dr_product_tags.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2019-Present Droggol. () + +from odoo import api, fields, models + + +class DrProductTags(models.Model): + _name = 'dr.product.tags' + _inherit = ['website.multi.mixin'] + _description = 'Product Tags' + + name = fields.Char(required=True, translate=True) + product_ids = fields.Many2many('product.template', 'dr_product_tags_rel', 'tag_id', 'product_id') + product_count = fields.Integer(compute='_compute_product_count') + active = fields.Boolean(default=True) + dr_tab_ids = fields.One2many('dr.product.tabs', 'tag_id', string='Tabs', help='Display in product detail page on website.') + dr_offer_ids = fields.One2many('dr.product.offer', 'tag_id', string='Offers', help='Display in product detail page on website.') + + def _compute_product_count(self): + for tag in self: + tag.product_count = len(tag.product_ids) + + def action_open_products(self): + self.ensure_one() + action = self.env.ref('website_sale.product_template_action_website').read()[0] + action['domain'] = [('dr_tag_ids', 'in', self.id)] + return action diff --git a/odex25_donation/droggol_theme_common/models/dr_pwa_shortcuts.py b/odex25_donation/droggol_theme_common/models/dr_pwa_shortcuts.py index dd6de8e95..248c3c2e0 100644 --- a/odex25_donation/droggol_theme_common/models/dr_pwa_shortcuts.py +++ b/odex25_donation/droggol_theme_common/models/dr_pwa_shortcuts.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () +# Copyright (c) 2019-Present Droggol. () -from odoo import fields, models +from odoo import fields, models, tools class PWAShortcuts(models.Model): @@ -11,7 +11,7 @@ class PWAShortcuts(models.Model): website_id = fields.Many2one('website') sequence = fields.Integer() name = fields.Char(required=True, translate=True, help='The human-readable label for the app shortcut when displayed to the user.') - short_name = fields.Char('Short Name', translate=True, help='The human-readable label used where space is limited.') + short_name = fields.Char(translate=True, help='The human-readable label used where space is limited.') description = fields.Text(help='The human-readable purpose for the app shortcut.') url = fields.Char('URL', required=True, help='The URL opened when a user activates the app shortcut.') icon = fields.Binary() diff --git a/odex25_donation/droggol_theme_common/models/dr_website_content.py b/odex25_donation/droggol_theme_common/models/dr_website_content.py deleted file mode 100644 index f9bedc4b1..000000000 --- a/odex25_donation/droggol_theme_common/models/dr_website_content.py +++ /dev/null @@ -1,40 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () - -from odoo import fields, models -from odoo.tools.translate import html_translate - - -class DrWebsiteContent(models.Model): - _name = 'dr.website.content' - _description = 'Website Content' - _inherit = 'dr.cache.mixin' - _order = 'sequence,id' - - sequence = fields.Integer() - name = fields.Char(required=True, translate=True) - identifier = fields.Char('Extra Label', help="It is just displayed in backend dropdown and breadcrumb") - description = fields.Char(translate=True) - icon = fields.Char(default='list') - content = fields.Html(sanitize_attributes=False, translate=html_translate, sanitize_form=False) - content_type = fields.Selection([('tab', 'Product Tab'), ('offer_popup', 'Offer Popup'), ('attribute_popup', 'Attribute Popup')], default='tab', required=True, string='Type') - - dr_tab_products_ids = fields.Many2many('product.template', 'product_template_tab_rel', 'tab_id', 'product_template_id', string='Tab Products') - dr_offer_products_ids = fields.Many2many('product.template', 'product_template_offer_rel', 'offer_id', 'product_template_id', string='Offer Products') - - def name_get(self): - result = [] - for content in self: - name = content.name - if content.identifier: - name = f'[{content.identifier}] {name}' - result.append((content.id, name)) - return result - - def open_design_page(self): - self.ensure_one() - return { - 'type': 'ir.actions.act_url', - 'target': 'new', - 'url': '/droggol_theme_common/design_content/%s?enable_editor=1' % (self.id), - } diff --git a/odex25_donation/droggol_theme_common/models/dr_website_menu_label.py b/odex25_donation/droggol_theme_common/models/dr_website_menu_label.py index 20d6979ea..20398bde4 100644 --- a/odex25_donation/droggol_theme_common/models/dr_website_menu_label.py +++ b/odex25_donation/droggol_theme_common/models/dr_website_menu_label.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () +# Copyright (c) 2019-Present Droggol. () -from odoo import fields, models +from odoo import api, fields, models class DrWebsiteMenuLabel(models.Model): @@ -9,5 +9,38 @@ class DrWebsiteMenuLabel(models.Model): _description = 'Website Menu Label' name = fields.Char(required=True, translate=True) - background_color = fields.Char('Background Color', default='#000000') - text_color = fields.Char('Text Color', default='#FFFFFF') + color = fields.Selection([ + ('green', 'Green'), + ('blue', 'Blue'), + ('red', 'Red'), + ('orange', 'Orange'), + ('gray', 'Gray'), + ('black', 'Black'), + ]) + menu_ids = fields.One2many('website.menu', 'dr_menu_label_id') + menu_count = fields.Integer(compute='_compute_menu_count') + + def _compute_menu_count(self): + for label in self: + label.menu_count = len(label.menu_ids) + + def action_open_menus(self): + self.ensure_one() + action = self.env.ref('website.action_website_menu').read()[0] + action['domain'] = [('dr_menu_label_id', '=', self.id)] + action['context'] = {} + return action + + +class WebsiteMenu(models.Model): + _inherit = 'website.menu' + + dr_menu_label_id = fields.Many2one('dr.website.menu.label', string='Label') + dr_is_special_menu = fields.Boolean() + + @api.model + def get_tree(self, website_id, menu_id=None): + result = super(WebsiteMenu, self).get_tree(website_id, menu_id) + for menu in result['children']: + menu['fields']['dr_is_special_menu'] = self.browse(menu['fields']['id']).dr_is_special_menu + return result diff --git a/odex25_donation/droggol_theme_common/models/product_attribute.py b/odex25_donation/droggol_theme_common/models/product_attribute.py index a2e9e2f8b..2ac01f358 100644 --- a/odex25_donation/droggol_theme_common/models/product_attribute.py +++ b/odex25_donation/droggol_theme_common/models/product_attribute.py @@ -1,14 +1,11 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () +# Copyright (c) 2019-Present Droggol. () -from odoo import api, fields, models, _ -from odoo.exceptions import UserError +from odoo import api, fields, models class ProductAttribute(models.Model): - _name = 'product.attribute' - _inherit = ['product.attribute', 'dr.cache.mixin'] - _fields_to_watch = ['name', 'display_type', 'dr_attribute_popup_id', 'dr_radio_image_style', 'dr_is_brand'] + _inherit = 'product.attribute' display_type = fields.Selection( selection_add=[ @@ -16,66 +13,17 @@ class ProductAttribute(models.Model): ('radio_square', 'Radio Square'), ('radio_image', 'Radio Image'), ], ondelete={'radio_circle': 'cascade', 'radio_square': 'cascade', 'radio_image': 'cascade'}) + dr_is_hide_shop_filter = fields.Boolean('Hide in Shop Filter', default=False) dr_is_show_shop_search = fields.Boolean('Show Searchbar in Shop Filter', default=False) - dr_attribute_popup_id = fields.Many2one('dr.website.content', string='Popup', domain='[("content_type", "=", "attribute_popup")]') - dr_radio_image_style = fields.Selection([ - ('default', 'Default'), - ('image', 'Image'), - ('image_text', 'Image + Text'), - ], default='default', string='Style') - dr_search_suggestion = fields.Selection([('auto', 'Autocomplete'), ('auto_suggestion', 'Autocomplete & Suggestion')], string='Search suggestion type') - dr_is_brand = fields.Boolean('Is Brand?') - - @api.onchange('dr_is_brand') - def _onchange_dr_is_brand(self): - self.display_type = 'radio_image' - - @api.constrains('dr_is_brand', 'display_type') - def _constrains_dr_is_brand(self): - for attribute in self: - if attribute.dr_is_brand and not attribute.display_type == 'radio_image': - raise UserError(_('Brand attribute must have display type "Radio Image".')) - - def open_create_brand_value(self): - return { - 'type': 'ir.actions.act_window', - 'name': _('Brand'), - 'res_model': 'product.attribute.value', - 'view_mode': 'form', - 'target': 'new', - 'views': [[False, 'form']], - 'context': {'default_attribute_id': self.id} - } class ProductAttributeValue(models.Model): - _name = 'product.attribute.value' - _inherit = ['product.attribute.value', 'dr.cache.mixin'] - _fields_to_watch = ['name', 'html_color', 'dr_image', 'dr_brand_description'] + _inherit = 'product.attribute.value' - dr_image = fields.Binary('Image') - dr_brand_description = fields.Text('Description', translate=True) - ds_name = fields.Char('Search DS Name', compute="_compute_ds_name", search="_search_ds_name") - - def _compute_ds_name(self): - for attr in self: - attr.ds_name = attr.name - - @api.model - def _search_ds_name(self, operator, value): - return [('name', operator, value)] + dr_image = fields.Binary(string='Image') class ProductTemplateAttributeValue(models.Model): - _name = 'product.template.attribute.value' - _inherit = ['product.template.attribute.value', 'dr.cache.mixin'] - _fields_to_watch = ['dr_thumb_image'] + _inherit = 'product.template.attribute.value' dr_image = fields.Binary('Image', related='product_attribute_value_id.dr_image') - dr_thumb_image = fields.Image('Swatch Image', max_width=128, max_height=128) - - -class ProductTemplateAttributeLine(models.Model): - _inherit = 'product.template.attribute.line' - - dr_attribute_popup_id = fields.Many2one('dr.website.content', string='Website Popup', domain='[("content_type", "=", "attribute_popup")]') diff --git a/odex25_donation/droggol_theme_common/models/product_pricelist_item.py b/odex25_donation/droggol_theme_common/models/product_pricelist_item.py index 7199f57a4..b4593b455 100644 --- a/odex25_donation/droggol_theme_common/models/product_pricelist_item.py +++ b/odex25_donation/droggol_theme_common/models/product_pricelist_item.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () +# Copyright (c) 2019-Present Droggol. () -from odoo import fields, models +from odoo import api, fields, models class PricelistItem(models.Model): diff --git a/odex25_donation/droggol_theme_common/models/product_public_category.py b/odex25_donation/droggol_theme_common/models/product_public_category.py deleted file mode 100644 index a0b9bc0a4..000000000 --- a/odex25_donation/droggol_theme_common/models/product_public_category.py +++ /dev/null @@ -1,51 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () - -import re -from odoo import fields, models, api - - -class ProductPublicCategory(models.Model): - _inherit = 'product.public.category' - - dr_category_label_id = fields.Many2one('dr.product.public.category.label', string='Label') - dr_category_cover_image = fields.Binary('Cover Image') - dr_category_icon = fields.Binary('Icon Image') - dr_category_sidebar_cover = fields.Binary('Sidebar Cover') - dr_search_formulate = fields.Boolean('Formulated Search', help="Use to search multi level categories \ - e.g. Men Shirt (Here men and shirt are diffrent category but will be displayed as one in smart search)") - ds_name = fields.Char('Search DS Name', compute="_compute_ds_name", search="_search_ds_name") - - def _compute_ds_name(self): - for category in self: - if self.env.context.get('dr_formulate'): - category.ds_name = ' '.join([categ.name for categ in category.parents_and_self if (category.id == categ.id or categ.dr_search_formulate)]) - else: - category.ds_name = category.name - - @api.model - def _search_ds_name(self, operator, value): - if not self.env.context.get('dr_formulate'): - return [('name', operator, value)] - - # Assumes operator is 'ilike' - domain, website_id = [('dr_search_formulate', '=', False)], self.env.context.get('website_id') - if website_id: - domain += self.env['website'].website_domain(website_id=website_id) - categ_ids = [categ.id for categ in self.search(domain) if re.search(re.escape(value), categ.ds_name, re.IGNORECASE)] - return [('id', 'in', categ_ids)] - - @api.model - def _search_get_detail(self, website, order, options): - "Fix the issue of Odoo's search in html fields" - with_image = options['displayImage'] - options = options.copy() - options['displayDescription'] = False - result = super()._search_get_detail(website, order, options) - if with_image: - result['mapping']['image_url'] = {'name': 'image_url', 'type': 'html'} - - # to fix Odoo's issue Odoo catagory is not multi website compatible - result['base_domain'] = [website.website_domain()] - - return result diff --git a/odex25_donation/droggol_theme_common/models/product_template.py b/odex25_donation/droggol_theme_common/models/product_template.py index bbb01b7f6..5454ce287 100644 --- a/odex25_donation/droggol_theme_common/models/product_template.py +++ b/odex25_donation/droggol_theme_common/models/product_template.py @@ -1,182 +1,44 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () +# Copyright (c) 2019-Present Droggol. () -from odoo import api, fields, models, Command -from odoo.addons.website.models import ir_http +from odoo import api, fields, models +from odoo.http import request class ProductTemplate(models.Model): _inherit = 'product.template' dr_label_id = fields.Many2one('dr.product.label', string='Label') + dr_brand_id = fields.Many2one('dr.product.brand', string='Brand') + dr_tag_ids = fields.Many2many('dr.product.tags', 'dr_product_tags_rel', 'product_id', 'tag_id', string='Tags') + dr_tab_ids = fields.One2many('dr.product.tabs', 'product_id', string='Tabs', help='Display in product detail page on website.') + dr_offer_ids = fields.One2many('dr.product.offer', 'product_id', string='Offers', help='Display in product detail page on website.') - dr_product_tab_ids = fields.Many2many('dr.website.content', 'product_template_tab_rel', 'product_template_id', 'tab_id', string='Tabs') - dr_product_offer_ids = fields.Many2many('dr.website.content', 'product_template_offer_rel', 'product_template_id', 'offer_id', string='Offers') - - dr_document_ids = fields.Many2many('ir.attachment', 'product_template_document_attachment_rel', 'product_template_id', 'attachment_id', string='Documents', help='Documents publicly downloadable from eCommerce product page.') - dr_brand_value_id = fields.Many2one('product.attribute.value', compute='_compute_dr_brand_value_id', inverse='_inverse_dr_brand_value_id', search='_search_dr_brand_value_id', string='Brand') - dr_brand_attribute_ids = fields.Many2many('product.attribute', compute='_compute_dr_brand_attribute_ids') - - dr_free_qty = fields.Float('Free To Use Quantity', compute='_compute_dr_free_qty', search='_search_dr_free_qty', compute_sudo=False, digits='Product Unit of Measure') - dr_show_out_of_stock = fields.Char(compute='_compute_dr_show_out_of_stock', compute_sudo=True) - - dr_ptav_ids = fields.One2many('product.template.attribute.value', 'product_tmpl_id') - - @api.model_create_multi - def create(self, vals): - res = super().create(vals) - res.dr_document_ids.public = True - return res - - def write(self, vals): - res = super().write(vals) - if 'dr_document_ids' in vals: - self.dr_document_ids.public = True - return res - - def _search_dr_brand_value_id(self, operator, value): - if operator in ['in', 'not in']: - return [('attribute_line_ids.value_ids', operator, value)] - elif operator in ['ilike', 'not ilike', '=', '!=']: - brand_attribute_id = self._get_brand_attribute() - values = self.env['product.attribute.value'].search([('name', operator, value), ('attribute_id', 'in', brand_attribute_id.ids)]) - return [('attribute_line_ids.value_ids', 'in', values.ids)] - # Does not support other cases - return [] - - def _compute_dr_brand_value_id(self): - for product in self: - brand_lines = product.attribute_line_ids.filtered(lambda x: x.attribute_id.dr_is_brand) - product.dr_brand_value_id = self.env['product.attribute.value'] - if brand_lines: - product.dr_brand_value_id = brand_lines[0].value_ids[0] - - def _inverse_dr_brand_value_id(self): - brand_value_id = self.dr_brand_value_id - for product in self: - brand_lines = product.attribute_line_ids.filtered(lambda x: x.attribute_id.dr_is_brand) - brand_line = brand_lines and brand_lines[0] - if brand_line and brand_value_id: - brand_line.value_ids = brand_value_id - elif brand_line and not brand_value_id: - brand_line.unlink() - elif brand_value_id: - product.attribute_line_ids = [Command.create({ - 'attribute_id': brand_value_id.attribute_id.id, - 'value_ids': [Command.set(brand_value_id.ids)], - })] - - def _compute_dr_brand_attribute_ids(self): - attributes = self._get_brand_attribute() - for product in self: - product.dr_brand_attribute_ids = attributes - - def _get_brand_attribute(self): - return self.env['product.attribute'].search([('dr_is_brand', '=', True)]) - - @api.depends('product_variant_ids.free_qty') - def _compute_dr_free_qty(self): - res = self._compute_dr_free_qty_quantities_dict() - for template in self: - template.dr_free_qty = res[template.id]['free_qty'] - - def _compute_dr_free_qty_quantities_dict(self): - variants_available = { - p['id']: p for p in self.product_variant_ids.read(['free_qty']) - } - prod_available = {} - for template in self: - free_qty = 0 - for p in template.product_variant_ids: - free_qty += variants_available[p.id]['free_qty'] - prod_available[template.id] = { - 'free_qty': free_qty, - } - return prod_available - - def _search_dr_free_qty(self, operator, value): - domain = [('free_qty', operator, value)] - product_variant_query = self.env['product.product'].sudo()._search(domain) - return [('product_variant_ids', 'in', product_variant_query)] - - def _compute_dr_show_out_of_stock(self): - website = ir_http.get_request_website() - for product in self: - product.dr_show_out_of_stock = '' - if website and website._get_dr_theme_config('json_shop_product_item').get('show_stock_label') and not product.allow_out_of_stock_order and product.detailed_type == 'product': - free_qty = product.dr_free_qty - if product.show_availability and free_qty <= product.available_threshold: - product.dr_show_out_of_stock = int(free_qty) - if free_qty <= 0: - product.dr_show_out_of_stock = 'OUT_OF_STOCK' + @api.onchange('website_id') + def _onchange_website_id(self): + self.dr_label_id = False + self.dr_brand_id = False + self.dr_tag_ids = False @api.model - def _search_get_detail(self, website, order, options): - res = super()._search_get_detail(website, order, options) - # Hide out of stock - if options.get('hide_out_of_stock'): - res['base_domain'].append(['|', '|', ('detailed_type', '!=', 'product'), ('allow_out_of_stock_order', '=', True), '&', ('dr_free_qty', '>', 0), ('allow_out_of_stock_order', '=', False)]) - # Tag - tag = options.get('tag') - if tag: - res['base_domain'].append([('product_tag_ids', 'in', [int(x) for x in tag])]) - # Rating - ratings = options.get('rating') - if ratings: - result = self.env['rating.rating'].sudo().read_group([('res_model', '=', 'product.template')], ['rating:avg'], groupby=['res_id'], lazy=False) - rating_product_ids = [] - for rating in ratings: - rating_product_ids.extend([item['res_id'] for item in result if item['rating'] >= int(rating)]) - if rating_product_ids: - res['base_domain'].append([('id', 'in', rating_product_ids)]) - else: - res['base_domain'].append([('id', 'in', [])]) - return res - - def _get_image_size_based_grid(self, columns, view_mode): - if view_mode == 'list': - return 'image_1024' - if columns <= 2: - return 'image_1024' - return 'image_512' - - def _get_product_preview_swatches(self, limit=3): - swatches = [] - for ptav in self.dr_ptav_ids: - if ptav.ptav_active and ptav.ptav_product_variant_ids: - vals = {'id': ptav.id, 'name': ptav.name, 'preview_image': '/web/image/product.product/%s' % ptav.ptav_product_variant_ids.ids[0]} - if ptav.dr_thumb_image: - vals.update({'type': 'image', 'value': '/web/image/product.template.attribute.value/%s/dr_thumb_image' % ptav.id}) - swatches.append(vals) - elif ptav.html_color: - vals.update({'type': 'color', 'value': ptav.html_color}) - swatches.append(vals) - return {'swatches': swatches[:limit], 'more': len(swatches) - limit} + def _get_product_colors(self): + color_variants = self.attribute_line_ids.filtered(lambda x: x.attribute_id.display_type == 'color') + if len(color_variants) == 1: + if len(color_variants.value_ids) == 1: + return [] + return color_variants.value_ids.mapped('html_color') + return [] + @api.model def _get_product_pricelist_offer(self): - website_id = self.env['website'].get_current_website() - if not website_id._dr_has_b2b_access(): - return False - pricelist_id = website_id.get_current_pricelist() - price_rule = pricelist_id._compute_price_rule(self, 1) + partner = self._context.get('partner') + pricelist_id = self._context.get('pricelist') + pricelist = self.env['product.pricelist'].browse(pricelist_id) + + price_rule = pricelist._compute_price_rule([(self, 1, partner)]) price_rule_id = price_rule.get(self.id)[1] if price_rule_id: - rule = self.env['product.pricelist.item'].browse(price_rule_id) + rule = self.env['product.pricelist.item'].browse([price_rule_id]) if rule and rule.date_end: return {'rule': rule, 'date_end': rule.date_end.strftime('%Y-%m-%d %H:%M:%S')} return False - - def _get_combination_info(self, combination=False, product_id=False, add_qty=1, pricelist=False, parent_combination=False, only_template=False): - combination_info = super()._get_combination_info(combination=combination, product_id=product_id, add_qty=add_qty, pricelist=pricelist, parent_combination=parent_combination, only_template=only_template) - if combination_info['product_id']: - website = self.env['website'].get_current_website() - theme_id = website.sudo().theme_id - product_variant_id = self.env['product.product'].browse(combination_info['product_id']) - if website and theme_id and theme_id.name.startswith('theme_prime'): - # Render extra fields on product detail page - IrUiView = self.env['ir.ui.view'] - combination_info['tp_extra_fields'] = IrUiView._render_template('theme_prime.product_extra_fields', values={'website': website, 'product_variant': product_variant_id, 'product': product_variant_id.product_tmpl_id}) - # Hide price per UoM feature for B2B mode - if not website._dr_has_b2b_access(): - combination_info['base_unit_price'] = 0 - return combination_info diff --git a/odex25_donation/droggol_theme_common/models/res_config_settings.py b/odex25_donation/droggol_theme_common/models/res_config_settings.py index 80845421a..09e8633ff 100644 --- a/odex25_donation/droggol_theme_common/models/res_config_settings.py +++ b/odex25_donation/droggol_theme_common/models/res_config_settings.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () +# Copyright (c) 2019-Present Droggol. () from odoo import api, fields, models, _ @@ -7,51 +7,38 @@ from odoo import api, fields, models, _ class ResConfigSettings(models.TransientModel): _inherit = 'res.config.settings' - dr_pwa_activated = fields.Boolean(related='website_id.dr_pwa_activated', readonly=False) - dr_pwa_name = fields.Char(related='website_id.dr_pwa_name', readonly=False) - dr_pwa_short_name = fields.Char(related='website_id.dr_pwa_short_name', readonly=False) - dr_pwa_background_color = fields.Char(related='website_id.dr_pwa_background_color', readonly=False) - dr_pwa_theme_color = fields.Char(related='website_id.dr_pwa_theme_color', readonly=False) - dr_pwa_icon_192 = fields.Binary(related='website_id.dr_pwa_icon_192', readonly=False) - dr_pwa_icon_512 = fields.Binary(related='website_id.dr_pwa_icon_512', readonly=False) - dr_pwa_start_url = fields.Char(related='website_id.dr_pwa_start_url', readonly=False) - dr_pwa_shortcuts = fields.One2many(related='website_id.dr_pwa_shortcuts', readonly=False) - dr_pwa_offline_page = fields.Boolean(related='website_id.dr_pwa_offline_page', readonly=False) - # This has been done in order to fix Odoo's broken behavior for theme customization. # If database already have theme installed, it is impossible to have custom module later. + dr_has_custom_module = fields.Boolean(compute='_compute_dr_has_custom_module') @api.depends('website_id') def _compute_dr_has_custom_module(self): - IrModuleModule = self.env['ir.module.module'] - themes = self._get_droggol_theme_list() + theme_list = self._get_droggol_theme_list() for setting in self: - setting.dr_has_custom_module = False - if setting.website_id and setting.website_id.theme_id and setting.website_id.theme_id.name in themes: + if setting.website_id and setting.website_id.theme_id and setting.website_id.theme_id.name in theme_list: search_term = '%s_%%' % setting.website_id.theme_id.name - has_custom_apps = IrModuleModule.sudo().search([('name', '=ilike', search_term)]) - setting.dr_has_custom_module = bool(has_custom_apps) - - def dr_open_pwa_shortcuts(self): - self.website_id._force() - action = self.env.ref('droggol_theme_common.dr_pwa_shortcuts_action').read()[0] - action['domain'] = [('website_id', '=', self.website_id.id)] - action['context'] = {'default_website_id': self.website_id.id} - return action + has_custom_apps = self.env['ir.module.module'].sudo().search([('name', '=ilike', search_term)]) + if has_custom_apps: + setting.dr_has_custom_module = True + else: + setting.dr_has_custom_module = False + else: + setting.dr_has_custom_module = False def dr_open_theme_custom_modules(self): self.ensure_one() - themes = self._get_droggol_theme_list() - if self.website_id and self.website_id.theme_id and self.website_id.theme_id.name in themes: + theme_list = self._get_droggol_theme_list() + if self.website_id and self.website_id.theme_id and self.website_id.theme_id.name in theme_list: search_term = '%s_%%' % self.website_id.theme_id.name - return { + action = { 'name': _('Theme Customizations'), 'view_mode': 'kanban,tree,form', 'res_model': 'ir.module.module', 'type': 'ir.actions.act_window', 'domain': [('name', '=ilike', search_term)] } + return action return True def _get_droggol_theme_list(self): diff --git a/odex25_donation/droggol_theme_common/models/sale_order.py b/odex25_donation/droggol_theme_common/models/sale_order.py deleted file mode 100644 index 00b0b46cf..000000000 --- a/odex25_donation/droggol_theme_common/models/sale_order.py +++ /dev/null @@ -1,16 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () - -from odoo import models - - -class SaleOrder(models.Model): - _inherit = 'sale.order' - - def _cart_update(self, product_id=None, line_id=None, add_qty=0, set_qty=0, **kwargs): - values = super()._cart_update(product_id=product_id, line_id=line_id, add_qty=add_qty, set_qty=set_qty, **kwargs) - if self.website_id and not self.website_id._dr_has_b2b_access(): - for line in self.order_line: - new_val = super()._cart_update(product_id=line.product_id.id, line_id=line.id, add_qty=-1, set_qty=0, **kwargs) - values.update(new_val) - return values diff --git a/odex25_donation/droggol_theme_common/models/website.py b/odex25_donation/droggol_theme_common/models/website.py index d793dbc97..63a629953 100644 --- a/odex25_donation/droggol_theme_common/models/website.py +++ b/odex25_donation/droggol_theme_common/models/website.py @@ -1,79 +1,70 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () +# Copyright (c) 2019-Present Droggol. () -from odoo import _, api, fields, models +import base64 + +from odoo import _, fields, models, tools, api from odoo.osv import expression -from odoo.tools.translate import html_translate +from odoo.modules.module import get_resource_path class Website(models.Model): _inherit = 'website' - dr_sale_special_offer = fields.Html('Sale Special Offer', sanitize_attributes=False, translate=html_translate, sanitize_form=False) + def _default_footer_logo(self): + image_path = get_resource_path('website', 'static/src/img', 'website_logo.png') + with tools.file_open(image_path, 'rb') as f: + return base64.b64encode(f.read()) - dr_pwa_activated = fields.Boolean('PWA Activated') - dr_pwa_name = fields.Char('PWA Name') - dr_pwa_short_name = fields.Char('PWA Short Name') - dr_pwa_background_color = fields.Char('PWA Background Color', default='#000000') - dr_pwa_theme_color = fields.Char('PWA Theme Color', default='#FFFFFF') - dr_pwa_icon_192 = fields.Binary('PWA Icon 192x192') - dr_pwa_icon_512 = fields.Binary('PWA Icon 512x512') - dr_pwa_start_url = fields.Char('PWA Start URL', default='/shop') - dr_pwa_offline_page = fields.Boolean('PWA Offline Page') - dr_pwa_version = fields.Integer('PWA Version') - dr_pwa_shortcuts = fields.One2many('dr.pwa.shortcuts', 'website_id', string='Shortcuts') + dr_sale_special_offer = fields.Html(sanitize_attributes=False, translate=True) - def _get_brands(self, domain=[], limit=None, order=None): - brand_attributes = self._get_brand_attributes().ids - domain = expression.AND([domain, [('attribute_id', 'in', brand_attributes)]]) - return self.env['product.attribute.value'].search(domain, limit=limit, order=order) - - def _dr_has_b2b_access(self, record=None): - if self._get_dr_theme_config('json_b2b_shop_config')['dr_enable_b2b']: - return not self.env.user.has_group('base.group_public') - return True - - def _get_brand_attributes(self): - """ This will preserver the sequence """ - current_website_products = self.env['product.template'].search(self.sale_product_domain()) - all_brand_attributes = self.env['product.template']._get_brand_attribute() - return self.env['product.template.attribute.line'].search([('product_tmpl_id', 'in', current_website_products.ids), ('attribute_id', 'in', all_brand_attributes.ids)]).mapped('attribute_id') - - def get_dr_theme_config(self): - return self._get_dr_theme_config() + # PWA + dr_pwa_activated = fields.Boolean() + dr_pwa_name = fields.Char() + dr_pwa_short_name = fields.Char() + dr_pwa_background_color = fields.Char(default='#000000') + dr_pwa_theme_color = fields.Char(default='#FFFFFF') + dr_pwa_icon_192 = fields.Binary() + dr_pwa_icon_512 = fields.Binary() + dr_pwa_start_url = fields.Char(default='/shop') + dr_pwa_offline_page = fields.Boolean() + dr_pwa_version = fields.Integer(default=1) + dr_pwa_shortcuts = fields.One2many('dr.pwa.shortcuts', 'website_id') def _get_dr_theme_config(self, key=False): """ See dr.theme.config for more info""" self.ensure_one() website_config = self.env['dr.theme.config']._get_all_config(self.id) - website_config['is_public_user'] = not self.env.user.has_group('website.group_website_restricted_editor') - website_config['has_sign_up'] = False - if website_config.get('json_b2b_shop_config')['dr_enable_b2b']: - website_config['has_sign_up'] = self.env['res.users']._get_signup_invitation_scope() == 'b2c' + website_config['is_public_user'] = not self.env.user.has_group('website.group_website_publisher') if key: return website_config.get(key) return website_config - def _get_pricelist_available(self, req, show_visible=False): - if self._get_dr_theme_config('json_b2b_shop_config')['dr_only_assigned_pricelist'] and not self.env.user.has_group('base.group_website_designer'): - return self.env.user.partner_id.property_product_pricelist - return super()._get_pricelist_available(req, show_visible=show_visible) - - @api.model - def get_theme_prime_shop_config(self): + def _get_theme_prime_shop_config(self): Website = self.get_current_website() - return { - 'is_rating_active': Website.sudo().viewref('website_sale.product_comment').active, - 'is_buy_now_active': Website.sudo().viewref('website_sale.product_buy_now').active, - 'is_multiplier_active': Website.sudo().viewref('website_sale.product_quantity').active, - 'is_wishlist_active': Website.sudo().viewref('website_sale_wishlist.product_add_to_wishlist').active, - 'is_comparison_active': Website.sudo().viewref('website_sale_comparison.add_to_compare').active} + result = { + 'is_rating_active': Website.viewref('website_sale.product_comment').active, + 'is_buy_now_active': Website.viewref('website_sale.product_buy_now').active, + 'is_multiplier_active': Website.viewref('website_sale.product_quantity').active, + 'is_wishlist_active': Website.viewref('website_sale_wishlist.add_to_wishlist').active, + 'is_comparison_active': Website.viewref('website_sale_comparison.add_to_compare').active, + 'is_wishlist_installed': False, + 'is_compare_installed': False, + } + modules = self.env['ir.module.module'].sudo().search(expression.OR([[('name', '=', 'website_sale_wishlist')], [('name', '=', 'website_sale_comparison')]])) + for module in modules: + if module.state == 'installed': + if module.name == 'website_sale_comparison': + result['is_compare_installed'] = True + if module.name == 'website_sale_wishlist': + result['is_wishlist_installed'] = True + return result def _get_website_category(self): return self.env['product.public.category'].search([('website_id', 'in', [False, self.id]), ('parent_id', '=', False)]) def _get_theme_prime_rating_template(self, rating_avg, rating_count=False): - return self.env['ir.ui.view']._render_template('theme_prime.d_rating_widget_stars_static', values={ + return self.env["ir.ui.view"]._render_template('theme_prime.d_rating_widget_stars_static', values={ 'rating_avg': rating_avg, 'rating_count': rating_count, }) @@ -81,17 +72,54 @@ class Website(models.Model): @api.model def get_theme_prime_bottom_bar_action_buttons(self): # Add to cart, blog, checkout, pricelist, language, - return {'tp_home': {'name': _("Home"), 'url': '/', 'icon': 'fa fa-home'}, 'tp_search': {'name': _("Search"), 'icon': 'dri dri-search', 'action_class': 'tp-search-sidebar-action'}, 'tp_wishlist': {'name': _("Wishlist"), 'icon': 'dri dri-wishlist', 'url': '/shop/wishlist'}, 'tp_offer': {'name': _("Offers"), 'url': '/offers', 'icon': 'dri dri-bolt'}, 'tp_brands': {'name': _("Brands"), 'icon': 'dri dri-tag-l ', 'url': '/shop/all-brands'}, 'tp_category': {'name': _("Category"), 'icon': 'dri dri-category', 'action_class': 'tp-category-action'}, 'tp_orders': {'name': _("Orders"), 'icon': 'fa fa-file-text-o', 'url': '/my/orders'}, 'tp_cart': {'name': _("Cart"), 'icon': 'dri dri-cart', 'url': '/shop/cart'}, 'tp_lang_selector': {'name': _("Language and Pricelist selector")}} + return { + 'tp_home': {'name': _("Home"), 'url': '/', 'icon': 'fa fa-home'}, + 'tp_search': {'name': _("Search"), 'icon': 'dri dri-search', 'action_class': 'tp-search-sidebar-action'}, + 'tp_wishlist': {'name': _("Wishlist"), 'icon': 'dri dri-wishlist', 'url': '/shop/wishlist'}, + 'tp_offer': {'name': _("Offers"), 'url': '/offers', 'icon': 'dri dri-bolt'}, + 'tp_brands': {'name': _("Brands"), 'icon': 'dri dri-tag-l ', 'url': '/shop/all_brands'}, + 'tp_category': {'name': _("Category"), 'icon': 'dri dri-category', 'action_class': 'tp-category-action'}, + 'tp_orders': {'name': _("Orders"), 'icon': 'fa fa-file-text-o', 'url': '/my/orders'}, + 'tp_cart': {'name': _("Cart"), 'icon': 'dri dri-cart', 'url': '/shop/cart'}, + 'tp_lang_selector': {'name': _("Language and Pricelist selector")}, + } - def _is_snippet_used(self, snippet_module, snippet_id, asset_version, asset_type, html_fields): - """ There is no versioning for all theme snippets (for the test case)""" - if snippet_module and snippet_module.startswith('theme_prime'): - return True - return super()._is_snippet_used(snippet_module, snippet_id, asset_version, asset_type, html_fields) + def _convert_currency_price(self, amount, from_base_currency=True, rounding_method=None): + """ This function converts amount based website pricelist and company company currency + + :param amount: float or int, + :param from_base_currency: If True then coverts amount from company currency to pricelist currency + else it converts pricelist currency to company currency + :param rounding_method: funcation reference to round the final amount + """ + base_currency = self.company_id.currency_id + pricelist_currency = self.get_current_pricelist().currency_id + if base_currency != pricelist_currency: + if from_base_currency: + amount = base_currency._convert(amount, pricelist_currency, self.company_id, fields.Date.today()) + else: + amount = pricelist_currency._convert(amount, base_currency, self.company_id, fields.Date.today()) + return rounding_method(amount) if rounding_method else amount -class WebsiteSaleExtraField(models.Model): - _inherit = 'website.sale.extra.field' +class ResConfigSettings(models.TransientModel): + _inherit = 'res.config.settings' - dr_label = fields.Char('Display Label', translate=True) - field_id = fields.Many2one('ir.model.fields', domain=[('model_id.model', '=', 'product.template'), '|', ('ttype', 'in', ['char', 'binary']), ('name', 'in', ['public_categ_ids'])]) + # PWA + dr_pwa_activated = fields.Boolean(related='website_id.dr_pwa_activated', readonly=False) + dr_pwa_name = fields.Char(related='website_id.dr_pwa_name', readonly=False) + dr_pwa_short_name = fields.Char(related='website_id.dr_pwa_short_name', readonly=False) + dr_pwa_background_color = fields.Char(related='website_id.dr_pwa_background_color', readonly=False) + dr_pwa_theme_color = fields.Char(related='website_id.dr_pwa_theme_color', readonly=False) + dr_pwa_icon_192 = fields.Binary(related='website_id.dr_pwa_icon_192', readonly=False) + dr_pwa_icon_512 = fields.Binary(related='website_id.dr_pwa_icon_512', readonly=False) + dr_pwa_start_url = fields.Char(related='website_id.dr_pwa_start_url', readonly=False) + dr_pwa_shortcuts = fields.One2many(related='website_id.dr_pwa_shortcuts', readonly=False) + dr_pwa_offline_page = fields.Boolean(related='website_id.dr_pwa_offline_page', readonly=False) + + def dr_open_pwa_shortcuts(self): + self.website_id._force() + action = self.env.ref('droggol_theme_common.dr_pwa_shortcuts_action').read()[0] + action['domain'] = [('website_id', '=', self.website_id.id)] + action['context'] = {'default_website_id': self.website_id.id} + return action diff --git a/odex25_donation/droggol_theme_common/models/website_menu.py b/odex25_donation/droggol_theme_common/models/website_menu.py deleted file mode 100644 index f3217a28d..000000000 --- a/odex25_donation/droggol_theme_common/models/website_menu.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () - -from odoo import api, fields, models - - -class WebsiteMenu(models.Model): - _inherit = 'website.menu' - - dr_menu_label_id = fields.Many2one('dr.website.menu.label', string='Label') - dr_highlight_menu = fields.Selection([('solid', 'Solid'), ('soft', 'Soft')], string='Highlight Menu') - - @api.model - def get_tree(self, website_id, menu_id=None): - result = super().get_tree(website_id, menu_id=menu_id) - for menu in result['children']: - menu['fields']['dr_highlight_menu'] = self.browse(menu['fields']['id']).dr_highlight_menu - return result diff --git a/odex25_donation/droggol_theme_common/security/ir.model.access.csv b/odex25_donation/droggol_theme_common/security/ir.model.access.csv index 995b85a21..5eb03147a 100644 --- a/odex25_donation/droggol_theme_common/security/ir.model.access.csv +++ b/odex25_donation/droggol_theme_common/security/ir.model.access.csv @@ -3,8 +3,14 @@ access_dr_product_label_manager,dr.product.label.manager,model_dr_product_label, access_dr_product_label_public,dr.product.label.public,model_dr_product_label,,1,0,0,0 access_dr_product_public_category_label_manager,dr.product.public.category.label.manager,model_dr_product_public_category_label,sales_team.group_sale_manager,1,1,1,1 access_dr_product_public_category_label_public,dr.product.public.category.label.public,model_dr_product_public_category_label,,1,0,0,0 -access_dr_website_content_manager,dr.website.content.manager,model_dr_website_content,sales_team.group_sale_manager,1,1,1,1 -access_dr_website_content_public,dr.website.content.public,model_dr_website_content,,1,0,0,0 +access_dr_product_brand_manager,dr.product.brand.manager,model_dr_product_brand,sales_team.group_sale_manager,1,1,1,1 +access_dr_product_brand_public,dr.product.brand.public,model_dr_product_brand,,1,0,0,0 +access_dr_product_tags_manager,dr.product.tags.manager,model_dr_product_tags,sales_team.group_sale_manager,1,1,1,1 +access_dr_product_tags_public,dr.product.tags.public,model_dr_product_tags,,1,0,0,0 +access_dr_product_tabs_manager,dr.product.tabs.manager,model_dr_product_tabs,sales_team.group_sale_manager,1,1,1,1 +access_dr_product_tabs_public,dr.product.tabs.public,model_dr_product_tabs,,1,0,0,0 +access_dr_product_offer_manager,dr.product.offer.manager,model_dr_product_offer,sales_team.group_sale_manager,1,1,1,1 +access_dr_product_offer_public,dr.product.offer.public,model_dr_product_offer,,1,0,0,0 access_dr_website_menu_label_designer,dr.website.menu.label.designer,model_dr_website_menu_label,website.group_website_designer,1,1,1,1 access_dr_website_menu_label,dr.website.menu.label.public,model_dr_website_menu_label,,1,0,0,0 access_dr_pwa_shortcuts_designer,dr.pwa.shortcuts.designer,model_dr_pwa_shortcuts,website.group_website_designer,1,1,1,1 diff --git a/odex25_donation/droggol_theme_common/static/description/index.html b/odex25_donation/droggol_theme_common/static/description/index.html index 32801ca72..d45acc8b0 100644 --- a/odex25_donation/droggol_theme_common/static/description/index.html +++ b/odex25_donation/droggol_theme_common/static/description/index.html @@ -4,7 +4,7 @@
- +
diff --git a/odex25_donation/droggol_theme_common/static/src/images/settings.png b/odex25_donation/droggol_theme_common/static/src/images/settings.png deleted file mode 100644 index 005aaed3a..000000000 Binary files a/odex25_donation/droggol_theme_common/static/src/images/settings.png and /dev/null differ diff --git a/odex25_donation/droggol_theme_common/static/src/js/backend/list_view_brand.js b/odex25_donation/droggol_theme_common/static/src/js/backend/list_view_brand.js new file mode 100644 index 000000000..d57564d12 --- /dev/null +++ b/odex25_donation/droggol_theme_common/static/src/js/backend/list_view_brand.js @@ -0,0 +1,38 @@ +odoo.define('droggol_theme_common.list_view_brand', function (require) { +"use strict"; + +const core = require('web.core'); +const Dialog = require('web.Dialog'); +const ListController = require('web.ListController'); +const ListView = require('web.ListView'); +const viewRegistry = require('web.view_registry'); + +const _t = core._t; + +const BrandListController = ListController.extend({ + buttons_template: 'BrandListView.buttons', + events: _.extend({}, ListController.prototype.events, { + 'click .o_button_reorder': '_onClickReorder', + }), + _onClickReorder: function () { + const self = this; + Dialog.confirm(this, _t('This will reorder sequence of all brands based on alphabetical order (from A to Z).'), { + confirm_callback: function () { + self._rpc({ + model: self.modelName, + method: 'reorder_sequence', + }).then(() => self.reload()); + } + }); + }, +}); + +const BrandListView = ListView.extend({ + config: _.extend({}, ListView.prototype.config, { + Controller: BrandListController, + }), +}); + +viewRegistry.add('dr_list_view_brand', BrandListView); + +}); diff --git a/odex25_donation/droggol_theme_common/static/src/js/backend/res_config_settings.js b/odex25_donation/droggol_theme_common/static/src/js/backend/res_config_settings.js new file mode 100644 index 000000000..4465c9c3a --- /dev/null +++ b/odex25_donation/droggol_theme_common/static/src/js/backend/res_config_settings.js @@ -0,0 +1,16 @@ +odoo.define('droggol_theme_common.settings', function (require) { + +const BaseSettingController = require('base.settings').Controller; +const FormController = require('web.FormController'); + +BaseSettingController.include({ + _onButtonClicked: function (ev) { + if (ev.data.attrs.name === 'dr_open_pwa_shortcuts' || ev.data.attrs.name === 'dr_open_theme_custom_modules') { + FormController.prototype._onButtonClicked.apply(this, arguments); + } else { + this._super.apply(this, arguments); + } + }, +}); + +}); diff --git a/odex25_donation/droggol_theme_common/static/src/js/components/theme_config.js b/odex25_donation/droggol_theme_common/static/src/js/components/theme_config.js deleted file mode 100644 index ad86cdb94..000000000 --- a/odex25_donation/droggol_theme_common/static/src/js/components/theme_config.js +++ /dev/null @@ -1,273 +0,0 @@ -/** @odoo-module **/ - -import { WebsiteDialog } from '@website/components/dialog/dialog'; -import { evaluateExpr } from "@web/core/py_js/py"; - -const { Component, useState, onWillStart, onWillUpdateProps, toRaw } = owl; -import { useService } from '@web/core/utils/hooks'; -import { useCore } from '@droggol_theme_common/js/hooks'; - -import { _t } from 'web.core'; - - -export class AbstractThemeOption extends Component { - setup() { - this.key = this.props.key; - onWillUpdateProps(nextProps => { - this.updateVal(nextProps); - }); - } - updateVal (props) { - if (props.visibilityExpr) { - props['visibility'] = evaluateExpr(props.visibilityExpr, props.source) - } - this.env.updateConfigValue(this.key, props.value) - } - updateSource (value) { - this.env.updateSource(this.key, value) - } -} - -export class ThemeOptionTitle extends AbstractThemeOption {} -ThemeOptionTitle.template = 'theme_config.ThemeOptionTitle'; - -export class ThemeOptionRadio extends AbstractThemeOption {} -ThemeOptionRadio.template = 'theme_config.ThemeOptionRadio'; - -export class ThemeOptionSelection extends AbstractThemeOption {} -ThemeOptionSelection.template = 'theme_config.Selection'; - -export class ThemeOptionCheckbox extends AbstractThemeOption {} -ThemeOptionCheckbox.template = 'theme_config.Checkbox'; - -export class ThemeOptionCardBtnCheckbox extends AbstractThemeOption {} -ThemeOptionCardBtnCheckbox.template = 'theme_config.BtnCheckbox'; - -export class ThemeOptionNumber extends AbstractThemeOption {} -ThemeOptionNumber.template = 'theme_config.Number'; - -export class ThemeOptionChar extends AbstractThemeOption {} -ThemeOptionChar.template = 'theme_config.Char'; - -export class ThemeOptionJson extends AbstractThemeOption { - setup() { - super.setup(); - this.updatedValue = this.props.value; - this._coreProps = { - updateConfigValue: this.updateConfigValue.bind(this), - updateSource: this.updateSource.bind(this), - }; - useCore({subMode: true}); - } - prepareProps (self_props, sub_props) { - var props = sub_props || {}; - props['visibility'] = true; - props['source'] = self_props.source[self_props.key]; - if (props.visibilityExpr) { - props['visibility'] = evaluateExpr(props.visibilityExpr, props['source']) - } - props['value'] = props['source'][sub_props.key] || false; - return props; - } - updateConfigValue (key, value) { - var rawValue = toRaw(this.updatedValue); - rawValue[key] = value; - this.env.updateConfigValue(this.key, rawValue); - } - updateSource (key, value) { - this.props.source[this.key][key] = value; - this.env.updateSource(this.key, this.props.source[this.key]); - } -} -ThemeOptionJson.template = 'theme_config.JSON'; - -export class ThemeOptionBottomBar extends AbstractThemeOption { - setup() { - super.setup(); - this.orm = useService("orm"); - this.state = useState({ - 'actions': this.props.value - }); - onWillStart(async () => { - this.allButtons = await this.orm.call('website', 'get_theme_prime_bottom_bar_action_buttons'); - }); - } - removeAction (action) { - const index = this.state.actions.indexOf(action); - this.state.actions.splice(index, 1); - this.updateSource(this.state.actions); - } - addAction (action) { - this.state.actions.push(action); - this.updateSource(this.state.actions); - } -} -ThemeOptionBottomBar.template = 'theme_config.BottomBar'; - - -export class ThemeConfigDialog extends Component { - setup() { - this.orm = useService('orm'); - this.website = useService('website'); - this.title = this.env._t("Theme Configuration"); - this.primaryTitle = this.env._t("Save"); - this.size = 'md'; - this.updatedValue = {}; - this.source = useState({}); - this._coreProps = { - updateConfigValue: this.updateConfigValue.bind(this), - updateSource: this.updateSource.bind(this) - }; - onWillStart(async () => { - var source = await this.orm.call("website", "get_dr_theme_config", [this.website.currentWebsite.id]); - for (var key in source) { - this.source[key] = source[key]; - } - }); - useCore({}); - } - - async saveConfig() { - await this.orm.call("dr.theme.config", "save_config", [[], this.website.currentWebsite.id, this.updatedValue]); - window.location.reload(); - } - - get _tabInfo() { - return [{ - name: 'general', - icon: 'fa fa-sliders', - label: _t('General'), - components: [ - { props: { title: _t('Search'), subtitle: _t('Tweak search behavior for your website.'), _classes: 'mt-0'}, componentRef: ThemeOptionTitle }, - { props: { key: 'json_product_search', components: [ - { props: { key: 'advance_search', label: _t('Enable advance search')}, componentRef: ThemeOptionCheckbox }, - { props: { key: 'search_category', label: _t('Categories'), visibilityExpr: 'advance_search'}, componentRef: ThemeOptionCheckbox }, - { props: { key: 'search_attribute', label: _t('Smart Autocomplete'), visibilityExpr: 'advance_search'}, componentRef: ThemeOptionCheckbox }, - { props: { key: 'search_suggestion', label: _t('Smart Suggestion'), visibilityExpr: 'advance_search'}, componentRef: ThemeOptionCheckbox }, - { props: { key: 'search_fuzzy', label: _t('Fuzzy search'), visibilityExpr: 'advance_search'}, componentRef: ThemeOptionCheckbox }, - { props: { key: 'search_max_product', label: _t('Products limit'), tooltip: _("Max 5"), visibilityExpr: 'advance_search'}, componentRef: ThemeOptionNumber }, - { props: { key: 'search_limit', label: _t('Result Limit'), tooltip: _("Min 5 and Max 10"), visibilityExpr: 'advance_search'}, componentRef: ThemeOptionNumber }, - ]}, componentRef: ThemeOptionJson}, - { props: { key: 'cart_flow_title', title: _t('Cart Flow'), subtitle: _t('You can change how products are being added in cart.')}, key: 'cart_flow_title', componentRef: ThemeOptionTitle}, - { props: { key: 'cart_flow', selection: [['default', 'Default'], ['notification', 'Notification'], ['dialog', 'Dialog'], ['side_cart', 'Open Cart Sidebar']]}, componentRef: ThemeOptionRadio}, - { props: { key: 'brand_title', title: _t('Brand Page')}, componentRef: ThemeOptionTitle}, - { props: { key: 'json_brands_page', components: [ - { props: { key: 'disable_brands_grouping', label: _t('Disable grouping of brands')}, componentRef: ThemeOptionCheckbox } - ]}, componentRef: ThemeOptionJson}, - { props: { key: 'lang_title', title: _t('Language/Pricelist Selector')}, componentRef: ThemeOptionTitle}, - { props: { key: 'json_general_language_pricelist_selector', components: [ - { props: { key: 'hide_country_flag', label: _t('Hide country flag')}, componentRef: ThemeOptionCheckbox } - ]}, componentRef: ThemeOptionJson}, - { props: { title: _t('B2b Configuration'), subtitle: _t('Tweak your shop behavior.')}, componentRef: ThemeOptionTitle }, - { props: { key: 'json_b2b_shop_config', components: [{ props: { key: 'dr_enable_b2b', label: _t('B2B Mode'), tooltip: _("This option will hide product price for public users and don't allow them to place an order") }, componentRef: ThemeOptionCheckbox }, { props: { key: 'dr_only_assigned_pricelist', label: _t('Pricelist per customer'), tooltip: _("After enabling this option user will only see assigned pricelist to their contact record.") }, componentRef: ThemeOptionCheckbox }]}, componentRef: ThemeOptionJson}, - ] - }, { - name: 'shop', - icon: 'fa fa-shopping-cart', - label: _t('Shop'), - components: [ - { props: { title: _t('Shop'), subtitle: _t('Shop page main layout.'), _classes: 'mt-0' }, componentRef: ThemeOptionTitle }, - { props: { key: 'json_shop_layout', components: [ - { props: { key: 'layout', label: _t('Layout'), selection: [['prime', 'Prime'], ['default', 'Default']]}, componentRef: ThemeOptionSelection }, - { props: { key: 'show_view_switcher', label: _t('Show view switcher'), visibilityExpr: "layout == 'prime'"}, componentRef: ThemeOptionCheckbox }, - { props: { key: 'default_view_mode', label: _t('Default view mode'), selection: [['grid', 'Grid'], ['list', 'List']], visibilityExpr: "layout == 'prime'"}, componentRef: ThemeOptionSelection }, - { props: { key: 'load_more_products', label: _t('Behavior of load more products'), selection: [['pager', 'Pager'], ['button', 'Load More Button'], ['scroll', 'Infinite Scroll']], visibilityExpr: "layout == 'prime'"}, componentRef: ThemeOptionSelection }, - ], visibilityKey: 'enable'}, componentRef: ThemeOptionJson}, - { props: { title: _t('Category Pills'), subtitle: _t('Show product category pills on top of the shop page.'), visibilityExpr: "json_shop_layout.layout == 'prime'"}, componentRef: ThemeOptionTitle }, - { props: { key: 'json_shop_category_pills', components: [ - { props: { key: 'active', label: _t('Enable category pills')}, componentRef: ThemeOptionCheckbox }, - { props: { key: 'style', label: _t('Style'), selection: [['1', 'Card'], ['2', 'Text'], ['3', 'Image + Text'], ['4', 'Image + Text (Rounded)'], ['5', 'Image Only']], visibilityExpr: 'active'}, componentRef: ThemeOptionSelection }, - { props: { key: 'show_child_categories', label: _t('Show child categories pills of active category'), visibilityExpr: 'active'}, componentRef: ThemeOptionCheckbox }, - { props: { key: 'hide_in_desktop', label: _t('Hide in desktop device'), visibilityExpr: 'active'}, componentRef: ThemeOptionCheckbox }, - ], visibilityExpr: "json_shop_layout.layout == 'prime'"}, componentRef: ThemeOptionJson}, - { props: { title: _t('Shop Filter'), subtitle: _t('Tweak filters behavior on shop.'), visibilityExpr: "json_shop_layout.layout == 'prime'"}, componentRef: ThemeOptionTitle }, - { props: { key: 'json_shop_filters', components: [ - { props: { key: 'lazy_method', label: _t('Apply filters with lazy method') }, componentRef: ThemeOptionCheckbox }, - { props: { key: 'filter_style', label: _t('Filter Style'), selection: [['1', 'Clean'], ['2', 'Underline'], ['3', 'Card'], ['4', 'Bordered'], ['5', 'Boxed']]}, componentRef: ThemeOptionSelection }, - { props: { key: 'show_in_sidebar', label: _t('Show filters in sidebar')}, componentRef: ThemeOptionCheckbox }, - { props: { key: 'filter_position', label: _t('Filter Position'), selection: [['left', 'Left'], ['right', 'Right']], visibilityExpr: "show_in_sidebar == false"}, componentRef: ThemeOptionSelection }, - { props: { key: 'collapsible_category', label: _t('Collapsible category')}, componentRef: ThemeOptionCheckbox }, - { props: { key: 'collapsible_attribute', label: _t('Collapsible attributes')}, componentRef: ThemeOptionCheckbox }, - { props: { key: 'show_category_count', label: _t('Show category count')}, componentRef: ThemeOptionCheckbox }, - { props: { key: 'show_attribute_count', label: _t('Show attribute count') }, componentRef: ThemeOptionCheckbox }, - { props: { key: 'hide_extra_attrib_value', label: _t('Hide extra attributes'), tooltip: _("Hide attribute value if it is not matched with any product") }, componentRef: ThemeOptionCheckbox }, - { props: { key: 'show_rating_filter', label: _t('Show rating filter'), tooltip: _("To show rating filter, First you have to activate customers 'Rating' option in product detail page.")}, componentRef: ThemeOptionCheckbox }, - { props: { key: 'show_availability_filter', label: _t('Show availability filter'), tooltip: _("If you have large number of products this option may affect performance.")}, componentRef: ThemeOptionCheckbox }, - ], visibilityExpr: "json_shop_layout.layout == 'prime'"}, componentRef: ThemeOptionJson}, - { props: { title: _t('Product Card'), subtitle: _t('Configure actions and style of product card.'), visibilityExpr: "json_shop_layout.layout == 'prime'"}, componentRef: ThemeOptionTitle }, - { props: { key: 'json_shop_product_item', components: [ - { props: { key: 'style', label: _t('Style'), selection: [['1', 'Square'], ['2', 'Rounded']]}, componentRef: ThemeOptionSelection }, - { props: { key: 'image_size', label: _t('Image Size'), selection: [['default', 'Default (1/1)'], ['landscape', 'Landscape (4/3)'], ['portrait', 'Portrait (4/5)'], ['vertical', 'Vertical (2/3)']]}, componentRef: ThemeOptionSelection }, - { props: { key: 'image_fill', label: _t('Image Fill'), selection: [['contain', 'Contain'], ['cover', 'Cover'], ['fill', 'Fill']]}, componentRef: ThemeOptionSelection }, - { props: { title: _t('Product Card Actions'), subtitle: _t('Configure action buttons of product card in shop page.')}, componentRef: ThemeOptionTitle }, - { props: { key: 'show_add_to_cart', icon: 'fa fa-shopping-cart', label: _t('Show add to cart')}, componentRef: ThemeOptionCardBtnCheckbox }, - { props: { key: 'show_wishlist', icon: 'fa fa-heart', label: _t('Show wishlist')}, componentRef: ThemeOptionCardBtnCheckbox }, - { props: { key: 'show_compare', icon: 'fa fa-retweet', label: _t('Show compare')}, componentRef: ThemeOptionCardBtnCheckbox }, - { props: { key: 'show_quick_view', icon: 'fa fa-eye', label: _t('Show quick view')}, componentRef: ThemeOptionCardBtnCheckbox }, - { props: { key: 'show_similar_products', icon: 'fa fa-clone', label: _t('Show similar products')}, componentRef: ThemeOptionCardBtnCheckbox }, - { props: { key: 'show_product_preview_swatches', icon: 'fa fa-adjust', label: _t('Show product preview swatches')}, componentRef: ThemeOptionCardBtnCheckbox }, - { props: { key: 'show_rating', icon: 'fa fa-star', label: _t('Show rating'), tooltip: _("To show rating, First you have to activate customers 'Rating' option in product detail page.")}, componentRef: ThemeOptionCardBtnCheckbox }, - { props: { key: 'show_stock_label', icon: 'fa fa-tag', label: _t('Show stock label')}, componentRef: ThemeOptionCardBtnCheckbox }, - ], visibilityExpr: "json_shop_layout.layout == 'prime'"}, componentRef: ThemeOptionJson}, - ] - }, { - name: 'product_detail', - icon: 'fa fa-cube', - label: _t('Product Detail'), - components: [ - { props: { title: _t('Zoom Product Images'), subtitle: _t('Zoom product images in product detail page and quick view.'), _classes: 'mt-0' }, componentRef: ThemeOptionTitle }, - { props: { key: 'json_zoom', components: [ - { props: { key: 'zoom_enabled', label: _t('Enable zoom')}, componentRef: ThemeOptionCheckbox }, - { props: { key: 'zoom_factor', label: _t('Zoom factor'), visibilityExpr: 'zoom_enabled'}, componentRef: ThemeOptionNumber }, - ], visibilityKey: 'zoom_enabled'}, componentRef: ThemeOptionJson}, - { props: { title: _t('Sticky Add to Cart'), subtitle: _t("Allows users to follow up product's Add to Cart button until bottom scroll reached."), }, componentRef: ThemeOptionTitle }, - { props: { key: 'bool_sticky_add_to_cart', 'label': _t('Enable sticky add to cart') }, componentRef: ThemeOptionCheckbox}, - { props: { title: _t('Product Offers'), subtitle: _t("You will be able to add offers on product and show details in dialog.")}, componentRef: ThemeOptionTitle }, - { props: { key: 'bool_product_offers', 'label': _t('Enable product offers') }, componentRef: ThemeOptionCheckbox}, - { props: { title: _t('General')}, componentRef: ThemeOptionTitle }, - { props: { key: 'bool_show_products_nav', 'label': _t('Product Navigation'), tooltip: _t("Shows button to see next, previous products based on product sequence.") }, componentRef: ThemeOptionCheckbox}, - ] - }, { - name: 'mobile', - icon: 'fa fa-mobile', - label: _t('Mobile'), - components: [ - { props: { title: _t('Sidebar'), subtitle: _t('You can change behaviour of sidebars.'), _classes: 'mt-0' }, componentRef: ThemeOptionTitle }, - { props: { key: 'json_sidebar_config', components: [ - { props: { key: 'category_sidebar_style', label: _t('Category sidebar style'), selection: [['1', 'Text'], ['2', 'Image + Text'], ['3', 'Cover']]}, componentRef: ThemeOptionSelection }, - { props: { key: 'category_sidebar_show_count', label: _t('Show product count in category sidebar') }, componentRef: ThemeOptionCheckbox }, - { props: { key: 'menu_sidebar_show_category', label: _t('Show category link in menu sidebar') }, componentRef: ThemeOptionCheckbox }, - ]}, componentRef: ThemeOptionJson}, - { props: { title: _t('Bottombar'), subtitle: _t("Bottom bar allow movement between primary destinations on the website.")}, componentRef: ThemeOptionTitle }, - { props: { key: 'json_bottom_bar', components: [ - { props: { key: 'show_bottom_bar', label: _t('Show Bottombar')}, componentRef: ThemeOptionCheckbox }, - { props: { key: 'show_bottom_bar_on_scroll', label: _t('Show Bottombar On Scroll'), visibilityExpr: 'show_bottom_bar'}, componentRef: ThemeOptionCheckbox }, - { props: { key: 'filters', label: _t('Show sort and filter button on shop'), visibilityExpr: 'show_bottom_bar'}, componentRef: ThemeOptionCheckbox }, - { props: { key: 'actions', label: _t('Buttombar Buttons'), visibilityExpr: 'show_bottom_bar'}, componentRef: ThemeOptionBottomBar }, - ], visibilityKey: 'show_bottom_bar'}, componentRef: ThemeOptionJson}, - ] - } - ];} - prepareProps (props) { - props = props || {}; - props['source'] = this.source; - props['visibility'] = true; - if (props.key) { - props['value'] = this.source[props.key] || false; - } - if (props.visibilityExpr) { - props['visibility'] = evaluateExpr(props.visibilityExpr, this.source) - } - return props; - } - - updateConfigValue (key, value) { - this.updatedValue[key] = value; - } - updateSource (key, value) { - this.source[key] = value; - } -} - -ThemeConfigDialog.template = 'droggol_theme_common.ThemeConfigDialog'; -ThemeConfigDialog.components = { WebsiteDialog }; diff --git a/odex25_donation/droggol_theme_common/static/src/js/components/theme_config.scss b/odex25_donation/droggol_theme_common/static/src/js/components/theme_config.scss deleted file mode 100644 index b88bc3f54..000000000 --- a/odex25_donation/droggol_theme_common/static/src/js/components/theme_config.scss +++ /dev/null @@ -1,75 +0,0 @@ -$tp-setting-color: #0080ff; - -.tp_config_dialog { - border-radius: 16px; - .text-primary { - color: $tp-setting-color !important; - } - .bg-tpc-primary { - background-color: $tp-setting-color; - color: #fff; - } - .bg-tpc-primary-dark { - background-color: darken($tp-setting-color, 10%); - color: #fff; - } - .tp-cp { - cursor: pointer; - } - .pe-24 { - padding-right: 24px !important; - } - header { - h4, .btn-close{ - display: none; - } - } - .tp-setting-tab{ - font-weight: bold; - border-radius: 6px; - letter-spacing: 1px; - color: #000; - &.active { - background-color: rgba($tp-setting-color, 0.15); - color: $tp-setting-color; - } - } - .o_switch { - input + span { - padding-left: 4px; - padding-right: 2px; - width: 37px; - height: 21px; - background: #c1ccdd !important; - &:after { - margin-top: 1px; - display: inline-block; - } - } - input:checked + span { - background: #06bb72 !important; - // background: $tp-setting-color !important; - } - } - - .tp-setting-bg { - background-color: #e7f1ff; - border-radius: 10px; - } - - .form-check-input:checked { - background-color: $tp-setting-color; - border-color: $tp-setting-color; - } - .btn-outline-primary { - border-color: $tp-setting-color; - color: $tp-setting-color; - &:hover { - background-color: #c1ccdd; - } - } - .btn-check:checked + .btn-outline-primary { - background-color: $tp-setting-color; - border-color: $tp-setting-color; - } -} \ No newline at end of file diff --git a/odex25_donation/droggol_theme_common/static/src/js/components/theme_config.xml b/odex25_donation/droggol_theme_common/static/src/js/components/theme_config.xml deleted file mode 100644 index c5d6dfd25..000000000 --- a/odex25_donation/droggol_theme_common/static/src/js/components/theme_config.xml +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - -
-
- -
-
- -
-
-
- - - User Guide - - -
-
-
- -
- - - -
-
-
-
- -
- -
-
- - - -
- -
-

- -

-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- -
- - -
-
- - -
-
- - -
-
-
- - - - - - - - - -
- - -
-
-
- - - -
- - -
-
-
- - - - - - - - - - - -
- - - - - - -
-
- - - - - -
-
-
- - - - - - -
\ No newline at end of file diff --git a/odex25_donation/droggol_theme_common/static/src/js/hooks.js b/odex25_donation/droggol_theme_common/static/src/js/hooks.js deleted file mode 100644 index 97bb9d587..000000000 --- a/odex25_donation/droggol_theme_common/static/src/js/hooks.js +++ /dev/null @@ -1,21 +0,0 @@ -/** @odoo-module **/ - -import { useComponent, useChildSubEnv} from "@odoo/owl"; - -// We add here a custom hook -function extendUseCore(cc, newCore, subMode) { - if (!subMode) { - const currentCore = Object.create(cc.env); - const newCoreDescriptors = Object.getOwnPropertyDescriptors(newCore); - cc.env = Object.freeze(Object.defineProperties(currentCore, newCoreDescriptors)); - } - useChildSubEnv(newCore) -} - -export function useCore({core = false, subMode = false}) { - const cc = useComponent(); - core = core || cc._coreProps; - if (core) { - extendUseCore(cc, core, subMode) - } -} \ No newline at end of file diff --git a/odex25_donation/droggol_theme_common/static/src/js/navbar/navbar.js b/odex25_donation/droggol_theme_common/static/src/js/navbar/navbar.js deleted file mode 100644 index 17c205937..000000000 --- a/odex25_donation/droggol_theme_common/static/src/js/navbar/navbar.js +++ /dev/null @@ -1,10 +0,0 @@ -/** @odoo-module **/ - -import { registry } from "@web/core/registry"; -import { ThemeConfigDialog } from '../components/theme_config'; - -registry.category('website_custom_menus').add('droggol_theme_common.menu_theme_prime_config', { - Component: ThemeConfigDialog, - isDisplayed: (env) => !!env.services.website.currentWebsite - && env.services.website.isDesigner -}); diff --git a/odex25_donation/droggol_theme_common/static/src/scss/variants.scss b/odex25_donation/droggol_theme_common/static/src/scss/variants.scss index 74ca788ae..8410da9d0 100644 --- a/odex25_donation/droggol_theme_common/static/src/scss/variants.scss +++ b/odex25_donation/droggol_theme_common/static/src/scss/variants.scss @@ -1,56 +1,56 @@ //------------------------------------------------------------------------------ // Variants //------------------------------------------------------------------------------ -.dr-attribute-info-btn { - display: none; -} -.dr-attribute-item { - .dr-value-item { - &.circle { - padding: 0; - height: 38px; - width: 38px; - line-height: 38px; - text-align: center; - border-radius: 50%; - } - &.square { - padding: 6px 12px; - border-radius: $border-radius; - } - &.circle, &.square { - background-color: o-color('white'); - border: 1px solid o-color('300'); - transition: 0.2s; - font-weight: $font-weight-normal; - cursor: pointer; - &:hover { - border-color: o-color('primary'); - color: o-color('primary'); +.dr-variant { + .radio_input_value { + margin-right: 0.4rem; + .dr-variant-item { + &.circle { + padding: 0; + height: 38px; + width: 38px; + line-height: 38px; + text-align: center; + border-radius: 50%; } - } - &.image { - margin-right: 0.4rem; - border-width: 0; - transition: 0.2s; - cursor: pointer; - box-shadow: 0px 0px 0px 2px o-color('300'); - &:hover { - box-shadow: 0px 0px 0px 2px o-color('primary'); + &.square { + padding: 6px 12px; + border-radius: $border-radius; } - img { - padding: 2px; - object-fit: contain; - height: 40px; - width: 40px; + &.circle, &.square { + background-color: o-color('white'); + border: 1px solid o-color('300'); + transition: 0.2s; + font-weight: $font-weight-normal; + cursor: pointer; + @include hover { + border-color: o-color('primary'); + color: o-color('primary'); + } + } + &.image { + margin-right: 0.4rem; + border-width: 0; + transition: 0.2s; + cursor: pointer; + box-shadow: 0px 0px 0px 2px o-color('300'); + @include hover { + box-shadow: 0px 0px 0px 2px o-color('primary'); + } + img { + padding: 2px; + object-fit: contain; + height: 40px; + width: 40px; + } } } } - input:checked ~ .radio_input_value .dr-value-item { + input:checked ~ .radio_input_value .dr-variant-item { &.circle, &.square { background-color: o-color('primary'); border-color: o-color('primary'); - color: color-contrast(o-color('primary')); + color: color-yiq(o-color('primary')); } &.image { box-shadow: 0px 0px 0px 2px o-color('primary'); diff --git a/odex25_donation/droggol_theme_common/static/src/snippets/s_mega_menu_prime_3/000.scss b/odex25_donation/droggol_theme_common/static/src/snippets/s_mega_menu_prime_3/000.scss deleted file mode 100644 index 940c0b34d..000000000 --- a/odex25_donation/droggol_theme_common/static/src/snippets/s_mega_menu_prime_3/000.scss +++ /dev/null @@ -1,11 +0,0 @@ -.s_mega_menu_prime_3 .s_badge { - margin: 0; - margin-left: 0.4rem; - padding: 0.4em 0.6em; - font-size: 0.66rem; - border-radius: 3px; - padding-top: 5px; - i { - margin-right: 0.3rem; - } -} diff --git a/odex25_donation/droggol_theme_common/static/src/snippets/s_mega_menu_prime_6/000.scss b/odex25_donation/droggol_theme_common/static/src/snippets/s_mega_menu_prime_6/000.scss deleted file mode 100644 index cbabba9e5..000000000 --- a/odex25_donation/droggol_theme_common/static/src/snippets/s_mega_menu_prime_6/000.scss +++ /dev/null @@ -1,7 +0,0 @@ -.s_mega_menu_prime_6 .tp-banner-block { - min-height: 400px; - .tp-banner-text { - @include o-position-absolute($right: 18px, $bottom: 20px, $left: 18px); - padding: 1rem; - } -} diff --git a/odex25_donation/droggol_theme_common/static/src/xml/backend/list_view_brand.xml b/odex25_donation/droggol_theme_common/static/src/xml/backend/list_view_brand.xml new file mode 100644 index 000000000..bd392c28f --- /dev/null +++ b/odex25_donation/droggol_theme_common/static/src/xml/backend/list_view_brand.xml @@ -0,0 +1,12 @@ + + + + + + + + + + diff --git a/odex25_donation/droggol_theme_common/views/assets.xml b/odex25_donation/droggol_theme_common/views/assets.xml new file mode 100644 index 000000000..b3ecbe58c --- /dev/null +++ b/odex25_donation/droggol_theme_common/views/assets.xml @@ -0,0 +1,23 @@ + + + + + + + + + + \ No newline at end of file diff --git a/odex25_donation/droggol_theme_common/views/snippets/s_mega_menu.xml b/odex25_donation/droggol_theme_common/views/snippets/s_mega_menu.xml deleted file mode 100644 index 05c3a29d8..000000000 --- a/odex25_donation/droggol_theme_common/views/snippets/s_mega_menu.xml +++ /dev/null @@ -1,513 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - Mega Menu Prime 3 000 SCSS - web.assets_frontend - droggol_theme_common/static/src/snippets/s_mega_menu_prime_3/000.scss - - - - Mega Menu Prime 6 000 SCSS - web.assets_frontend - droggol_theme_common/static/src/snippets/s_mega_menu_prime_6/000.scss - - - diff --git a/odex25_donation/droggol_theme_common/views/templates.xml b/odex25_donation/droggol_theme_common/views/templates.xml deleted file mode 100644 index dd6d664c3..000000000 --- a/odex25_donation/droggol_theme_common/views/templates.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - diff --git a/odex25_donation/theme_prime/CHANGELOG.md b/odex25_donation/theme_prime/CHANGELOG.md index a15a00dde..9e3816439 100644 --- a/odex25_donation/theme_prime/CHANGELOG.md +++ b/odex25_donation/theme_prime/CHANGELOG.md @@ -1,30 +1,99 @@ -## [16.0.0.0.7] - 02/02/2023 -### Fixed -- Cart lines issue when loyalty installed + diff --git a/odex25_donation/theme_prime/COPYRIGHT b/odex25_donation/theme_prime/COPYRIGHT index e27598c6a..29dedfc41 100644 --- a/odex25_donation/theme_prime/COPYRIGHT +++ b/odex25_donation/theme_prime/COPYRIGHT @@ -1,7 +1,7 @@ Most of the files are -Copyright (c) 2019 - present Droggol Infotech Private Limited. +Copyright (c) 2019 - present Droggol. Some javascript files might be from from third parties libraries. In that case the original diff --git a/odex25_donation/theme_prime/__init__.py b/odex25_donation/theme_prime/__init__.py index 3a586451a..74e1605aa 100644 --- a/odex25_donation/theme_prime/__init__.py +++ b/odex25_donation/theme_prime/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () +# Copyright (c) 2019-Present Droggol. () from . import controllers from . import models diff --git a/odex25_donation/theme_prime/__manifest__.py b/odex25_donation/theme_prime/__manifest__.py index a1e64082a..3fc358f69 100644 --- a/odex25_donation/theme_prime/__manifest__.py +++ b/odex25_donation/theme_prime/__manifest__.py @@ -1,175 +1,189 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () +# Copyright (c) 2019-Present Droggol. () { 'name': 'Theme Prime', 'description': 'Powerful multipurpose eCommerce theme suitable for all kind of businesses like Electronics, Fashion, Sports, Beauty, Furniture and many more.', 'summary': 'Powerful multipurpose eCommerce theme suitable for all kind of businesses like Electronics, Fashion, Sports, Beauty, Furniture and many more.', 'category': 'Theme/eCommerce', - 'version': '16.0.0.0.8', + 'version': '14.0.0.3.8', 'depends': ['droggol_theme_common'], 'license': 'OPL-1', - 'author': 'Droggol Infotech Private Limited', - 'company': 'Droggol Infotech Private Limited', - 'maintainer': 'Droggol Infotech Private Limited', + 'author': 'Droggol', + 'company': 'Droggol', + 'maintainer': 'Droggol', 'website': 'https://www.droggol.com/', - 'price': 289.00, + 'price': 275.00, 'currency': 'USD', - 'live_test_url': 'https://prime-16-electronics-1.droggol.com/', + 'live_test_url': 'https://prime-14-electronics-2.droggol.com/', 'images': [ 'static/description/prime_cover.png', 'static/description/prime_screenshot.gif', ], 'data': [ - 'data/theme.ir.attachment.csv', + 'data/data.xml', + 'data/images_library.xml', - 'views/sidebar.xml', + 'views/assets.xml', 'views/templates.xml', 'views/components.xml', 'views/layout.xml', - 'views/shop_layout.xml', - 'views/product_detail_page.xml', 'views/pages.xml', 'views/snippets.xml', 'views/svg_images.xml', - # Headers / Footers - 'views/headers.xml', - 'views/preheaders.xml', - 'views/footers.xml', + # Headers + 'views/headers/style_1.xml', + 'views/headers/style_2.xml', + 'views/headers/style_3.xml', + 'views/headers/style_4.xml', + 'views/headers/style_5.xml', + 'views/headers/style_6.xml', + 'views/headers/style_7.xml', + 'views/headers/style_8.xml', + + # Footers + 'views/footers/style_1.xml', + 'views/footers/style_2.xml', + 'views/footers/style_3.xml', + 'views/footers/style_4.xml', + 'views/footers/style_5.xml', + 'views/footers/style_6.xml', + 'views/footers/style_7.xml', + 'views/footers/style_8.xml', + 'views/footers/style_9.xml', + 'views/footers/style_10.xml', # Snippets - 'views/snippets/dynamic_snippets.xml', - 'views/snippets/s_banner.xml', - 'views/snippets/s_blog.xml', - 'views/snippets/s_clients.xml', - 'views/snippets/s_coming_soon.xml', - 'views/snippets/s_countdown.xml', - 'views/snippets/s_cover.xml', - 'views/snippets/s_cta.xml', - 'views/snippets/s_gallery.xml', - 'views/snippets/s_heading.xml', - 'views/snippets/s_icon_block.xml', - 'views/snippets/s_info_block.xml', - 'views/snippets/s_pricing.xml', - 'views/snippets/s_shop_offer.xml', - 'views/snippets/s_stats.xml', - 'views/snippets/s_subscribe.xml', - 'views/snippets/s_team.xml', - 'views/snippets/s_testimonial.xml', + 'views/snippets/s_call_to_action_1.xml', + 'views/snippets/s_call_to_action_2.xml', + 'views/snippets/s_call_to_action_3.xml', + 'views/snippets/s_call_to_action_4.xml', + 'views/snippets/s_call_to_action_5.xml', + + 'views/snippets/s_category_1.xml', + 'views/snippets/s_category_2.xml', + 'views/snippets/s_category_3.xml', + 'views/snippets/s_category_4.xml', + + # Dynamic + 'views/snippets/dynamic_snippets/snippets.xml', + 'views/snippets/dynamic_snippets/s_countdown.xml', + + # Static + 'views/snippets/s_banner_1.xml', + 'views/snippets/s_banner_2.xml', + 'views/snippets/s_banner_3.xml', + 'views/snippets/s_banner_4.xml', + 'views/snippets/s_banner_5.xml', + 'views/snippets/s_banner_6.xml', + 'views/snippets/s_banner_7.xml', + 'views/snippets/s_banner_8.xml', + 'views/snippets/s_banner_9.xml', + 'views/snippets/s_banner_10.xml', + 'views/snippets/s_banner_11.xml', + 'views/snippets/s_banner_12.xml', + + 'views/snippets/s_blog_1.xml', + 'views/snippets/s_blog_2.xml', + 'views/snippets/s_blog_3.xml', + + 'views/snippets/s_clients_1.xml', + 'views/snippets/s_clients_2.xml', + 'views/snippets/s_clients_3.xml', + 'views/snippets/s_clients_4.xml', + + 'views/snippets/s_coming_soon_1.xml', + 'views/snippets/s_coming_soon_2.xml', + + 'views/snippets/s_counters_1.xml', + 'views/snippets/s_counters_2.xml', + 'views/snippets/s_counters_3.xml', + 'views/snippets/s_counters_4.xml', + 'views/snippets/s_counters_5.xml', + + 'views/snippets/s_cover_1.xml', + 'views/snippets/s_cover_2.xml', + 'views/snippets/s_cover_3.xml', + 'views/snippets/s_cover_4.xml', + 'views/snippets/s_cover_5.xml', + 'views/snippets/s_cover_6.xml', + + 'views/snippets/s_gallery_1.xml', + 'views/snippets/s_gallery_2.xml', + 'views/snippets/s_gallery_3.xml', + 'views/snippets/s_gallery_4.xml', + 'views/snippets/s_gallery_5.xml', + + 'views/snippets/s_heading_1.xml', + 'views/snippets/s_heading_2.xml', + 'views/snippets/s_heading_3.xml', + 'views/snippets/s_heading_4.xml', + 'views/snippets/s_heading_5.xml', + 'views/snippets/s_heading_6.xml', + + 'views/snippets/s_icon_block_1.xml', + 'views/snippets/s_icon_block_2.xml', + 'views/snippets/s_icon_block_3.xml', + 'views/snippets/s_icon_block_4.xml', + 'views/snippets/s_icon_block_5.xml', + 'views/snippets/s_icon_block_6.xml', + 'views/snippets/s_icon_block_7.xml', + 'views/snippets/s_icon_block_8.xml', + 'views/snippets/s_icon_block_9.xml', + 'views/snippets/s_icon_block_10.xml', + 'views/snippets/s_icon_block_11.xml', + 'views/snippets/s_icon_block_12.xml', + 'views/snippets/s_icon_block_13.xml', + + 'views/snippets/s_mega_menu_1.xml', + 'views/snippets/s_mega_menu_2.xml', + 'views/snippets/s_mega_menu_3.xml', + 'views/snippets/s_mega_menu_4.xml', + 'views/snippets/s_mega_menu_5.xml', + 'views/snippets/s_mega_menu_6.xml', + 'views/snippets/s_mega_menu_7.xml', + 'views/snippets/s_mega_menu_8.xml', + 'views/snippets/s_mega_menu_9.xml', + + 'views/snippets/s_info_block_1.xml', + 'views/snippets/s_info_block_2.xml', + 'views/snippets/s_info_block_3.xml', + 'views/snippets/s_info_block_4.xml', + 'views/snippets/s_info_block_5.xml', + 'views/snippets/s_info_block_6.xml', + 'views/snippets/s_info_block_7.xml', + + 'views/snippets/s_offer_1.xml', + 'views/snippets/s_offer_2.xml', + 'views/snippets/s_offer_3.xml', + 'views/snippets/s_offer_4.xml', + + 'views/snippets/s_pricing_1.xml', + 'views/snippets/s_pricing_2.xml', + 'views/snippets/s_pricing_3.xml', + 'views/snippets/s_pricing_4.xml', + 'views/snippets/s_pricing_5.xml', + 'views/snippets/s_pricing_6.xml', + + 'views/snippets/s_subscribe_1.xml', + 'views/snippets/s_subscribe_2.xml', + 'views/snippets/s_subscribe_3.xml', + 'views/snippets/s_subscribe_4.xml', + + 'views/snippets/s_team_1.xml', + 'views/snippets/s_team_2.xml', + 'views/snippets/s_team_3.xml', + 'views/snippets/s_team_4.xml', + 'views/snippets/s_team_5.xml', + + 'views/snippets/s_testimonial_1.xml', + 'views/snippets/s_testimonial_2.xml', + 'views/snippets/s_testimonial_3.xml', + 'views/snippets/s_testimonial_4.xml', + 'views/snippets/s_testimonial_5.xml', ], - 'assets': { - 'web.assets_backend': [ - 'theme_prime/static/src/components/dialog.xml', - 'theme_prime/static/src/components/record_selection.xml', - 'theme_prime/static/src/components/ui_component.xml', - 'theme_prime/static/src/components/search_input.xml', - 'theme_prime/static/src/components/dropdown.xml', - - 'theme_prime/static/src/components/dialog.js', - 'theme_prime/static/src/components/abstract_component.js', - 'theme_prime/static/src/components/theme_service.js', - 'theme_prime/static/src/components/dialog.scss', - 'theme_prime/static/src/components/record_selection.js', - 'theme_prime/static/src/components/ui_component.js', - 'theme_prime/static/src/components/search_input.js', - ], - 'web.assets_frontend': [ - # Libraries - 'theme_prime/static/lib/OwlCarousel2-2.3.4/assets/owl.carousel.css', - 'theme_prime/static/lib/OwlCarousel2-2.3.4/assets/owl.theme.default.css', - # Frontend - 'theme_prime/static/src/js/website.js', - 'theme_prime/static/src/js/website_sale.js', - 'theme_prime/static/src/js/website_sale_wishlist.js', - - 'theme_prime/static/src/js/sidebar.js', - 'theme_prime/static/src/xml/sidebar.xml', - - 'theme_prime/static/src/js/suggested_product_slider.js', - 'theme_prime/static/src/xml/frontend/suggested_product_slider.xml', - - 'theme_prime/static/src/js/service_worker_register.js', - 'theme_prime/static/src/xml/pwa.xml', - - 'theme_prime/static/src/js/core/mixins.js', - 'theme_prime/static/src/js/frontend/comparison.js', - 'theme_prime/static/src/js/frontend/quick_view_dialog.js', - 'theme_prime/static/src/js/frontend/bottombar.js', - - 'theme_prime/static/src/scss/theme.scss', - 'theme_prime/static/src/scss/rtl.scss', - 'theme_prime/static/src/scss/website.scss', - 'theme_prime/static/src/scss/website_sale.scss', - 'theme_prime/static/src/scss/sliders.scss', - 'theme_prime/static/src/scss/icon-packs/website.scss', - 'theme_prime/static/src/scss/utils.scss', - 'theme_prime/static/src/scss/snippets/cards.scss', - 'theme_prime/static/src/scss/front_end/quick_view.scss', - 'theme_prime/static/src/scss/front_end/dynamic_snippets.scss', - 'theme_prime/static/src/scss/front_end/category_filters.scss', - 'theme_prime/static/src/scss/front_end/image_hotspot.scss', - 'theme_prime/static/src/scss/snippets/2_col_deal.scss', - 'theme_prime/static/src/scss/snippets/image_products.scss', - 'theme_prime/static/src/scss/front_end/bottom_bar.scss', - 'theme_prime/static/src/snippets/s_blog_posts/000.scss', - # Core - 'theme_prime/static/src/js/core/snippet_root_widget.js', - 'theme_prime/static/src/xml/core/snippet_root_widget.xml', - - 'theme_prime/static/src/js/core/product_root_widget.js', - - 'theme_prime/static/src/js/core/cart_manager.js', - 'theme_prime/static/src/xml/frontend/notification_template.xml', - - 'theme_prime/static/src/js/core/cart_confirmation_dialog.js', - 'theme_prime/static/src/xml/core/cart_confirmation_dialog.xml', - - # Snippets - 'theme_prime/static/src/snippets/s_tp_countdown/000.xml', - 'theme_prime/static/src/js/frontend/dynamic_snippets.js', - 'theme_prime/static/src/xml/frontend/dynamic_snippets.xml', - 'theme_prime/static/src/xml/cards.xml', - 'theme_prime/static/src/xml/listing_cards.xml', - 'theme_prime/static/src/xml/frontend/utils.xml', - 'theme_prime/static/src/xml/frontend/category_filters.xml', - 'theme_prime/static/src/xml/frontend/2_col_deal.xml', - 'theme_prime/static/src/xml/frontend/s_image_products.xml', - 'theme_prime/static/src/xml/frontend/s_product_grid.xml', - 'theme_prime/static/src/xml/frontend/hierarchical_category_templates.xml', - 'theme_prime/static/src/xml/frontend/s_category.xml', - 'theme_prime/static/src/xml/frontend/brands.xml', - 'theme_prime/static/src/xml/frontend/image_hotspot.xml', # TODO: kishan - - # Editor - ('replace', 'web_editor/static/src/scss/web_editor.frontend.scss', 'theme_prime/static/src/scss/web_editor.frontend.scss'), - - # Search - 'theme_prime/static/src/js/frontend/search.js', - 'theme_prime/static/src/xml/frontend/search_autocomplete.xml', - ], - 'web._assets_primary_variables': [ - 'theme_prime/static/src/scss/primary_variables.scss', - 'theme_prime/static/src/scss/mixins.scss', - ], - 'web._assets_frontend_helpers': [ - 'theme_prime/static/src/scss/bootstrap_overridden.scss', - ], - 'website.assets_wysiwyg': [ - 'theme_prime/static/src/js/editor/snippets.editor.js', - 'theme_prime/static/src/scss/editor/editor.scss', - - # 'theme_prime/static/src/scss/editor/dialogs/dialog_snippet_configurator.scss', - 'theme_prime/static/src/xml/editor/dialogs/snippet_configurator_dialog.xml', - 'theme_prime/static/src/xml/frontend/image_hotspot.xml', - - 'theme_prime/static/src/js/editor/snippets/snippets.options.js', - 'theme_prime/static/src/js/editor/registries.js', - 'theme_prime/static/src/xml/frontend/documents.xml', - ], - - }, } diff --git a/odex25_donation/theme_prime/controllers/__init__.py b/odex25_donation/theme_prime/controllers/__init__.py index ef9adf569..c1652e76f 100644 --- a/odex25_donation/theme_prime/controllers/__init__.py +++ b/odex25_donation/theme_prime/controllers/__init__.py @@ -1,4 +1,6 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () +# Copyright (c) 2019-Present Droggol. () from . import main +from . import brand +from . import pwa diff --git a/odex25_donation/theme_prime/controllers/brand.py b/odex25_donation/theme_prime/controllers/brand.py new file mode 100644 index 000000000..1fb02b298 --- /dev/null +++ b/odex25_donation/theme_prime/controllers/brand.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2019-Present Droggol. () + +import string +from collections import defaultdict +from odoo import http +from odoo.http import request + + +class ThemePrimeBrand(http.Controller): + + @http.route('/shop/all_brands', type='http', auth='public', website=True) + def all_brands(self, **args): + brands = request.env['dr.product.brand'].search(request.website.website_domain()).filtered(lambda line: line.product_count) + is_disable_grouping = request.website._get_dr_theme_config('json_brands_page')['disable_brands_grouping'] + + if is_disable_grouping: + brands_group_by_alphabet = {'All Brands': brands} + else: + alphabet_range = string.ascii_uppercase + brands_group_by_alphabet = defaultdict(list) + brands_group_by_alphabet.update((alphabet, []) for alphabet in alphabet_range) + for brand in brands: + first_char = str.upper(brand.name[:1]) + brands_group_by_alphabet[first_char].append(brand) + + return request.render('theme_prime.all_brands', { + 'is_disable_grouping': is_disable_grouping, + 'grouped_brands': brands_group_by_alphabet + }) diff --git a/odex25_donation/theme_prime/controllers/main.py b/odex25_donation/theme_prime/controllers/main.py index 773247452..63a5ac3e9 100644 --- a/odex25_donation/theme_prime/controllers/main.py +++ b/odex25_donation/theme_prime/controllers/main.py @@ -1,141 +1,192 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () +# Copyright (c) 2019-Present Droggol. () -import base64 +import math import hashlib -import io import json -import re -import string -from collections import defaultdict -from datetime import datetime, timedelta -from functools import partial +from datetime import timedelta, datetime -try: - from werkzeug.utils import send_file -except ImportError: - from odoo.tools._vendor.send_file import send_file - -from odoo import _, http -from odoo.addons.website.controllers.main import Website +from odoo import http +from odoo.http import request +from odoo.addons.website.controllers.main import QueryURL from odoo.addons.website_sale.controllers.main import WebsiteSale from odoo.addons.website_sale_wishlist.controllers.main import WebsiteSaleWishlist -from odoo.http import request -from odoo.modules.module import get_resource_path from odoo.osv import expression -from odoo.tools import html_escape -from odoo.tools.mimetypes import guess_mimetype class ThemePrimeWebsiteSale(WebsiteSale): - def _get_search_domain(self, search, category, attrib_values, search_in_description=True, search_rating=True): - """ Overrided method used to apply extra filters. + def _check_float(self, val): + try: + return float(val) + except ValueError: + pass + return False - Extra parameters are added to skip some filters (Used for attribute count) - :param search_rating: if false rating domain will not be added + def _get_search_domain(self, search, category, attrib_values, search_in_description=True, search_in_brand=True, search_price=True): + """ Overridden method used to apply extra filters. + + Extra parameters are added to generate skip some filters (Used for price range and attribute count) + :param search_in_brand: if false brand domain will not be added, + :param search_price: if false price domain will not be added, """ - domains = super()._get_search_domain(search, category, attrib_values, search_in_description) + domains = super(ThemePrimeWebsiteSale, self)._get_search_domain(search, category, attrib_values, search_in_description) - # Hide out of stock - if request.httprequest.args.get('hide_out_of_stock'): - domains = expression.AND([domains, ['|', '|', ('detailed_type', '!=', 'product'), ('allow_out_of_stock_order', '=', True), '&', ('dr_free_qty', '>', 0), ('allow_out_of_stock_order', '=', False)]]) + # Price + filter_config, min_price, max_price = request.website._get_dr_theme_config('json_shop_filters'), 0, 0 + if search_price and filter_config.get('show_price_range_filter'): + min_price = request.httprequest.args.get('min_price') + max_price = request.httprequest.args.get('max_price') + + all_product_data, discounted_products, pricelist = [], [], False + if min_price or max_price: # only fetch the data if min or max price available (used 'or' because user might select one them) + pricelist = request.website.get_current_pricelist() + all_product_data, discounted_products = request.env['product.template']._get_product_pricelist_data(pricelist.id) + + if min_price: + min_price = self._check_float(min_price) + if min_price: + if filter_config.get('price_range_display_type') == 'pricelist': # pricelist based filter else is based on sale price + min_product_ids = [product['id'] for product in all_product_data if product['price'] >= min_price] + domains = expression.AND([domains, [('id', 'in', min_product_ids)]]) + else: + min_price = request.website._convert_currency_price(min_price, from_base_currency=False) + domains = expression.AND([domains, [('list_price', '>=', min_price)]]) + if max_price: + max_price = self._check_float(max_price) + if max_price: + if filter_config.get('price_range_display_type') == 'pricelist': # pricelist based filter else is based on sale price + max_product_ids = [product['id'] for product in all_product_data if product['price'] <= max_price] + domains = expression.AND([domains, [('id', 'in', max_product_ids)]]) + else: + max_price = request.website._convert_currency_price(max_price, from_base_currency=False) + domains = expression.AND([domains, [('list_price', '<=', max_price)]]) + + # Brand + if search_in_brand: + brand = request.httprequest.args.getlist('brand') + if brand: + domains = expression.AND([domains, [('dr_brand_id', 'in', [int(x) for x in brand])]]) + + # Label + label = request.httprequest.args.getlist('label') + if label: + domains = expression.AND([domains, [('dr_label_id', 'in', [int(x) for x in label])]]) # Tag tag = request.httprequest.args.getlist('tag') if tag: - domains = expression.AND([domains, [('product_tag_ids', 'in', [int(x) for x in tag])]]) + domains = expression.AND([domains, [('dr_tag_ids', 'in', [int(x) for x in tag])]]) # Rating ratings = request.httprequest.args.getlist('rating') - if ratings and search_rating: + if ratings: result = request.env['rating.rating'].sudo().read_group([('res_model', '=', 'product.template')], ['rating:avg'], groupby=['res_id'], lazy=False) rating_product_ids = [] for rating in ratings: rating_product_ids.extend([item['res_id'] for item in result if item['rating'] >= int(rating)]) if rating_product_ids: domains = expression.AND([domains, [('id', 'in', rating_product_ids)]]) - else: - domains = expression.AND([domains, [('id', 'in', [])]]) + return domains - def _get_search_options(self, category=None, attrib_values=None, pricelist=None, min_price=0.0, max_price=0.0, conversion_rate=1, **post): - res = super()._get_search_options(category=category, attrib_values=attrib_values, pricelist=pricelist, min_price=min_price, max_price=max_price, conversion_rate=conversion_rate, **post) - if request.httprequest.args.get('hide_out_of_stock'): - res['hide_out_of_stock'] = request.httprequest.args.get('hide_out_of_stock') - if request.httprequest.args.getlist('tag'): - res['tag'] = request.httprequest.args.getlist('tag') - if request.httprequest.args.getlist('rating'): - res['rating'] = request.httprequest.args.getlist('rating') - return res - - def _shop_get_query_url_kwargs(self, category, search, min_price, max_price, **post): - result = super()._shop_get_query_url_kwargs(category, search, min_price, max_price, **post) - result.update( - view_mode=post.get('view_mode'), - hide_out_of_stock=post.get('hide_out_of_stock'), - tag=post.get('tag'), - rating=post.get('rating'), - ) - return result - @http.route() - def shop(self, page=0, category=None, search='', min_price=0.0, max_price=0.0, ppg=False, **post): - response = super().shop(page=page, category=category, search=search, min_price=min_price, max_price=max_price, ppg=ppg, **post) + def shop(self, page=0, category=None, search='', ppg=False, **post): + response = super(ThemePrimeWebsiteSale, self).shop(page, category, search, ppg, **post) + ProductTemplate = request.env['product.template'] theme_id = request.website.sudo().theme_id if theme_id and theme_id.name.startswith('theme_prime'): - ProductTemplate = request.env['product.template'] - request_args = request.httprequest.args + brands = request.env['dr.product.brand'].search(request.website.website_domain()) + labels = request.env['dr.product.label'].search([]) + tags = request.env['dr.product.tags'].search(request.website.website_domain()) + pricelist = request.website.get_current_pricelist() - attrib_list = request_args.getlist('attrib') + attrib_list = request.httprequest.args.getlist('attrib') attrib_values = [[int(x) for x in v.split('-')] for v in attrib_list if v] attributes_ids = [v[0] for v in attrib_values] - fuzzy_search_term = response.qcontext.get('search') or search + # Get max min price and convert price based on currency + filter_config, min_price, max_price = request.website._get_dr_theme_config('json_shop_filters'), 0, 0 + + if filter_config.get('show_price_range_filter'): + domain = self._get_search_domain(search, category, attrib_values, search_price=False) + if filter_config.get('price_range_display_type') == 'pricelist': # Calculate min max price based on pricelist + product_ids = ProductTemplate.search(domain).ids + all_product_data, discounted_products = request.env['product.template']._get_product_pricelist_data(pricelist.id) + prices = [product['price'] for product in all_product_data if product['id'] in product_ids] + min_price = math.floor(min(prices or [0])) + max_price = math.ceil(max(prices or [0])) + else: + prices = ProductTemplate.read_group(domain, ['max_price:max(list_price)', 'min_price:min(list_price)'], [])[0] + min_price = request.website._convert_currency_price(float(prices['min_price'] or 0), rounding_method=math.floor) + max_price = request.website._convert_currency_price(float(prices['max_price'] or 0), rounding_method=math.ceil) + + keep = QueryURL( + '/shop', + category=category and int(category), + search=search, + attrib=request.httprequest.args.getlist('attrib'), + ppg=ppg, + order=post.get('order'), + min_price=request.httprequest.args.get('min_price'), + max_price=request.httprequest.args.get('max_price'), + brand=request.httprequest.args.getlist('brand'), + label=request.httprequest.args.getlist('label'), + tag=request.httprequest.args.getlist('tag'), + ) + + # Grid Sizing + bins = [] + for product in response.qcontext.get('products'): + bins.append([{ + 'ribbon': product.website_ribbon_id, + 'product': product, + 'x': 1, + 'y': 1 + }]) + if request.website._get_dr_theme_config('json_shop_filters')['show_category_count']: - # Categories - domain = self._get_search_domain(fuzzy_search_term, None, attrib_values) - response.qcontext.update(get_category_count=ProductTemplate._get_product_category_count(domain=domain)) - if request.website._get_dr_theme_config('json_shop_filters')['show_attribute_count'] or request.website._get_dr_theme_config('json_shop_filters')['hide_extra_attrib_value']: + domain = self._get_search_domain(search, None, attrib_values) + get_category_count = ProductTemplate._get_product_category_count(website_ids=request.website.ids, product_ids=[], domain=domain) + response.qcontext.update( + get_category_count=get_category_count, + ) + if request.website._get_dr_theme_config('json_shop_filters')['show_attrib_count'] or request.website._get_dr_theme_config('json_shop_filters')['hide_attrib_value']: # Attributes - domain = self._get_search_domain(fuzzy_search_term, category, []) - response.qcontext.update(get_attrib_count=ProductTemplate._get_product_attrib_count(attrib_values, domain=domain)) - # Rating - domain = self._get_search_domain(fuzzy_search_term, category, attrib_values, search_rating=False) - response.qcontext.update(get_ratings_count=ProductTemplate._get_product_rating_count(domain=domain)) - - selected_tags = [int(x) for x in request_args.getlist('tag')] - selected_ratings = [int(x) for x in request_args.getlist('rating')] - selected_hide_out_of_stock = request_args.get('hide_out_of_stock') - - _config_shop_layout = request.website._get_dr_theme_config('json_shop_layout') - if _config_shop_layout.get('layout') == 'prime': - response.template = 'theme_prime.shop_layout' + domain = self._get_search_domain(search, category, []) + get_attrib_count = ProductTemplate._get_product_attrib_count(website_ids=request.website.ids, product_ids=[], attrib_values=attrib_values, domain=domain) + response.qcontext.update( + get_attrib_count=get_attrib_count, + ) + # Brand + domain = self._get_search_domain(search, category, attrib_values, True, False) + brand_counts = ProductTemplate.read_group(domain, ['dr_brand_id'], 'dr_brand_id') + response.qcontext.update( + get_brands_count=dict([(x['dr_brand_id'][0], x['dr_brand_id_count']) for x in brand_counts if x['dr_brand_id']]), + ) + # Label + domain = self._get_search_domain(search, category, attrib_values, True, False) + label_counts = ProductTemplate.read_group(domain, ['dr_label_id'], 'dr_label_id') + response.qcontext.update( + get_labels_count=dict([(x['dr_label_id'][0], x['dr_label_id_count']) for x in label_counts if x['dr_label_id']]), + ) response.qcontext.update( - _config_shop_layout=_config_shop_layout, - _config_product_item=request.website._get_dr_theme_config('json_shop_product_item'), - _config_shop_filters=request.website._get_dr_theme_config('json_shop_filters'), - _config_category_pills=request.website._get_dr_theme_config('json_shop_category_pills'), - view_mode=request_args.get('view_mode', _config_shop_layout.get('default_view_mode')), - page=page, - tags=request.env['product.tag'].search(request.website.website_domain()), + brands=brands, + labels=labels, + tags=tags, + keep=keep, + min_price=min_price, + max_price=max_price, + bins=bins, attributes_ids=attributes_ids, - selected_tags=selected_tags, - selected_ratings=selected_ratings, - selected_hide_out_of_stock=selected_hide_out_of_stock, - selected_attributes=response.qcontext.get('attrib_set') or request_args.get('min_price') or request_args.get('max_price') or selected_tags or selected_ratings or selected_hide_out_of_stock + selected_brands=[int(x) for x in request.httprequest.args.getlist('brand')], + selected_labels=[int(x) for x in request.httprequest.args.getlist('label')], + selected_tags=[int(x) for x in request.httprequest.args.getlist('tag')], + selected_ratings=[int(x) for x in request.httprequest.args.getlist('rating')], ) return response - def _prepare_product_values(self, product, category, search, **kwargs): - res = super()._prepare_product_values(product, category, search, **kwargs) - if request.website._get_dr_theme_config('bool_show_products_nav'): - ProductTemplate = request.env['product.template'] - res['prev_product_id'] = ProductTemplate.search([('website_sequence', '<', product.website_sequence)] + request.website.website_domain(), limit=1, order='website_sequence desc') - res['next_product_id'] = ProductTemplate.search([('website_sequence', '>', product.website_sequence)] + request.website.website_domain(), limit=1, order='website_sequence') - return res - @http.route(['/shop/cart'], type='http', auth='public', website=True, sitemap=False) def cart(self, access_token=None, revive='', **post): res = super(ThemePrimeWebsiteSale, self).cart(access_token=access_token, revive=revive, **post) @@ -146,55 +197,67 @@ class ThemePrimeWebsiteSale(WebsiteSale): return request.render('theme_prime.cart_sidebar', {'order': order}, headers={'Cache-Control': 'no-cache'}) return res - @http.route('/theme_prime/get_search_sidebar', type='http', auth='public', website=True, sitemap=False) - def search_sidebar(self, **post): - return request.render('theme_prime.search_sidebar') + @http.route('/theme_prime/search_sidebar', type='http', auth='public', website=True, sitemap=False) + def search_sidebar(self, access_token=None, revive='', **post): + return request.render('theme_prime.search_sidebar', headers={'Cache-Control': 'no-cache'}) - @http.route('/theme_prime/get_categories_list', type='json', auth='public', website=True, sitemap=False) - def _get_categories_list(self, **post): - return { - 'categories': request.env['product.public.category'].search_read(request.website.website_domain()), - 'category_count': request.env['product.template']._get_product_category_count(domain=request.website.website_domain()) if request.website._get_dr_theme_config('json_sidebar_config').get('category_sidebar_show_count') else {}, - } + @http.route('/theme_prime/get_category_sidebar', type='http', auth='public', website=True, sitemap=False) + def _get_category_sidebar(self, access_token=None, revive='', **post): + return request.render('theme_prime.category_sidebar', headers={'Cache-Control': 'no-cache'}) @http.route('/theme_prime/get_quick_view_html', type='json', auth='public', website=True) def get_quick_view_html(self, options, **kwargs): - IrUiView = request.env['ir.ui.view'] productID = options.get('productID') variantID = options.get('variantID') + product = False if variantID: productID = request.env['product.product'].browse(variantID).product_tmpl_id.id + domain = expression.AND([request.website.sale_product_domain(), [('id', '=', productID)]]) product = request.env['product.template'].search(domain, limit=1) - # If moved to another website or delete if not product: - return False + return [] + + # If request ask `add_if_single_variant` param + # Do not return if there is only one varient + is_single_product = options.get('add_if_single_variant') and product.product_variant_count == 1 values = self._prepare_product_values(product, category='', search='', **kwargs) - result = request.website.get_theme_prime_shop_config() + Website = request.website + result = Website._get_theme_prime_shop_config() values.update(result) + if result.get('is_rating_active'): + values['rating'] = Website._get_theme_prime_rating_template(product.rating_avg, product.rating_count) values['d_url_root'] = request.httprequest.url_root[:-1] - if options.get('variant_selector'): - values['auto_add_product'] = product.product_variant_count == 1 - return IrUiView._render_template('theme_prime.product_variant_selector_dialog', values=values) + if options.get('mini'): + values['auto_add_product'] = is_single_product + return request.env["ir.ui.view"]._render_template('theme_prime.product_mini', values=values) if options.get('right_panel'): - return IrUiView._render_template('theme_prime.tp_product_right_panel', values=values) - return IrUiView._render_template('theme_prime.tp_product_quick_view', values=values) + values['auto_add_product'] = is_single_product + return request.env["ir.ui.view"]._render_template('theme_prime.tp_product_right_panel', values=values) + return request.env["ir.ui.view"]._render_template('theme_prime.tp_product_quick_view', values=values) - @http.route(['/shop/cart/update_json'], type='json', auth="public", methods=['POST'], website=True, csrf=False) - def cart_update_json(self, product_id, line_id=None, add_qty=None, set_qty=None, display=True, **kw): - response = super(ThemePrimeWebsiteSale, self).cart_update_json(product_id, line_id=line_id, add_qty=add_qty, set_qty=set_qty, display=display, **kw) + @http.route(['/shop/cart/update'], type='http', auth="public", methods=['GET', 'POST'], website=True, csrf=False) + def cart_update(self, product_id, add_qty=1, set_qty=0, **kw): + response = super(ThemePrimeWebsiteSale, self).cart_update(product_id, add_qty, set_qty, **kw) + sale_order = request.website.sale_get_order(force_create=True) - if kw.get('dr_cart_flow') and response: - sale_order = request.website.sale_get_order(force_create=True) - monetary_options = {'display_currency': sale_order.pricelist_id.currency_id} - FieldMonetary = request.env['ir.qweb.field.monetary'] - cart_amount_html = FieldMonetary.value_to_html(sale_order.amount_total, monetary_options) + if kw.get('express'): + return response + + monetary_options = { + 'display_currency': sale_order.pricelist_id.currency_id, + } + + FieldMonetary = request.env['ir.qweb.field.monetary'] + cart_amount_html = FieldMonetary.value_to_html(sale_order.amount_total, monetary_options) + + if kw.get('dr_cart_flow'): product = request.env['product.product'].browse(int(product_id)) - response.update({ + return json.dumps({ 'cart_quantity': sale_order.cart_quantity, 'product_name': product.name, 'product_id': int(product_id), @@ -204,6 +267,14 @@ class ThemePrimeWebsiteSale(WebsiteSale): return response + @http.route() + def products_autocomplete(self, term, options={}, **kwargs): + response = super(ThemePrimeWebsiteSale, self).products_autocomplete(term, options=options, **kwargs) + if options.get('category'): + for result in response.get('products'): + result['website_url'] = result.get('website_url') + '?category=%s' % options.get('category') + return response + class DroggolWishlist(WebsiteSaleWishlist): @http.route('/theme_prime/wishlist_general', auth="public", type='json', website=True) @@ -224,19 +295,21 @@ class ThemePrimeMainClass(http.Controller): # Helper methods # ---------------------------------------------------------- - def _get_products(self, domain=None, fields=[], limit=25, order=None, options={}): + def _get_products(self, domain=None, fields=[], limit=25, order=None): pricelist = request.website.get_current_pricelist() + rating_in_fields = False + offer_in_fields = False website_sale_domain = request.website.sale_product_domain() final_domain = expression.AND([website_sale_domain, domain]) # bestseller is not a real field - bestseller_ids, old_limit = [], limit + bestseller_ids = [] + old_limit = limit if order == 'bestseller': bestseller_ids, limit, order = self._get_bestseller_products(old_limit) products = request.env['product.template'].with_context(pricelist=pricelist.id).search(final_domain, limit=limit, order=order) - - default_fields = ['id', 'name', 'website_url', 'default_code'] + default_fields = ['id', 'name', 'website_url'] fields = set(default_fields + fields) if bestseller_ids: @@ -246,33 +319,30 @@ class ThemePrimeMainClass(http.Controller): final_product_ids = bestseller_sorted_ids + list(remain_products) products = request.env['product.template'].with_context(pricelist=pricelist.id).browse(final_product_ids[:old_limit]) - return self._prepare_product_data(products, fields) + # rating is not a real field + if 'rating' in fields: + rating_in_fields = True + fields.remove('rating') - def _prepare_product_data(self, products, fields, options=None): - - options = options or {} - pricelist = request.website.get_current_pricelist() - price_public_visibility = request.website._dr_has_b2b_access() - visibility_label = False - showStockLabel = False - - if not price_public_visibility: - visibility_label = self._get_tp_view_template('theme_prime.tp_b2b_price_label') - - extra_data = {'rating', 'offer_data', 'dr_stock_label', 'colors'} & set(fields) - fields = list(set(fields) - extra_data) - - if 'dr_stock_label' in extra_data: - showStockLabel = request.website._get_dr_theme_config('json_shop_product_item').get('show_stock_label') - currency_id = pricelist.currency_id + # rating is not a real field + if 'offer_data' in fields: + offer_in_fields = True + fields.remove('offer_data') result = products.read(fields) + FieldMonetary = request.env['ir.qweb.field.monetary'] + monetary_options = { + 'display_currency': pricelist.currency_id, + } + for res_product, product in zip(result, products): combination_info = product._get_combination_info(only_template=True) res_product.update(combination_info) - price_info = self._get_computed_product_price(product, res_product, price_public_visibility, visibility_label, currency_id) - res_product.update(price_info) + res_product['price_raw'] = res_product['price'] + res_product['list_price_raw'] = res_product['list_price'] + res_product['price'] = FieldMonetary.value_to_html(res_product['price'], monetary_options) + res_product['list_price'] = FieldMonetary.value_to_html(res_product['list_price'], monetary_options) res_product['product_variant_id'] = product._get_first_possible_variant_id() sha = hashlib.sha1(str(getattr(product, '__last_update')).encode('utf-8')).hexdigest()[0:7] @@ -284,20 +354,14 @@ class ThemePrimeMainClass(http.Controller): # short Description if 'description_sale' in fields: description = res_product.get('description_sale') - res_product['short_description'] = description[:125] + '...' if description and len(description) > 125 else description or False - # label and color - if 'colors' in extra_data: - res_product['colors'] = self._get_tp_view_template('theme_prime.product_preview_swatches', {'product': product, '_limit': 4, 'parent_selector': '.card', 'img_selector': '.d-product-img'}) + res_product['short_description'] = description[:200] + '...' if description and len(description) > 200 else description or False # label and color if 'dr_label_id' in fields and product.dr_label_id: - res_product['label'] = product.dr_label_id - res_product['label_id'] = product.dr_label_id.id - res_product['label_template'] = self._get_tp_view_template('theme_prime.product_label', {'label': product.dr_label_id}) - if 'dr_stock_label' in extra_data and showStockLabel and product.dr_show_out_of_stock: - res_product['dr_stock_label'] = self._get_tp_view_template('theme_prime.product_label', {'product': product, 'stock': True}) - res_product['dr_show_out_of_stock'] = product.dr_show_out_of_stock + res_product['label'] = product.dr_label_id.name + res_product['lable_color'] = product.dr_label_id.color + res_product['label_style'] = product.dr_label_id.style # rating - if 'offer_data' in extra_data: + if offer_in_fields: offer = product._get_product_pricelist_offer() if offer: rule = offer.get('rule') @@ -307,7 +371,7 @@ class ThemePrimeMainClass(http.Controller): 'offer_finish_msg': rule.dr_offer_finish_msg } - if 'rating' in extra_data: + if rating_in_fields: res_product['rating'] = self._get_rating_template(product.rating_avg) res_product['rating_avg'] = product.rating_avg # images @@ -321,32 +385,9 @@ class ThemePrimeMainClass(http.Controller): 'id': first_category.id, 'website_url': '/shop/category/' + str(first_category.id), } - # brand - if 'dr_brand_value_id' in fields: - res_product['brand_info'] = False - if product.dr_brand_value_id: - res_product['brand_info'] = { - 'name': product.dr_brand_value_id.name, - 'id': product.dr_brand_value_id.id, - } return result - def _get_computed_product_price(self, product, product_data, price_public_visibility, visibility_label, currency_id): - FieldMonetary = request.env['ir.qweb.field.monetary'] - monetary_options = {'display_currency': currency_id} - return { - 'visibility': price_public_visibility, - 'price_raw': product_data['price'] if price_public_visibility else visibility_label, - 'list_price_raw': product_data['list_price'] if price_public_visibility else ' ', - 'price': FieldMonetary.value_to_html(product_data['price'], monetary_options) if price_public_visibility else visibility_label, - 'list_price': FieldMonetary.value_to_html(product_data['list_price'], monetary_options) if price_public_visibility else ' ' - } - - def _get_tp_view_template(self, tmpl, values={}): - IrUiView = request.env['ir.ui.view'] - return IrUiView._render_template(tmpl, values=values) - def _get_bestseller_products(self, old_limit): past_date = datetime.now() - timedelta(days=30) result = request.env['sale.report'].sudo().read_group([('date', '>', past_date), ('website_id', '=', request.website.id), ('state', 'in', ['sale', 'done'])], ['product_tmpl_id', 'product_uom_qty:sum'], ['product_tmpl_id'], orderby="product_uom_qty desc") @@ -355,7 +396,7 @@ class ThemePrimeMainClass(http.Controller): def _get_shop_related_data(self, options): shop_data = {} if (options.get('shop_config_params')): - shop_data['shop_config_params'] = request.website.get_theme_prime_shop_config() + shop_data['shop_config_params'] = self.get_shop_config() if (options.get('wishlist_enabled')) and shop_data.get('shop_config_params', {}).get('is_wishlist_active'): shop_data['wishlist_products'] = request.env['product.wishlist'].with_context(display_default_code=False).current().mapped('product_id').ids return shop_data @@ -363,29 +404,9 @@ class ThemePrimeMainClass(http.Controller): def _get_rating_template(self, rating_avg, rating_count=False): return request.website._get_theme_prime_rating_template(rating_avg, rating_count) - def _get_categories(self, domain=[], fields=['name', 'display_name', 'id'], limit=20, order=None, extras={}): - final_domain = expression.AND([request.website.website_domain(), domain]) - final_list = False - # Pure Shit - if extras.get('count', False): - count_dict = {k: v for k, v in sorted(self.get_categories_count().items(), key=lambda item: item[1], reverse=True)} - if order == 'count': - order = 'sequence asc' - category_ids = count_dict.keys() - final_list = [i for i in category_ids if i not in extras.get('ids', [])][:limit] - final_domain = expression.AND([[['id', 'in', final_list]], final_domain]) - result = request.env['product.public.category'].search_read(final_domain, fields=fields + ['display_name'], limit=limit, order=order) - for res in result: - if extras.get('count', False): - res.update({'count': count_dict.get(res.get('id'))}) - if final_list: - final_result = [] - for res_id in final_list: - for res in result: - if res.get('id') == res_id: - final_result.append(res) - return final_result - return result + def _get_category_names(self, categoryIDs): + domain = expression.AND([request.website.website_domain(), [('id', 'in', categoryIDs)]]) + return request.env['product.public.category'].search_read(domain, fields=['name', 'display_name', 'id']) def _get_products_for_top_categories(self, params): result = {} @@ -395,80 +416,71 @@ class ThemePrimeMainClass(http.Controller): if params.get('includesChild'): operator = 'child_of' initial_domain = expression.AND([request.website.website_domain(), [('website_published', '=', True)]]) + pricelist = request.website.get_current_pricelist() for id in categoryIDs: domain = expression.AND([initial_domain, [['public_categ_ids', operator, id]]]) - products = self._get_products(domain, ['id'], 4, order) + products = request.env['product.template'].with_context(pricelist=pricelist.id).search_read(domain=domain, fields=['id'], limit=3, order=order) result[id] = [product['id'] for product in products] return result - @http.route('/theme_prime/tp_search_read', type='json', auth='public', website=True, sitemap=False) - def _tp_search_read(self, model, domain=None, fields=[], order=None, limit=20, extras={}, **post): - if model == 'product.template': - return self._get_products(domain, fields, limit, order) - elif model == 'product.public.category': - extras.update({'count': True}) - return self._get_categories(domain, fields, limit, order, extras) - elif model == 'product.attribute.value': - if extras.get('brands'): - brand_attributes = request.website._get_brand_attributes() - domain = expression.AND([domain, [('attribute_id', 'in', brand_attributes.ids)]]) - return request.env[model].with_context(show_attribute=False).search_read(domain, fields=fields, limit=limit, order=order) - return request.env[model].search_read(domain, fields=fields, limit=limit, order=order) - elif model in ['dr.product.label', 'product.tag']: - return request.env[model].search_read(domain, fields=fields, limit=limit, order=order) - elif model == 'ir.ui.view': - tmpl = request.env.ref(extras.get('templateID')) - return { - 'name': tmpl.name, - 'content': request.env[model]._render_template(extras.get('templateID')) - } + def _get_d_products_manually(self, collection, fields, limit, order, **kwargs): + productIDs = collection.get('productIDs', []) + domain = [['id', 'in', productIDs]] + fetched_products = self._get_products(domain, fields, limit, order) + products = [] + if fetched_products: + for product_id in productIDs: + for product in fetched_products: + if product['id'] in productIDs and product['id'] == product_id: + products.append(product) + return products + + def _get_d_products_advance(self, collection, fields, **kwargs): + domain_params = collection.get('domain_params') + domain = domain_params.get('domain') + limit = domain_params.get('limit', 25) + order = domain_params.get('sortBy', None) + return self._get_products(domain, fields, limit, order) @http.route('/theme_prime/get_similar_products_sidebar', type='http', auth='public', website=True, sitemap=False) - def _get_similar_products_sidebar(self, productID, **post): - product_tmpl_id = request.env['product.template'].browse(int(productID)) - return request.render('theme_prime.similar_products_sidebar', {'products': product_tmpl_id.alternative_product_ids}, headers={'Cache-Control': 'no-cache'}) + def _get_similar_products_sidebar(self, productID, access_token=None, revive='', **post): + related_product = request.env['product.template'].browse(int(productID)) + shop_config = request.website._get_theme_prime_shop_config() + return request.render('theme_prime.similar_products_sidebar', {'products': self._get_products([['id', 'in', related_product.alternative_product_ids.ids]], ['dr_label_id', 'public_categ_ids', 'rating']), 'is_rating_active': shop_config.get('is_rating_active')}, headers={'Cache-Control': 'no-cache'}) - @http.route('/theme_prime/get_tab_listing_products', type='json', auth='public', website=True) - def get_tab_listing_products(self, domain=None, fields=[], options={}, limit=25, order=None, **kwargs): - result = {} - if options.get('categoryID', False): - category_domain = [('id', '=', options.get('categoryID'))] - category = self._get_categories(category_domain) - if category: - result['listing_category'] = category - domain = expression.AND([domain, [('public_categ_ids', 'child_of', options.get('categoryID'))]]) - result['products'] = self._get_products(domain, fields, limit, order) - result.update(self._get_shop_related_data(options)) - return result + @http.route('/theme_prime/get_product_by_name', type='http', website=True) + def get_product_by_name(self, term='', **post): + domains = [request.website.sale_product_domain(), [('website_published', '=', True)]] + subdomains = [ + [('name', 'ilike', (term or ''))], + [('product_variant_ids.default_code', 'ilike', (term or ''))] + ] + domains.append(expression.OR(subdomains)) + fields = ['description_sale'] + result = self._get_products(expression.AND(domains), fields, 25, 'is_published desc, website_sequence ASC, id desc') + return json.dumps(result) - @http.route('/theme_prime/get_listing_products', type='json', auth='public', website=True) - def get_listing_products(self, domain=None, fields=[], options={}, limit=5, **kwargs): - result = {} - # [TO-DO] even snippet don't allow manual selection it will set the attrs - domain = None if options.get('mode') == 'manual' else domain - if options.get('bestseller'): - result['bestseller'] = self._get_products(domain, fields, limit, 'bestseller') - if options.get('newArrived'): - result['newArrived'] = self._get_products(domain, fields, limit, 'create_date desc') - if options.get('discount'): - if domain: - domain = expression.AND([[("dr_has_discount", "!=", False)], domain]) - else: - domain = [["dr_has_discount", "!=", False]] - result['discount'] = self._get_products(domain, fields, limit) - final = {} - final['products'] = result - final.update(self._get_shop_related_data(options)) - return final + # TO-DO remove viewref logic someday and adapt everything new ways + @http.route('/theme_prime/get_shop_config', type='json', auth='public', website=True) + def get_shop_config(self): + return request.website._get_theme_prime_shop_config() @http.route('/theme_prime/get_products_data', type='json', auth='public', website=True) - def get_products_data(self, domain=None, fields=[], options={}, limit=25, order=None, **kwargs): + def get_products_data(self, domain, fields=[], options={}, limit=25, order=None, **kwargs): result = { 'products': self._get_products(domain, fields, limit, order), } result.update(self._get_shop_related_data(options)) return result + @http.route('/theme_prime/get_category_by_name', type='http', website=True) + def get_category_by_name(self, term='', category_id=False, **post): + domain = expression.AND([request.website.website_domain(), [('name', 'ilike', (term or ''))]]) + if category_id: + domain = expression.AND([domain, [('id', 'child_of', int(category_id))]]) + result = request.env['product.public.category'].search_read(domain, fields=['name', 'display_name', 'id'], limit=10) + return json.dumps(result) + @http.route('/theme_prime/get_products_by_category', type='json', auth='public', website=True) def get_products_by_category(self, domain, fields=[], options={}, **kwargs): final_domain = expression.AND([[('website_published', '=', True)], domain]) @@ -478,29 +490,27 @@ class ThemePrimeMainClass(http.Controller): result.update(self._get_shop_related_data(options)) if (options.get('get_categories')): # get category names for snippet - domain = [('id', 'in', options.get('categoryIDs'))] - result['categories'] = self._get_categories(domain) - if (options.get('get_brands')): - # get category names for snippet - domain = [('id', 'in', options.get('categoryIDs'))] - result['categories'] = request.website._get_brands(domain).read(['name', 'id']) + result['categories'] = self._get_category_names(options.get('categoryIDs')) return result @http.route('/theme_prime/get_top_categories', type='json', auth='public', website=True) def get_top_categories(self, options={}): params = options.get('params') result = [] + pricelist = request.website.get_current_pricelist() website_sale_domain = request.website.sale_product_domain() + FieldMonetary = request.env['ir.qweb.field.monetary'] + monetary_options = { + 'display_currency': pricelist.currency_id, + } if params: categoryIDs = params.get('categoryIDs') if categoryIDs: - domain = [('id', 'in', categoryIDs)] - category_names = {i['id']: i['name'] for i in self._get_categories(domain)} + category_names = {i['id']: i['name'] for i in self._get_category_names(categoryIDs)} # Update categoryIDs if already set category moved to other website categoryIDs = category_names.keys() params['categoryIDs'] = categoryIDs categories = self._get_products_for_top_categories(params) - price_public_visibility = request.website._dr_has_b2b_access() for category_id in categoryIDs: category_data = {} product_ids = categories.get(category_id) @@ -509,20 +519,42 @@ class ThemePrimeMainClass(http.Controller): category_data['website_url'] = '/shop/category/' + str(category_id) category_data['productIDs'] = product_ids final_domain = expression.AND([website_sale_domain, [('public_categ_ids', 'child_of', category_id)]]) - products = self._get_products(domain=final_domain, fields=[], limit=1, order="list_price asc") - if len(products): - category_data['min_price'] = products[0].get('price') - category_data['price_public_visibility'] = price_public_visibility + product_price = request.env['product.template'].with_context(pricelist=pricelist.id).read_group(final_domain, fields=['min_price:min(list_price)'], groupby=['active']) + if len(product_price): + min_price = request.website._convert_currency_price(product_price[0].get('min_price'), rounding_method=lambda amt: round(amt, 2)) + category_data['min_price'] = FieldMonetary.value_to_html(min_price, monetary_options) result.append(category_data) return result - @http.route(['/theme_prime/get_dialog_content'], type='json', website=True, auth="public") - def get_dialog_content(self, res_id, res_model, fields, **post): - return request.env[res_model].sudo().search_read([('id', '=', res_id)], fields=fields) + @http.route('/theme_prime/get_products_by_collection', type='json', auth='public', website=True) + def get_products_by_collection(self, fields=[], limit=25, order=None, options={}, **kwargs): + collections = options.get('collections') + result = [] + shop_config_params = self.get_shop_config() + for collection in collections: + res = {} + res['title'] = collection.get('title', '') + res['is_rating_active'] = shop_config_params.get('is_rating_active', False) + res['products'] = self._get_products_from_collection(collection.get('data'), fields, limit, order) + result.append(res) + return result - @http.route('/theme_prime/get_categories_count', type='json', auth='public', website=True) - def get_categories_count(self): - return request.env['product.template']._get_product_category_count(domain=request.env['website'].sale_product_domain()) + @http.route(['/theme_prime/get_offer_dialog_content'], type='json', website=True, auth="public") + def get_offer_dialog_content(self, dialog_id, **post): + return request.env['dr.product.offer'].sudo().search_read([('id', '=', dialog_id)], limit=1, fields=['dialog_content']) + + @http.route('/theme_prime/_get_products_from_collection', type='json', auth='public', website=True) + def _get_products_from_collection(self, collection, fields=[], limit=25, order=None, **kwargs): + selection_type = collection.get('selectionType') + if selection_type == 'manual': + return self._get_d_products_manually(collection, fields, limit, order) + elif selection_type == 'advance': + return self._get_d_products_advance(collection, fields) + + @http.route('/theme_prime/save_website_config', type='json', auth='user', website=True) + def save_website_config(self, configs, **post): + request.env['dr.theme.config']._save_config(request.website.id, configs) + return {'result': True} @http.route('/theme_prime/get_categories_info', type='json', auth='public', website=True) def get_categories_info(self, fields=[], options={}, **kwargs): @@ -532,399 +564,29 @@ class ThemePrimeMainClass(http.Controller): categories = request.env['product.public.category'].search(domain) result = categories.read(fields) if options.get('getCount', False): - get_category_count = self.get_categories_count() + get_category_count = request.env['product.template']._get_product_category_count(website_ids=request.website.ids, domain=request.website.website_domain()) for res_category, category in zip(result, categories): if 'dr_category_label_id' in fields and category.dr_category_label_id: category_label = category.dr_category_label_id res_category['category_lable_info'] = { - 'id': category_label.id, - 'name': category_label.name, - 'background_color': category_label.background_color, - 'text_color': category_label.text_color, - } + 'name': category_label.name, + 'color': category_label.color, + 'id': category_label.id, + } if options.get('getCount', False): res_category['count'] = get_category_count.get(category.id) res_category['website_url'] = '/shop/category/' + str(category.id) - res_category['image_url'] = '/web/image?model=product.public.category&id=%d&field=image_512' % (category.id) + res_category['image_url'] = '/web/image?model=product.public.category&id=%d&field=image_128' % (category.id) res_category['cover_image'] = '/web/image?model=product.public.category&id=%d&field=dr_category_cover_image' % (category.id) return result @http.route('/theme_prime/get_brands', type='json', auth='public', website=True) - def get_brands(self, fields=['id', 'name', 'attribute_id'], options={}): - if options.get('categories'): - domain = expression.AND([request.website.sale_product_domain(), [('public_categ_ids', 'child_of', options.get('categories'))]]) - brands = request.env['product.template'].search(domain).mapped('dr_brand_value_id')[:options.get('limit', 12)] - else: - brands = request.website._get_brands([], options.get('limit', 12)) - domain = request.env['website'].sale_product_domain() - get_attrib_count = request.env['product.template']._get_product_attrib_count(attrib_values=[[brand.attribute_id.id, brand.id] for brand in brands], domain=domain) - return [{**brand_data, 'product_count': get_attrib_count.get(brand_data['id'], 0)} for brand_data in brands.read(fields)] - - @http.route('/theme_prime/get_preview_body', type='http', auth="user", website=True, sitemap=False, multilang=False) - def get_preview_body(self, **kw): - return request.env['ir.ui.view']._render_template('theme_prime.tp_preview_body', {'mobile': kw.get('mobile')}) - - @http.route('/theme_prime/get_megamenu_categories', type='json', auth='public', website=True) - def get_megamenu_categories(self, options={}, limit=5, fields=['name', 'id'], order='count', **kwargs): - category_ids = request.env['product.public.category'].browse(options.get('categoryIDs', [])).exists().ids - final_domain = expression.AND([request.website.website_domain(), [('parent_id', 'child_of', category_ids)]]) - categories = request.env['product.public.category'].search(final_domain, limit=None) - - all_categories = [] - all_category_count = request.env['product.template']._get_product_category_count(request.env['website'].sale_product_domain()) - for category in categories: - all_categories.append({ - 'id': category.id, 'name': category.name, 'parent_id': category.parent_id.id, - 'count': all_category_count.get(category['id'], 0), - 'website_url': '/shop/category/' + str(category.id), - 'image_url': '/web/image?model=product.public.category&id=%d&field=image_512' % (category.id), - 'cover_image': '/web/image?model=product.public.category&id=%d&field=dr_category_cover_image' % (category.id), - 'dr_category_icon': '/web/image?model=product.public.category&id=%d&field=dr_category_icon' % (category.id), - 'category_label_info': category.dr_category_label_id and {f: category.dr_category_label_id[f] for f in ['name', 'background_color', 'text_color']} or False, - }) - - parent_categories = filter(lambda category: category.get('id') in category_ids, all_categories) - return [self._get_megamenu_child_categories(category_id, limit, all_categories, order) for category_id in parent_categories] - - def _get_megamenu_child_categories(self, parent_category, limit, all_categories, order): - child_categories = [categ for categ in all_categories if categ.get('parent_id') == parent_category.get('id')] - if not child_categories: - return {'category': parent_category, 'child': []} - if order == 'count' or not order: - child_categories = sorted(child_categories, key=lambda category: category.get('count', 0), reverse=True) - child_categories = child_categories[:limit] - remain_limit = limit - len(child_categories) - - if remain_limit <= 0: - return {'category': parent_category, 'child': child_categories} - - for child_category in child_categories: - new_born_child = self._get_megamenu_child_categories(child_category, remain_limit, all_categories, order).get('child') - child_categories.extend(new_born_child) - remain_limit = limit - len(child_categories) - if remain_limit <= 0: - break - return {'category': parent_category, 'child': child_categories} - - -class ThemeWebsite(Website): - - @http.route('/website/dr_search', type='json', auth="public", website=True) - def dr_search(self, term, max_nb_chars, options, **kw): - - fuzzy_term, global_match = False, False - search_config = request.website._get_dr_theme_config('json_product_search') - has_formulate = self._dr_has_formulate(search_config) - fuzzy_enabled = search_config.get('search_fuzzy') - limit = max(min(search_config.get('search_limit'), 10), 5) - search_types = ['products', 'categories', 'autocomplete', 'suggestions'] - results = {search_type: {'results': [], 'results_count': 0, 'parts': {}} for search_type in search_types} - product_limit = max(min(search_config.get('search_max_product'), 5), 0) - options = {'allowFuzzy': fuzzy_enabled, 'displayDescription': False, 'displayDetail': True, 'displayExtraLink': True, 'displayImage': True} - if product_limit: - results['products'] = self.autocomplete(search_type='products_only', term=term, order='name asc', limit=product_limit, options=options) - product_fuzzy_term = results['products'].get('fuzzy_search') - - if search_config.get('search_category') and not has_formulate: - results['categories'] = self.autocomplete(search_type='product_categories_only', term=term, order='sequence, name, id', limit=5, options=options) - category_fuzzy_term = results['categories'].get('fuzzy_search') - if fuzzy_enabled: - empty_search = {'results': [], 'results_count': 0, 'parts': {}} - if category_fuzzy_term == product_fuzzy_term: - fuzzy_term = product_fuzzy_term - elif not category_fuzzy_term and results['categories'].get('results_count'): - results['products'], fuzzy_term = empty_search, False - elif not product_fuzzy_term and results['products'].get('results_count'): - results['categories'], fuzzy_term = empty_search, False - elif product_fuzzy_term and not category_fuzzy_term: # category will be always empty based on above conditions - fuzzy_term = product_fuzzy_term - elif category_fuzzy_term and not product_fuzzy_term: # products will be always empty based on above conditions - fuzzy_term = category_fuzzy_term - else: # super rare case - all_results = self.autocomplete(search_type='products', term=term, order='sequence, name, id', limit=limit, options=options) - products_result = [res for res in all_results['results'] if res.get('_fa') == 'fa-shopping-cart'] - category_result = [res for res in all_results['results'] if res.get('_fa') == 'fa-folder-o'] - fuzzy_term = all_results.get('fuzzy_search') - results = {'products': {'results': products_result, 'results_count': len(products_result), 'parts': {}}, 'categories': {'results': category_result, 'results_count': len(category_result), 'parts': {}}} - - # suggestion search - if search_config.get('search_attribute') or search_config.get('search_suggestion'): - remain_limit = limit - min(product_limit, results['products'].get('results_count', 0)) # Odoo results_count returns count for full result (without limit) - words = [i for i in term.split(' ') if i] # split and filter spaces - matchs, matched_dicts = False, {} - for word in words: - if matchs: - for match in matchs: - match_dict = matched_dicts[match] - if match_dict['remaining_words']: - match_dict['remaining_words'].append(word) - else: - unmatched_record_name = match_dict['unmatched_record_name'] - regex_match = re.search(re.escape(word), unmatched_record_name, re.IGNORECASE) - if regex_match: - match_dict['matched_words'].append(word) - match_dict['unmatched_record_name'] = re.sub(re.escape(word), ' ', unmatched_record_name, flags=re.I) - else: - match_dict['remaining_words'].append(word) - else: - matchs = self._match_attr_or_category(word) - if matchs: - for match in matchs: - matched_dicts[match] = match_dict = {'match': match, 'matched_words': [word], 'remaining_words': []} - match_dict['unmatched_record_name'] = re.sub(re.escape(match_dict['matched_words'][0]), ' ', match.ds_name, flags=re.I) - - match_list = list(matched_dicts.values()) - match_list.sort(key=lambda m: len(m['matched_words']), reverse=True) - autocomplete_result = [] - - for match_dict in match_list: - autocomplete_data = [] - if match_dict['remaining_words']: - autocomplete_data = self._get_autocomplete_data(match_dict, remain_limit, search_config) - elif not search_config.get('search_category') and match_dict['match']._name == 'product.public.category': - autocomplete_data = [self.generate_result_dict(match_dict['match'], False, match_dict['matched_words'], '')] - if not match_dict['remaining_words']: - # if no remaining_words that means full data matched with record so suggestions become autocomplete - autocomplete_data += self._get_suggestions_data(match_dict, autocomplete_result, remain_limit, search_config, ignore_config=True) - remain_limit -= len(autocomplete_data) - autocomplete_result.extend(autocomplete_data) - if not remain_limit: - break - - suggestions_result = [] - for match_dict in match_list: - suggestions_data = self._get_suggestions_data(match_dict, autocomplete_result, min(remain_limit, 5), search_config) - remain_limit -= len(suggestions_data) - suggestions_result.extend(suggestions_data) - if not remain_limit: - break - - results['autocomplete'] = {'results': autocomplete_result, 'results_count': len(autocomplete_result), "parts": {"name": True, "website_url": True}} - results['suggestions'] = {'results': suggestions_result, 'results_count': len(suggestions_result), "parts": {"name": True, "website_url": True}} - - global_match = False - if matchs and len(matchs) == 1 and (results['autocomplete'].get('results_count') or results['suggestions'].get('results_count')): - if matchs._name == 'product.public.category': - fixed_str = _('View all products with category') - global_match = {'name': f'{fixed_str} {matchs.ds_name}', 'website_url': f'/shop?category={matchs.id}'} - else: - fixed_str = _('View all products with') - global_match = {'name': f'{fixed_str} {matchs.attribute_id.name.lower()} {matchs.ds_name}', 'website_url': f'/shop?&attrib={matchs.attribute_id.id}-{matchs.id}'} - - return {**results, 'fuzzy_search': fuzzy_term, 'results': [], 'global_match': global_match, - 'result_length': sum([results.get(r_type, {}).get('results_count', 0) for r_type in search_types]), - } - - def _get_autocomplete_data(self, match_dict, remain_limit, search_config): - match, remaining_words, matched_words = match_dict['match'], match_dict['remaining_words'], match_dict['matched_words'] - results = [] - if search_config.get('search_attribute') and remaining_words and match: - for related_match, word in self.match_remaining_words(match, remaining_words): - results.append(self.generate_result_dict(match, related_match, matched_words, word)) - matched_words.append(word) - if len(results) >= remain_limit: - break - return results - - def _get_suggestions_data(self, match_dict, autocomplete_data, remain_limit, search_config, ignore_config=False): - results = [] - match, matched_words = match_dict['match'], match_dict['matched_words'] - if (search_config.get('search_suggestion') or ignore_config) and remain_limit > 0: - if match._name == 'product.public.category': - for related_match in self._category_counterpart_iterator(match, search_type=['auto_suggestion']): - term = self.generate_result_dict(match, related_match, matched_words) - if not self.is_search_added(autocomplete_data, results, term): - results.append(term) - if len(results) >= remain_limit: - break - else: - domain = request.website.sale_product_domain() + [('attribute_line_ids.value_ids', 'in', match.ids)] - all_related_records = request.env['product.template'].with_context(bin_size=True).search(domain).mapped('public_categ_ids') - for related_match in all_related_records: - term = self.generate_result_dict(match, related_match, matched_words) - if not self.is_search_added(autocomplete_data, results, term): - results.append(term) - if len(results) >= remain_limit: - break - return results - - def _match_attr_or_category(self, term, return_on_match=True): - result = self._match_category(term) - if not result: - result = self._match_attr(term) - return result - - def _match_category(self, term): - ProductCategory = request.env['product.public.category'] - matched_categories = ProductCategory.search([('ds_name', 'ilike', term)] + request.website.website_domain()) - return matched_categories - - def _match_attr(self, term): - all_active_attributes = self._website_active_attributes() - matched_values = request.env['product.attribute.value'] - if all_active_attributes: - matched_values = matched_values.search([('ds_name', 'ilike', term), ('attribute_id', 'in', all_active_attributes.ids)]) - return matched_values - - def _website_active_attributes(self): - all_products = request.env['product.template'].with_context(bin_size=True).search(request.website.sale_product_domain()) - return request.env['product.attribute'].search([ - ('product_tmpl_ids', 'in', all_products.ids), ('visibility', '=', 'visible'), ('dr_search_suggestion', '!=', False) - ]) - - def match_remaining_words(self, match, remaining_words): - if match._name == 'product.public.category': - for word in remaining_words: - for attribute_value in self._category_counterpart_iterator(match): - regex_match = re.search(re.escape(word), attribute_value.ds_name, re.IGNORECASE) - if regex_match: - yield attribute_value, word - - if match._name == 'product.attribute.value': - domain = request.website.sale_product_domain() + [('attribute_line_ids.value_ids', 'in', match.ids)] - categories = request.env['product.template'].with_context(bin_size=True).search(domain).mapped('public_categ_ids') - for word in remaining_words: - for category in categories: - regex_match = re.search(re.escape(word), category.ds_name, re.IGNORECASE) - if regex_match: - yield category, word - - def _category_counterpart_iterator(self, category, search_type=['auto_suggestion', 'auto']): - attribute_values = category.mapped('product_tmpl_ids.attribute_line_ids').filtered(lambda line: line.attribute_id.dr_search_suggestion in search_type).mapped('value_ids') - for value in attribute_values: - yield value - - # Child category - child_categories = request.env['product.public.category'].search([('parent_id', 'child_of', category.id)]) - category - child_attribute_values = child_categories.mapped('product_tmpl_ids.attribute_line_ids').filtered(lambda line: line.attribute_id.dr_search_suggestion in search_type).mapped('value_ids') # plus to maintain order - for value in child_attribute_values: - if value not in attribute_values: - yield value - - def generate_result_dict(self, primary_match, secondary_match, matched_words, word=False): - category, attribute = (primary_match, secondary_match) if primary_match._name == 'product.public.category' else (secondary_match, primary_match) - attribute_str = f"&attrib={attribute.attribute_id.id}-{attribute.id}" if attribute else '' # just for category - return { - 'name': self.format_result(matched_words + (word and [word] or []), f"{primary_match.ds_name} {secondary_match and secondary_match.ds_name or ''}"), - 'website_url': f"/shop?category={category.id}{attribute_str}" - } - - def format_result(self, matched_words, value): - pattern = '|'.join(map(re.escape, matched_words)) - parts = re.split(f'({pattern})', value, flags=re.IGNORECASE) - if len(parts) > 1: - value = request.env['ir.ui.view'].sudo()._render_template("website.search_text_with_highlight", {'parts': parts}) - html_val = request.env[('ir.qweb.field.html')].value_to_html(value, {'template_options': {}}) - return html_escape(html_val) - return False - - def is_search_added(self, autocomplete_result, suggestions_results, new_term): - auto_found = len([term for term in autocomplete_result if new_term['website_url'] == term['website_url']]) - sugg_found = len([term for term in suggestions_results if new_term['website_url'] == term['website_url']]) - return auto_found + sugg_found - - def _dr_has_formulate(self, search_config): # for performance - if search_config.get('search_attribute') or search_config.get('search_suggestion'): - formulate_category = request.env['product.public.category'].search(([('dr_search_formulate', '=', True)] + request.website.website_domain()), limit=1) - if formulate_category: - request.update_context(dr_formulate=True) - return len(formulate_category) - return False - - -class ThemePrimeBrand(http.Controller): - - @http.route('/shop/all-brands', type='http', auth='public', website=True, sitemap=True) - def brands(self, search='', **args): - is_disable_grouping = request.website._get_dr_theme_config('json_brands_page')['disable_brands_grouping'] - brands = request.website._get_brands([('name', 'ilike', search)] if search else []) - - grouped_brands = defaultdict(list) - if is_disable_grouping: - grouped_brands = {'All Brands': brands} - else: - alphabet_range = string.ascii_uppercase - grouped_brands.update((alphabet, []) for alphabet in alphabet_range) - for brand in brands: - first_char = str.upper(brand.name[:1]) - grouped_brands[first_char].append(brand) - - get_brand_count = request.env['product.template']._get_product_attrib_count(attrib_values=[[brand.attribute_id.id, brand.id] for brand in brands], domain=request.env['website'].sale_product_domain()) - return request.render('theme_prime.all_brands', {'is_disable_grouping': is_disable_grouping, 'brands': brands, 'grouped_brands': grouped_brands, 'search': search, 'get_brand_count': get_brand_count}) - - -class ThemePrimePWA(http.Controller): - - @http.route('/pwa//manifest.json', type='http', auth='public', website=True) - def get_pwa_manifest(self, website_id, **kargs): - manifest_data = {"fake": 1} - website = request.website - if website and website.id == website_id and website.dr_pwa_activated: - manifest_data = { - "name": website.dr_pwa_name, - "short_name": website.dr_pwa_short_name, - "display": "standalone", - "background_color": website.dr_pwa_background_color, - "theme_color": website.dr_pwa_theme_color, - "id": website.dr_pwa_start_url, - "start_url": website.dr_pwa_start_url, - "scope": "/", - "icons": [{ - "src": "/web/image/website/%s/dr_pwa_icon_192/192x192" % website.id, - "sizes": "192x192", - "type": "image/png", - }, { - "src": "/web/image/website/%s/dr_pwa_icon_512/512x512" % website.id, - "sizes": "512x512", - "type": "image/png", - }] - } - if website.dr_pwa_shortcuts: - manifest_data['shortcuts'] = [{ - "name": shortcut.name, - "short_name": shortcut.short_name or '', - "description": shortcut.description or '', - "url": shortcut.url, - "icons": [{"src": "/web/image/dr.pwa.shortcuts/%s/icon/192x192" % shortcut.id, "sizes": "192x192"}] - } for shortcut in website.dr_pwa_shortcuts] - return request.make_response( - data=json.dumps(manifest_data), - headers=[('Content-Type', 'application/json')] - ) - - @http.route('/service_worker.js', type='http', auth='public', website=True, sitemap=False) - def get_pwa_service_worker(self, **kargs): - website = request.website - js_folder = partial(get_resource_path, 'theme_prime', 'static', 'src', 'js') - file_path = js_folder('service_worker.js') - offline_bool = 'true' if website.dr_pwa_offline_page else 'false' - data = open(file_path).read() - data = data.replace('"##1##"', str(website.dr_pwa_version)) - data = data.replace('"##2##"', offline_bool) - - return request.make_response( - data=data, - headers=[('Content-Type', 'text/javascript')] - ) - - @http.route('/pwa/offline_page', type='http', auth='public', website=True, cors='*', sitemap=False) - def get_pwa_offline_page(self, **kargs): - return request.render('theme_prime.pwa_offline_page', {}) - - @http.route('/pwa/logo.png', type='http', auth='public', website=True, cors='*', sitemap=False) - def get_pwa_logo(self, **kargs): - website = request.website - imgname = 'logo' - imgext = '.png' - placeholder = partial(get_resource_path, 'web', 'static', 'img') - if not website.logo: - response = http.Stream.from_path(placeholder('nologo.png')).get_response() - else: - image_base64 = base64.b64decode(website.logo) - image_data = io.BytesIO(image_base64) - mimetype = guess_mimetype(image_base64, default='image/png') - imgext = '.' + mimetype.split('/')[1] - if imgext == '.svg+xml': - imgext = '.svg' - response = send_file(image_data, request.httprequest.environ, download_name=imgname + imgext, mimetype=mimetype, last_modified=website.write_date) - return response + def get_brands(self, fields=['id'], options={}): + # read_group we only want brands that are associated with product brand with count 0 should be not displayed in snippet + # right now product_count field in brand is compute so we can't add it in domain + brands = request.env['product.template'].read_group(domain=request.website.website_domain(), fields=['dr_brand_id'], groupby=['dr_brand_id']) + brand_ids = [] + for brand in brands: + if brand.get('dr_brand_id_count', 0) and brand.get('dr_brand_id'): + brand_ids.append(brand.get('dr_brand_id')[0]) + return request.env['dr.product.brand'].search_read([('id', 'in', brand_ids)], limit=options.get('limit', 12), fields=fields) diff --git a/odex25_donation/theme_prime/controllers/pwa.py b/odex25_donation/theme_prime/controllers/pwa.py new file mode 100644 index 000000000..fafb59edb --- /dev/null +++ b/odex25_donation/theme_prime/controllers/pwa.py @@ -0,0 +1,99 @@ +# -*- coding: utf-8 -*- +# Copyright (c) 2019-Present Droggol. () + +import json +import base64 +import io +from functools import partial + +from odoo import http +from odoo.http import request + +from odoo.modules.module import get_resource_path +from odoo.tools.mimetypes import guess_mimetype + + +class ThemePrimePWA(http.Controller): + + @http.route('/pwa//manifest.json', type='http', auth='public', website=True) + def get_pwa_manifest(self, website_id, **kargs): + manifest_data = {"fake": 1} + website = request.website + if website and website.id == website_id and website.dr_pwa_activated: + manifest_data = { + "name": website.dr_pwa_name, + "short_name": website.dr_pwa_short_name, + "display": "standalone", + "background_color": website.dr_pwa_background_color, + "theme_color": website.dr_pwa_theme_color, + "start_url": website.dr_pwa_start_url, + "scope": "/", + "icons": [{ + "src": "/web/image/website/%s/dr_pwa_icon_192/192x192" % website.id, + "sizes": "192x192", + "type": "image/png", + }, { + "src": "/web/image/website/%s/dr_pwa_icon_512/512x512" % website.id, + "sizes": "512x512", + "type": "image/png", + }] + } + if website.dr_pwa_shortcuts: + manifest_data['shortcuts'] = [{ + "name": shortcut.name, + "short_name": shortcut.short_name or '', + "description": shortcut.description or '', + "url": shortcut.url, + "icons": [{"src": "/web/image/dr.pwa.shortcuts/%s/icon/192x192" % shortcut.id, "sizes": "192x192"}] + } for shortcut in website.dr_pwa_shortcuts] + return request.make_response( + data=json.dumps(manifest_data), + headers=[('Content-Type', 'application/json')] + ) + + @http.route('/service_worker.js', type='http', auth='public', website=True, sitemap=False) + def get_pwa_service_worker(self, **kargs): + website = request.website + js_folder = partial(get_resource_path, 'theme_prime', 'static', 'src', 'js') + file_path = js_folder('service_worker.js') + offline_bool = 'true' if website.dr_pwa_offline_page else 'false' + data = open(file_path).read() + data = data.replace('"##1##"', str(website.dr_pwa_version)) + data = data.replace('"##2##"', offline_bool) + + return request.make_response( + data=data, + headers=[('Content-Type', 'text/javascript')] + ) + + @http.route('/pwa/offline_page', type='http', auth='public', website=True, cors='*', sitemap=False) + def get_pwa_offline_page(self, **kargs): + return request.render('theme_prime.pwa_offline_page', {}) + + @http.route('/pwa/logo.png', type='http', auth='public', website=True, cors='*', sitemap=False) + def get_pwa_logo(self, **kargs): + website = request.website + imgname = 'logo' + imgext = '.png' + placeholder = partial(get_resource_path, 'web', 'static', 'src', 'img') + + if not website.logo: + response = http.send_file(placeholder('nologo.png')) + else: + b64 = website.logo + image_base64 = base64.b64decode(b64) + image_data = io.BytesIO(image_base64) + mimetype = guess_mimetype(image_base64, default='image/png') + imgext = '.' + mimetype.split('/')[1] + if imgext == '.svg+xml': + imgext = '.svg' + response = http.send_file(image_data, filename=imgname + imgext, mimetype=mimetype, mtime=website.write_date) + return response + + @http.route('/pwa/is_pwa_actived', type='http', auth='public', website=True, sitemap=False) + def get_pwa_is_actived(self, **kargs): + data = {'pwa': request.website.dr_pwa_activated} + return request.make_response( + data=json.dumps(data), + headers=[('Content-Type', 'application/json')] + ) diff --git a/odex25_donation/theme_prime/data/data.xml b/odex25_donation/theme_prime/data/data.xml new file mode 100644 index 000000000..b43e36694 --- /dev/null +++ b/odex25_donation/theme_prime/data/data.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/odex25_donation/theme_prime/data/images_library.xml b/odex25_donation/theme_prime/data/images_library.xml new file mode 100644 index 000000000..3be03a9f4 --- /dev/null +++ b/odex25_donation/theme_prime/data/images_library.xml @@ -0,0 +1,599 @@ + + + + + theme_prime.s_banner_1_1 + theme_prime.s_banner_1_1 + /theme_prime/static/src/img/content/s_banner_1_1.jpg + + + theme_prime.s_banner_1_2 + theme_prime.s_banner_1_2 + /theme_prime/static/src/img/content/s_banner_1_2.jpg + + + theme_prime.s_banner_2_1 + theme_prime.s_banner_2_1 + /theme_prime/static/src/img/content/s_banner_2_1.jpg + + + theme_prime.s_banner_2_2 + theme_prime.s_banner_2_2 + /theme_prime/static/src/img/content/s_banner_2_2.jpg + + + theme_prime.s_banner_2_3 + theme_prime.s_banner_2_3 + /theme_prime/static/src/img/content/s_banner_2_3.jpg + + + theme_prime.s_banner_3_1 + theme_prime.s_banner_3_1 + /theme_prime/static/src/img/content/s_banner_3_1.png + + + theme_prime.s_banner_3_2 + theme_prime.s_banner_3_2 + /theme_prime/static/src/img/content/s_banner_3_2.png + + + theme_prime.s_banner_4_1 + theme_prime.s_banner_4_1 + /theme_prime/static/src/img/content/s_banner_4_1.png + + + theme_prime.s_banner_4_2 + theme_prime.s_banner_4_2 + /theme_prime/static/src/img/content/s_banner_4_2.png + + + theme_prime.s_banner_4_3 + theme_prime.s_banner_4_3 + /theme_prime/static/src/img/content/s_banner_4_3.png + + + theme_prime.s_banner_4_brand_1 + theme_prime.s_banner_4_brand_1 + /theme_prime/static/src/img/content/s_banner_4_brand_1.png + + + theme_prime.s_banner_4_brand_2 + theme_prime.s_banner_4_brand_2 + /theme_prime/static/src/img/content/s_banner_4_brand_2.png + + + theme_prime.s_banner_4_brand_3 + theme_prime.s_banner_4_brand_3 + /theme_prime/static/src/img/content/s_banner_4_brand_3.png + + + theme_prime.s_banner_5_1 + theme_prime.s_banner_5_1 + /theme_prime/static/src/img/content/s_banner_5_1.png + + + theme_prime.s_banner_6_1 + theme_prime.s_banner_6_1 + /theme_prime/static/src/img/content/s_banner_6_1.png + + + theme_prime.s_banner_6_2 + theme_prime.s_banner_6_2 + /theme_prime/static/src/img/content/s_banner_6_2.png + + + theme_prime.s_banner_7_1 + theme_prime.s_banner_7_1 + /theme_prime/static/src/img/content/s_banner_7_1.jpg + + + theme_prime.s_banner_7_2 + theme_prime.s_banner_7_2 + /theme_prime/static/src/img/content/s_banner_7_2.jpg + + + theme_prime.s_banner_7_3 + theme_prime.s_banner_7_3 + /theme_prime/static/src/img/content/s_banner_7_3.jpg + + + theme_prime.s_banner_7_4 + theme_prime.s_banner_7_4 + /theme_prime/static/src/img/content/s_banner_7_4.jpg + + + theme_prime.s_banner_8_1 + theme_prime.s_banner_8_1 + /theme_prime/static/src/img/content/s_banner_8_1.jpg + + + theme_prime.s_banner_8_2 + theme_prime.s_banner_8_2 + /theme_prime/static/src/img/content/s_banner_8_2.jpg + + + theme_prime.s_banner_8_3 + theme_prime.s_banner_8_3 + /theme_prime/static/src/img/content/s_banner_8_3.jpg + + + theme_prime.s_banner_9_1 + theme_prime.s_banner_9_1 + /theme_prime/static/src/img/content/s_banner_9_1.jpg + + + theme_prime.s_banner_9_2 + theme_prime.s_banner_9_2 + /theme_prime/static/src/img/content/s_banner_9_2.jpg + + + theme_prime.s_banner_9_3 + theme_prime.s_banner_9_3 + /theme_prime/static/src/img/content/s_banner_9_3.jpg + + + theme_prime.s_banner_10_1 + theme_prime.s_banner_10_1 + /theme_prime/static/src/img/content/s_banner_10_1.jpg + + + theme_prime.s_banner_11_1 + theme_prime.s_banner_11_1 + /theme_prime/static/src/img/content/s_banner_11_1.jpg + + + theme_prime.s_banner_11_2 + theme_prime.s_banner_11_2 + /theme_prime/static/src/img/content/s_banner_11_2.jpg + + + theme_prime.s_banner_11_3 + theme_prime.s_banner_11_3 + /theme_prime/static/src/img/content/s_banner_11_3.jpg + + + + theme_prime.s_call_to_action_5_1 + theme_prime.s_call_to_action_5_1 + /theme_prime/static/src/img/content/s_call_to_action_5_1.jpg + + + + theme_prime.s_category_1_1 + theme_prime.s_category_1_1 + /theme_prime/static/src/img/content/s_category_1_1.jpg + + + theme_prime.s_category_2_1 + theme_prime.s_category_2_1 + /theme_prime/static/src/img/content/s_category_2_1.jpg + + + theme_prime.s_category_3_1 + theme_prime.s_category_3_1 + /theme_prime/static/src/img/content/s_category_3_1.jpg + + + theme_prime.s_category_4_1 + theme_prime.s_category_4_1 + /theme_prime/static/src/img/content/s_category_4_1.png + + + + theme_prime.s_client_01 + theme_prime.s_client_01 + /theme_prime/static/src/img/content/s_client_01.png + + + theme_prime.s_client_02 + theme_prime.s_client_02 + /theme_prime/static/src/img/content/s_client_02.png + + + theme_prime.s_client_03 + theme_prime.s_client_03 + /theme_prime/static/src/img/content/s_client_03.png + + + theme_prime.s_client_04 + theme_prime.s_client_04 + /theme_prime/static/src/img/content/s_client_04.png + + + theme_prime.s_client_05 + theme_prime.s_client_05 + /theme_prime/static/src/img/content/s_client_05.png + + + theme_prime.s_client_06 + theme_prime.s_client_06 + /theme_prime/static/src/img/content/s_client_06.png + + + theme_prime.s_client_07 + theme_prime.s_client_07 + /theme_prime/static/src/img/content/s_client_07.png + + + theme_prime.s_client_08 + theme_prime.s_client_08 + /theme_prime/static/src/img/content/s_client_08.png + + + theme_prime.s_client_09 + theme_prime.s_client_09 + /theme_prime/static/src/img/content/s_client_09.png + + + theme_prime.s_client_10 + theme_prime.s_client_10 + /theme_prime/static/src/img/content/s_client_10.png + + + theme_prime.s_client_11 + theme_prime.s_client_11 + /theme_prime/static/src/img/content/s_client_11.png + + + theme_prime.s_client_12 + theme_prime.s_client_12 + /theme_prime/static/src/img/content/s_client_12.png + + + + theme_prime.s_coming_soon_2_1 + theme_prime.s_coming_soon_2_1 + /theme_prime/static/src/img/content/s_coming_soon_2_1.png + + + theme_prime.s_coming_soon_2_2 + theme_prime.s_coming_soon_2_2 + /theme_prime/static/src/img/content/s_coming_soon_2_2.jpg + + + + theme_prime.s_cover_1_1 + theme_prime.s_cover_1_1 + /theme_prime/static/src/img/content/s_cover_1_1.jpg + + + theme_prime.s_cover_1_2 + theme_prime.s_cover_1_2 + /theme_prime/static/src/img/content/s_cover_1_2.jpg + + + theme_prime.s_cover_1_3 + theme_prime.s_cover_1_3 + /theme_prime/static/src/img/content/s_cover_1_3.jpg + + + theme_prime.s_cover_2_1 + theme_prime.s_cover_2_1 + /theme_prime/static/src/img/content/s_cover_2_1.png + + + theme_prime.s_cover_2_2 + theme_prime.s_cover_2_2 + /theme_prime/static/src/img/content/s_cover_2_2.png + + + theme_prime.s_cover_2_brand_1 + theme_prime.s_cover_2_brand_1 + /theme_prime/static/src/img/content/s_cover_2_brand_1.png + + + theme_prime.s_cover_2_brand_2 + theme_prime.s_cover_2_brand_2 + /theme_prime/static/src/img/content/s_cover_2_brand_2.png + + + theme_prime.s_cover_3_1 + theme_prime.s_cover_3_1 + /theme_prime/static/src/img/content/s_cover_3_1.jpg + + + theme_prime.s_cover_3_2 + theme_prime.s_cover_3_2 + /theme_prime/static/src/img/content/s_cover_3_2.jpg + + + theme_prime.s_cover_4_1 + theme_prime.s_cover_4_1 + /theme_prime/static/src/img/content/s_cover_4_1.jpg + + + theme_prime.s_cover_5_1 + theme_prime.s_cover_5_1 + /theme_prime/static/src/img/content/s_cover_5_1.jpg + + + theme_prime.s_cover_5_2 + theme_prime.s_cover_5_2 + /theme_prime/static/src/img/content/s_cover_5_2.jpg + + + theme_prime.s_cover_5_3 + theme_prime.s_cover_5_3 + /theme_prime/static/src/img/content/s_cover_5_3.jpg + + + theme_prime.s_cover_5_4 + theme_prime.s_cover_5_4 + /theme_prime/static/src/img/content/s_cover_5_4.jpg + + + theme_prime.s_cover_6_1 + theme_prime.s_cover_6_1 + /theme_prime/static/src/img/content/s_cover_6_1.jpg + + + + theme_prime.s_offer_1_1 + theme_prime.s_offer_1_1 + /theme_prime/static/src/img/content/s_offer_1_1.jpg + + + theme_prime.s_offer_2_1 + theme_prime.s_offer_2_1 + /theme_prime/static/src/img/content/s_offer_2_1.jpg + + + theme_prime.s_offer_3_1 + theme_prime.s_offer_3_1 + /theme_prime/static/src/img/content/s_offer_3_1.jpg + + + theme_prime.s_offer_4_1 + theme_prime.s_offer_4_1 + /theme_prime/static/src/img/content/s_offer_4_1.jpg + + + + theme_prime.s_gallery_01 + theme_prime.s_gallery_01 + /theme_prime/static/src/img/content/s_gallery_01.jpg + + + theme_prime.s_gallery_02 + theme_prime.s_gallery_02 + /theme_prime/static/src/img/content/s_gallery_02.jpg + + + theme_prime.s_gallery_03 + theme_prime.s_gallery_03 + /theme_prime/static/src/img/content/s_gallery_03.jpg + + + theme_prime.s_gallery_04 + theme_prime.s_gallery_04 + /theme_prime/static/src/img/content/s_gallery_04.jpg + + + theme_prime.s_gallery_05 + theme_prime.s_gallery_05 + /theme_prime/static/src/img/content/s_gallery_05.jpg + + + theme_prime.s_gallery_06 + theme_prime.s_gallery_06 + /theme_prime/static/src/img/content/s_gallery_06.jpg + + + theme_prime.s_gallery_07 + theme_prime.s_gallery_07 + /theme_prime/static/src/img/content/s_gallery_07.jpg + + + theme_prime.s_gallery_08 + theme_prime.s_gallery_08 + /theme_prime/static/src/img/content/s_gallery_08.jpg + + + theme_prime.s_gallery_09 + theme_prime.s_gallery_09 + /theme_prime/static/src/img/content/s_gallery_09.jpg + + + theme_prime.s_gallery_10 + theme_prime.s_gallery_10 + /theme_prime/static/src/img/content/s_gallery_10.jpg + + + theme_prime.s_gallery_11 + theme_prime.s_gallery_11 + /theme_prime/static/src/img/content/s_gallery_11.jpg + + + theme_prime.s_gallery_12 + theme_prime.s_gallery_12 + /theme_prime/static/src/img/content/s_gallery_12.jpg + + + + theme_prime.s_info_block_1_1 + theme_prime.s_info_block_1_1 + /theme_prime/static/src/img/content/s_info_block_1_1.jpg + + + theme_prime.s_info_block_2_1 + theme_prime.s_info_block_2_1 + /theme_prime/static/src/img/content/s_info_block_2_1.jpg + + + theme_prime.s_info_block_3_1 + theme_prime.s_info_block_3_1 + /theme_prime/static/src/img/content/s_info_block_3_1.jpg + + + theme_prime.s_info_block_3_2 + theme_prime.s_info_block_3_2 + /theme_prime/static/src/img/content/s_info_block_3_2.jpg + + + theme_prime.s_info_block_4_1 + theme_prime.s_info_block_4_1 + /theme_prime/static/src/img/content/s_info_block_4_1.jpg + + + theme_prime.s_info_block_5_1 + theme_prime.s_info_block_5_1 + /theme_prime/static/src/img/content/s_info_block_5_1.jpg + + + theme_prime.s_info_block_5_2 + theme_prime.s_info_block_5_2 + /theme_prime/static/src/img/content/s_info_block_5_2.jpg + + + theme_prime.s_info_block_6_1 + theme_prime.s_info_block_6_1 + /theme_prime/static/src/img/content/s_info_block_6_1.jpg + + + theme_prime.s_info_block_6_2 + theme_prime.s_info_block_6_2 + /theme_prime/static/src/img/content/s_info_block_6_2.jpg + + + theme_prime.s_info_block_7_1 + theme_prime.s_info_block_7_1 + /theme_prime/static/src/img/content/s_info_block_7_1.jpg + + + + theme_prime.s_mega_menu_3_1 + theme_prime.s_mega_menu_3_1 + /theme_prime/static/src/img/content/s_mega_menu_3_1.jpg + + + theme_prime.s_mega_menu_4_1 + theme_prime.s_mega_menu_4_1 + /theme_prime/static/src/img/content/s_mega_menu_4_1.jpg + + + theme_prime.s_mega_menu_5_1 + theme_prime.s_mega_menu_5_1 + /theme_prime/static/src/img/content/s_mega_menu_5_1.jpg + + + theme_prime.s_mega_menu_6_1 + theme_prime.s_mega_menu_6_1 + /theme_prime/static/src/img/content/s_mega_menu_6_1.jpg + + + theme_prime.s_mega_menu_6_2 + theme_prime.s_mega_menu_6_2 + /theme_prime/static/src/img/content/s_mega_menu_6_2.jpg + + + theme_prime.s_mega_menu_6_3 + theme_prime.s_mega_menu_6_3 + /theme_prime/static/src/img/content/s_mega_menu_6_3.jpg + + + theme_prime.s_mega_menu_7_1 + theme_prime.s_mega_menu_7_1 + /theme_prime/static/src/img/content/s_mega_menu_7_1.jpg + + + theme_prime.s_mega_menu_8_1 + theme_prime.s_mega_menu_8_1 + /theme_prime/static/src/img/content/s_mega_menu_8_1.png + + + theme_prime.s_mega_menu_8_2 + theme_prime.s_mega_menu_8_2 + /theme_prime/static/src/img/content/s_mega_menu_8_2.jpg + + + theme_prime.s_mega_menu_8_3 + theme_prime.s_mega_menu_8_3 + /theme_prime/static/src/img/content/s_mega_menu_8_3.png + + + + theme_prime.s_pricing_01 + theme_prime.s_pricing_01 + /theme_prime/static/src/img/content/s_pricing_01.jpg + + + theme_prime.s_pricing_02 + theme_prime.s_pricing_02 + /theme_prime/static/src/img/content/s_pricing_02.jpg + + + theme_prime.s_pricing_03 + theme_prime.s_pricing_03 + /theme_prime/static/src/img/content/s_pricing_03.jpg + + + theme_prime.s_pricing_04 + theme_prime.s_pricing_04 + /theme_prime/static/src/img/content/s_pricing_04.jpg + + + + theme_prime.s_subscribe_4_1 + theme_prime.s_subscribe_4_1 + /theme_prime/static/src/img/content/s_subscribe_4_1.jpg + + + + theme_prime.s_team_01 + theme_prime.s_team_01 + /theme_prime/static/src/img/content/s_team_01.png + + + theme_prime.s_team_02 + theme_prime.s_team_02 + /theme_prime/static/src/img/content/s_team_02.png + + + theme_prime.s_team_03 + theme_prime.s_team_03 + /theme_prime/static/src/img/content/s_team_03.png + + + theme_prime.s_team_04 + theme_prime.s_team_04 + /theme_prime/static/src/img/content/s_team_04.png + + + + theme_prime.s_team_square_01 + theme_prime.s_team_square_01 + /theme_prime/static/src/img/content/s_team_square_01.png + + + theme_prime.s_team_square_02 + theme_prime.s_team_square_02 + /theme_prime/static/src/img/content/s_team_square_02.png + + + theme_prime.s_team_square_03 + theme_prime.s_team_square_03 + /theme_prime/static/src/img/content/s_team_square_03.png + + + theme_prime.s_team_square_04 + theme_prime.s_team_square_04 + /theme_prime/static/src/img/content/s_team_square_04.png + + + + theme_prime.s_testimonial_author_01 + theme_prime.s_testimonial_author_01 + /theme_prime/static/src/img/content/s_testimonial_author_01.jpg + + + theme_prime.s_testimonial_author_02 + theme_prime.s_testimonial_author_02 + /theme_prime/static/src/img/content/s_testimonial_author_02.jpg + + + theme_prime.s_testimonial_author_03 + theme_prime.s_testimonial_author_03 + /theme_prime/static/src/img/content/s_testimonial_author_03.jpg + + + diff --git a/odex25_donation/theme_prime/data/theme.ir.attachment.csv b/odex25_donation/theme_prime/data/theme.ir.attachment.csv deleted file mode 100644 index 38475bc4d..000000000 --- a/odex25_donation/theme_prime/data/theme.ir.attachment.csv +++ /dev/null @@ -1,117 +0,0 @@ -id,key,name,url -s_banner_1_1,theme_prime.s_banner_1_1,theme_prime.s_banner_1_1,/theme_prime/static/src/img/snippets/s_banner_1_1.jpg -s_banner_1_2,theme_prime.s_banner_1_2,theme_prime.s_banner_1_2,/theme_prime/static/src/img/snippets/s_banner_1_2.jpg -s_banner_1_3,theme_prime.s_banner_1_3,theme_prime.s_banner_1_3,/theme_prime/static/src/img/snippets/s_banner_1_3.jpg -s_banner_3_1,theme_prime.s_banner_3_1,theme_prime.s_banner_3_1,/theme_prime/static/src/img/snippets/s_banner_3_1.jpg -s_banner_3_2,theme_prime.s_banner_3_2,theme_prime.s_banner_3_2,/theme_prime/static/src/img/snippets/s_banner_3_2.jpg -s_banner_3_3,theme_prime.s_banner_3_3,theme_prime.s_banner_3_3,/theme_prime/static/src/img/snippets/s_banner_3_3.jpg -s_banner_4_1,theme_prime.s_banner_4_1,theme_prime.s_banner_4_1,/theme_prime/static/src/img/snippets/s_banner_4_1.jpg -s_banner_4_2,theme_prime.s_banner_4_2,theme_prime.s_banner_4_2,/theme_prime/static/src/img/snippets/s_banner_4_2.jpg -s_banner_4_3,theme_prime.s_banner_4_3,theme_prime.s_banner_4_3,/theme_prime/static/src/img/snippets/s_banner_4_3.jpg -s_banner_5_1,theme_prime.s_banner_5_1,theme_prime.s_banner_5_1,/theme_prime/static/src/img/snippets/s_banner_5_1.png -s_banner_5_2,theme_prime.s_banner_5_2,theme_prime.s_banner_5_2,/theme_prime/static/src/img/snippets/s_banner_5_2.png -s_banner_6_1,theme_prime.s_banner_6_1,theme_prime.s_banner_6_1,/theme_prime/static/src/img/snippets/s_banner_6_1.jpg -s_banner_6_2,theme_prime.s_banner_6_2,theme_prime.s_banner_6_2,/theme_prime/static/src/img/snippets/s_banner_6_2.jpg -s_banner_6_3,theme_prime.s_banner_6_3,theme_prime.s_banner_6_3,/theme_prime/static/src/img/snippets/s_banner_6_3.jpg -s_brand_1,theme_prime.s_brand_1,theme_prime.s_brand_1,/theme_prime/static/src/img/snippets/s_brand_1.png -s_brand_2,theme_prime.s_brand_2,theme_prime.s_brand_2,/theme_prime/static/src/img/snippets/s_brand_2.png -s_brand_3,theme_prime.s_brand_3,theme_prime.s_brand_3,/theme_prime/static/src/img/snippets/s_brand_3.png -s_banner_7_1,theme_prime.s_banner_7_1,theme_prime.s_banner_7_1,/theme_prime/static/src/img/snippets/s_banner_7_1.jpg -s_banner_7_2,theme_prime.s_banner_7_2,theme_prime.s_banner_7_2,/theme_prime/static/src/img/snippets/s_banner_7_2.jpg -s_banner_7_3,theme_prime.s_banner_7_3,theme_prime.s_banner_7_3,/theme_prime/static/src/img/snippets/s_banner_7_3.jpg -s_banner_8_1,theme_prime.s_banner_8_1,theme_prime.s_banner_8_1,/theme_prime/static/src/img/snippets/s_banner_8_1.jpg -s_banner_8_2,theme_prime.s_banner_8_2,theme_prime.s_banner_8_2,/theme_prime/static/src/img/snippets/s_banner_8_2.jpg -s_banner_8_3,theme_prime.s_banner_8_3,theme_prime.s_banner_8_3,/theme_prime/static/src/img/snippets/s_banner_8_3.jpg -s_banner_9_1,theme_prime.s_banner_9_1,theme_prime.s_banner_9_1,/theme_prime/static/src/img/snippets/s_banner_9_1.jpg -s_banner_9_2,theme_prime.s_banner_9_2,theme_prime.s_banner_9_2,/theme_prime/static/src/img/snippets/s_banner_9_2.jpg -s_banner_9_3,theme_prime.s_banner_9_3,theme_prime.s_banner_9_3,/theme_prime/static/src/img/snippets/s_banner_9_3.jpg -s_banner_10_1,theme_prime.s_banner_10_1,theme_prime.s_banner_10_1,/theme_prime/static/src/img/snippets/s_banner_10_1.png -s_banner_12_1,theme_prime.s_banner_12_1,theme_prime.s_banner_12_1,/theme_prime/static/src/img/snippets/s_banner_12_1.jpg -s_banner_12_2,theme_prime.s_banner_12_2,theme_prime.s_banner_12_2,/theme_prime/static/src/img/snippets/s_banner_12_2.jpg -s_banner_13_1,theme_prime.s_banner_13_1,theme_prime.s_banner_13_1,/theme_prime/static/src/img/snippets/s_banner_13_1.jpg -s_banner_13_2,theme_prime.s_banner_13_2,theme_prime.s_banner_13_2,/theme_prime/static/src/img/snippets/s_banner_13_2.jpg -s_banner_13_3,theme_prime.s_banner_13_3,theme_prime.s_banner_13_3,/theme_prime/static/src/img/snippets/s_banner_13_3.jpg -s_banner_13_4,theme_prime.s_banner_13_4,theme_prime.s_banner_13_4,/theme_prime/static/src/img/snippets/s_banner_13_4.jpg -s_banner_14_1,theme_prime.s_banner_14_1,theme_prime.s_banner_14_1,/theme_prime/static/src/img/snippets/s_banner_14_1.png -s_banner_14_2,theme_prime.s_banner_14_2,theme_prime.s_banner_14_2,/theme_prime/static/src/img/snippets/s_banner_14_2.png -s_banner_15_1,theme_prime.s_banner_15_1,theme_prime.s_banner_15_1,/theme_prime/static/src/img/snippets/s_banner_15_1.jpg -s_client_01,theme_prime.s_client_01,theme_prime.s_client_01,/theme_prime/static/src/img/snippets/s_client_01.png -s_client_02,theme_prime.s_client_02,theme_prime.s_client_02,/theme_prime/static/src/img/snippets/s_client_02.png -s_client_03,theme_prime.s_client_03,theme_prime.s_client_03,/theme_prime/static/src/img/snippets/s_client_03.png -s_client_04,theme_prime.s_client_04,theme_prime.s_client_04,/theme_prime/static/src/img/snippets/s_client_04.png -s_client_05,theme_prime.s_client_05,theme_prime.s_client_05,/theme_prime/static/src/img/snippets/s_client_05.png -s_client_06,theme_prime.s_client_06,theme_prime.s_client_06,/theme_prime/static/src/img/snippets/s_client_06.png -s_client_07,theme_prime.s_client_07,theme_prime.s_client_07,/theme_prime/static/src/img/snippets/s_client_07.png -s_client_08,theme_prime.s_client_08,theme_prime.s_client_08,/theme_prime/static/src/img/snippets/s_client_08.png -s_client_09,theme_prime.s_client_09,theme_prime.s_client_09,/theme_prime/static/src/img/snippets/s_client_09.png -s_client_10,theme_prime.s_client_10,theme_prime.s_client_10,/theme_prime/static/src/img/snippets/s_client_10.png -s_client_11,theme_prime.s_client_11,theme_prime.s_client_11,/theme_prime/static/src/img/snippets/s_client_11.png -s_client_12,theme_prime.s_client_12,theme_prime.s_client_12,/theme_prime/static/src/img/snippets/s_client_12.png -s_coming_soon_2_1,theme_prime.s_coming_soon_2_1,theme_prime.s_coming_soon_2_1,/theme_prime/static/src/img/snippets/s_coming_soon_2_1.png -s_coming_soon_2_2,theme_prime.s_coming_soon_2_2,theme_prime.s_coming_soon_2_2,/theme_prime/static/src/img/snippets/s_coming_soon_2_2.jpg -s_info_block_1_1,theme_prime.s_info_block_1_1,theme_prime.s_info_block_1_1,/theme_prime/static/src/img/snippets/s_info_block_1_1.jpg -s_info_block_2_1,theme_prime.s_info_block_2_1,theme_prime.s_info_block_2_1,/theme_prime/static/src/img/snippets/s_info_block_2_1.jpg -s_info_block_3_1,theme_prime.s_info_block_3_1,theme_prime.s_info_block_3_1,/theme_prime/static/src/img/snippets/s_info_block_3_1.jpg -s_info_block_3_2,theme_prime.s_info_block_3_2,theme_prime.s_info_block_3_2,/theme_prime/static/src/img/snippets/s_info_block_3_2.jpg -s_info_block_4_1,theme_prime.s_info_block_4_1,theme_prime.s_info_block_4_1,/theme_prime/static/src/img/snippets/s_info_block_4_1.jpg -s_info_block_4_2,theme_prime.s_info_block_4_2,theme_prime.s_info_block_4_2,/theme_prime/static/src/img/snippets/s_info_block_4_2.jpg -s_info_block_4_3,theme_prime.s_info_block_4_3,theme_prime.s_info_block_4_3,/theme_prime/static/src/img/snippets/s_info_block_4_3.jpg -s_info_block_5_1,theme_prime.s_info_block_5_1,theme_prime.s_info_block_5_1,/theme_prime/static/src/img/snippets/s_info_block_5_1.jpg -s_info_block_5_2,theme_prime.s_info_block_5_2,theme_prime.s_info_block_5_2,/theme_prime/static/src/img/snippets/s_info_block_5_2.jpg -s_info_block_6_1,theme_prime.s_info_block_6_1,theme_prime.s_info_block_6_1,/theme_prime/static/src/img/snippets/s_info_block_6_1.jpg -s_info_block_7_1,theme_prime.s_info_block_7_1,theme_prime.s_info_block_7_1,/theme_prime/static/src/img/snippets/s_info_block_7_1.jpeg -s_info_block_8_1,theme_prime.s_info_block_8_1,theme_prime.s_info_block_8_1,/theme_prime/static/src/img/snippets/s_info_block_8_1.png -s_cover_1_1,theme_prime.s_cover_1_1,theme_prime.s_cover_1_1,/theme_prime/static/src/img/snippets/s_cover_1_1.png -s_cover_1_2,theme_prime.s_cover_1_2,theme_prime.s_cover_1_2,/theme_prime/static/src/img/snippets/s_cover_1_2.png -s_cover_1_brand_1,theme_prime.s_cover_1_brand_1,theme_prime.s_cover_1_brand_1,/theme_prime/static/src/img/snippets/s_cover_1_brand_1.png -s_cover_1_brand_2,theme_prime.s_cover_1_brand_2,theme_prime.s_cover_1_brand_2,/theme_prime/static/src/img/snippets/s_cover_1_brand_2.png -s_cover_2_1,theme_prime.s_cover_2_1,theme_prime.s_cover_2_1,/theme_prime/static/src/img/snippets/s_cover_2_1.jpg -s_cover_2_2,theme_prime.s_cover_2_2,theme_prime.s_cover_2_2,/theme_prime/static/src/img/snippets/s_cover_2_2.jpg -s_cover_3_1,theme_prime.s_cover_3_1,theme_prime.s_cover_3_1,/theme_prime/static/src/img/snippets/s_cover_3_1.jpg -s_cover_4_1,theme_prime.s_cover_4_1,theme_prime.s_cover_4_1,/theme_prime/static/src/img/snippets/s_cover_4_1.png -s_cover_4_2,theme_prime.s_cover_4_2,theme_prime.s_cover_4_2,/theme_prime/static/src/img/snippets/s_cover_4_2.png -s_cover_4_3,theme_prime.s_cover_4_3,theme_prime.s_cover_4_3,/theme_prime/static/src/img/snippets/s_cover_4_3.png -s_cover_4_4,theme_prime.s_cover_4_4,theme_prime.s_cover_4_4,/theme_prime/static/src/img/snippets/s_cover_4_4.png -s_cover_4_5,theme_prime.s_cover_4_5,theme_prime.s_cover_4_5,/theme_prime/static/src/img/snippets/s_cover_4_5.png -s_call_to_action_5_1,theme_prime.s_call_to_action_5_1,theme_prime.s_call_to_action_5_1,/theme_prime/static/src/img/snippets/s_call_to_action_5_1.jpg -s_gallery_01,theme_prime.s_gallery_01,theme_prime.s_gallery_01,/theme_prime/static/src/img/snippets/s_gallery_01.jpg -s_gallery_02,theme_prime.s_gallery_02,theme_prime.s_gallery_02,/theme_prime/static/src/img/snippets/s_gallery_02.jpg -s_gallery_03,theme_prime.s_gallery_03,theme_prime.s_gallery_03,/theme_prime/static/src/img/snippets/s_gallery_03.jpg -s_gallery_04,theme_prime.s_gallery_04,theme_prime.s_gallery_04,/theme_prime/static/src/img/snippets/s_gallery_04.jpg -s_gallery_05,theme_prime.s_gallery_05,theme_prime.s_gallery_05,/theme_prime/static/src/img/snippets/s_gallery_05.jpg -s_gallery_06,theme_prime.s_gallery_06,theme_prime.s_gallery_06,/theme_prime/static/src/img/snippets/s_gallery_06.jpg -s_gallery_07,theme_prime.s_gallery_07,theme_prime.s_gallery_07,/theme_prime/static/src/img/snippets/s_gallery_07.jpg -s_gallery_08,theme_prime.s_gallery_08,theme_prime.s_gallery_08,/theme_prime/static/src/img/snippets/s_gallery_08.jpg -s_gallery_09,theme_prime.s_gallery_09,theme_prime.s_gallery_09,/theme_prime/static/src/img/snippets/s_gallery_09.jpg -s_gallery_10,theme_prime.s_gallery_10,theme_prime.s_gallery_10,/theme_prime/static/src/img/snippets/s_gallery_10.jpg -s_gallery_11,theme_prime.s_gallery_11,theme_prime.s_gallery_11,/theme_prime/static/src/img/snippets/s_gallery_11.jpg -s_gallery_12,theme_prime.s_gallery_12,theme_prime.s_gallery_12,/theme_prime/static/src/img/snippets/s_gallery_12.jpg -s_mega_menu_prime_2_1,theme_prime.s_mega_menu_prime_2_1,theme_prime.s_mega_menu_prime_2_1,/theme_prime/static/src/img/snippets/s_mega_menu_prime_2_1.jpg -s_mega_menu_prime_3_1,theme_prime.s_mega_menu_prime_3_1,theme_prime.s_mega_menu_prime_3_1,/theme_prime/static/src/img/snippets/s_mega_menu_prime_3_1.png -s_mega_menu_prime_4_1,theme_prime.s_mega_menu_prime_4_1,theme_prime.s_mega_menu_prime_4_1,/theme_prime/static/src/img/snippets/s_mega_menu_prime_4_1.jpg -s_mega_menu_prime_5_1,theme_prime.s_mega_menu_prime_5_1,theme_prime.s_mega_menu_prime_5_1,/theme_prime/static/src/img/snippets/s_mega_menu_prime_5_1.jpg -s_mega_menu_prime_5_2,theme_prime.s_mega_menu_prime_5_2,theme_prime.s_mega_menu_prime_5_2,/theme_prime/static/src/img/snippets/s_mega_menu_prime_5_2.jpg -s_mega_menu_prime_5_3,theme_prime.s_mega_menu_prime_5_3,theme_prime.s_mega_menu_prime_5_3,/theme_prime/static/src/img/snippets/s_mega_menu_prime_5_3.jpg -s_mega_menu_prime_5_4,theme_prime.s_mega_menu_prime_5_4,theme_prime.s_mega_menu_prime_5_4,/theme_prime/static/src/img/snippets/s_mega_menu_prime_5_4.jpg -s_mega_menu_prime_6_1,theme_prime.s_mega_menu_prime_6_1,theme_prime.s_mega_menu_prime_6_1,/theme_prime/static/src/img/snippets/s_mega_menu_prime_6_1.jpg -s_mega_menu_prime_6_2,theme_prime.s_mega_menu_prime_6_2,theme_prime.s_mega_menu_prime_6_2,/theme_prime/static/src/img/snippets/s_mega_menu_prime_6_2.png -s_mega_menu_prime_6_3,theme_prime.s_mega_menu_prime_6_3,theme_prime.s_mega_menu_prime_6_3,/theme_prime/static/src/img/snippets/s_mega_menu_prime_6_3.jpg -s_pricing_01,theme_prime.s_pricing_01,theme_prime.s_pricing_01,/theme_prime/static/src/img/snippets/s_pricing_01.jpg -s_pricing_02,theme_prime.s_pricing_02,theme_prime.s_pricing_02,/theme_prime/static/src/img/snippets/s_pricing_02.jpg -s_pricing_03,theme_prime.s_pricing_03,theme_prime.s_pricing_03,/theme_prime/static/src/img/snippets/s_pricing_03.jpg -s_pricing_04,theme_prime.s_pricing_04,theme_prime.s_pricing_04,/theme_prime/static/src/img/snippets/s_pricing_04.jpg -s_shop_offer_1_1,theme_prime.s_shop_offer_1_1,theme_prime.s_shop_offer_1_1,/theme_prime/static/src/img/snippets/s_shop_offer_1_1.jpg -s_shop_offer_3_1,theme_prime.s_shop_offer_3_1,theme_prime.s_shop_offer_3_1,/theme_prime/static/src/img/snippets/s_shop_offer_3_1.jpg -s_shop_offer_4_1,theme_prime.s_shop_offer_4_1,theme_prime.s_shop_offer_4_1,/theme_prime/static/src/img/snippets/s_shop_offer_4_1.jpg -s_subscribe_4_1,theme_prime.s_subscribe_4_1,theme_prime.s_subscribe_4_1,/theme_prime/static/src/img/snippets/s_subscribe_4_1.jpg -s_team_01,theme_prime.s_team_01,theme_prime.s_team_01,/theme_prime/static/src/img/snippets/s_team_01.png -s_team_02,theme_prime.s_team_02,theme_prime.s_team_02,/theme_prime/static/src/img/snippets/s_team_02.png -s_team_03,theme_prime.s_team_03,theme_prime.s_team_03,/theme_prime/static/src/img/snippets/s_team_03.png -s_team_04,theme_prime.s_team_04,theme_prime.s_team_04,/theme_prime/static/src/img/snippets/s_team_04.png -s_team_square_01,theme_prime.s_team_square_01,theme_prime.s_team_square_01,/theme_prime/static/src/img/snippets/s_team_square_01.png -s_team_square_02,theme_prime.s_team_square_02,theme_prime.s_team_square_02,/theme_prime/static/src/img/snippets/s_team_square_02.png -s_team_square_03,theme_prime.s_team_square_03,theme_prime.s_team_square_03,/theme_prime/static/src/img/snippets/s_team_square_03.png -s_team_square_04,theme_prime.s_team_square_04,theme_prime.s_team_square_04,/theme_prime/static/src/img/snippets/s_team_square_04.png -s_testimonial_author_01,theme_prime.s_testimonial_author_01,theme_prime.s_testimonial_author_01,/theme_prime/static/src/img/snippets/s_testimonial_author_01.jpg -s_testimonial_author_02,theme_prime.s_testimonial_author_02,theme_prime.s_testimonial_author_02,/theme_prime/static/src/img/snippets/s_testimonial_author_02.jpg -s_testimonial_author_03,theme_prime.s_testimonial_author_03,theme_prime.s_testimonial_author_03,/theme_prime/static/src/img/snippets/s_testimonial_author_03.jpg \ No newline at end of file diff --git a/odex25_donation/theme_prime/doc/README.txt b/odex25_donation/theme_prime/doc/README.txt index 2338ae8e2..4f76e43e3 100644 --- a/odex25_donation/theme_prime/doc/README.txt +++ b/odex25_donation/theme_prime/doc/README.txt @@ -1 +1 @@ -The documentation is available at https://prime-docs-v16-25092021.droggol.com/ \ No newline at end of file +The documentation is available at https://prime-docs-v14-29101994.droggol.com/ \ No newline at end of file diff --git a/odex25_donation/theme_prime/i10n/ar.po b/odex25_donation/theme_prime/i10n/ar.po deleted file mode 100644 index 441f4089b..000000000 --- a/odex25_donation/theme_prime/i10n/ar.po +++ /dev/null @@ -1,6382 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * theme_prime -# -msgid "" -msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-03-16 10:27+0000\n" -"PO-Revision-Date: 2023-03-16 10:27+0000\n" -"Last-Translator: \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -msgid "\" category." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_4 -msgid "" -"\"Etiam semper molestie sapien a egestas. In consequat venenatis ex, sit " -"amet ultrices ante pretium et. Suspendisse nec hendrerit nulla, vitae " -"convallis risus. Morbi quis tincidunt magna. Sed nec libero.\"" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_5 -msgid "" -"\"Fusce sagittis ac orci sed tristique. Suspendisse a lobortis augue. " -"Maecenas scelerisque varius mattis. Sed auctor fermentum libero, sed " -"ullamcorper elit laoreet venenatis. Cras ac ex enim. Suspendisse sodales " -"volutpat.\"" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_1 -msgid "" -"\"Fusce sagittis ac orci sed tristique. Suspendisse a lobortis augue. " -"Maecenas scelerisque varius mattis. Sed auctor fermentum libero, sed " -"ullamcorper elit laoreet venenatis. Cras ac ex enim. Suspendisse sodales.\"" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_2 -msgid "" -"\"Proin a nisi id turpis pharetra fermentum ac eu sem. Morbi ullamcorper mi " -"quis porttitor interdum. Maecenas luctus varius interdum. Duis commodo " -"tincidunt velit non bibendum. Phasellus placerat sodales nunc. Proin a nisi " -"id turpis pharetra fermentum ac eu sem. Morbi ullamcorper mi quis porttitor " -"interdum.\"" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_5 -msgid "" -"\"Proin a nisi id turpis pharetra fermentum ac eu sem. Morbi ullamcorper mi " -"quis porttitor interdum. Maecenas luctus varius interdum. Duis commodo " -"tincidunt velit non bibendum. Phasellus placerat sodales nunc.\"" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_item_grid_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_item_grid_2 -msgid "#{rating_stats['total']} Reviews" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_3 -msgid "$ 15.80" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_3 -msgid "$ 21.00" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_3 -msgid "$ 8.80" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -msgid "$20.50" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_2 -msgid "$330.00" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -msgid "$35.00" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -msgid "$42.00" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_2 -msgid "$430.00" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_2 -msgid "$530.00" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -msgid "$9.99" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/frontend/image_hotspot.xml:0 -#, python-format -msgid "% OFF" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.discount_percentage -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_item_price -msgid "% OFF)" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_quick_view -msgid "%s review" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_quick_view -msgid "%s reviews" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/frontend/search_autocomplete.xml:0 -#, python-format -msgid "'. Showing results for '" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/website_sale.js:0 -#, python-format -msgid "(%d%% OFF)" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -msgid "(+800) 123 456 789" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.cart_sidebar -msgid "(Clear Cart)" -msgstr "(مسح الكل)" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_6 -msgid "+ Explore Now" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_7 -msgid "+ Shop Now" -msgstr "+ فرص التبرع" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "+1 (650) 691-3277" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_header_style_8 -msgid "+123 4567 780" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_call_to_action_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_6 -msgid "+91 70466 01320" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid ", .tp-editor-inner-snippet" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#, python-format -msgid ". Please try another search." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_2 -msgid "100% Genuine" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_11 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "100% Genuine product" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_custom_text -msgid "100% original guarantee" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_10 -msgid "100% secure payment" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "12" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_4 -msgid "128 GB Harddisk" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_10 -msgid "12k+ Customers" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_4 -msgid "156" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "16" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "2 column deals, dynamic, countdown" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_4 -msgid "200+" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_10 -msgid "24 X 7 support" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -msgid "24/7 customer support" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_8 -msgid "24X7 Support" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "" -"250 Executive Park Blvd, Suite 3400
San Francisco CA 94134
United" -" States" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_8 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_shop_offer_2 -msgid "30 Days Return" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_9 -msgid "30 Days Support" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_4 -msgid "365 x 7" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_7 -msgid "50" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_4 -msgid "64 MP Camara" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_4 -msgid "97 %" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_5 -msgid "$19.00" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_5 -msgid "$48.99" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_6 -msgid "" -"First purchase offer: Get 15% off. Code applied at checkout. " -"Exclusion apply*" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_2 -msgid "Designer" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_5 -msgid "" -"New " -"Arrivals" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_9 -msgid "+ Explore More" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_3 -msgid "" -"In hac habitasse platea dictumst. Praesent " -"cursus congue felis, nec pellentesque nulla ornare sed." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_3 -msgid "1200" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_3 -msgid "1340" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_5 -msgid "156" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_5 -msgid "200+" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_3 -msgid "237" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_5 -msgid "365 x 7" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_3 -msgid "8000" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_5 -msgid "97%" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_4 -msgid "$12" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_4 -msgid "$3" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_4 -msgid "$8" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_variant_selector_dialog -msgid " Buy Now" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_variant_selector_dialog -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_quick_view -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_right_panel -msgid " Add to Cart" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid " Set Product" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_item_grid_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_item_grid_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_item_list_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.suggested_products_list -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_mobile_bottombar_component -msgid " Add to Cart" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_compare -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_wishlist -msgid " Add to cart" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_item_actions -msgid "" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_header_style_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_2 -msgid " info@yourcompany.example.com" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_header_style_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_2 -msgid " 1 (650) 691-3277" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_item_actions -msgid "" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_wishlist -msgid "" -"\n" -" We'll notify you once the product is back in stock." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_7 -msgid " 100% secure payment" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_7 -msgid " 12k+ happy customers" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_7 -msgid " 24x7 customer support" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_7 -msgid " 30 days replacement" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_7 -msgid " Cash on delivery" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_7 -msgid " Easy returns" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_7 -msgid " Fast delivery" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_7 -msgid " Quality products" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid " Manage Documents" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_tabs -msgid " Download" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_team_3 -msgid " information@mail.com" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_12 -msgid " Free returns" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_mobile_bottombar_component -msgid "" -" Filters " -"" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid " ADD HOTSPOT" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_quick_view -msgid " Full Product Information" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_12 -msgid " Free support" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_team_3 -msgid " +12 345 6789 101" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -msgid " Load more" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid " Manage Snippet" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_wishlist -msgid "" -"\n" -" Invalid email" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_12 -msgid " Free Shipping for order over $200" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_tp_documents_snippet -msgid " External Documents will not work" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_4 -msgid "" -"Follow " -"us" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_wishlist -msgid "Temporarily out of stock" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_wishlist -msgid "" -"\n" -" \n" -" Get notified when back in stock\n" -" " -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_wishlist -msgid "" -"\n" -" Add to compare\n" -" " -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "" -" * Subscribe to our newsletter to receive early discount offers and " -"new products info. " -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.cart_sidebar -msgid "Proceed " -msgstr "التالي " - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_3 -msgid "Discover" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -msgid "" -" Show " -"Filters" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -msgid "Sort By :" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product -msgid "Compare" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_2 -msgid "" -"\n" -" Previous" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_4 -msgid "" -"\n" -" Previous" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_2 -msgid "" -"\n" -" Next" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_4 -msgid "" -"\n" -" Next" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_tabs -msgid " Reviews & Rating" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_team_2 -msgid " information@mail.com" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_tabs -msgid " Documents" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_tabs -msgid " Description" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_team_2 -msgid " +12 345 6789 101" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_2 -msgid " 30 Days Return Policy" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_tabs -msgid " Specifications" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_2 -msgid " 24 x 7 Support" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_2 -msgid " Free Delivery" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -msgid "Pricelist :" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.page_sidebars -msgid "Shop By Categories" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.dynamic_filter_template_blog_post_prime_layout_1 -msgid "Posted by" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.page_sidebars -msgid " Register" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "by" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.dynamic_filter_template_blog_post_prime_layout_1 -msgid "" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_3 -msgid " Cras justo odio" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_3 -msgid " Dapibus ac facilisis" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_3 -msgid " Vestibulum at eros" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_4 -msgid " 24 x Support" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_4 -msgid " 50 GB Disk Space" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_4 -msgid " Email Support" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_4 -msgid "" -" Unlimited Email Addresses" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_4 -msgid " Unlimited SQL Database" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -msgid " Cras justo odio" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -msgid " Dapibus ac facilisis" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -msgid " Vestibulum at eros" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_3 -msgid " Cras justo odio" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_3 -msgid " Dapibus ac facilisis" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_3 -msgid " Vestibulum at eros" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_4 -msgid " 24 x Support" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_4 -msgid " Email Support" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -msgid " Cras justo odio" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -msgid " Dapibus ac facilisis" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -msgid " Vestibulum at eros" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_5 -msgid "" -"\n" -" BEST\n" -" " -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_b2b_price_label -msgid " to see price" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.selected_attributes -msgid "" -"\n" -" Hide out of stock\n" -" \n" -" " -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_7 -msgid "" -"%\n" -" off" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_tp_documents_snippet -msgid "" -" Add Documents" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout_filters -msgid " & above" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.selected_attributes -msgid "" -"& above\n" -" " -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_3 -msgid "Apple Ltd." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout_filters -msgid "Availability" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.all_brands -msgid "Brands" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout_filters -msgid "Categories" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.selected_attributes -msgid "" -"Clear Filters\n" -" " -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_5 -msgid "Designer" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_5 -msgid "Developer" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_3 -msgid "Droggol" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_4 -msgid "Full battery in no time" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_3 -msgid "Google Inc." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_4 -msgid "More content" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_4 -msgid "Powerful Performance" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout_filters -msgid "Price" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout_filters -msgid "Rating" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout_filters -msgid "Tags" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_4 -msgid "Tester" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_4 -msgid "With super Macro Lens" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_quick_view -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_right_panel -msgid "A short description that will also appear on documents." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/frontend/2_col_deal.xml:0 -#, python-format -msgid "ADD TO CART" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_8 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_9 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_5 -msgid "About Us" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "About us" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_1 -msgid "Access wide range of products" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Accessorie" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_13 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -msgid "Accessories" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product -msgid "Accessory Products" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.component_account_info -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_mobile_bottombar_component -msgid "Account" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "Account & other info" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.component_account_info -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_mobile_bottombar_component -msgid "Account Info" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/record_selection.xml:0 -#, python-format -msgid "Actions" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#, python-format -msgid "Add New Rule" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_13 -msgid "Add finishing touch to your outfit" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.cart_sidebar -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_variant_selector_dialog -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_quick_view -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_right_panel -msgid "Add one" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_wishlist -msgid "Add product to my cart but keep it in my wishlist" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/frontend/2_col_deal.xml:0 -#: code:addons/theme_prime/static/src/xml/frontend/2_col_deal.xml:0 -#: code:addons/theme_prime/static/src/xml/frontend/dynamic_snippets.xml:0 -#: code:addons/theme_prime/static/src/xml/frontend/dynamic_snippets.xml:0 -#: code:addons/theme_prime/static/src/xml/frontend/dynamic_snippets.xml:0 -#: code:addons/theme_prime/static/src/xml/frontend/dynamic_snippets.xml:0 -#: code:addons/theme_prime/static/src/xml/listing_cards.xml:0 -#: code:addons/theme_prime/static/src/xml/listing_cards.xml:0 -#, python-format -msgid "Add to Cart" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_item_actions -msgid "Add to Compare" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/listing_cards.xml:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_item_actions -#, python-format -msgid "Add to Wishlist" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.optional_product_items -msgid "Add to cart" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/core/cart_confirmation_dialog.xml:0 -#, python-format -msgid "Added successfully to cart." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/core/mixins.js:0 -#, python-format -msgid "Added to your cart." -msgstr "تم اضافته للسله" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/core/product_root_widget.js:0 -#, python-format -msgid "Added to your wishlist." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_6 -msgid "Address" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/record_selection.js:0 -#, python-format -msgid "Advance" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -msgid "Advanced" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_5 -msgid "Advanced Pass" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_3 -msgid "" -"Aenean varius ligula vel augue condimentum scelerisque. In a urna at tortor " -"tincidunt gravida sit amet vel eros. Integer et." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_4 -msgid "" -"Aenean varius ligula vel augue condimentum scelerisque. In a urna at tortor " -"tincidunt gravida sit." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_options -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_tp_countdown_options -msgid "Alignment" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#: code:addons/theme_prime/static/src/xml/frontend/hierarchical_category_templates.xml:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.all_brands -#, python-format -msgid "All" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_category_pills -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout_filters -msgid "All Products" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_11 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "All oders over $100" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/core/snippet_root_widget.xml:0 -#, python-format -msgid "All products" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -msgid "All products are loaded." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "All services" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_8 -msgid "" -"All the lorem ipsum generators on the Internet
tend to repeat " -"predefined chunks as necessary." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_9 -msgid "Amazing beauty products" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "American Express" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#, python-format -msgid "Any" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Apple" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#, python-format -msgid "Apply" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/ui_component.xml:0 -#, python-format -msgid "Apply different configuration for mobile." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/ui_component.xml:0 -#, python-format -msgid "Apply different configuration to each category." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_coming_soon_1 -msgid "Are you ready?" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_tp_countdown -msgid "As promised, we will offer surprise coupon for our next sale." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "Athletic Apparel" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Attribute" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -#, python-format -msgid "Attributes" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_5 -msgid "Author Image 01" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_5 -msgid "Author Image 02" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_4 -msgid "Author Image 03" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/record_selection.js:0 -#, python-format -msgid "Availability" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_6 -msgid "Available 24/7 at (001) 123-4567" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.configure_optional_products -msgid "Available Options" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#, python-format -msgid "BUY" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/sidebar.xml:0 -#, python-format -msgid "Back" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product -msgid "Back to products" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Back to top button" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -msgid "Bags" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "Banner" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_7 -msgid "Banner Brand Image 01" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_7 -msgid "Banner Brand Image 02" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_7 -msgid "Banner Brand Image 03" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_11 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_12 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_13 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_15 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_7 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_8 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_9 -msgid "Banner Image 01" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_11 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_12 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_13 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_7 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_8 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_9 -msgid "Banner Image 02" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_13 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_7 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_8 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_9 -msgid "Banner Image 03" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_13 -msgid "Banner Image 04" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_4 -msgid "Basic" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_5 -msgid "Basic Pass" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_3 -msgid "Be the first to find out all the latest news, products and trends." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_3 -msgid "Beginner" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -msgid "Belts" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_5 -msgid "Best Products In Every Categories." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_shop_offer_5 -msgid "Best Quality" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/js/frontend/dynamic_snippets.js:0 -#, python-format -msgid "Best Seller" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/frontend/dynamic_snippets.js:0 -#, python-format -msgid "Best Sellers" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#, python-format -msgid "Bestseller" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Bg. Image" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -msgid "Blog" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_6 -msgid "Bluetooth Headset" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_options -msgid "Bold" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/record_selection.js:0 -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Brand" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Brand Best Seller" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Brand Discounted Best Seller" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Brand Discounted Products" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Brand New Arrival" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_14 -msgid "Brand New Shoes On Sale" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.all_brands -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -#, python-format -msgid "Brands" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_4 -msgid "Business" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Button" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Button Text" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/frontend/dynamic_snippets.xml:0 -#, python-format -msgid "Buy" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "CATEGORY" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/dialog.xml:0 -#, python-format -msgid "CLOSE" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "COMPARE" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_call_to_action_5 -msgid "CTA Image 01" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "Call To Action" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_header_style_8 -msgid "Call us now" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Camera" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -msgid "Careers" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -msgid "Cart" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/core/cart_confirmation_dialog.xml:0 -#, python-format -msgid "Cart Total:" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/xml/sidebar.xml:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_category_pills -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -#, python-format -msgid "Categories" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Categories - Info" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Categories Grid" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Categories Listing" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Categories Tabs" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/frontend/search_autocomplete.xml:0 -#, python-format -msgid "Categories:" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/record_selection.js:0 -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Category" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Category Best Seller" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Category Discounted Best Seller" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Category Discounted Products" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Category New Arrival" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.page_sidebars -msgid "Change Password" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/core/mixins.js:0 -#, python-format -msgid "Checkout" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#, python-format -msgid "Child Order" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_4 -msgid "Children" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Choose Template" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_4 -msgid "Clean code" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/record_selection.xml:0 -#, python-format -msgid "Clear Selection" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -msgid "" -"Click'New' in the top-right corner to create your first product." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_clients_4 -msgid "Client Image #{client}" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_clients_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_clients_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_clients_3 -msgid "Client Image #{number}" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "Clients" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -msgid "Clogs & Mules" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/core/mixins.js:0 -#: code:addons/theme_prime/static/src/xml/sidebar.xml:0 -#: code:addons/theme_prime/static/src/xml/sidebar.xml:0 -#: code:addons/theme_prime/static/src/xml/sidebar.xml:0 -#: code:addons/theme_prime/static/src/xml/sidebar.xml:0 -#: code:addons/theme_prime/static/src/xml/sidebar.xml:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.cart_sidebar -#: model_terms:theme.ir.ui.view,arch:theme_prime.page_sidebars -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_variant_selector_dialog -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_quick_view -#, python-format -msgid "Close" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Collapse Category Recursive" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_4 -msgid "Collections" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -#, python-format -msgid "Colors" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/frontend/utils.xml:0 -#, python-format -msgid "Colors:" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "Coming Soon" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_coming_soon_2 -msgid "Coming Soon..." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -msgid "Community" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.product -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_item_actions -#, python-format -msgid "Compare" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_compare -msgid "Comparison" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_7 -msgid "Complimentary Gift" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_8 -msgid "" -"Consectetur, from a Lorem Ipsum passage, and
going through the cites of" -" the word in classical." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_compare -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_variant_selector_dialog -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_wishlist -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_8 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_9 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_header_style_8 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_quick_view -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_right_panel -msgid "Contact Us" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.404 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "Contact us" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_call_to_action_2 -msgid "Contact us at" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -msgid "Contacts" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Content - Menus" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.dynamic_filter_template_blog_post_prime_layout_1 -msgid "Continue Reading" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/core/cart_confirmation_dialog.xml:0 -#, python-format -msgid "Continue Shopping" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_8 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_9 -msgid "Copyright &copy; MyCompany" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Count" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "Cover" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_1 -msgid "Cover Brand Image 01" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_d_single_product_cover_snippet -msgid "Cover Image 01" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_1 -msgid "Cover Image 02" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_2 -msgid "Cras in feugiat eros" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_7 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_8 -msgid "Creative ideas" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -msgid "Customer Care" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_8 -msgid "Customer Satisfaction" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_11 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "Customer Support" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_5 -msgid "Customers" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/snippets/s_tp_countdown/000.xml:0 -#: code:addons/theme_prime/static/src/snippets/s_tp_countdown/000.xml:0 -#, python-format -msgid "DAYS" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "DESCRIPTION" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/dialog.xml:0 -#, python-format -msgid "DESKTOP" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -msgid "Dapibus ac facilisis." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_tp_countdown_options -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Dark" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/snippets/s_tp_countdown/000.xml:0 -#, python-format -msgid "Days" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Default Sort" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "Delivery data" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "Delivery info" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_13 -msgid "Denim Jeans" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/dialog.xml:0 -#, python-format -msgid "Design" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product -msgid "Details " -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_2 -msgid "Diffrent content looks good so not repeating the content here." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_5 -msgid "" -"Diffrent content looks good so not repeating the content here. Diffrent " -"content looks good so not repeating the content here." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Discount" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Discounted Best Seller" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Discounted Products" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "Discover" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_3 -msgid "Discover More" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_13 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_5 -msgid "Discover Now" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#, python-format -msgid "Display label" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_4 -msgid "Don't miss out. Stay Informed! Monthly Tips, Tracks, and Discounts." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_4 -msgid "Donec Int" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_options -msgid "Dot Position" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/frontend/documents.xml:0 -#, python-format -msgid "Download" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "Download our apps" -msgstr "" - -#. module: theme_prime -#: model:ir.model.fields,field_description:theme_prime.field_product_product__dr_has_discount -#: model:ir.model.fields,field_description:theme_prime.field_product_template__dr_has_discount -msgid "Dr Has Discount" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -msgid "Drag building blocks here to customize the header for \"" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_tp_countdown_options -msgid "Due Date" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Dynamic" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "Dynamic Snippet" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_2 -msgid "EXPLORE GREAT RANGE OF PRODUCTS" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_11 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "Easy Returns" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#, python-format -msgid "Edit" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.page_sidebars -msgid "Edit Profile" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_6 -msgid "Email" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Enable Lazy Loading" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Enable hotspot" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/website_sale.js:0 -#, python-format -msgid "Enter valid value." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -msgid "Enter your email below to know latest collection and product launch." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_7 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_8 -msgid "Excellent features" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_2 -msgid "Expert" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_4 -msgid "Extensive documentation" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_5 -msgid "FAQ" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.filter_attribute_range -msgid "FILTER" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_9 -msgid "FREE RETURNS" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_9 -msgid "FREE SHIPPING" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_9 -msgid "FREE SUPPORT" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_gallery_4 -msgid "Fashion card" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_8 -msgid "Fast Service" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_10 -msgid "Fast Shipping" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -msgid "Fast and free delivery" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_5 -msgid "Featured" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_d_2_column_snippet -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_3 -msgid "Featured Products" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#, python-format -msgid "Field :" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/website_sale.js:0 -#, python-format -msgid "Filters" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -msgid "" -"Find a location nearest
\n" -" you." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_13 -msgid "Find your perfect outfit" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.404 -msgid "Find your product" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_7 -msgid "Flat 50% Off" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_2 -msgid "Flexible Styled Collection By Prime" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_3 -msgid "Follow Us" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_8 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_9 -msgid "Follow Us On" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_5 -msgid "Follow Us On:" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_team_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -msgid "Follow us" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "Footwear" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_d_single_category_snippet -msgid "For Women" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -msgid "Forums" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_11 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_8 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_shop_offer_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "Free Delivery" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_10 -msgid "Free Returns" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_5 -msgid "Free Returns. Standard Shipping. Orders $99." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_3 -msgid "Free Shipping" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_3 -msgid "Free Support" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -msgid "Free delivery for all orders" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_custom_text -msgid "Free delivery on all orders" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_3 -msgid "Free shipping for all order of $150" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_5 -msgid "Fresh Arrival" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_1 -msgid "Fresh Collection" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_3 -msgid "Fresh Collection By Prime" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_11 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -msgid "Friendly 24/7 customer support" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.filter_attribute_range -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_2 -msgid "From" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_13 -msgid "From world's top designer" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_7 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_8 -msgid "Fully responsive" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_2 -msgid "GET FLAT 20% OFF" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "Gallery" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_gallery_1 -msgid "Gallery Image #{img}" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_gallery_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_gallery_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_gallery_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_gallery_5 -msgid "Gallery Image #{number}" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_8 -msgid "Genuine Product" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_12 -msgid "Get 10% Off" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_12 -msgid "Get 15% Off" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_shop_offer_2 -msgid "Get 30-day money-back guarantee" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_12 -msgid "Get Best Burger" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_12 -msgid "Get Big Pizzas" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_11 -msgid "Get discount on shoes on order above $150." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_call_to_action_3 -msgid "Get in touch" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.404 -msgid "Get in touch with us" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_shop_offer_3 -msgid "Get it Now" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_snippet_options_background_options -msgid "Gradient Animation" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -#, python-format -msgid "Grid" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -msgid "Grid View" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.page_sidebars -msgid "Guest" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/snippets/s_tp_countdown/000.xml:0 -#: code:addons/theme_prime/static/src/snippets/s_tp_countdown/000.xml:0 -#, python-format -msgid "HOURS" -msgstr "" - -#. module: theme_prime -#: model:ir.model,name:theme_prime.model_ir_http -msgid "HTTP Routing" -msgstr "مسار HTTP" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_10 -msgid "HUGE SALE!" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Handset" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_5 -msgid "Happy Clients" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_10 -msgid "Happy Customers" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_tp_countdown -msgid "Happy Shopping!" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -msgid "Hats" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#, python-format -msgid "Header Style" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "Heading" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_10 -msgid "Help Center" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.404 -msgid "Here are some helpful links instead" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/dialog.xml:0 -#, python-format -msgid "Hey, You don't need to be a designer to configure the snippet." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout_filters -msgid "Hide out of stock" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_2 -msgid "High Quality Fabric Collection" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_3 -msgid "High Quality Products" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_call_to_action_3 -msgid "Hire Us!" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.all_brands -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_8 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_9 -msgid "Home" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.404 -msgid "Homepage" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_13 -msgid "Hot Collection" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/snippets/s_tp_countdown/000.xml:0 -#, python-format -msgid "Hours" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/dialog.xml:0 -#, python-format -msgid "How it works?" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Huawei" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_14 -msgid "Hurry up to reserve your spot now" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_10 -msgid "Hurry up!" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_14 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_image_product_listing_cards -msgid "Hurry up! Limited time offer" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "Icon Block" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Icon Pack" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/record_selection.js:0 -#: code:addons/theme_prime/static/src/components/record_selection.xml:0 -#, python-format -msgid "Image" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_9 -msgid "In 2-3 Days" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_4 -msgid "" -"In hac habitasse platea dictumst. Praesent cursus congue felis, nec " -"pellentesque nulla ornare sed." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_3 -msgid "" -"In hac habitasse platea dictumst. Praesent cursus congue felis, nec " -"pellentesque nulla ornare sed. Aliquam eget aliquam urna." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_8 -msgid "" -"In hac habitasse platea dictumst. Praesent cursus congue felis, nec " -"pellentesque nulla ornare sed. In hac habitasse platea dictumst. " -"pellentesque nulla sed." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_7 -msgid "" -"In hac habitasse platea dictumst. Praesent cursus congue felis, nec " -"pellentesque nulla ornare sed. Orci varius natoque penatibus et magnis dis " -"parturient montes, nascetur mus." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_1 -msgid "" -"In hac habitasse platea dictumst. Praesent cursus congue felis, nec " -"pellentesque nulla ornare." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_2 -msgid "" -"In hac habitasse platea dictumst. Praesent cursus congue felis, nec " -"pellentesque nulla." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/record_selection.xml:0 -#, python-format -msgid "In stock" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "Info Block" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_8 -msgid "Info Block Image 01" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_5 -msgid "Info Block Image 02" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_4 -msgid "Info Block Image 03" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -msgid "Information" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_9 -msgid "International style" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "JCB" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_2 -msgid "JUST NEWLY ARRIVED!" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "Jeans" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -msgid "Jewelry" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_5 -msgid "John Doe" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_4 -msgid "Join Our Mailing List" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_3 -msgid "Join Our Newsletter Now" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/dialog.xml:0 -#, python-format -msgid "" -"Just activate options from the right panel as per your need and see the " -"magic." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_gallery_4 -msgid "Just adding some random string heresit." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_5 -msgid "Just some random content to break this paragraph into two line." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_2 -msgid "Just some random string to reach eighty charater limit to break." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_5 -msgid "" -"Just some random string to reach eighty charater limit to break. Just some " -"random string to reach eighty charater limit to break." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_4 -msgid "Kids" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "Kidswear" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "LABEL" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Label" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Label Best Seller" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Label Discounted Best Seller" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Label Discounted Products" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Label New Arrival" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Laptop" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/ui_component.xml:0 -#, python-format -msgid "Layout" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_7 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_8 -msgid "Learn More" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_14 -msgid "Learn more" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Left" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Left Panel" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_options -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_tp_countdown_options -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Light" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_shop_offer_4 -msgid "Limited Collection" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_options -msgid "Line Position" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Link" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -msgid "List View" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -msgid "Load more" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/sidebar.js:0 -#, python-format -msgid "Loading Categories..." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/sidebar.xml:0 -#: code:addons/theme_prime/static/src/xml/sidebar.xml:0 -#, python-format -msgid "Loading..." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "Locate store" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/core/mixins.js:0 -#, python-format -msgid "Log in" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/core/mixins.js:0 -#, python-format -msgid "Log in to place an order" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.page_sidebars -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_b2b_price_label -msgid "Login" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Logitech" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_8 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_9 -msgid "Logo of MyCompany" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.page_sidebars -msgid "Logout" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_options -msgid "Long" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/core/snippet_root_widget.xml:0 -#, python-format -msgid "Looks like you migrated to Odoo version 16.0" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_d_image_products_block -msgid "" -"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod " -"tempor incididunt ut labore et." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/snippets/s_tp_countdown/000.xml:0 -#: code:addons/theme_prime/static/src/snippets/s_tp_countdown/000.xml:0 -#, python-format -msgid "MINUTES" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/dialog.xml:0 -#, python-format -msgid "MOBILE" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "Maestro" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.page_sidebars -msgid "Manage Payment Methods" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/record_selection.js:0 -#, python-format -msgid "Manual" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_8 -msgid "" -"Many desktop publishing packages and web
page editors now use lorem " -"ipsum as their." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#, python-format -msgid "Match:" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/website_sale.js:0 -#, python-format -msgid "Maximum value should be greater than minimum." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_4 -msgid "Maximus Note 8i" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_4 -msgid "Men" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_3 -msgid "Mens" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Menus" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Menus - Content" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Menus - Image - Logos" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Menus - Images" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Microsoft" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/snippets/s_tp_countdown/000.xml:0 -#, python-format -msgid "Minutes" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#, python-format -msgid "Mobile Settings" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Mobile Style" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Modal" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -#, python-format -msgid "Mode" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_4 -msgid "Modern design" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -msgid "Money back guarantee" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Monitor" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_2 -msgid "Morbi tincidunt ultrices" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_3 -msgid "Morbi tincidunt ultrices fermentum. Suspendisse egestas ipsum eu." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -msgid "Morbi tincidunt ultrices." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Motorola" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Mouse" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Mouses Pad" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.page_sidebars -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_header_style_4 -msgid "My Account" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.component_account_info -#: model_terms:theme.ir.ui.view,arch:theme_prime.page_sidebars -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_header_style_4 -msgid "My Cart" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.page_sidebars -msgid "My Orders" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.page_sidebars -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_wishlist -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_header_style_4 -msgid "My Wishlist" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "My account" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_8 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_9 -msgid "MyCompany" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_7 -msgid "NEW" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_2 -msgid "NEW PRODUCTS EVERY DAY" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_4 -msgid "" -"Nam blandit arcu vel mi mollis faucibus. Nam justo velit, maximus viverra " -"volutpat eu, hendrerit et velit." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_3 -msgid "" -"Nam blandit arcu vel mi mollis faucibus. Nam justo velit, maximus viverra " -"volutpat eu, hendrerit et velit. Pellentesque tincidunt." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/record_selection.js:0 -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Name" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#, python-format -msgid "Name: A to Z" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#, python-format -msgid "Name: Z to A" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_call_to_action_5 -msgid "Need to do calculations?" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_2 -#, python-format -msgid "New Arrival" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_5 -msgid "New Arrivals" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_6 -msgid "New Collection" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_image_product_listing_cards -msgid "New Hoodie Collection" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_5 -msgid "New Ideas" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_6 -msgid "New York, United States" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#: code:addons/theme_prime/static/src/js/frontend/dynamic_snippets.js:0 -#: code:addons/theme_prime/static/src/js/frontend/dynamic_snippets.js:0 -#, python-format -msgid "Newly Arrived" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_shop_offer_4 -msgid "Newly Launched" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "News" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_4 -msgid "Next" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_11 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_9 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "No Questions Asked" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_tabs -msgid "No Specifications" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/frontend/dynamic_snippets.js:0 -#, python-format -msgid "No brands are found!" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/frontend/dynamic_snippets.js:0 -#, python-format -msgid "No categories found!" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -msgid "No product defined in category" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/frontend/dynamic_snippets.js:0 -#, python-format -msgid "No product found" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/core/snippet_root_widget.js:0 -#, python-format -msgid "No products found!" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/record_selection.xml:0 -#, python-format -msgid "No records are selected" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#, python-format -msgid "No results found for" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/frontend/search_autocomplete.xml:0 -#: code:addons/theme_prime/static/src/xml/frontend/search_autocomplete.xml:0 -#, python-format -msgid "No results found for '" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#, python-format -msgid "No rules are added." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.similar_products_sidebar -msgid "No similar products found!" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/ui_component.xml:0 -#, python-format -msgid "No specific mobile configuration available for this snippet" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "No. of Child" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#, python-format -msgid "No. of Products" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#, python-format -msgid "No. of items" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Nokia" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_tp_countdown_options -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "None" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_options -msgid "Normal" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Number of brands" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_3 -msgid "OR" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "On Click" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#: code:addons/theme_prime/static/src/js/frontend/dynamic_snippets.js:0 -#: code:addons/theme_prime/static/src/js/frontend/dynamic_snippets.js:0 -#, python-format -msgid "On Sale" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_8 -msgid "On order above $100" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_8 -msgid "On order above $60" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_8 -msgid "On order above $80" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_6 -msgid "On the Ear" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_mobile_bottombar_component -msgid "Open menu" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#, python-format -msgid "Operators :" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#, python-format -msgid "Options" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_shop_offer_5 -msgid "" -"Orci varius natoque penatibus et magnis dis parturient montes, nascetur " -"ridiculus mus." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_3 -msgid "" -"Orci varius natoque penatibus et magnis dis parturient montes, nascetur " -"ridiculus mus. Aenean pretium ac enim eget dignissim." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_7 -msgid "" -"Orci varius natoque penatibus et magnis dis parturient montes, nascetur " -"ridiculus mus. Orci varius natoque penatibus et magnis dis parturient " -"montes, nascetur ridiculus mus." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_8 -msgid "" -"Orci varius natoque penatibus et magnis dis parturient montes, nascetur " -"ridiculus mus. Orci varius natoque penatibus et magnis. nascetur ridiculus " -"mus." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Order By" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_call_to_action_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_call_to_action_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_3 -msgid "Order Now" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_11 -msgid "Order above $250 and get free gift voucher." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_call_to_action_1 -msgid "Order now and get 15% OFF" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "Order tracking" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_4 -msgid "Our Creative Team" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "Our Policy" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "Our Stores" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -msgid "" -"Our products are designed for small to medium size companies willing to " -"optimize their performance." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -msgid "Our store" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/record_selection.xml:0 -#, python-format -msgid "Out Of Stock" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Override all components border radius to 0" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -msgid "Payment" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_4 -msgid "Per Month" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_9 -msgid "Personal Care" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Phablet" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_6 -msgid "Phone Number" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Play Station" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#, python-format -msgid "Please add some rules and make snippet more powerful." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -msgid "Please check the spelling or try searching something else" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/core/mixins.js:0 -#, python-format -msgid "Please log in first." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/record_selection.xml:0 -#, python-format -msgid "Please search and add few records from the input." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/frontend/search_autocomplete.xml:0 -#, python-format -msgid "Please try another search." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "Polo T-shirts" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Popover" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.dynamic_filter_template_blog_post_prime_layout_4 -msgid "Posted by" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_4 -msgid "" -"Powered by a 10 nm octa-core Qualcomm Snapdragon 712 AIE processor, this " -"phone can seamlessly execute any task. You can game more and multitask " -"without experiencing any lag. Experience a boost in performance and " -"efficiency with this phone." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_team_2 -msgid "Praesent ornare mi quis" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Preheader" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_4 -msgid "Premium" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_7 -msgid "Premium Collection" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product -msgid "Prev" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Preview" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_4 -msgid "Previous" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.suggested_products_list -#, python-format -msgid "Price" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Price Filter" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_mobile_bottombar_component -msgid "Price:" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#, python-format -msgid "Price: High to Low" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#, python-format -msgid "Price: Low to High" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "Pricing" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_2 -msgid "Pricing Image 01" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_2 -msgid "Pricing Image 02" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_2 -msgid "Pricing Image 03" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -msgid "Pricing Image 04" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -msgid "Pricing and Plans" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Primary" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Footer Style - 1" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Footer Style - 10" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Footer Style - 2" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Footer Style - 3" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Footer Style - 4" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Footer Style - 5" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Footer Style - 6" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Footer Style - 7" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Footer Style - 8" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Footer Style - 9" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Header Style - 1" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Header Style - 2" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Header Style - 3" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Header Style - 4" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Header Style - 5" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Header Style - 6" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Header Style - 7" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Header Style - 8" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Preheader Style - 1" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Preheader Style - 2" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Preheader Style - 3" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Preheader Style - 4" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Preheader Style - 5" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Prime Preheader Style - 6" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_9 -msgid "Printed T-Shirts" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_8 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_9 -msgid "Privacy Policy" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#: model:ir.model,name:theme_prime.model_product_template -#: model_terms:theme.ir.ui.view,arch:theme_prime.suggested_products_list -#, python-format -msgid "Product" -msgstr "المنتج" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -msgid "Product Compare" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#, python-format -msgid "Product Listing" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_variant_selector_dialog -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_quick_view -msgid "Product Name" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#, python-format -msgid "Product Per Row" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/record_selection.xml:0 -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#: code:addons/theme_prime/static/src/xml/sidebar.xml:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.all_brands -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_7 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -#, python-format -msgid "Products" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Products Page" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Products on page" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_3 -msgid "Professional" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_1 -msgid "Proin est justo, euismod sit." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_3 -msgid "" -"Proin purus dui, feugiat id ipsum eu, varius ornare ex. Mauris elit dolor, " -"consectetur ac accumsan eu, commodo et odio eget." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_4 -msgid "" -"Proin purus dui, feugiat id ipsum eu, varius ornare ex. Mauris elit dolor, " -"consectetur ac accumsan eu." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_5 -msgid "Purchase" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_call_to_action_2 -msgid "Purchase Now" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "QUICK VIEW" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_shop_offer_2 -msgid "Quality Product" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_11 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "Quality Products" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_5 -msgid "Quality products by Prime team" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_1 -msgid "Quality products from our shop." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#, python-format -msgid "Quick Actions" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -msgid "Quick Links" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/listing_cards.xml:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_item_actions -#, python-format -msgid "Quick View" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -msgid "Quick links" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "RATING" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_2 -msgid "READ MORE" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.pwa_offline_page -msgid "RELOAD" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -msgid "RESET" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_shop_offer_2 -msgid "Receive 100% genuine products" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/record_selection.xml:0 -#, python-format -msgid "Records Selection Mode:" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "Refunds & replacements" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.page_sidebars -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_b2b_price_label -msgid "Register" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#, python-format -msgid "Remove" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#, python-format -msgid "Remove Background" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.cart_sidebar -msgid "Remove from Cart" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.cart_lines -#: model_terms:theme.ir.ui.view,arch:theme_prime.optional_product_items -msgid "Remove from cart" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_compare -msgid "Remove from comparison" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_wishlist -msgid "Remove from wishlist" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.cart_sidebar -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_variant_selector_dialog -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_quick_view -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_right_panel -msgid "Remove one" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.404 -msgid "Return to homepage" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_custom_text -msgid "Return within 30days" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.d_rating_widget_stars_static -msgid "Reviews)" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/dialog.xml:0 -#, python-format -msgid "SAVE" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/snippets/s_tp_countdown/000.xml:0 -#: code:addons/theme_prime/static/src/snippets/s_tp_countdown/000.xml:0 -#, python-format -msgid "SECONDS" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "SIMILAR" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_coming_soon_1 -msgid "STAY TUNED" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_10 -msgid "Safe Payment" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Same as Desktop" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Samsung" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -msgid "Sandals" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.option_back_to_top -msgid "Scroll back to top" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/sidebar.js:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.404 -#: model_terms:theme.ir.ui.view,arch:theme_prime.component_account_info -#, python-format -msgid "Search" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.all_brands -msgid "Search brands..." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_5 -msgid "Search for products, brands and more ..." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.filter_attribute -msgid "Search..." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/snippets/s_tp_countdown/000.xml:0 -#, python-format -msgid "Seconds" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -msgid "Secure online payment" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_category_pills -msgid "See All " -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -msgid "See Our Stores" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/frontend/search_autocomplete.xml:0 -#, python-format -msgid "See all products" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Select any template and modify as per your need." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/dialog.xml:0 -#, python-format -msgid "Selection" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#, python-format -msgid "Selection Rules" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#, python-format -msgid "Sequence" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_quick_view -msgid "Share :" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "Shipping Info" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_9 -msgid "Shirts, Jeans & Waistcoats" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -msgid "Shop" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/frontend/hierarchical_category_templates.xml:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.cart_sidebar -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_12 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_13 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_call_to_action_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_d_image_products_block -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_d_single_category_snippet -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_7 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_shop_offer_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_shop_offer_4 -#, python-format -msgid "Shop Now" -msgstr "فرص التبرع" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "Shop Offer" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_shop_offer_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_shop_offer_4 -msgid "Shop Offer Image 01" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_d_brand_snippet -msgid "Shop by brand" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "Shop departments" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/frontend/dynamic_snippets.xml:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_14 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_image_product_listing_cards -#, python-format -msgid "Shop now" -msgstr "فرص التبرع" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.cart -msgid "Shopping Cart" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_item_actions -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_item_grid_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_item_grid_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_item_list_1 -msgid "Shopping cart" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_options -msgid "Short" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#, python-format -msgid "Show Similar Products" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Show best seller products based on last 30 days sales" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "" -"Show best seller products based on last 30 days sales from selected brands." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "" -"Show best seller products based on last 30 days sales from selected " -"categories." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "" -"Show best seller products based on last 30 days sales from selected label." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "" -"Show best seller products based on last 30 days sales from selected tags." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Show best seller products with discount" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Show best seller products with discount from the selected brands" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Show best seller products with discount from the selected categories" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Show best seller products with discount from the selected label" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Show best seller products with discount from the selected tags" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Show discounted products based on product pricelist" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "" -"Show discounted products based on product pricelist from selected brands." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "" -"Show discounted products based on product pricelist from selected categories" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "" -"Show discounted products based on product pricelist from selected label" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Show discounted products based on product pricelist from selected tags" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Show newly arrived products based on creation date" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Show newly arrived products from selected brands" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Show newly arrived products from selected categories" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Show newly arrived products from selected label." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Show newly arrived products from selected tags" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Show variant image" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/core/mixins.js:0 -#, python-format -msgid "Sign Up" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_3 -msgid "" -"Sign up for all the news about our latest arrivals and get an exclusive " -"early access shopping." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/sidebar.js:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.product -#, python-format -msgid "Similar Products" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -#, python-format -msgid "Slider" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Smartphone" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "Sneakers & Athletic" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/dialog.xml:0 -#, python-format -msgid "Snippet:" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Sony" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/frontend/dynamic_snippets.js:0 -#, python-format -msgid "Sorry, We couldn't find any brands right now" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/core/snippet_root_widget.js:0 -#, python-format -msgid "Sorry, We couldn't find any products" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/core/mixins.js:0 -#, python-format -msgid "Sorry, We couldn't find any products under this category" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/frontend/dynamic_snippets.js:0 -#, python-format -msgid "Sorry, this product is not available right now" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -msgid "Sort By" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -#, python-format -msgid "Sort by" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Speakers" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_1 -msgid "Special Collection" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_4 -msgid "Spring Collections" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Square UI" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_1 -msgid "Starting at $120.00" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_6 -msgid "Starting at $150." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_6 -msgid "Starting at $200." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_d_single_category_snippet -msgid "Starting at $24" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_1 -msgid "Starting at $35.00" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_6 -msgid "Starting at $99." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/frontend/dynamic_snippets.xml:0 -#, python-format -msgid "Starting from" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Static" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "Stats" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "Stay informed" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "Store Information" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_tp_countdown_options -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -#, python-format -msgid "Style" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#, python-format -msgid "Style - ${index + 1}" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_tp_countdown_options -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Style - 1" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_tp_countdown_options -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Style - 2" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_tp_countdown_options -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Style - 3" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_tp_countdown_options -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Style - 4" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_coming_soon_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_coming_soon_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -msgid "Subscribe" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_4 -msgid "Subscribe Image 01" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_coming_soon_2 -msgid "" -"Subscribe and stay in touch with the latest news, deals and promotions." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_coming_soon_1 -msgid "Subscribe to get a notification as soon as we launch!" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -msgid "Subscribe to our weekly newsletter" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Subtitle" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.cart_lines_subtotal -#: model_terms:theme.ir.ui.view,arch:theme_prime.cart_sidebar -msgid "Subtotal" -msgstr "المجموع الفرعي" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.suggested_products_list -msgid "Suggested Products" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/frontend/search_autocomplete.xml:0 -#, python-format -msgid "Suggestions:" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_1 -msgid "" -"Summer Special | Get 50% Off | Code #GET50" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "Sunglasses & Eyewear" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_d_2_column_snippet -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_d_image_products_block -msgid "Super Deal" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_4 -msgid "Super Fast CPU" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -msgid "Suspendisse egestas ipsum eu." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_1 -msgid "" -"Suspendisse est nunc, laoreet eget odio id, finibus convallis ipsum. " -"Praesent eu nisi egestas, gravida dolor eget, suscipit lectus. Class aptent " -"taciti sociosqu ad litora torquent per conubia nostra, per inceptos " -"himenaeos. Nulla tincidunt eu." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_2 -msgid "" -"Suspendisse est nunc, laoreet eget odio id, finibus convallis ipsum. " -"Praesent eu nisi egestas." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_4 -msgid "" -"Suspendisse potenti. Cras a dui et nisl egestas ornare eu quis odio. Sed " -"bibendum in ante vel accumsan." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_3 -msgid "" -"Suspendisse potenti. Cras a dui et nisl egestas ornare eu quis odio. Sed " -"bibendum in ante vel accumsan. Praesent scelerisque." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_2 -msgid "" -"Suspendisse potenti. Cras a dui et nisl egestas ornare eu quis odio. Sed " -"bibendum in ante." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_7 -msgid "" -"Suspendisse potenti. Cras a dui et nisl egestas ornare eu quis odio. Sed " -"bibendum in ante. Orci varius natoque penatibus et magnis dis parturient " -"montes, nascetur ridiculus mus." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_8 -msgid "" -"Suspendisse potenti. Cras a dui et nisl egestas ornare eu quis odio. Sed " -"bibendum in ante. Suspendisse potenti. Cras a dui et nisl. Sed bibendum in " -"ante." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "Swimwear" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "T-Shirts" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "T-shirts" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#, python-format -msgid "Tab Style" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Tablet" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/ui_component.xml:0 -#, python-format -msgid "Tabs Settings" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Tags" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_extra_fields -msgid "Tags :" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Tags Best Seller" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Tags Discounted Best Seller" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Tags Discounted Products" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "Tags New Arrival" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.cart_sidebar -msgid "Taxes" -msgstr "الضرائب" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "Taxes & fees" -msgstr "Taxes" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "Team" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_team_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_team_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_team_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_team_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_team_5 -msgid "Team Image #{team}" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_5 -msgid "Terms" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_custom_text -msgid "Terms and Conditions :" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_8 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_9 -msgid "Terms of Use" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "Testimonial" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_coming_soon_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_coming_soon_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -msgid "Thanks" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_tp_countdown -msgid "" -"The following message will become visible only once the " -"countdown ends." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_tp_countdown_options -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Theme" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/editor/snippets.editor.js:0 -#, python-format -msgid "Theme Prime Options" -msgstr "" - -#. module: theme_prime -#: model:ir.model,name:theme_prime.model_theme_utils -msgid "Theme Utils" -msgstr "أدوات السمة" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/core/cart_confirmation_dialog.xml:0 -#, python-format -msgid "There are" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_options -msgid "Thickness" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/core/snippet_root_widget.xml:0 -#, python-format -msgid "" -"This block is depricated in theme prime Odoo version 16.0. We have more cool" -" things in this version." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_variant_selector_dialog -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_quick_view -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_right_panel -msgid "This combination does not exist." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_2 -msgid "This is the last paragraph, and i am out of idea what to write." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_5 -msgid "" -"This is the last paragraph, and i am out of idea what to write. This is the " -"last paragraph, and i am out of idea what to write." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_variant_selector_dialog -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_quick_view -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_right_panel -msgid "This product has no valid combination." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_variant_selector_dialog -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_quick_view -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_product_right_panel -msgid "This product is no longer available." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Title" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.filter_attribute_range -msgid "To" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_2 -msgid "To break the lines we are writing some random string here." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_stats_5 -msgid "" -"To break the lines we are writing some random string here. To break the " -"lines we are writing some random string here." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#, python-format -msgid "To cart" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/pwa.xml:0 -#, python-format -msgid "To install this web app on your iOS device: tap" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Top" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "Top Bar" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_2 -msgid "Trending Collection" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_d_image_products_block -msgid "Trending Products" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_5 -msgid "Trendy Collection" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_options -msgid "Type" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_tabs -msgid "Uncategorized" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/core/product_root_widget.js:0 -#, python-format -msgid "Undo" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/record_selection.xml:0 -#, python-format -msgid "Units Left" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_11 -msgid "Up To 10% Off" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_11 -msgid "Up To 20% Off" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_8 -msgid "Up To 25% Off" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_8 -msgid "Up To 40% Off" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_8 -msgid "Up To 50% Off" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_7 -msgid "Up To 60% Off" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_10 -msgid "Up to 20% off on all products." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_13 -msgid "Up to 70% off on selected item" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_shop_offer_1 -msgid "Up to 20% off" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -msgid "Useful Links" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_5 -msgid "" -"Ut ac pellentesque tortor. Sed fringilla nibh vel urna porttitor feugiat sit" -" amet ac ex. Duis ut mattis est, eget venenatis leo. Sed et facilisis leo. " -"Class aptent taciti sociosqu." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_1 -msgid "Ut efficitur sem sed." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#, python-format -msgid "Value :" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_6 -msgid "" -"Vestibulum id laoreet sapien. Aliquam porttitor neque ut urna efficitur, " -"eget tincidunt diam convallis. Vestibulum molestie nunc consectetur cursus " -"tincidunt. Aenean interdum justo a tellus condimentum gravida." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_4 -msgid "" -"Vestibulum id laoreet sapien. Aliquam porttitor neque ut urna efficitur, eget tincidunt diam convallis.
\n" -" interdum justo a tellus condimentum gretur cursus tincidunt. Aenean interdum justo a tellus condimentum gravida.
\n" -" cursus id laoreet sapien. Aliquam porttitor neque ut urna efficitur, eget tincidunt diam convallis.
\n" -" tellus justo a tellus condimentum gretur cursus tincidunt. Aenean interdum justo a tellus condimentum gravida." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -#, python-format -msgid "View" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_d_brand_snippet -msgid "View All Brands" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/core/cart_confirmation_dialog.xml:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_header_style_4 -#, python-format -msgid "View Cart" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_4 -msgid "View More" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/frontend/dynamic_snippets.xml:0 -#: code:addons/theme_prime/static/src/xml/frontend/s_category.xml:0 -#, python-format -msgid "View Products" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_item_actions -msgid "View Similar Products" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_header_style_4 -msgid "View Wishlist" -msgstr "" - -#. module: theme_prime -#. odoo-python -#: code:addons/theme_prime/controllers/main.py:0 -#, python-format -msgid "View all products with" -msgstr "" - -#. module: theme_prime -#. odoo-python -#: code:addons/theme_prime/controllers/main.py:0 -#, python-format -msgid "View all products with category" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/core/mixins.js:0 -#, python-format -msgid "View cart" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "Visa" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_testimonial_5 -msgid "Vivamus Tem" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_5 -msgid "" -"Vivamus at tempor arcu. Vestibulum fermentum facilisis dui, vitae iaculis " -"purus accumsan quis. Quisque sit amet dignissim justo. Nullam ac sodales " -"lorem, id volutpat arcu. Sed justo neque." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_coming_soon_1 -msgid "WE ARE LAUNCHING SOON!" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.js:0 -#, python-format -msgid "WISHLIST" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Watch" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "We Accept" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "We accept" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_3 -msgid "We add new products every day. Explore our great range of products." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "" -"We are a team of passionate people whose goal is to improve everyone's life " -"through disruptive products. We build great products to solve your business " -"problems." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -msgid "" -"We are a team of passionate people whose goal is to improve everyone's life " -"through disruptive products. We build great products to solve your business " -"problems. Our products are designed for small to medium size companies " -"willing to optimize their performance." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_coming_soon_2 -msgid "" -"We are glad to see you, but please be patient. This page is under " -"construction." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_info_block_7 -msgid "" -"We are the creative team of theme prime. No one actually read this so let me" -" write any thing here until it paragraph breaks into to multiple lines. " -"Thanks for reading this." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_call_to_action_3 -msgid "" -"We are the creative team of theme prime. No one actually read this so let me" -" write any thing here until the content is long enough to break this lines " -"in to multiple lines so this block looks nice and cool. We are creative team" -" but paragraph in not so long so writing again." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_call_to_action_5 -msgid "" -"We are the creative team of theme prime. No one actually read this so let me" -" write any thing here until the content is long enough to break this lines " -"in to multiple lines." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_call_to_action_2 -msgid "" -"We are the creative team of theme prime. No one actually read this so let me" -" write any thing here until the content is long enough." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_call_to_action_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_5 -msgid "" -"We are the creative team of theme prime. No one actually read this so let me" -" write any thing here." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.404 -msgid "We can't seem to find the page you are looking for" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -msgid "We couldn't find any matches!" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -msgid "We couldn't find any product!" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_5 -msgid "We have everything that you need for your next adventure." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_call_to_action_4 -msgid "We offer best in class service for your needs" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -msgid "We process SSL сertificate" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -msgid "We return money within 30 days" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.page_sidebars -msgid "Welcome !" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_options -msgid "Width" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_shop_offer_1 -msgid "Winter Collection" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_9 -msgid "Winter Wear Fest" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_cover_4 -msgid "Wireless Charging" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/core/product_root_widget.js:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: code:addons/theme_prime/static/src/xml/cards.xml:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.component_account_info -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -#, python-format -msgid "Wishlist" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_shop_offer_2 -msgid "Within 48 hours get free delivery" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_preheader_style_4 -msgid "Women" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_13 -msgid "Women Tops" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_3 -msgid "Womens" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -msgid "Xbox" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/record_selection.xml:0 -#, python-format -msgid "You can select only" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.pwa_offline_page -msgid "You do not have internet connection !" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/core/cart_confirmation_dialog.xml:0 -#, python-format -msgid "You may also like" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -msgid "You searched for" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/dialog.xml:0 -#, python-format -msgid "You're editing page:" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_banner_14 -msgid "Your Add Text Here" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/js/core/mixins.js:0 -#: code:addons/theme_prime/static/src/js/sidebar.js:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.cart_sidebar -#, python-format -msgid "Your Cart" -msgstr "السله" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -msgid "Your Orders" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "Your account" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.cart_sidebar -msgid "Your cart is empty!" -msgstr "سلتك فارغه" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/frontend/search_autocomplete.xml:0 -#, python-format -msgid "Your search:" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_heading_6 -msgid "Your title here" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/ui_component.js:0 -#, python-format -msgid "add Products From Child Categories" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "banner, hero" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "brands, dynamic" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "brands, dynamic, tabs" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "call to action, cta" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "cards, categories, dynamic" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "cards, product, listing" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "cards, product, listing, image" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "cards, product, listing, tabs" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "cards, products, dynamic" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "categories, dynamic" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "categories, top, dynamic" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "clients, logo, reference" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "coming soon, countdown, timer" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "count down, products, dynamic" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "countdown, timer" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "covers" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "covers, carousel" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "documents, attachments" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_svg_cart -msgid "empty_cart" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "featured, categories, dynamic" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "full product, cover, dynamic" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "full product, dynamic" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "gallery, album, portfolio" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "heading, title" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "icon, features" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "image, dynamic, products" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_call_to_action_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_icon_block_6 -msgid "info@droggol.com" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_7 -msgid "info@yourcompany.com" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "information, content" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/frontend/s_category.xml:0 -#: code:addons/theme_prime/static/src/xml/frontend/s_category.xml:0 -#: model_terms:theme.ir.ui.view,arch:theme_prime.cart_sidebar -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_compare -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_wishlist -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -#, python-format -msgid "items" -msgstr "فرصه تبرع" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.shop_layout -msgid "items found." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/core/cart_confirmation_dialog.xml:0 -#, python-format -msgid "items in your cart." -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/record_selection.xml:0 -#, python-format -msgid "items." -msgstr "فرصه تبرع" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "newsletter, subscribe, mail, email, marketing, mass mailing" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/search_input.xml:0 -#, python-format -msgid "of" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "offer" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_tabs -msgid "or" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_call_to_action_2 -msgid "or give us a call" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.tp_svg_404 -msgid "page not found" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_pricing_5 -msgid "per month" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/components/dialog.xml:0 -#: code:addons/theme_prime/static/src/components/dialog.xml:0 -#: code:addons/theme_prime/static/src/components/dialog.xml:0 -#: code:addons/theme_prime/static/src/components/dialog.xml:0 -#: code:addons/theme_prime/static/src/components/dialog.xml:0 -#, python-format -msgid "phone" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "pricing, comparison, table" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/frontend/brands.xml:0 -#: code:addons/theme_prime/static/src/xml/frontend/brands.xml:0 -#: code:addons/theme_prime/static/src/xml/frontend/hierarchical_category_templates.xml:0 -#: code:addons/theme_prime/static/src/xml/frontend/hierarchical_category_templates.xml:0 -#: code:addons/theme_prime/static/src/xml/frontend/hierarchical_category_templates.xml:0 -#: code:addons/theme_prime/static/src/xml/frontend/hierarchical_category_templates.xml:0 -#: code:addons/theme_prime/static/src/xml/frontend/s_category.xml:0 -#: code:addons/theme_prime/static/src/xml/frontend/s_category.xml:0 -#, python-format -msgid "products" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "products, dynamic" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "stats, counter, number" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "team, avatar, profile, organisation, structure" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippets -msgid "testimonials, quotes" -msgstr "" - -#. module: theme_prime -#. odoo-javascript -#: code:addons/theme_prime/static/src/xml/pwa.xml:0 -#, python-format -msgid "then Add to Home Screen." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_coming_soon_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_coming_soon_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.s_subscribe_4 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_1 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_10 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_2 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_3 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_5 -#: model_terms:theme.ir.ui.view,arch:theme_prime.template_footer_style_6 -msgid "your email..." -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.product_wishlist -msgid "youremail@gmail.com" -msgstr "" - -#. module: theme_prime -#: model_terms:theme.ir.ui.view,arch:theme_prime.snippet_options -msgid "⌙ Colors" -msgstr "" diff --git a/odex25_donation/theme_prime/models/__init__.py b/odex25_donation/theme_prime/models/__init__.py index 53de46f3a..c9fba97ad 100644 --- a/odex25_donation/theme_prime/models/__init__.py +++ b/odex25_donation/theme_prime/models/__init__.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () +# Copyright (c) 2019-Present Droggol. () from . import theme_prime from . import ir_http diff --git a/odex25_donation/theme_prime/models/ir_http.py b/odex25_donation/theme_prime/models/ir_http.py index 900069fe1..5437cbe58 100644 --- a/odex25_donation/theme_prime/models/ir_http.py +++ b/odex25_donation/theme_prime/models/ir_http.py @@ -1,5 +1,4 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () from odoo import models diff --git a/odex25_donation/theme_prime/models/product_template.py b/odex25_donation/theme_prime/models/product_template.py index bb8d04cdd..f1b44ac65 100644 --- a/odex25_donation/theme_prime/models/product_template.py +++ b/odex25_donation/theme_prime/models/product_template.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () from odoo import models, fields, api, tools +from odoo.tools import float_round class ProductTemplate(models.Model): @@ -71,13 +71,16 @@ class ProductTemplate(models.Model): for product in self: product.dr_has_discount = False - def _get_product_category_count(self, domain=[]): - tables, where_clause, where_clause_params = self._dr_prepare_query_parts(domain) + def _get_product_category_count(self, website_ids=[], product_ids=[], domain=[]): + query = self._where_calc(domain) + self._apply_ir_rules(query) + tables, where_clause, where_clause_params = query.get_sql() + tables = tables.replace('"product_template"', ' ', 1) query = """ SELECT count(product_template.id), - product_public_category.parent_path as path, - product_public_category.parent_id as parent_id, + min(product_public_category.parent_path) as path, + min(product_public_category.parent_id) as parent_id, product_public_category.id as product_public_category_id FROM product_public_category_product_template_rel JOIN product_template ON product_template.id = product_public_category_product_template_rel.product_template_id @@ -105,9 +108,11 @@ class ProductTemplate(models.Model): return result_count - def _get_product_attrib_count(self, attrib_values, domain=[]): - tables, where_clause, where_clause_params = self._dr_prepare_query_parts(domain) - + def _get_product_attrib_count(self, website_ids=[], product_ids=[], attrib_values=[], domain=[]): + query = self._where_calc(domain) + self._apply_ir_rules(query) + tables, where_clause, where_clause_params = query.get_sql() + tables = tables.replace('"product_template"', ' ', 1) query = """ SELECT array_agg(product_template_attribute_line.product_tmpl_id) as product_tmpl_ids, @@ -143,6 +148,7 @@ class ProductTemplate(models.Model): attrib_vals_map[line['product_attrib_id']] = [] attrib_vals_map[line['product_attrib_id']].append(line['id']) + # Attribute -> active product list attrib_p_list = {} for line in query_res: @@ -157,6 +163,7 @@ class ProductTemplate(models.Model): if value_id_1 in attrib_values_ids: attrib_p_list[attrib_id_1] = attrib_p_list[attrib_id_1] | set(product_ids_1) + # Attribute -> final list attrib_product_list = {} for line in query_res: @@ -179,33 +186,3 @@ class ProductTemplate(models.Model): else: result_count = dict([(line.get('id'), len(line.get('product_tmpl_ids') or [])) for line in query_res]) return result_count - - def _get_product_rating_count(self, domain=[]): - tables, where_clause, where_clause_params = self._dr_prepare_query_parts(domain) - query = """ - SELECT avg_rating, count(*) FROM ( - SELECT FLOOR(avg(rating)) as avg_rating, rating_rating.res_id FROM rating_rating JOIN product_template ON product_template.id = rating_rating.res_id """ + tables + """ - WHERE (""" + where_clause + """) AND rating_rating.res_model = 'product.template' AND rating_rating.is_internal = False - GROUP BY rating_rating.res_id) AS rating_count group by avg_rating; """ - - self.env.cr.execute(query, where_clause_params) - query_result = dict(self.env.cr.fetchall()) - total = 0 - ratings_result = {rating: 0 for rating in range(1, 6)} - for result in range(5, 0, -1): - total += query_result.get(result, 0) - ratings_result[result] = total - return ratings_result - - def _dr_prepare_query_parts(self, domain): - query = self._where_calc(domain) - self._apply_ir_rules(query) - tables, where_clause, where_clause_params = query.get_sql() - tables = tables.replace('"product_template"', ' ', 1) - return tables, where_clause, where_clause_params - - def _search_render_results(self, fetch_fields, mapping, icon, limit): - current_website = self.env['website'].get_current_website() - if not current_website._dr_has_b2b_access(): - mapping.pop("detail", None) - return super()._search_render_results(fetch_fields, mapping, icon, limit) diff --git a/odex25_donation/theme_prime/models/theme_prime.py b/odex25_donation/theme_prime/models/theme_prime.py index 5f56a869f..cd72837f3 100644 --- a/odex25_donation/theme_prime/models/theme_prime.py +++ b/odex25_donation/theme_prime/models/theme_prime.py @@ -1,20 +1,10 @@ # -*- coding: utf-8 -*- -# Copyright (c) 2019-Present Droggol Infotech Private Limited. () - -from odoo import api, models +from odoo import models class ThemePrime(models.AbstractModel): _inherit = 'theme.utils' - @api.model - def _reset_default_config(self): - header_styles = list(range(1, 9)) - for style in header_styles: - self.disable_view('theme_prime.template_header_style_%s' % style) - - footer_styles = list(range(1, 11)) - for style in footer_styles: - self.disable_view('theme_prime.template_footer_style_%s' % style) - - super()._reset_default_config() + def _theme_prime_post_copy(self, mod): + pass + diff --git a/odex25_donation/theme_prime/static/description/images/Copy of Cart Flow Options.png b/odex25_donation/theme_prime/static/description/images/Copy of Cart Flow Options.png deleted file mode 100644 index 9e37edd9d..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/Copy of Cart Flow Options.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/b2b-mode.png b/odex25_donation/theme_prime/static/description/images/b2b-mode.png deleted file mode 100644 index 5f8d96078..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/b2b-mode.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/card-features.gif b/odex25_donation/theme_prime/static/description/images/card-features.gif deleted file mode 100644 index f3d37556b..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/card-features.gif and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/cards.gif b/odex25_donation/theme_prime/static/description/images/cards.gif deleted file mode 100644 index 9c9dea469..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/cards.gif and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/cards.png b/odex25_donation/theme_prime/static/description/images/cards.png deleted file mode 100644 index c63ead2bb..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/cards.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/cart-1.png b/odex25_donation/theme_prime/static/description/images/cart-1.png deleted file mode 100644 index 12cbedea6..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/cart-1.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/cart-2.png b/odex25_donation/theme_prime/static/description/images/cart-2.png deleted file mode 100644 index b483a372c..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/cart-2.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/cart-icon.png b/odex25_donation/theme_prime/static/description/images/cart-icon.png deleted file mode 100644 index 59029fc37..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/cart-icon.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/config-footer.png b/odex25_donation/theme_prime/static/description/images/config-footer.png deleted file mode 100644 index e4fffa452..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/config-footer.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/contact.png b/odex25_donation/theme_prime/static/description/images/contact.png deleted file mode 100644 index d912a8ac6..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/contact.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/01-quick-view.png b/odex25_donation/theme_prime/static/description/images/features/01-quick-view.png deleted file mode 100644 index 32f70a47e..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/01-quick-view.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/02-tabs.png b/odex25_donation/theme_prime/static/description/images/features/02-tabs.png deleted file mode 100644 index b1e147697..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/02-tabs.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/03-pricelist.png b/odex25_donation/theme_prime/static/description/images/features/03-pricelist.png deleted file mode 100644 index c084c2e34..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/03-pricelist.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/04-portal.png b/odex25_donation/theme_prime/static/description/images/features/04-portal.png deleted file mode 100644 index 7065dcba5..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/04-portal.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/05-offers-popup.png b/odex25_donation/theme_prime/static/description/images/features/05-offers-popup.png deleted file mode 100644 index 50fccb1ae..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/05-offers-popup.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/06-attr-popup.png b/odex25_donation/theme_prime/static/description/images/features/06-attr-popup.png deleted file mode 100644 index 32094cec4..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/06-attr-popup.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/07-doc.png b/odex25_donation/theme_prime/static/description/images/features/07-doc.png deleted file mode 100644 index aa47248c8..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/07-doc.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/08-doc.png b/odex25_donation/theme_prime/static/description/images/features/08-doc.png deleted file mode 100644 index cd6d3fe8b..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/08-doc.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/09-brand.png b/odex25_donation/theme_prime/static/description/images/features/09-brand.png deleted file mode 100644 index ddab23df1..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/09-brand.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/10-countdown.png b/odex25_donation/theme_prime/static/description/images/features/10-countdown.png deleted file mode 100644 index abdd4a140..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/10-countdown.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/11-icons.png b/odex25_donation/theme_prime/static/description/images/features/11-icons.png deleted file mode 100644 index eac7a0955..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/11-icons.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/12-coming-soon.png b/odex25_donation/theme_prime/static/description/images/features/12-coming-soon.png deleted file mode 100644 index 1c684dd40..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/12-coming-soon.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/13-zoom.png b/odex25_donation/theme_prime/static/description/images/features/13-zoom.png deleted file mode 100644 index 169cf519f..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/13-zoom.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/14-pricelist-timer.png b/odex25_donation/theme_prime/static/description/images/features/14-pricelist-timer.png deleted file mode 100644 index 0752a956f..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/14-pricelist-timer.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/15-multi-website.png b/odex25_donation/theme_prime/static/description/images/features/15-multi-website.png deleted file mode 100644 index 621ee5520..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/15-multi-website.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/16-rtl.png b/odex25_donation/theme_prime/static/description/images/features/16-rtl.png deleted file mode 100644 index 824a5f069..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/16-rtl.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/17-highlited-menu.png b/odex25_donation/theme_prime/static/description/images/features/17-highlited-menu.png deleted file mode 100644 index ba86c5fe8..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/17-highlited-menu.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/18-all-brands-page.png b/odex25_donation/theme_prime/static/description/images/features/18-all-brands-page.png deleted file mode 100644 index 182b37f60..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/18-all-brands-page.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/19-layload-products.png b/odex25_donation/theme_prime/static/description/images/features/19-layload-products.png deleted file mode 100644 index f9e785b11..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/19-layload-products.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/20-product-tags.png b/odex25_donation/theme_prime/static/description/images/features/20-product-tags.png deleted file mode 100644 index 7312692dd..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/20-product-tags.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/90-demo-1.png b/odex25_donation/theme_prime/static/description/images/features/90-demo-1.png deleted file mode 100644 index f8688f45a..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/90-demo-1.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/90-demo-2.png b/odex25_donation/theme_prime/static/description/images/features/90-demo-2.png deleted file mode 100644 index 5b1151bb2..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/90-demo-2.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/90-demo-3.png b/odex25_donation/theme_prime/static/description/images/features/90-demo-3.png deleted file mode 100644 index 03bea86fe..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/features/90-demo-3.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/features/all-brands.png b/odex25_donation/theme_prime/static/description/images/features/all-brands.png new file mode 100644 index 000000000..151c46fd3 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/all-brands.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/attrs.png b/odex25_donation/theme_prime/static/description/images/features/attrs.png new file mode 100644 index 000000000..8106a7e54 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/attrs.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/bottombar.gif b/odex25_donation/theme_prime/static/description/images/features/bottombar.gif new file mode 100644 index 000000000..7f576dcdf Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/bottombar.gif differ diff --git a/odex25_donation/theme_prime/static/description/images/features/brands.png b/odex25_donation/theme_prime/static/description/images/features/brands.png new file mode 100644 index 000000000..2aba529e7 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/brands.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/builder-v1.png b/odex25_donation/theme_prime/static/description/images/features/builder-v1.png new file mode 100644 index 000000000..e6e538bb5 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/builder-v1.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/builder.png b/odex25_donation/theme_prime/static/description/images/features/builder.png new file mode 100644 index 000000000..40a07067a Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/builder.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/cart-flow-1.png b/odex25_donation/theme_prime/static/description/images/features/cart-flow-1.png new file mode 100644 index 000000000..94ff63eb5 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/cart-flow-1.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/cart-flow-2.png b/odex25_donation/theme_prime/static/description/images/features/cart-flow-2.png new file mode 100644 index 000000000..28b3ffa72 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/cart-flow-2.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/cart-flow-4.png b/odex25_donation/theme_prime/static/description/images/features/cart-flow-4.png new file mode 100644 index 000000000..15035d30f Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/cart-flow-4.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/cart-flow.png b/odex25_donation/theme_prime/static/description/images/features/cart-flow.png new file mode 100644 index 000000000..8f6728812 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/cart-flow.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/chips.png b/odex25_donation/theme_prime/static/description/images/features/chips.png new file mode 100644 index 000000000..61742d0f0 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/chips.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/clients.png b/odex25_donation/theme_prime/static/description/images/features/clients.png new file mode 100644 index 000000000..3fa6824bb Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/clients.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/coming-soon-no-vid.png b/odex25_donation/theme_prime/static/description/images/features/coming-soon-no-vid.png new file mode 100644 index 000000000..c4ab8a4e3 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/coming-soon-no-vid.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/coming-soon.png b/odex25_donation/theme_prime/static/description/images/features/coming-soon.png new file mode 100644 index 000000000..cd23f714b Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/coming-soon.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/config-no-vid.png b/odex25_donation/theme_prime/static/description/images/features/config-no-vid.png new file mode 100644 index 000000000..5a1aee7ab Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/config-no-vid.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/config.png b/odex25_donation/theme_prime/static/description/images/features/config.png new file mode 100644 index 000000000..f80e3ac91 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/config.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/countdown.png b/odex25_donation/theme_prime/static/description/images/features/countdown.png new file mode 100644 index 000000000..11b9151b1 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/countdown.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/demo-e2.png b/odex25_donation/theme_prime/static/description/images/features/demo-e2.png new file mode 100644 index 000000000..2bfd9d5f2 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/demo-e2.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/demo-fashion.png b/odex25_donation/theme_prime/static/description/images/features/demo-fashion.png new file mode 100644 index 000000000..ed8ecc6f5 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/demo-fashion.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/demo-food.png b/odex25_donation/theme_prime/static/description/images/features/demo-food.png new file mode 100644 index 000000000..7a3f236ac Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/demo-food.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/demo.png b/odex25_donation/theme_prime/static/description/images/features/demo.png new file mode 100644 index 000000000..41efe2a04 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/demo.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/droggol_logo.png b/odex25_donation/theme_prime/static/description/images/features/droggol_logo.png new file mode 100644 index 000000000..1f6f5be65 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/droggol_logo.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/filters.png b/odex25_donation/theme_prime/static/description/images/features/filters.png new file mode 100644 index 000000000..33d0d0b13 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/filters.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/hero.png b/odex25_donation/theme_prime/static/description/images/features/hero.png new file mode 100644 index 000000000..994566082 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/hero.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/highlite-menu.png b/odex25_donation/theme_prime/static/description/images/features/highlite-menu.png new file mode 100644 index 000000000..228b36052 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/highlite-menu.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/hotspot-style.gif b/odex25_donation/theme_prime/static/description/images/features/hotspot-style.gif new file mode 100644 index 000000000..8607fc943 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/hotspot-style.gif differ diff --git a/odex25_donation/theme_prime/static/description/images/features/hotspot.gif b/odex25_donation/theme_prime/static/description/images/features/hotspot.gif new file mode 100644 index 000000000..0c805cb2c Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/hotspot.gif differ diff --git a/odex25_donation/theme_prime/static/description/images/features/icons.png b/odex25_donation/theme_prime/static/description/images/features/icons.png new file mode 100644 index 000000000..92386b340 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/icons.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/lazy-load.png b/odex25_donation/theme_prime/static/description/images/features/lazy-load.png new file mode 100644 index 000000000..a2e120a23 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/lazy-load.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/mobile-1.png b/odex25_donation/theme_prime/static/description/images/features/mobile-1.png new file mode 100644 index 000000000..104997d19 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/mobile-1.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/mobile-2.png b/odex25_donation/theme_prime/static/description/images/features/mobile-2.png new file mode 100644 index 000000000..315e3261d Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/mobile-2.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/mobile-3.png b/odex25_donation/theme_prime/static/description/images/features/mobile-3.png new file mode 100644 index 000000000..aa893c91e Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/mobile-3.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/mobile-4.png b/odex25_donation/theme_prime/static/description/images/features/mobile-4.png new file mode 100644 index 000000000..afdb12d7f Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/mobile-4.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/mobile.png b/odex25_donation/theme_prime/static/description/images/features/mobile.png new file mode 100644 index 000000000..0d48b4e5e Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/mobile.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/multi-lang.png b/odex25_donation/theme_prime/static/description/images/features/multi-lang.png new file mode 100644 index 000000000..c63ef2585 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/multi-lang.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/multi-website.png b/odex25_donation/theme_prime/static/description/images/features/multi-website.png new file mode 100644 index 000000000..be14069c2 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/multi-website.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/numbers.png b/odex25_donation/theme_prime/static/description/images/features/numbers.png new file mode 100644 index 000000000..eb48bf67f Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/numbers.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/offer.png b/odex25_donation/theme_prime/static/description/images/features/offer.png new file mode 100644 index 000000000..23e50c6b7 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/offer.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/portal.png b/odex25_donation/theme_prime/static/description/images/features/portal.png new file mode 100644 index 000000000..7990b4b9c Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/portal.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/pwa-shortcut.png b/odex25_donation/theme_prime/static/description/images/features/pwa-shortcut.png new file mode 100644 index 000000000..8d846a819 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/pwa-shortcut.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/pwa-support.png b/odex25_donation/theme_prime/static/description/images/features/pwa-support.png new file mode 100644 index 000000000..6ace19340 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/pwa-support.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/pwa.png b/odex25_donation/theme_prime/static/description/images/features/pwa.png new file mode 100644 index 000000000..d59952aec Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/pwa.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/quick-view.png b/odex25_donation/theme_prime/static/description/images/features/quick-view.png new file mode 100644 index 000000000..9c7ecef01 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/quick-view.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/screenshot/categories-grid.png b/odex25_donation/theme_prime/static/description/images/features/screenshot/categories-grid.png new file mode 100644 index 000000000..415948e82 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/screenshot/categories-grid.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/screenshot/collection-list.png b/odex25_donation/theme_prime/static/description/images/features/screenshot/collection-list.png new file mode 100644 index 000000000..bcb45e157 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/screenshot/collection-list.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/screenshot/collection-tab.png b/odex25_donation/theme_prime/static/description/images/features/screenshot/collection-tab.png new file mode 100644 index 000000000..8e447819e Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/screenshot/collection-tab.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/screenshot/featured-category.png b/odex25_donation/theme_prime/static/description/images/features/screenshot/featured-category.png new file mode 100644 index 000000000..d77f496c8 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/screenshot/featured-category.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/screenshot/full-product-cover.png b/odex25_donation/theme_prime/static/description/images/features/screenshot/full-product-cover.png new file mode 100644 index 000000000..813869906 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/screenshot/full-product-cover.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/screenshot/full-product.png b/odex25_donation/theme_prime/static/description/images/features/screenshot/full-product.png new file mode 100644 index 000000000..bbabb0b5a Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/screenshot/full-product.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/screenshot/hero-cards.png b/odex25_donation/theme_prime/static/description/images/features/screenshot/hero-cards.png new file mode 100644 index 000000000..04ebc16d9 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/screenshot/hero-cards.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/screenshot/image-collection.png b/odex25_donation/theme_prime/static/description/images/features/screenshot/image-collection.png new file mode 100644 index 000000000..8af3bcdeb Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/screenshot/image-collection.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/screenshot/img-products.png b/odex25_donation/theme_prime/static/description/images/features/screenshot/img-products.png new file mode 100644 index 000000000..6204e0ec2 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/screenshot/img-products.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/screenshot/products-category-tabs.png b/odex25_donation/theme_prime/static/description/images/features/screenshot/products-category-tabs.png new file mode 100644 index 000000000..971b94afa Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/screenshot/products-category-tabs.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/screenshot/products-countdown.png b/odex25_donation/theme_prime/static/description/images/features/screenshot/products-countdown.png new file mode 100644 index 000000000..d09a0a28d Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/screenshot/products-countdown.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/screenshot/products.png b/odex25_donation/theme_prime/static/description/images/features/screenshot/products.png new file mode 100644 index 000000000..082a3e9ac Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/screenshot/products.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/screenshot/top-categories.png b/odex25_donation/theme_prime/static/description/images/features/screenshot/top-categories.png new file mode 100644 index 000000000..9da4cdbb3 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/screenshot/top-categories.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/screenshot/two-col-offer.png b/odex25_donation/theme_prime/static/description/images/features/screenshot/two-col-offer.png new file mode 100644 index 000000000..cdeec1e08 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/screenshot/two-col-offer.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/search.png b/odex25_donation/theme_prime/static/description/images/features/search.png new file mode 100644 index 000000000..cc73ca1a8 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/search.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/side-cart.png b/odex25_donation/theme_prime/static/description/images/features/side-cart.png new file mode 100644 index 000000000..d355c879e Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/side-cart.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/support_cont.png b/odex25_donation/theme_prime/static/description/images/features/support_cont.png new file mode 100644 index 000000000..be80658af Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/support_cont.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/support_contact.png b/odex25_donation/theme_prime/static/description/images/features/support_contact.png new file mode 100644 index 000000000..9fc41aa95 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/support_contact.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/support_cust.png b/odex25_donation/theme_prime/static/description/images/features/support_cust.png new file mode 100644 index 000000000..6c74b1dd5 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/support_cust.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/support_supp.png b/odex25_donation/theme_prime/static/description/images/features/support_supp.png new file mode 100644 index 000000000..10713caf7 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/support_supp.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/switcher-no-vid.png b/odex25_donation/theme_prime/static/description/images/features/switcher-no-vid.png new file mode 100644 index 000000000..83974482f Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/switcher-no-vid.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/switcher.png b/odex25_donation/theme_prime/static/description/images/features/switcher.png new file mode 100644 index 000000000..eab1593c5 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/switcher.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/tabs.png b/odex25_donation/theme_prime/static/description/images/features/tabs.png new file mode 100644 index 000000000..9a5de2238 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/tabs.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/tags.png b/odex25_donation/theme_prime/static/description/images/features/tags.png new file mode 100644 index 000000000..affa1a466 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/tags.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/templates.png b/odex25_donation/theme_prime/static/description/images/features/templates.png new file mode 100644 index 000000000..15e45fd23 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/templates.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/timer.png b/odex25_donation/theme_prime/static/description/images/features/timer.png new file mode 100644 index 000000000..214ee21b1 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/timer.png differ diff --git a/odex25_donation/theme_prime/static/description/images/features/zoom-no-vid.png b/odex25_donation/theme_prime/static/description/images/features/zoom-no-vid.png new file mode 100644 index 000000000..847ffb4f0 Binary files /dev/null and b/odex25_donation/theme_prime/static/description/images/features/zoom-no-vid.png differ diff --git a/odex25_donation/theme_prime/static/description/images/filter-footer.png b/odex25_donation/theme_prime/static/description/images/filter-footer.png deleted file mode 100644 index 8aff36ff2..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/filter-footer.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/filter.gif b/odex25_donation/theme_prime/static/description/images/filter.gif deleted file mode 100644 index 92dc6d006..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/filter.gif and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/filters-hero.png b/odex25_donation/theme_prime/static/description/images/filters-hero.png deleted file mode 100644 index 92ccb076d..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/filters-hero.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/header.gif b/odex25_donation/theme_prime/static/description/images/header.gif deleted file mode 100644 index 60d474890..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/header.gif and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/header.png b/odex25_donation/theme_prime/static/description/images/header.png deleted file mode 100644 index 7e614f33d..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/header.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/headers-2.png b/odex25_donation/theme_prime/static/description/images/headers-2.png deleted file mode 100644 index 01cbfbf75..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/headers-2.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/hero-2.png b/odex25_donation/theme_prime/static/description/images/hero-2.png deleted file mode 100644 index c2fb09115..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/hero-2.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/hero.png b/odex25_donation/theme_prime/static/description/images/hero.png index e49cf0444..c04bd1f10 100644 Binary files a/odex25_donation/theme_prime/static/description/images/hero.png and b/odex25_donation/theme_prime/static/description/images/hero.png differ diff --git a/odex25_donation/theme_prime/static/description/images/hotspot-1.gif b/odex25_donation/theme_prime/static/description/images/hotspot-1.gif deleted file mode 100644 index 7678dc450..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/hotspot-1.gif and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/hotspot-3.png b/odex25_donation/theme_prime/static/description/images/hotspot-3.png deleted file mode 100644 index 4454e2564..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/hotspot-3.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/hotspot-4.gif b/odex25_donation/theme_prime/static/description/images/hotspot-4.gif deleted file mode 100644 index 1981e282f..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/hotspot-4.gif and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/hotspot.png b/odex25_donation/theme_prime/static/description/images/hotspot.png deleted file mode 100644 index 11e302fcf..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/hotspot.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/megamenu-footer.png b/odex25_donation/theme_prime/static/description/images/megamenu-footer.png deleted file mode 100644 index cf03d71ec..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/megamenu-footer.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/megamenu-hero-2.png b/odex25_donation/theme_prime/static/description/images/megamenu-hero-2.png deleted file mode 100644 index 8224dd95f..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/megamenu-hero-2.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/megamenu-hero.png b/odex25_donation/theme_prime/static/description/images/megamenu-hero.png deleted file mode 100644 index 749d6949c..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/megamenu-hero.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/megamenu.gif b/odex25_donation/theme_prime/static/description/images/megamenu.gif deleted file mode 100644 index 22d621412..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/megamenu.gif and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/megamenu.mp4 b/odex25_donation/theme_prime/static/description/images/megamenu.mp4 deleted file mode 100644 index 507bdbd93..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/megamenu.mp4 and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/menus.png b/odex25_donation/theme_prime/static/description/images/menus.png deleted file mode 100644 index 51b16da30..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/menus.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/mobile.mp4 b/odex25_donation/theme_prime/static/description/images/mobile.mp4 deleted file mode 100644 index ad44bd116..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/mobile.mp4 and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/mobile.png b/odex25_donation/theme_prime/static/description/images/mobile.png deleted file mode 100644 index 12bf837bc..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/mobile.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/prime-logo.png b/odex25_donation/theme_prime/static/description/images/prime-logo.png index a69d46871..4b1ba9026 100644 Binary files a/odex25_donation/theme_prime/static/description/images/prime-logo.png and b/odex25_donation/theme_prime/static/description/images/prime-logo.png differ diff --git a/odex25_donation/theme_prime/static/description/images/pwa.png b/odex25_donation/theme_prime/static/description/images/pwa.png deleted file mode 100644 index 6b843e31c..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/pwa.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/search-ss.gif b/odex25_donation/theme_prime/static/description/images/search-ss.gif deleted file mode 100644 index a55c856f7..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/search-ss.gif and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/search.gif b/odex25_donation/theme_prime/static/description/images/search.gif deleted file mode 100644 index dfea44701..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/search.gif and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/searchss.mp4 b/odex25_donation/theme_prime/static/description/images/searchss.mp4 deleted file mode 100644 index 8d647bb6e..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/searchss.mp4 and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/settings.png b/odex25_donation/theme_prime/static/description/images/settings.png deleted file mode 100644 index aa7f63257..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/settings.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/smart-search.png b/odex25_donation/theme_prime/static/description/images/smart-search.png deleted file mode 100644 index ad4c50502..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/smart-search.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/snippet_thumb/1.png b/odex25_donation/theme_prime/static/description/images/snippet_thumb/1.png deleted file mode 100644 index 7d62fa395..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/snippet_thumb/1.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/snippet_thumb/10.png b/odex25_donation/theme_prime/static/description/images/snippet_thumb/10.png deleted file mode 100644 index fe3fd84cd..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/snippet_thumb/10.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/snippet_thumb/11.png b/odex25_donation/theme_prime/static/description/images/snippet_thumb/11.png deleted file mode 100644 index ef9362bac..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/snippet_thumb/11.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/snippet_thumb/12.png b/odex25_donation/theme_prime/static/description/images/snippet_thumb/12.png deleted file mode 100644 index 7af6a012c..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/snippet_thumb/12.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/snippet_thumb/13.png b/odex25_donation/theme_prime/static/description/images/snippet_thumb/13.png deleted file mode 100644 index d68143c06..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/snippet_thumb/13.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/snippet_thumb/14.png b/odex25_donation/theme_prime/static/description/images/snippet_thumb/14.png deleted file mode 100644 index 510585a2a..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/snippet_thumb/14.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/snippet_thumb/15.png b/odex25_donation/theme_prime/static/description/images/snippet_thumb/15.png deleted file mode 100644 index 71cb55dd2..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/snippet_thumb/15.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/snippet_thumb/16.png b/odex25_donation/theme_prime/static/description/images/snippet_thumb/16.png deleted file mode 100644 index bf3634704..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/snippet_thumb/16.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/snippet_thumb/17.png b/odex25_donation/theme_prime/static/description/images/snippet_thumb/17.png deleted file mode 100644 index 4779e3b07..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/snippet_thumb/17.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/snippet_thumb/2.png b/odex25_donation/theme_prime/static/description/images/snippet_thumb/2.png deleted file mode 100644 index 34f997722..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/snippet_thumb/2.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/snippet_thumb/3.png b/odex25_donation/theme_prime/static/description/images/snippet_thumb/3.png deleted file mode 100644 index b1902cc55..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/snippet_thumb/3.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/snippet_thumb/4.png b/odex25_donation/theme_prime/static/description/images/snippet_thumb/4.png deleted file mode 100644 index f44c4d594..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/snippet_thumb/4.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/snippet_thumb/5.png b/odex25_donation/theme_prime/static/description/images/snippet_thumb/5.png deleted file mode 100644 index ea195fb1a..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/snippet_thumb/5.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/snippet_thumb/6.png b/odex25_donation/theme_prime/static/description/images/snippet_thumb/6.png deleted file mode 100644 index 98aaaa82a..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/snippet_thumb/6.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/snippet_thumb/7.png b/odex25_donation/theme_prime/static/description/images/snippet_thumb/7.png deleted file mode 100644 index 9054033df..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/snippet_thumb/7.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/snippet_thumb/8.png b/odex25_donation/theme_prime/static/description/images/snippet_thumb/8.png deleted file mode 100644 index 7b399b6ad..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/snippet_thumb/8.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/snippet_thumb/9.png b/odex25_donation/theme_prime/static/description/images/snippet_thumb/9.png deleted file mode 100644 index eb09f195e..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/snippet_thumb/9.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/theme-configurator-old.png b/odex25_donation/theme_prime/static/description/images/theme-configurator-old.png deleted file mode 100644 index 32046b869..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/theme-configurator-old.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/theme-configurator.png b/odex25_donation/theme_prime/static/description/images/theme-configurator.png deleted file mode 100644 index 060bc3575..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/theme-configurator.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/images/tools-text.png b/odex25_donation/theme_prime/static/description/images/tools-text.png deleted file mode 100644 index 3977b342d..000000000 Binary files a/odex25_donation/theme_prime/static/description/images/tools-text.png and /dev/null differ diff --git a/odex25_donation/theme_prime/static/description/index.html b/odex25_donation/theme_prime/static/description/index.html index 196109cb5..59dbb2041 100644 --- a/odex25_donation/theme_prime/static/description/index.html +++ b/odex25_donation/theme_prime/static/description/index.html @@ -1,436 +1,1471 @@ -
-
-
-
-
+ -
-
-
- -
- - Need a help? - -
- info@droggol.com -
-
- +border-color: d7d6d6; +primary-color: #5c77fc; +primary-soft-color: #5c77fc3d; +dark-bg-color: #1e2c3d; +muted-text-color: #7e8895; + +--> + +
+
+
+ +
+
+
+
+
+ +
+
+

This theme is made for the older version of Odoo. You can still use it but it + has reached the + end of support and we are no longer maintaining this.

+

We suggest you to upgrade to a supported version.

+
- - -
- - -
-
-
-
+ +
+
-
- - - +
+ +
+ + Need a help? + +
+ info@droggol.com +
+
+
-
-
+
+ + + +
+
+
+

Snippet Tools

+
+
+
+
+ +
+
+
+
+ - -
- -
-

Answer your visitors questions instantly.
Messages pop up on your backend.

-
-
-

Create customized forms to convert more, and integrate them in your business flow in just a few clicks.

-
-
-

Let people review and rate your products. Showcase your best products thanks to customers' comments.

-
-
-

Boost your sales with cross-selling and upselling opportunities on product pages, in the cart, or at checkout.

-
-
-

Encourage potential customers to buy your products with coupons and promotion campaigns.

-
- - -
- - -
+ - -
-
-
- -
- - - + +
+
+
+
+

Product selection +

+

has never been so easy

+ Say bye to complex configuration. No more + switching + back and forth between frontend and backend. Choose your products right from the website + just with few clicks. +
-
-
- -
-
-
-
- -
- +
+
+
+
Various product selection options
- -
-
-
-
- -
-
-
-
- -
- +
+
+ +
Newly Arrived
+
+
+
+
+ +
Discounted Products
+
+
+
+
+ +
Best Seller
+
+
+
+
+ +
Products from categories
+
+
+
+
+ +
Products from tags
+
+
+
+
+ +
Manual Selection
+
+
+
+
+ +
Newly Arrived from category or brands
+
+
+
+
+ +
Discounted Products from category or brand
+
+
+
+
+ +
Bestseller Products from category or brand
+
+
+
+
+ +
Products based on tags and labels
+
+
+
+
+ +
Bestseller products with discounts
+
+
+
+
+ +
Products in price range
+
+
+
+
+
+ Thanks to our powerful + tools this list can go on and on. + +
+
+
+
+
+
+ We have only given some examples of products selections above but advance selection tool is much + more powerful you can use multiple rules to list products of your choice.
+
+
+ + + +
+
+
+
+ +
+
+
+
+
+

Product Countdown Slider

+
+ + + + Full Width Slider + + + + + Countdown Timer + + + + + + Mobile Responsive + + +
+ +
+
+
+ +
+
+
+

Product Cards

+
+ + + + Slider Mode + + + + + Grid Mode + + + + + 7 + Card Style + + + + + Set Products per Row + + + + + Mobile Responsive + + + + + Configurable Buttons + +
+ +
+
+
+
+
+
+

Product with Category + Tabs

+
+ + + 7 + Card Style + + + + 6 + Tab Style + + + + + Slider Mode + + + + + Grid Mode + + + + + Set Products per Row + + + + + + Mobile Responsive + + + + + Configurable Buttons + + +
+ +
+
+
+
+
+
+

Categories Grid

+
+ + + 4 + Card Style + + + + + Product Count + + + + + Image Support + + + + + Cover style + +
+ +
+
+
+ + +
+
+
+

Full Product

+
+ + + + Variant Selector + + + + + Zoom Support + + + + + Full product detail + +
+ +
+
+
+ +
+
+
+

Full product + cover

+
+ + + + Variant Selector + + + + + Attribute Based Image + + + + + Cover image support + +
+ +
+
+
+ +
+
+
+

Top Categories

+
+ + + + First 3 product images + + + + + Category start price + +
+ +
+
+
+
+
+
+

Products Collection Lists

+
+ + + 3 + styles + + + + + List of products + +
+ +
+
+
+
+
+
+

Products Collection Lists

+
+ + + 7 + Card Style + + + + 6 + Tab Style + + + + + Slider Mode + + + + + Grid Mode + + + + + Set Products per Row + + + + + + Mobile Responsive + + + + + Configurable Buttons + + +
+ +
+
+
+
+
+
+

2 Column Deals

+
+ + + 2 + column + + + + + Countdown timer + + + + + Slider + +
+ +
+
+
+
+
+
+

Image + Products Cards

+
+ + + + Image with animation + + + + + Product cards + + + + + Slider + +
+ +
+
+
+
+
+
+

Image + Product Collection

+
+ + + + Cover with text + + + + 3 + Style + + + + + Collections + +
+ +
+
+
+
+
+
+

Product Hero Grid

+
+ + + + Hero Card + + + + + Countdown Timer + + + + + Collections + +
+ +
+
+
+
+
+
+
+
+
+ + + +
+
+
+
+
+

Key Features

+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + + +
+
+
+
+ + +
+
+ +
+
+
+
+
+
+ +

Add unlimited hotspots +

+ + Add as many hotspots on the image as you wish and position them anywhere on the image + visually. + +
+
+
+
+ +

Link products dynamically +

+ + Link products to the hotspot user can add products to cart directly from hotspot. + +
+
+
+
+ +

Tooltip and dialog support

+ + On click of hotspot, You can either display products as a tooltip or as quick view + dialog. + +
+
+
+
+ +

Mobile Compatible +

+ + Image hotspot works seamlessly on mobile devices without any extra configuration. + +
+
+
+
+ +

Custom links and content support

+ + You can also set custom title, text and links if you do not want to link products. + +
+
+
+
+
+
+ + + +
+
+
+
+ + +
+
+ +
+
+
+
+
+
+ +

Adaptive Filter Product Count +

+ + Show count of filtered products for categories and attribute filters. + +
+
+
+
+ +

Filters as sidebar +

+ + Save space and show more cards by showing filters and catagories as sidebar. (For + Mobile & + Desktop) + +
+
+
+
+ +

Quick Search for attribute filters

+ + A small input on every filter help user to quickly find desired values. + +
+
+
+
+ +

Enable/Disable extra attribute filter

+ + Control which product attributes you want to show/hide as product filters. + +
+
+
+
+ +

Collapsible filters and categories

+ + By enabling collapsible filters and categories you can use more filters in less space. + +
+
+
+
+ +

Price, Rating, Tags & Brand Filter

+ + Filters are not limited to product attributes you can enable filters for Price Range, + Rating, + Tags & Brand. + +
+
+
+
+
+
+ + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+
+ + + +
+
+
+
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+
+ + +
+
+ +
+
+ +
+
+
+ +
+
+
+
+ +
+ + + +
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+ + +
+
+
+
+ + +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+
-
-
-
-
- - -
+
+
+ +
-
-
- -
-
-
-
- - -
-
-
-
- -
-
-
-
- - - - -
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
- - -
-
-
-
- - -
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
- -
-
-
-
- - - -
-
-
-
- -
-
-
- +
+ +
- + +
- + +
- + +
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- + +
-
-
+
+
- + + +
-
-
-
-
-

Explore Live Demo
for Electronic Store

-
-
- Copy Given URL for Demo
-
-

- droggol.com/r/demo16-1

-
-
+
+
+
+
+ +

Centralized options

+ + All options are included in the single dialog separated in different tabs based on + category. + +
+
+
+
+ +

Multi-website support + +

+ + With multi website support, different website can have different option values. + +
+
+
+
+ +

Improved Performance +

+ + With improved option management you will see overall performance improvement. +
@@ -438,63 +1473,38 @@
-
-
-
-
- -
-
-
-
-
-
-

Explore Live Demo
for Electronic Store 2 -

-
-
- Copy Given URL for Demo
-
-

- droggol.com/r/demo16-2

-
-
-
-
-
-
+ +
+
+
+
-
+
- +
-
-
+
+
+ style="background-color: #ffefef;">
-

Explore Live Demo
for Food Store

+

Explore Live Demo
for Electronic + Store

+ style="font-weight:600;font-family:'Inter';padding:12px 10px;text-align:center;color: #ffffff;background-color: #E84E48;border:1px solid #bedce6;"> Copy Given URL for Demo

- droggol.com/r/demo16-3 -

+ style="font-size:25px; font-weight:300; font-family:'Inter'"> + droggol.com/r/demo14-2

@@ -505,144 +1515,743 @@
-
+
+
+
+ +
+
+
+
+
+
+

Explore Live Demo
for Food Store +

+
+
+ Copy Given URL for Demo
+
+

+ droggol.com/r/demo14-3

+
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+
+
+

Explore Live Demo
for Electronic + Store

+
+
+ Copy Given URL for Demo
+
+

+ droggol.com/r/demo14

+
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+
+
+
+
+
+

Explore Live Demo
for Fashion Store +

+
+
+ Copy Given URL for Demo
+
+

+ droggol.com/r/demo14-4

+
+
+
+
+
+
+
+
+ +
+
+
+

Other Features

+
+ +
+
+
+
+ +
+
+
Header Menu Label
+
Highlight menu in the header with amazing label design.
+
+
+
+
+ +
+
+
+
+ +
+
+
Inline Header Product Search
+
A search bar is added in some headers to make the search handy.
+
+
+
+
+ +
+
+
+
+ +
+
+
Search Sidebar
+
The search function is optimized UI / UX to give a better customer + experience.
+
+
+
+
+ +
+
+
+
+ +
+
+
Adaptive filter values
+
On search filters values will be hidden is nothing is matched.
+
+
+
+
+ +
+
+
+
+ +
+
+
Pre-Header Support
+
Show small but useful information on top of the header.
+
+
+
+
+ +
+
+
+
+ +
+
+
Transparent Header
+
Transparent background of the header helps you highlight the background color + scheme.
+
+
+
+
+ +
+
+
+
+ +
+
+
Footer with Newsletter
+
Some footer layouts bundled with an inbuilt newsletter subscription.
+
+
+
+
+ +
+
+
+
+ +
+
+
Social Media Icons
+
Encourage users to follow your social media accounts by adding links in the + footer.
+
+
+
+
+ +
+
+
+
+ +
+
+
Perfect Grid
+
The product grid is designed to look perfect with all kinds of image sizes. +
+
+
+
+
+ +
+
+
+
+ +
+
+
Category Pills
+
Display categories with image on top of the shop page for a primary focus on + it.
+
+
+
+
+ +
+
+
+
+ +
+
+
Product Color Preview
+
Show product colors directly on the product card.
+
+
+
+
+ +
+
+
+
+ +
+
+
Product Label
+
Highlight products with different styled labels.
+
+
+
+
+ +
+
+
+
+ +
+
+
Sticky Add to Cart
+
Allows users to follow up product's cart button until the bottom scroll is + reached.
+
+
+
+
+ +
+
+
+
+ +
+
+
Product Swatches
+
Show product variants with text or images for the best UI / UX.
+
+
+
+
+ +
+
+
+
+ +
+
+
Products Discount
+
Show automatically calculated discount percentage on the products.
+
+
+
+
+ +
+
+
+
+ +
+
+
Custom 404 Page
+
Customized 404 pages beautiful with useful actions to get back lost users. +
+
+
+
+
+ +
+
+
+
+ +
+
+
Wishlist Page
+
Improved wishlist page with better UI / UX to give the best customer + experience.
+
+
+
+
+ +
+
+
+
+ +
+
+
Compare Page
+
Revamped compare page to give a more clean and user-friendly UI.
+
+
+
+
+ +
+
+
+
+ +
+
+
Product Snippets
+
Dynamically display manually selected or based on rules products on any page. +
+
+
+
+
+ +
+
+
+
+ +
+
+
Collection Snippets
+
Display products based on your custom collections made with rules or domain. +
+
+
+
+
+ +
+
+
+
+ +
+
+
Brand Snippets
+
Display product brands dynamically in various styles(Grid/Slider).
+
+
+
+
+ +
+
+
+
+ +
+
+
Special Shop Snippets
+
Specially designed snippets for products category and offer on the shop page. +
+
+
+
+
+ +
+
+
+
+ +
+
+
Gallery Snippets
+
Showcase your images with a full-screen preview.
+
+
+
+
+ +
+
+
+
+ +
+
+
Mega Menu Snippets
+
Created a convenient mega menu to show all necessary information.
+
+
+
+
+ +
+
+
+
+ +
+
+
Blog Snippets
+
Added new advance styled blog snippets to showcase your blogs.
+
+
+
+
+ +
+
+
+
+ +
+
+
Recent Product Snippet
+
Updated the recent product snippet with a more clean and user-friendly UI. +
+
+
+
+
+ +
+
+
+
+ +
+
+
Boxed Format Layout
+
You can set a boxed appearance of your shop using theme settings.
+
+
+
+
+ +
+
+
+
+ +
+
+
Highly Configurable
+
The Theme is designed to be highly configurable according to your need.
+
+
+
+
+ +
+
+
+
+ +
+
+
Detailed Documentation
+
Detailed documentation is available which helps you to set up your shop at + every step.
+
+
+
+
+ +
+
+
+
+ +
+
+
Theme Customization
+
Provide an easy way to manage theme customization modules on Multi-Website. +
+
+
+
+
+
+ + + +
+
-