@ -0,0 +1,24 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################# | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2021-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) | 
				
			|||
# | 
				
			|||
#    You can modify it under the terms of the GNU LESSER | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | 
				
			|||
# | 
				
			|||
#    This program is distributed in the hope that it will be useful, | 
				
			|||
#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			|||
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			|||
#    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			|||
# | 
				
			|||
#    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			|||
#    (LGPL v3) along with this program. | 
				
			|||
#    If not, see <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################# | 
				
			|||
 | 
				
			|||
from . import models | 
				
			|||
from . import controllers | 
				
			|||
@ -0,0 +1,67 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################# | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2021-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) | 
				
			|||
# | 
				
			|||
#    You can modify it under the terms of the GNU LESSER | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | 
				
			|||
# | 
				
			|||
#    This program is distributed in the hope that it will be useful, | 
				
			|||
#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			|||
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			|||
#    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			|||
# | 
				
			|||
#    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			|||
#    (LGPL v3) along with this program. | 
				
			|||
#    If not, see <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################# | 
				
			|||
 | 
				
			|||
{ | 
				
			|||
    'name': 'Theme Silon', | 
				
			|||
    'version': '14.0.1.0.0', | 
				
			|||
    'summary': 'Attractive and unique front-end theme for eCommerce websites', | 
				
			|||
    'description': 'Attractive and unique front-end theme for eCommerce websites', | 
				
			|||
    'category': 'Theme/eCommerce', | 
				
			|||
    'author': 'Cybrosys Techno Solutions', | 
				
			|||
    'company': 'Cybrosys Techno Solutions', | 
				
			|||
    'maintainer': 'Cybrosys Techno Solutions', | 
				
			|||
    'website': "https://www.cybrosys.com", | 
				
			|||
    'license': 'LGPL-3', | 
				
			|||
    'depends': ['website_mass_mailing', 'website_sale_wishlist'], | 
				
			|||
    'data': [ | 
				
			|||
        'data/silon_configuration_data.xml', | 
				
			|||
        'security/ir.model.access.csv', | 
				
			|||
        'views/assets.xml', | 
				
			|||
        'views/silon_configuration.xml', | 
				
			|||
        'views/snippets/index/most_popular.xml', | 
				
			|||
        'views/snippets/index/banner.xml', | 
				
			|||
        'views/snippets/index/offer.xml', | 
				
			|||
        'views/snippets/index/features.xml', | 
				
			|||
        'views/snippets/index/journals.xml', | 
				
			|||
        'views/snippets/index/follow_us.xml', | 
				
			|||
        'views/snippets/about_us/about_us.xml', | 
				
			|||
        'views/snippets/index/featured_products.xml', | 
				
			|||
        'views/snippets/index/trending.xml', | 
				
			|||
        'views/snippets/website_rating_custom.xml', | 
				
			|||
        'views/template.xml', | 
				
			|||
        'views/footer.xml', | 
				
			|||
        'views/header.xml', | 
				
			|||
        'views/contact_us.xml', | 
				
			|||
        'views/cart.xml', | 
				
			|||
        'views/product_page.xml', | 
				
			|||
        'views/product.xml', | 
				
			|||
        'views/views.xml' | 
				
			|||
 | 
				
			|||
    ], | 
				
			|||
    'images': [ | 
				
			|||
        'static/description/banner.png', | 
				
			|||
        'static/description/theme_screenshot.png' | 
				
			|||
    ], | 
				
			|||
    'installable': True, | 
				
			|||
    'application': False, | 
				
			|||
    'auto_install': False, | 
				
			|||
} | 
				
			|||
@ -0,0 +1,23 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################# | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2021-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) | 
				
			|||
# | 
				
			|||
#    You can modify it under the terms of the GNU LESSER | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | 
				
			|||
# | 
				
			|||
#    This program is distributed in the hope that it will be useful, | 
				
			|||
#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			|||
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			|||
#    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			|||
# | 
				
			|||
#    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			|||
#    (LGPL v3) along with this program. | 
				
			|||
#    If not, see <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################# | 
				
			|||
 | 
				
			|||
from . import main | 
				
			|||
@ -0,0 +1,279 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################# | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2021-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) | 
				
			|||
# | 
				
			|||
#    You can modify it under the terms of the GNU LESSER | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | 
				
			|||
# | 
				
			|||
#    This program is distributed in the hope that it will be useful, | 
				
			|||
#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			|||
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			|||
#    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			|||
# | 
				
			|||
#    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			|||
#    (LGPL v3) along with this program. | 
				
			|||
#    If not, see <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################# | 
				
			|||
 | 
				
			|||
from werkzeug.exceptions import NotFound | 
				
			|||
from odoo.addons.http_routing.models.ir_http import slug | 
				
			|||
from odoo.addons.website.controllers.main import QueryURL | 
				
			|||
from odoo.addons.website_sale.controllers.main import TableCompute, WebsiteSale | 
				
			|||
from odoo import http | 
				
			|||
from odoo.http import request | 
				
			|||
from odoo import fields | 
				
			|||
import datetime | 
				
			|||
 | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class WebsiteProduct(http.Controller): | 
				
			|||
 | 
				
			|||
    @http.route('/get_featured_product', auth='public', type='json', | 
				
			|||
                website=True) | 
				
			|||
    def get_featured_products(self): | 
				
			|||
        silon_configuration = request.env.ref( | 
				
			|||
            'theme_silon.silon_configuration_data') | 
				
			|||
        product_id = silon_configuration.featured_product_ids | 
				
			|||
        rating = request.website.viewref('website_sale.product_comment').active | 
				
			|||
        res = {'products': []} | 
				
			|||
        for product in product_id: | 
				
			|||
            combination_info = product._get_combination_info_variant() | 
				
			|||
            res_product = product.read(['id', 'name', 'website_url'])[0] | 
				
			|||
            res_product.update(combination_info) | 
				
			|||
            if rating: | 
				
			|||
                res_product['rating'] = request.env[ | 
				
			|||
                    "ir.ui.view"]._render_template( | 
				
			|||
                    'portal_rating.rating_widget_stars_static', values={ | 
				
			|||
                        'rating_avg': product.rating_avg, | 
				
			|||
                        'rating_count': product.rating_count, | 
				
			|||
                    }) | 
				
			|||
            else: | 
				
			|||
                res_product['rating'] = 0 | 
				
			|||
            res['products'].append(res_product) | 
				
			|||
        products = res['products'] | 
				
			|||
        values = {'products': products} | 
				
			|||
        response = http.Response( | 
				
			|||
            template='theme_silon.featured_product_snippet', qcontext=values) | 
				
			|||
        return response.render() | 
				
			|||
 | 
				
			|||
    @http.route('/get_popular_product', auth='public', type='json', | 
				
			|||
                website=True) | 
				
			|||
    def get_popular_products(self): | 
				
			|||
        products = request.env['product.template'].sudo().search([]) | 
				
			|||
        for each in products: | 
				
			|||
            each.qty_sold = 0 | 
				
			|||
            each.top_selling = False | 
				
			|||
 | 
				
			|||
        date = fields.Datetime.now() | 
				
			|||
        date_before = date - datetime.timedelta(days=7) | 
				
			|||
 | 
				
			|||
        orders = request.env['sale.order'].sudo().search([ | 
				
			|||
                                                   ('date_order', '<=', date), | 
				
			|||
                                                   ('date_order', '>=', | 
				
			|||
                                                    date_before), | 
				
			|||
                                                   ('website_id', '!=', False), | 
				
			|||
                                                   ('state', 'in', ( | 
				
			|||
                                                       'sale', 'done'))]) | 
				
			|||
        for order in orders: | 
				
			|||
            order_line = order.order_line | 
				
			|||
            for product in order_line: | 
				
			|||
                product.product_id.qty_sold = product.product_id.qty_sold + 1 | 
				
			|||
        website_product_ids = request.env['product.template'].sudo().search( | 
				
			|||
            [('is_published', '=', True), | 
				
			|||
             ('qty_sold', '!=', 0)], | 
				
			|||
            order='qty_sold desc', limit=4) | 
				
			|||
 | 
				
			|||
        website_product_ids.top_selling = True | 
				
			|||
        rating = request.website.viewref('website_sale.product_comment').active | 
				
			|||
        res = {'products': []} | 
				
			|||
        for product in website_product_ids: | 
				
			|||
            combination_info = product._get_combination_info() | 
				
			|||
            res_product = product.read(['id', 'name', 'website_url'])[0] | 
				
			|||
            res_product.update(combination_info) | 
				
			|||
            if rating: | 
				
			|||
                res_product['rating'] = request.env[ | 
				
			|||
                    "ir.ui.view"]._render_template( | 
				
			|||
                    'portal_rating.rating_widget_stars_static', values={ | 
				
			|||
                        'rating_avg': product.rating_avg, | 
				
			|||
                        'rating_count': product.rating_count, | 
				
			|||
                    }) | 
				
			|||
            else: | 
				
			|||
                res_product['rating'] = 0 | 
				
			|||
            res['products'].append(res_product) | 
				
			|||
        products = res['products'] | 
				
			|||
        values = {'website_product_ids': products} | 
				
			|||
        response = http.Response( | 
				
			|||
            template='theme_silon.popular_snippet', qcontext=values) | 
				
			|||
        return response.render() | 
				
			|||
 | 
				
			|||
    @http.route('/get_trending_product', auth='public', type='json', | 
				
			|||
                website=True) | 
				
			|||
    def get_trending_product(self): | 
				
			|||
        products = request.env['product.template'].sudo().search([]) | 
				
			|||
        for each in products: | 
				
			|||
            each.views = 0 | 
				
			|||
            each.most_viewed = False | 
				
			|||
        date = fields.Datetime.now() | 
				
			|||
        date_before = date - datetime.timedelta(days=7) | 
				
			|||
        products = request.env['website.track'].sudo().search( | 
				
			|||
            [('visit_datetime', '<=', date), | 
				
			|||
             ('visit_datetime', '>=', date_before), | 
				
			|||
             ('product_id', '!=', False)]) | 
				
			|||
        for pro in products: | 
				
			|||
            pro.product_id.views = pro.product_id.views + 1 | 
				
			|||
 | 
				
			|||
        product_ids = request.env['product.template'].sudo().search( | 
				
			|||
            [('is_published', '=', True), | 
				
			|||
             ('views', '!=', 0)], | 
				
			|||
            order='views desc', limit=8) | 
				
			|||
 | 
				
			|||
        product_ids.most_viewed = True | 
				
			|||
        rating = request.website.viewref('website_sale.product_comment').active | 
				
			|||
        res = {'products': []} | 
				
			|||
        for product in product_ids: | 
				
			|||
            combination_info = product._get_combination_info() | 
				
			|||
            res_product = product.read(['id', 'name', 'website_url'])[0] | 
				
			|||
            res_product.update(combination_info) | 
				
			|||
            if rating: | 
				
			|||
                res_product['rating'] = request.env[ | 
				
			|||
                    "ir.ui.view"]._render_template( | 
				
			|||
                    'portal_rating.rating_widget_stars_static', values={ | 
				
			|||
                        'rating_avg': product.rating_avg, | 
				
			|||
                        'rating_count': product.rating_count, | 
				
			|||
                    }) | 
				
			|||
            else: | 
				
			|||
                res_product['rating'] = 0 | 
				
			|||
            res['products'].append(res_product) | 
				
			|||
        products = res['products'] | 
				
			|||
        values = {'product_ids': products} | 
				
			|||
        response = http.Response( | 
				
			|||
            template='theme_silon.trending_snippet', qcontext=values) | 
				
			|||
        return response.render() | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class PriceFilter(WebsiteSale): | 
				
			|||
 | 
				
			|||
    @http.route() | 
				
			|||
    def shop(self, page=0, category=None, search='', ppg=False, **post): | 
				
			|||
        """Override WebsiteSale shop for Price Filter""" | 
				
			|||
        maximum = minimum = 0 | 
				
			|||
        add_qty = int(post.get('add_qty', 1)) | 
				
			|||
        Category = request.env['product.public.category'] | 
				
			|||
        if category: | 
				
			|||
            category = Category.search([('id', '=', int(category))], limit=1) | 
				
			|||
            if not category or not category.can_access_from_current_website(): | 
				
			|||
                raise NotFound() | 
				
			|||
        else: | 
				
			|||
            category = Category | 
				
			|||
 | 
				
			|||
        if ppg: | 
				
			|||
            try: | 
				
			|||
                ppg = int(ppg) | 
				
			|||
                post['ppg'] = ppg | 
				
			|||
            except ValueError: | 
				
			|||
                ppg = False | 
				
			|||
        if not ppg: | 
				
			|||
            ppg = request.env['website'].get_current_website().shop_ppg or 20 | 
				
			|||
 | 
				
			|||
        ppr = request.env['website'].get_current_website().shop_ppr or 4 | 
				
			|||
 | 
				
			|||
        product_ids = request.env['product.template'].search(['&', ('sale_ok', '=', True), ('active', '=', True)]) | 
				
			|||
 | 
				
			|||
        if product_ids and product_ids.ids: | 
				
			|||
            request.cr.execute( | 
				
			|||
                'select min(list_price),max(list_price) from product_template where id in %s', | 
				
			|||
                (tuple(product_ids.ids),)) | 
				
			|||
            list_prices = request.cr.fetchall() | 
				
			|||
 | 
				
			|||
            minimum = list_prices[0][0] | 
				
			|||
            maximum = list_prices[0][1] | 
				
			|||
 | 
				
			|||
 | 
				
			|||
        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} | 
				
			|||
        attrib_set = {v[1] for v in attrib_values} | 
				
			|||
 | 
				
			|||
        domain = self._get_search_domain(search, category, attrib_values) | 
				
			|||
        if post.get('minimum') and post.get('maximum'): | 
				
			|||
            domain = domain + [('list_price', '>=', float(post.get('minimum'))), | 
				
			|||
                               ('list_price', '<=', float(post.get('maximum')))] | 
				
			|||
 | 
				
			|||
        keep = QueryURL('/shop', category=category and int(category), search=search, attrib=attrib_list, | 
				
			|||
                        order=post.get('order'), minimum=post.get('minimum'), maximum=post.get('maximum')) | 
				
			|||
 | 
				
			|||
        pricelist_context, pricelist = self._get_pricelist_context() | 
				
			|||
 | 
				
			|||
        request.context = dict(request.context, pricelist=pricelist.id, partner=request.env.user.partner_id) | 
				
			|||
 | 
				
			|||
        url = "/shop" | 
				
			|||
        if search: | 
				
			|||
            post["search"] = search | 
				
			|||
        if attrib_list: | 
				
			|||
            post['attrib'] = attrib_list | 
				
			|||
 | 
				
			|||
        Product = request.env['product.template'].with_context(bin_size=True) | 
				
			|||
 | 
				
			|||
        search_product = Product.search(domain, order=self._get_search_order(post)) | 
				
			|||
        website_domain = request.website.website_domain() | 
				
			|||
        categs_domain = [('parent_id', '=', False)] + website_domain | 
				
			|||
        if search: | 
				
			|||
            search_categories = Category.search( | 
				
			|||
                [('product_tmpl_ids', 'in', search_product.ids)] + website_domain).parents_and_self | 
				
			|||
            categs_domain.append(('id', 'in', search_categories.ids)) | 
				
			|||
        else: | 
				
			|||
            search_categories = Category | 
				
			|||
        categs = Category.search(categs_domain) | 
				
			|||
 | 
				
			|||
        if category: | 
				
			|||
            url = "/shop/category/%s" % slug(category) | 
				
			|||
 | 
				
			|||
        product_count = len(search_product) | 
				
			|||
        pager = request.website.pager(url=url, total=product_count, page=page, step=ppg, scope=7, url_args=post) | 
				
			|||
        offset = pager['offset'] | 
				
			|||
        products = search_product[offset: offset + ppg] | 
				
			|||
 | 
				
			|||
        ProductAttribute = request.env['product.attribute'] | 
				
			|||
        if products: | 
				
			|||
            # get all products without limit | 
				
			|||
            attributes = ProductAttribute.search([('product_tmpl_ids', 'in', search_product.ids)]) | 
				
			|||
        else: | 
				
			|||
            attributes = ProductAttribute.browse(attributes_ids) | 
				
			|||
 | 
				
			|||
        layout_mode = request.session.get('website_sale_shop_layout_mode') | 
				
			|||
        if not layout_mode: | 
				
			|||
            if request.website.viewref('website_sale.products_list_view').active: | 
				
			|||
                layout_mode = 'list' | 
				
			|||
            else: | 
				
			|||
                layout_mode = 'grid' | 
				
			|||
 | 
				
			|||
        values = { | 
				
			|||
            'search': search, | 
				
			|||
            'category': category, | 
				
			|||
            'attrib_values': attrib_values, | 
				
			|||
            'attrib_set': attrib_set, | 
				
			|||
            'pager': pager, | 
				
			|||
            'pricelist': pricelist, | 
				
			|||
            'add_qty': add_qty, | 
				
			|||
            'products': products, | 
				
			|||
            'search_count': product_count,  # common for all searchbox | 
				
			|||
            'bins': TableCompute().process(products, ppg, ppr), | 
				
			|||
            'ppg': ppg, | 
				
			|||
            'ppr': ppr, | 
				
			|||
            'categories': categs, | 
				
			|||
            'attributes': attributes, | 
				
			|||
            'keep': keep, | 
				
			|||
            'search_categories_ids': search_categories.ids, | 
				
			|||
            'layout_mode': layout_mode, | 
				
			|||
            'minimum': minimum, | 
				
			|||
            'maximum': maximum, | 
				
			|||
 | 
				
			|||
        } | 
				
			|||
        if category: | 
				
			|||
            values['main_object'] = category | 
				
			|||
        return request.render("website_sale.products", values) | 
				
			|||
@ -0,0 +1,8 @@ | 
				
			|||
<odoo> | 
				
			|||
    <data noupdate="1"> | 
				
			|||
 | 
				
			|||
        <record id="silon_configuration_data" model="silon.configuration"> | 
				
			|||
            <field name="name">Silon Configuration</field> | 
				
			|||
        </record> | 
				
			|||
    </data> | 
				
			|||
</odoo> | 
				
			|||
@ -0,0 +1,24 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################# | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2021-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) | 
				
			|||
# | 
				
			|||
#    You can modify it under the terms of the GNU LESSER | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | 
				
			|||
# | 
				
			|||
#    This program is distributed in the hope that it will be useful, | 
				
			|||
#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			|||
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			|||
#    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			|||
# | 
				
			|||
#    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			|||
#    (LGPL v3) along with this program. | 
				
			|||
#    If not, see <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################# | 
				
			|||
 | 
				
			|||
from . import silon_configuration | 
				
			|||
from . import theme_silon | 
				
			|||
@ -0,0 +1,39 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################# | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2021-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) | 
				
			|||
# | 
				
			|||
#    You can modify it under the terms of the GNU LESSER | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | 
				
			|||
# | 
				
			|||
#    This program is distributed in the hope that it will be useful, | 
				
			|||
#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			|||
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			|||
#    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			|||
# | 
				
			|||
#    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			|||
#    (LGPL v3) along with this program. | 
				
			|||
#    If not, see <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################# | 
				
			|||
 | 
				
			|||
from odoo import models,fields, api, _ | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class SilonConfiguration(models.Model): | 
				
			|||
    _name = 'silon.configuration' | 
				
			|||
 | 
				
			|||
    name = fields.Char('Name') | 
				
			|||
    featured_product_ids = fields.Many2many('product.product') | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class Product(models.Model): | 
				
			|||
    _inherit = 'product.template' | 
				
			|||
 | 
				
			|||
    qty_sold = fields.Integer('Quantity sold') | 
				
			|||
    views = fields.Integer('Views') | 
				
			|||
    top_selling = fields.Boolean('TopSelling') | 
				
			|||
    most_viewed = fields.Boolean('Most Viewed') | 
				
			|||
@ -0,0 +1,33 @@ | 
				
			|||
# -*- coding: utf-8 -*- | 
				
			|||
############################################################################# | 
				
			|||
# | 
				
			|||
#    Cybrosys Technologies Pvt. Ltd. | 
				
			|||
# | 
				
			|||
#    Copyright (C) 2021-TODAY Cybrosys Technologies(<https://www.cybrosys.com>) | 
				
			|||
#    Author: Cybrosys Techno Solutions(<https://www.cybrosys.com>) | 
				
			|||
# | 
				
			|||
#    You can modify it under the terms of the GNU LESSER | 
				
			|||
#    GENERAL PUBLIC LICENSE (LGPL v3), Version 3. | 
				
			|||
# | 
				
			|||
#    This program is distributed in the hope that it will be useful, | 
				
			|||
#    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
				
			|||
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
				
			|||
#    GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. | 
				
			|||
# | 
				
			|||
#    You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE | 
				
			|||
#    (LGPL v3) along with this program. | 
				
			|||
#    If not, see <http://www.gnu.org/licenses/>. | 
				
			|||
# | 
				
			|||
############################################################################# | 
				
			|||
 | 
				
			|||
from odoo import models, fields | 
				
			|||
 | 
				
			|||
 | 
				
			|||
class ThemeSilon(models.AbstractModel): | 
				
			|||
    _inherit = 'theme.utils' | 
				
			|||
 | 
				
			|||
    def _theme_silon_post_copy(self, mod): | 
				
			|||
        # self.enable_view('theme_silon.silon_header') | 
				
			|||
        self.disable_view('website.template_header_default_oe_structure_header_default_1') | 
				
			|||
        self.enable_view('website.template_header_default_align_center') | 
				
			|||
        self.enable_header_off_canvas() | 
				
			|||
		
		
			
  | 
| 
		 After Width: | Height: | Size: 293 KiB  | 
| 
		 After Width: | Height: | Size: 28 KiB  | 
| 
		 After Width: | Height: | Size: 572 KiB  | 
| 
		 After Width: | Height: | Size: 363 KiB  | 
| 
		 After Width: | Height: | Size: 484 KiB  | 
| 
		 After Width: | Height: | Size: 306 KiB  | 
| 
		 After Width: | Height: | Size: 279 KiB  | 
| 
		 After Width: | Height: | Size: 210 KiB  | 
| 
		 After Width: | Height: | Size: 51 KiB  | 
| 
		 After Width: | Height: | Size: 10 KiB  | 
| 
		 After Width: | Height: | Size: 28 KiB  | 
| 
		 After Width: | Height: | Size: 382 KiB  | 
| 
		 After Width: | Height: | Size: 253 KiB  | 
| 
		 After Width: | Height: | Size: 226 KiB  | 
| 
		 After Width: | Height: | Size: 507 KiB  | 
| 
		 After Width: | Height: | Size: 515 KiB  | 
| 
		 After Width: | Height: | Size: 677 KiB  | 
@ -0,0 +1,258 @@ | 
				
			|||
<!-- Hero Section --> | 
				
			|||
<div class="container pt-4 mt-4 rounded" style="background-color: #f0f2f4; font-family: Montserrat, 'sans-serif';"> | 
				
			|||
    <div class="row"> | 
				
			|||
        <div class="col-lg-12 mb-4"> | 
				
			|||
            <img src="images/Cybrosys.png" alt="Cybrosys Logo" style="width: 120px; height: auto;"> | 
				
			|||
            <hr style="border-color: #e1e5e9;" /> | 
				
			|||
        </div> | 
				
			|||
    </div> | 
				
			|||
    <div class="row"> | 
				
			|||
        <div class="col-lg-12 text-center"> | 
				
			|||
            <img src="images/hero.png" width=60% height="auto" class="mb-4" alt="Theme Screenshot"> | 
				
			|||
        </div> | 
				
			|||
        <div class="col-lg-12 text-center"> | 
				
			|||
            <h1 class="mt-4">Theme Silon</h1> | 
				
			|||
            <p class="lead mb-4" style="max-width: 700px; margin: 0 auto;"> | 
				
			|||
                Silon is a attractive and unique front-end theme mainly suitable for eCommerce website. Many custom | 
				
			|||
                designed snippets facilitates to add better user experience. Contains featured product snippet configured from the backend. | 
				
			|||
                The most popular and trending products can be added. The price filter is an another attractive feature available. Customized shop, cart, and contact us pages, etc. | 
				
			|||
            </p> | 
				
			|||
        </div> | 
				
			|||
    </div> | 
				
			|||
 | 
				
			|||
    <!-- End of Hero Section --> | 
				
			|||
 | 
				
			|||
    <!-- Alternate Section --> | 
				
			|||
    <div class="row p-4"> | 
				
			|||
        <div class="col-lg-6 px-4" style="margin-top: 100px;"> | 
				
			|||
            <h2>Desktop View</h2> | 
				
			|||
            <p class="lead"> | 
				
			|||
                It is easy to customize and use. Just drag and drop the building blocks to make attractive webpages. | 
				
			|||
            </p> | 
				
			|||
        </div> | 
				
			|||
        <div class="col-lg-6 px-4"> | 
				
			|||
            <img style="border-radius: 0.5em;" src="images/laptop-screenshots.jpg" width="90%" height="auto" | 
				
			|||
                class="mb-4 shadow-sm" alt="Theme Screenshot"> | 
				
			|||
        </div> | 
				
			|||
    </div> | 
				
			|||
    <div class="row p-4"> | 
				
			|||
        <div class="col-lg-6 px-4"> | 
				
			|||
            <img style="border-radius: 0.5em;" src="images/phone-screenshots.jpg" width="90%" height="auto" | 
				
			|||
                class="mb-4 shadow-sm" alt="Theme Screenshot"> | 
				
			|||
        </div> | 
				
			|||
        <div class="col-lg-6 px-4" style="margin-top: 100px;"> | 
				
			|||
            <h2>Mobile View</h2> | 
				
			|||
            <p class="lead"> | 
				
			|||
                User friendly and modern looking theme makes your page more Stylish And Beautiful. | 
				
			|||
            </p> | 
				
			|||
        </div> | 
				
			|||
    </div> | 
				
			|||
    <!-- End of Alternate Section --> | 
				
			|||
 | 
				
			|||
 | 
				
			|||
    <!-- Two Columns Section --> | 
				
			|||
    <div class="row p-4"> | 
				
			|||
        <!-- Column 1 --> | 
				
			|||
        <div class="col-lg-6"> | 
				
			|||
            <div class="row"> | 
				
			|||
                <div class="col-lg-12"> | 
				
			|||
                    <img style="border-radius: 0.5em;" src="images/1.jpg" width="100%" height="auto" | 
				
			|||
                        class="mb-4 shadow-sm" alt="Theme Screenshot"> | 
				
			|||
                </div> | 
				
			|||
                <div class="col-lg-12 mt-4"> | 
				
			|||
                    <h2 class="text-center">Home Page</h2> | 
				
			|||
                    <p class="lead text-center"> | 
				
			|||
                        An attractive home page with featured products, trending products, and most popular products snippet. | 
				
			|||
                    </p> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
        <!-- End of Column 1 --> | 
				
			|||
 | 
				
			|||
        <!-- Column 2 --> | 
				
			|||
        <div class="col-lg-6"> | 
				
			|||
            <div class="row"> | 
				
			|||
                <div class="col-lg-12"> | 
				
			|||
                    <img style="border-radius: 0.5em;" src="images/2.jpg" width="100%" height="auto" | 
				
			|||
                        class="mb-4 shadow-sm" alt="Theme Screenshot"> | 
				
			|||
                </div> | 
				
			|||
                <div class="col-lg-12 mt-4"> | 
				
			|||
                    <h2 class="text-center">Product View</h2> | 
				
			|||
                    <p class="lead text-center"> | 
				
			|||
                        Customized product page design with a modern looking. | 
				
			|||
                    </p> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
        <!-- End of Column 2 --> | 
				
			|||
    </div> | 
				
			|||
    <!-- End of Two Columns Section --> | 
				
			|||
 | 
				
			|||
 | 
				
			|||
    <!-- One Column Section --> | 
				
			|||
    <div class="row p-4"> | 
				
			|||
        <div class="col-lg-6"> | 
				
			|||
            <img style="border-radius: 0.5em;" src="images/3.jpg" width="90%" height="auto" class="mb-4 shadow-sm" | 
				
			|||
                alt="Theme Screenshot"> | 
				
			|||
        </div> | 
				
			|||
        <div class="col-lg-6" style="padding-top: 100px;"> | 
				
			|||
            <h2>Overview</h2> | 
				
			|||
            <p class="lead"> | 
				
			|||
                Attractive and unique design, More user friendly, etc. | 
				
			|||
            </p> | 
				
			|||
        </div> | 
				
			|||
    </div> | 
				
			|||
    <!-- End of Two Columns Section --> | 
				
			|||
 | 
				
			|||
    <!-- Two Columns Section --> | 
				
			|||
    <div class="row p-4"> | 
				
			|||
        <!-- Column 1 --> | 
				
			|||
        <div class="col-lg-4"> | 
				
			|||
            <div class="row"> | 
				
			|||
                <div class="col-lg-12"> | 
				
			|||
                    <img style="border-radius: 0.5em;" src="images/4.jpg" width="100%" height="auto" | 
				
			|||
                        class="mb-4 shadow-sm" alt="Theme Screenshot"> | 
				
			|||
                </div> | 
				
			|||
                <div class="col-lg-12 mt-4"> | 
				
			|||
                    <h2 class="text-center">Contact</h2> | 
				
			|||
                    <p class="lead text-center"> | 
				
			|||
                        User friendly and modern looking contact page design. | 
				
			|||
                    </p> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
        <!-- End of Column 1 --> | 
				
			|||
 | 
				
			|||
        <!-- Column 2 --> | 
				
			|||
        <div class="col-lg-4"> | 
				
			|||
            <div class="row"> | 
				
			|||
                <div class="col-lg-12"> | 
				
			|||
                    <img style="border-radius: 0.5em;" src="images/5.jpg" width="100%" height="auto" | 
				
			|||
                        class="mb-4 shadow-sm" alt="Theme Screenshot"> | 
				
			|||
                </div> | 
				
			|||
                <div class="col-lg-12 mt-4"> | 
				
			|||
                    <h2 class="text-center">Shop</h2> | 
				
			|||
                    <p class="lead text-center"> | 
				
			|||
                       Customized Shop page design with price filter which allows to shop by price from the eCommerce Website. | 
				
			|||
                    </p> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
        <!-- End of Column 2 --> | 
				
			|||
 | 
				
			|||
 | 
				
			|||
        <!-- Column 4 --> | 
				
			|||
        <div class="col-lg-4"> | 
				
			|||
            <div class="row"> | 
				
			|||
                <div class="col-lg-12"> | 
				
			|||
                    <img style="border-radius: 0.5em;" src="images/6.jpg" width="100%" height="auto" | 
				
			|||
                        class="mb-4 shadow-sm" alt="Theme Screenshot"> | 
				
			|||
                </div> | 
				
			|||
                <div class="col-lg-12 mt-4"> | 
				
			|||
                    <h2 class="text-center">About</h2> | 
				
			|||
                    <p class="lead text-center"> | 
				
			|||
                        An attractive look for your company website. | 
				
			|||
                    </p> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
        <!-- End of Column 4 --> | 
				
			|||
    </div> | 
				
			|||
    <!-- End of Two Columns Section --> | 
				
			|||
 | 
				
			|||
    <!-- Demo Pages --> | 
				
			|||
    <section class="oe_container"> | 
				
			|||
        <div class="row" style="margin: 60px auto -30px;"> | 
				
			|||
            <div class="col-lg-12 text-center"> | 
				
			|||
                <h4 class="mt-4">Demo Pages</h4> | 
				
			|||
                <hr style="border-width: 3px; border-color: #0984e3; width: 100px;"> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
 | 
				
			|||
        <div class="row" style="margin: 40px auto; border-radius: 15px; padding: 38px;"> | 
				
			|||
            <div class="col-sm-6 col-md-4 px-2"> | 
				
			|||
                <div class="bg-white shadow overflow-hidden mb32" | 
				
			|||
                    style="border-radius: 15px; width: 300px; padding-bottom: 0; margin-right: 30px;"> | 
				
			|||
                    <img src="./images/demo-1.jpg" width="300px" height="auto"> | 
				
			|||
                    <h6 class="text-center my-3">Home</h6> | 
				
			|||
                    <hr style="border-width: 5px; border-color: #0984e3; width: 150px; margin-bottom: 0;"> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
 | 
				
			|||
            <div class="col-sm-6 col-md-4 px-2"> | 
				
			|||
                <div class="bg-white shadow overflow-hidden mb32" | 
				
			|||
                    style="border-radius: 15px; width: 300px; padding-bottom: 0;"> | 
				
			|||
                    <img src="./images/demo-2.jpg" width="300px" height="auto"> | 
				
			|||
                    <h6 class="text-center my-3">Shop</h6> | 
				
			|||
                    <hr style="border-width: 5px; border-color: #05c46b; width: 150px; margin-bottom: 0;"> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
 | 
				
			|||
            <div class="col-sm-6 col-md-4 px-2"> | 
				
			|||
                <div class="bg-white shadow overflow-hidden mb32" | 
				
			|||
                    style="border-radius: 15px; width: 300px; padding-bottom: 0;"> | 
				
			|||
                    <img src="./images/demo-3.jpg" width="300px" height="auto"> | 
				
			|||
                    <h6 class="text-center my-3">Product Preview</h6> | 
				
			|||
                    <hr style="border-width: 5px; border-color: #f44f52; width: 150px; margin-bottom: 0;"> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
 | 
				
			|||
        </div> | 
				
			|||
    </section> | 
				
			|||
    <!-- End of Demo Pages --> | 
				
			|||
 | 
				
			|||
    <!-- Footer --> | 
				
			|||
    <div class="row" style="margin-top: 4rem;"> | 
				
			|||
        <div class="col-lg-12 text-center"> | 
				
			|||
            <h2>Get Help</h2> | 
				
			|||
            <hr style=" border: 2px solid #b22126; margin-top: 2px;" width="40px"> | 
				
			|||
            <p class="text-center" style="max-width: 650px; margin: 0 auto;">If you have anything to share with us | 
				
			|||
                based | 
				
			|||
                on | 
				
			|||
                your use of this module, please let us know. We are ready to offer our support.</p> | 
				
			|||
        </div> | 
				
			|||
    </div> | 
				
			|||
    <div class="row"> | 
				
			|||
        <div class="col px-4 pt-3 pb-2 shadow-sm" | 
				
			|||
            style="background-color: #fff; max-width: 450px; border-radius: 0.5em; margin: 1em auto;"> | 
				
			|||
            <div class="row"> | 
				
			|||
                <div class="col-lg-8"> | 
				
			|||
                    <h6><a href="mailto:info@cybrosys.com" target="_blank" | 
				
			|||
                            style="color: #050505; text-decoration: none;"><i | 
				
			|||
                                class="fa fa-envelope mr-2"></i>info@cybrosys.com</a></h6> | 
				
			|||
                </div> | 
				
			|||
                <div class="col-lg-4 d-flex justify-content-end" style="position: relative;"> | 
				
			|||
                    <h6><a href="mailto:info@cybrosys.com" target="_blank" | 
				
			|||
                            style="color: #050505; text-decoration: none;"><i class="fa fa-chevron-right"></i></a> | 
				
			|||
                    </h6> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
    </div> | 
				
			|||
    <div class="row"> | 
				
			|||
        <div class="col px-4 pt-3 pb-2 shadow-sm" | 
				
			|||
            style="background-color: #fff; max-width: 450px; border-radius: 0.5em; margin: 1em auto;"> | 
				
			|||
            <div class="row"> | 
				
			|||
                <div class="col-lg-8"> | 
				
			|||
                    <h6><a href="https://www.cybrosys.com" target="_blank" | 
				
			|||
                            style="color: #050505; text-decoration: none;"><i | 
				
			|||
                                class="fa fa-globe mr-2"></i>www.cybrosys.com</a></h6> | 
				
			|||
                </div> | 
				
			|||
                <div class="col-lg-4 d-flex justify-content-end" style="position: relative;"> | 
				
			|||
                    <h6><a href="https://www.cybrosys.com" target="_blank" | 
				
			|||
                            style="color: #050505; text-decoration: none;"><i class="fa fa-chevron-right"></i></a> | 
				
			|||
                    </h6> | 
				
			|||
                </div> | 
				
			|||
            </div> | 
				
			|||
        </div> | 
				
			|||
    </div> | 
				
			|||
    <div class="row"> | 
				
			|||
        <div class="col-lg-12 mt-4 mb-2 text-center"> | 
				
			|||
            <p style="font-weight: bold">A Quality Theme From</p> | 
				
			|||
        </div> | 
				
			|||
        <div class="col-lg-12 text-center"> | 
				
			|||
            <img src="images/cybro-logo-oca.png" width="80px" height="auto"> | 
				
			|||
        </div> | 
				
			|||
    </div> | 
				
			|||
    <!-- End of Footer --> | 
				
			|||
</div> | 
				
			|||
| 
		 After Width: | Height: | Size: 936 KiB  | 
@ -0,0 +1,35 @@ | 
				
			|||
	/* | 
				
			|||
  	Flaticon icon font: Flaticon | 
				
			|||
  	Creation date: 19/04/2020 06:48 | 
				
			|||
  	*/ | 
				
			|||
 | 
				
			|||
@font-face { | 
				
			|||
  font-family: "Flaticon"; | 
				
			|||
  src: url("../fonts/Flaticon.eot"); | 
				
			|||
  src: url("../fonts/Flaticon.eot?#iefix") format("embedded-opentype"), | 
				
			|||
       url("../fonts/Flaticon.woff2") format("woff2"), | 
				
			|||
       url("../fonts/Flaticon.woff") format("woff"), | 
				
			|||
       url("../fonts/Flaticon.ttf") format("truetype"), | 
				
			|||
       url("../fonts/Flaticon.svg#Flaticon") format("svg"); | 
				
			|||
  font-weight: normal; | 
				
			|||
  font-style: normal; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
@media screen and (-webkit-min-device-pixel-ratio:0) { | 
				
			|||
  @font-face { | 
				
			|||
    font-family: "Flaticon"; | 
				
			|||
    src: url("../fonts/Flaticon.svg#Flaticon") format("svg"); | 
				
			|||
  } | 
				
			|||
} | 
				
			|||
 | 
				
			|||
[class^="flaticon-"]:before, [class*=" flaticon-"]:before, | 
				
			|||
[class^="flaticon-"]:after, [class*=" flaticon-"]:after {    | 
				
			|||
  font-family: Flaticon; | 
				
			|||
font-style: normal; | 
				
			|||
} | 
				
			|||
 | 
				
			|||
.flaticon-search:before { content: "\f100"; } | 
				
			|||
.flaticon-shopping-cart:before { content: "\f101"; } | 
				
			|||
.flaticon-user:before { content: "\f102"; } | 
				
			|||
.flaticon-heart:before { content: "\f103"; } | 
				
			|||
.flaticon-arrow:before { content: "\f104"; } | 
				
			|||
| 
		 After Width: | Height: | Size: 271 KiB  | 
| 
		 After Width: | Height: | Size: 434 KiB  | 
| 
		 After Width: | Height: | Size: 64 KiB  | 
| 
		 After Width: | Height: | Size: 86 KiB  | 
| 
		 After Width: | Height: | Size: 100 KiB  | 
| 
		 After Width: | Height: | Size: 407 KiB  | 
| 
		 After Width: | Height: | Size: 217 KiB  | 
| 
		 After Width: | Height: | Size: 11 MiB  | 
| 
		 After Width: | Height: | Size: 2.1 KiB  | 
| 
		 After Width: | Height: | Size: 1.9 KiB  | 
| 
		 After Width: | Height: | Size: 732 KiB  | 
| 
		 After Width: | Height: | Size: 312 KiB  | 
| 
		 After Width: | Height: | Size: 826 KiB  | 
| 
		 After Width: | Height: | Size: 65 KiB  | 
| 
		 After Width: | Height: | Size: 70 KiB  | 
| 
		 After Width: | Height: | Size: 90 KiB  | 
| 
		 After Width: | Height: | Size: 73 KiB  | 
| 
		 After Width: | Height: | Size: 2.7 KiB  | 
| 
		 After Width: | Height: | Size: 714 B  | 
| 
		 After Width: | Height: | Size: 1.1 KiB  | 
| 
		 After Width: | Height: | Size: 1.2 KiB  | 
| 
		 After Width: | Height: | Size: 1.3 KiB  | 
| 
		 After Width: | Height: | Size: 1.3 KiB  | 
| 
		 After Width: | Height: | Size: 2.8 KiB  | 
| 
		 After Width: | Height: | Size: 1.3 KiB  | 
| 
		 After Width: | Height: | Size: 1.3 KiB  | 
| 
		 After Width: | Height: | Size: 2.2 KiB  | 
| 
		 After Width: | Height: | Size: 748 B  | 
| 
		 After Width: | Height: | Size: 2.8 KiB  | 
| 
		 After Width: | Height: | Size: 1.6 KiB  | 
| 
		 After Width: | Height: | Size: 1.6 KiB  | 
| 
		 After Width: | Height: | Size: 1.5 KiB  | 
| 
		 After Width: | Height: | Size: 3.3 KiB  | 
| 
		 After Width: | Height: | Size: 2.7 MiB  | 
| 
		 After Width: | Height: | Size: 2.1 MiB  | 
| 
		 After Width: | Height: | Size: 24 KiB  | 
| 
		 After Width: | Height: | Size: 25 KiB  | 
| 
		 After Width: | Height: | Size: 24 KiB  | 
| 
		 After Width: | Height: | Size: 77 KiB  | 
| 
		 After Width: | Height: | Size: 88 KiB  | 
| 
		 After Width: | Height: | Size: 3.2 MiB  | 
| 
		 After Width: | Height: | Size: 121 KiB  | 
| 
		 After Width: | Height: | Size: 99 KiB  | 
| 
		 After Width: | Height: | Size: 542 KiB  | 
| 
		 After Width: | Height: | Size: 30 KiB  | 
| 
		 After Width: | Height: | Size: 25 KiB  | 
| 
		 After Width: | Height: | Size: 27 KiB  | 
| 
		 After Width: | Height: | Size: 41 KiB  | 
| 
		 After Width: | Height: | Size: 44 KiB  | 
| 
		 After Width: | Height: | Size: 39 KiB  | 
| 
		 After Width: | Height: | Size: 37 KiB  | 
| 
		 After Width: | Height: | Size: 30 KiB  | 
| 
		 After Width: | Height: | Size: 40 KiB  | 
| 
		 After Width: | Height: | Size: 26 KiB  | 
| 
		 After Width: | Height: | Size: 16 KiB  | 
| 
		 After Width: | Height: | Size: 14 KiB  | 
| 
		 After Width: | Height: | Size: 794 KiB  | 
| 
		 After Width: | Height: | Size: 2.0 MiB  |