diff --git a/theme_autofly/README.rst b/theme_autofly/README.rst
new file mode 100644
index 000000000..74e993974
--- /dev/null
+++ b/theme_autofly/README.rst
@@ -0,0 +1,48 @@
+.. image:: https://img.shields.io/badge/license-LGPL--3-green.svg
+ :target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html
+ :alt: License: LGPL-3
+
+Theme Autofly
+=============
+* Theme Autofly module provide attractive and unique front end theme mainly suitable for eCommerce website.
+
+Installation
+============
+- www.odoo.com/documentation/16.0/setup/install.html
+- Install our Theme
+
+License
+-------
+General Public License, Version 3 (LGPL v3).
+(https://www.gnu.org/licenses/lgpl-3.0-standalone.html)
+
+Company
+-------
+* `Cybrosys Techno Solutions `__
+
+
+Credits
+-------
+* Developer: (V17) Fouzan M, Contact: odoo@cybrosys.com
+
+Contacts
+--------
+* Mail Contact : odoo@cybrosys.com
+* Website : https://cybrosys.com
+
+Bug Tracker
+-----------
+Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported.
+
+Maintainer
+==========
+.. image:: https://cybrosys.com/images/logo.png
+ :target: https://cybrosys.com
+
+This module is maintained by Cybrosys Technologies.
+
+For support and more information, please visit https://www.cybrosys.com.
+
+Further information
+===================
+HTML Description: ``__
\ No newline at end of file
diff --git a/theme_autofly/__init__.py b/theme_autofly/__init__.py
new file mode 100644
index 000000000..50349d36a
--- /dev/null
+++ b/theme_autofly/__init__.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions()
+#
+# 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 .
+#
+#############################################################################
+from . import controllers
+from . import models
diff --git a/theme_autofly/__manifest__.py b/theme_autofly/__manifest__.py
new file mode 100644
index 000000000..e9caa98b3
--- /dev/null
+++ b/theme_autofly/__manifest__.py
@@ -0,0 +1,88 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions()
+#
+# 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 .
+#
+#############################################################################
+{
+ 'name': 'Theme Autofly',
+ 'version': '17.0.1.0.0',
+ 'category': 'Theme/Corporate',
+ 'summary': 'Design eCommerce Website with Theme AutoFly',
+ 'description': 'Theme Autofly module provide attractive and unique '
+ 'front end theme mainly suitable for eCommerce website',
+ 'author': 'Cybrosys Techno Solutions',
+ 'company': 'Cybrosys Techno Solutions',
+ 'maintainer': 'Cybrosys Techno Solutions',
+ 'website': "https://www.cybrosys.com",
+ 'depends': ['website', 'website_blog', 'website_sale_wishlist'],
+ 'data': [
+ 'security/ir.model.access.csv',
+ 'data/theme_autofly_sequence.xml',
+ 'views/car_type_views.xml',
+ 'views/car_brand_views.xml',
+ 'views/car_garage_views.xml',
+ 'views/blog_page_templates.xml',
+ 'views/portfolio_templates.xml',
+ 'views/about_us_templates.xml',
+ 'views/footer_templates.xml',
+ 'views/header_templates.xml',
+ 'views/contact_us_templates.xml',
+ 'views/team_templates.xml',
+ 'views/service_templates.xml',
+ 'views/snippets/snippet_templates.xml',
+ 'views/snippets/popular_model_templates.xml',
+ 'views/snippets/blog_templates.xml',
+ 'views/snippets/find_car_templates.xml',
+ 'views/snippets/partners_templates.xml',
+ 'views/snippets/testimonial_templates.xml',
+ 'views/snippets/choose_us_templates.xml',
+ 'views/snippets/banner_templates.xml',
+ 'views/snippets/search_templates.xml',
+ 'views/service_booking_views.xml',
+ 'views/product_template_views.xml',
+ 'views/testimonial_views.xml',
+ ],
+ 'assets': {
+ 'web.assets_frontend': [
+ '/theme_autofly/static/src/xml/blog_snippet_templates.xml',
+ '/theme_autofly/static/src/xml/testimonial_snippet_templates.xml',
+ '/theme_autofly/static/src/js/service_products.js',
+ '/theme_autofly/static/src/js/car_garage.js',
+ 'theme_autofly/static/src/css/style.css',
+ '/theme_autofly/static/src/js/owl.carousel.js',
+ '/theme_autofly/static/src/js/owl.carousel.min.js',
+ 'theme_autofly/static/src/css/owl.theme.default.min.css',
+ '/theme_autofly/static/src/js/owl.carousel.js',
+ '/theme_autofly/static/src/js/product_tab.js',
+ '/theme_autofly/static/src/js/find_car.js',
+ '/theme_autofly/static/src/js/search.js',
+ '/theme_autofly/static/src/js/blog.js',
+ '/theme_autofly/static/src/js/testimonial.js',
+ '/theme_autofly/static/src/js/all_type.js',
+ ],
+ },
+ 'images': [
+ 'static/description/banner.jpg',
+ 'static/description/theme_screenshot.jpg',
+ ],
+ 'license': 'LGPL-3',
+ 'installable': True,
+ 'application': False,
+ 'auto_install': False,
+}
diff --git a/theme_autofly/controllers/__init__.py b/theme_autofly/controllers/__init__.py
new file mode 100644
index 000000000..713e28783
--- /dev/null
+++ b/theme_autofly/controllers/__init__.py
@@ -0,0 +1,22 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions()
+#
+# 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 .
+#
+#############################################################################
+from . import website_autofly
diff --git a/theme_autofly/controllers/website_autofly.py b/theme_autofly/controllers/website_autofly.py
new file mode 100644
index 000000000..d616f30dd
--- /dev/null
+++ b/theme_autofly/controllers/website_autofly.py
@@ -0,0 +1,165 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions()
+#
+# 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 .
+#
+#############################################################################
+from odoo import http
+from odoo.http import request
+
+
+class WebsiteAutoFly(http.Controller):
+ """Controller used to fetch product related data and also for about page,
+ portfolio page, team page, service page."""
+
+ @http.route('/about', website=True, type='http', auth='public',
+ csrf=False)
+ def about_page(self):
+ """Render the about page."""
+ return request.render('theme_autofly.about_page')
+
+ @http.route('/portfolio', website=True, type='http', auth='public',
+ csrf=False)
+ def portfolio_page(self):
+ """Render the portfolio page."""
+ return request.render('theme_autofly.portfolio_page')
+
+ @http.route('/team', website=True, type='http', auth='public',
+ csrf=False)
+ def team_page(self):
+ """Render the team page."""
+ return request.render('theme_autofly.team_page')
+
+ @http.route('/service', website=True, type='http', auth='public',
+ csrf=False)
+ def service_page(self):
+ """Render the service page."""
+ return request.render('theme_autofly.service_page')
+
+ @http.route('/blog_snippet', auth="public", type='json')
+ def latest_blog(self):
+ """Return the data for dynamic blog snippet."""
+ return request.env['blog.post'].sudo().search_read(
+ [], ['name', 'blog_id', 'subtitle', 'published_date'],
+ order='id desc', limit=3)
+
+ @http.route('/get_testimonial', auth="public", type='json')
+ def get_testimonial(self):
+ """Return the data for testimonial snippet."""
+ testimonial = request.env['autofly.testimonial'].sudo().search(
+ [], order='id desc', limit=12)
+ values = {
+ f'slide{i + 1}': [{'id': record.id,
+ 'name': record.display_name,
+ 'partner_id': record.partner_id.id,
+ 'rating': record.rating,
+ 'review': record.review,
+ } for record in testimonial[i * 3:(i + 1) * 3]]
+ for i in range((len(testimonial) + 2) // 3)
+ }
+ return values
+
+ @http.route('/autofly/service', type='http', website=True, auth='public',
+ csrf=False)
+ def service_booking(self, **kwargs):
+ """Render the service page."""
+ request.env['service.booking'].sudo().create({
+ 'name': kwargs.get('usr1'),
+ 'email': kwargs.get('email'),
+ 'description': kwargs.get('text')
+ })
+ return request.render('theme_autofly.service_page')
+
+ @http.route('/cars-search', website=True, type='http', auth='public',
+ csrf=False)
+ def car_search(self, **kwargs):
+ """Used for searching particular cars."""
+ domain = []
+ if kwargs.get('car-selection'):
+ domain.append(
+ ('car_brand_id', '=', int(kwargs.get('car-selection'))))
+ if kwargs.get('car-type-selection'):
+ domain.append(('car_type_id', '=', int(kwargs.get(
+ 'car-type-selection'))))
+ if kwargs.get('car-price'):
+ domain.append(('list_price', '=', float(kwargs.get('car-price'))))
+ if kwargs.get('car-model'):
+ domain.append(
+ ('car_model', '=', int(float(kwargs.get('car-model')))))
+ if kwargs.get('car-location'):
+ domain.append(('location', 'ilike', kwargs.get('car-location')))
+ result = request.env['product.template'].sudo().search(domain)
+ return request.render('theme_autofly.specific_car',
+ qcontext={'hot_deals': result})
+
+ @http.route('/get_product_tab', auth="public", type='json')
+ def get_product_tab(self):
+ """Controller used to Fetch popular products."""
+ hot_deals = request.env['product.template'].sudo().search([
+ ('website_published', '=', True),
+ ('popular_product', '=', True)])
+ response = http.Response(template='theme_autofly.popular_modal',
+ qcontext={'hot_deals': hot_deals})
+ return response.render()
+
+ @http.route('/find_car', auth="public", type='json')
+ def get_find_car(self):
+ """Controller used to fetch car types."""
+ hot_deals = request.env['car.types'].sudo().search([],
+ order='id desc',
+ limit=6)
+ response = http.Response(template='theme_autofly.autofly_find_car',
+ qcontext={'hot_deals': hot_deals})
+ return response.render()
+
+ @http.route('/get_searched_car', auth="public", type='json')
+ def get_search_car(self):
+ """Controller used to fetch car brands."""
+ brands = request.env['car.brand'].sudo().search([])
+ types = request.env['car.types'].sudo().search([])
+ brand = [{'id': record.id, 'name': record.name} for record in brands]
+ car_type = [{'id': record.id, 'name': record.name} for record in types]
+ return {'type': car_type, 'brand': brand}
+
+ @http.route('/get_service_product', auth="public", type='json')
+ def get_service_product(self):
+ """Controller used to fetch service products."""
+ hot_deals = request.env['product.template'].sudo().search([
+ ('website_published', '=', True),
+ ('detailed_type', '=', 'service')])
+ response = http.Response(template='theme_autofly.service_products',
+ qcontext={'hot_deals': hot_deals})
+ return response.render()
+
+ @http.route('/get_garage_car', auth="public", type='json')
+ def get_garage_car(self):
+ """Controller used to fetch garages."""
+ hot_deals = request.env['car.garage'].sudo().search([])
+ car_types = request.env['car.types'].sudo().search([])
+ values = {'hot_deals': hot_deals, 'car_types': car_types}
+ response = http.Response(template='theme_autofly.portfolio_garage_page',
+ qcontext=values)
+ return response.render()
+
+ @http.route('/get_all_type', auth="public", type='json')
+ def get_all_type(self):
+ """Controller used to fetch car types."""
+ hot_deals = request.env['car.types'].sudo().search([])
+ response = http.Response(template='theme_autofly.portfolio_type_page',
+ qcontext={'hot_deals': hot_deals})
+ return response.render()
diff --git a/theme_autofly/data/theme_autofly_sequence.xml b/theme_autofly/data/theme_autofly_sequence.xml
new file mode 100644
index 000000000..75273bafe
--- /dev/null
+++ b/theme_autofly/data/theme_autofly_sequence.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ Service Booking
+ reference.sequence
+ SB
+ 3
+
+
+
+
\ No newline at end of file
diff --git a/theme_autofly/doc/RELEASE_NOTES.md b/theme_autofly/doc/RELEASE_NOTES.md
new file mode 100644
index 000000000..ec27d3dfb
--- /dev/null
+++ b/theme_autofly/doc/RELEASE_NOTES.md
@@ -0,0 +1,6 @@
+## Module
+
+#### 20.06.2024
+#### Version 17.0.1.0.0
+#### ADD
+- Initial Commit for Theme Autofly
diff --git a/theme_autofly/models/__init__.py b/theme_autofly/models/__init__.py
new file mode 100644
index 000000000..2c1180a84
--- /dev/null
+++ b/theme_autofly/models/__init__.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions()
+#
+# 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 .
+#
+#############################################################################
+from . import car_brand
+from . import car_garage
+from . import car_types
+from . import product_template
+from . import service_booking
+from . import testimonial
diff --git a/theme_autofly/models/car_brand.py b/theme_autofly/models/car_brand.py
new file mode 100644
index 000000000..a20edded4
--- /dev/null
+++ b/theme_autofly/models/car_brand.py
@@ -0,0 +1,31 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions()
+#
+# 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 .
+#
+#############################################################################
+from odoo import fields, models
+
+
+class CarBrand(models.Model):
+ """This model is used define Brand Model fields and functionalities."""
+ _name = "car.brand"
+ _description = "Website Car Brand"
+
+ name = fields.Char(help="Add your brand name.")
+ image = fields.Image(help="Add your brand image.")
diff --git a/theme_autofly/models/car_garage.py b/theme_autofly/models/car_garage.py
new file mode 100644
index 000000000..bc7f20fac
--- /dev/null
+++ b/theme_autofly/models/car_garage.py
@@ -0,0 +1,31 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions()
+#
+# 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 .
+#
+#############################################################################
+from odoo import fields, models
+
+
+class CarGarage(models.Model):
+ """This model is used define car garage details."""
+ _name = "car.garage"
+ _description = "Website Car Garage"
+
+ name = fields.Char(help="Add your garage name.")
+ image = fields.Image(help="Add your garage image.")
diff --git a/theme_autofly/models/car_types.py b/theme_autofly/models/car_types.py
new file mode 100644
index 000000000..2729e1669
--- /dev/null
+++ b/theme_autofly/models/car_types.py
@@ -0,0 +1,51 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions()
+#
+# 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 .
+#
+#############################################################################
+from odoo import fields, models
+
+
+class CarTypes(models.Model):
+ """This model is used define car type fields and it's functionalities."""
+ _name = "car.types"
+ _description = "Website Car Type"
+
+ name = fields.Char(help="Add your car type name.")
+ image = fields.Image(help="Add your car type image.")
+ product_count = fields.Integer(string='Products Count',
+ compute='_compute_product_count',
+ help="Used to show product in smart button.")
+
+ def _compute_product_count(self):
+ """Product count fetching based on car type."""
+ for record in self:
+ record.product_count = self.env['product.template'].search_count(
+ [('car_type_id', '=', record.id)])
+
+ def action_view_products(self):
+ """Action to view corresponding products"""
+ return {
+ 'type': 'ir.actions.act_window',
+ 'name': 'Products',
+ 'view_mode': 'tree',
+ 'res_model': 'product.template',
+ 'domain': [('car_type_id', '=', self.id)],
+ 'context': "{'create': False}"
+ }
diff --git a/theme_autofly/models/product_template.py b/theme_autofly/models/product_template.py
new file mode 100644
index 000000000..db7fe493f
--- /dev/null
+++ b/theme_autofly/models/product_template.py
@@ -0,0 +1,37 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions()
+#
+# 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 .
+#
+#############################################################################
+from odoo import fields, models
+
+
+class ProductTemplate(models.Model):
+ """Inheriting product_product model to add new fields."""
+ _inherit = "product.template"
+
+ popular_product = fields.Boolean(string="Popular Product",
+ help="Please enable this field to make the"
+ "product as popular product.")
+ car_type_id = fields.Many2one('car.types', string="Car Type",
+ help="Add your car type.")
+ car_brand_id = fields.Many2one('car.brand', string="Car Brand",
+ help="Add your car brand.")
+ car_model = fields.Integer(string="Model", help="Add your car model.")
+ location = fields.Char(help="Add your car location.")
diff --git a/theme_autofly/models/service_booking.py b/theme_autofly/models/service_booking.py
new file mode 100644
index 000000000..1c3d4b47f
--- /dev/null
+++ b/theme_autofly/models/service_booking.py
@@ -0,0 +1,44 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions()
+#
+# 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 .
+#
+#############################################################################
+from odoo import _, api, fields, models
+
+
+class ServiceBooking(models.Model):
+ """This model is used managing service booking details."""
+ _name = "service.booking"
+ _description = "Website Car Service Booking"
+
+ name = fields.Char(required=True, help="Name of the service")
+ reference = fields.Char(readonly=True, help="Booking sequence")
+ state = fields.Selection([('draft', 'Draft'), ('running', 'Running'),
+ ('cancel', 'Cancel'), ('done', 'Done')])
+ email = fields.Char(help="Email address")
+ description = fields.Char(help="Add if you have any description")
+
+ @api.model_create_multi
+ def create(self, vals_list):
+ """Supering create function for generating sequence."""
+ for vals in vals_list:
+ if vals.get('reference', _('New')) == _('New'):
+ vals['reference'] = self.env['ir.sequence'].next_by_code(
+ 'reference.sequence') or _('New')
+ return super().create(vals)
diff --git a/theme_autofly/models/testimonial.py b/theme_autofly/models/testimonial.py
new file mode 100644
index 000000000..536eedcbc
--- /dev/null
+++ b/theme_autofly/models/testimonial.py
@@ -0,0 +1,35 @@
+# -*- coding: utf-8 -*-
+#############################################################################
+#
+# Cybrosys Technologies Pvt. Ltd.
+#
+# Copyright (C) 2024-TODAY Cybrosys Technologies()
+# Author: Cybrosys Techno Solutions()
+#
+# 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 .
+#
+#############################################################################
+from odoo import fields, models
+
+
+class Testimonial(models.Model):
+ """model to manage testimonials"""
+ _name = 'autofly.testimonial'
+ _description = 'Testimonials'
+ _rec_name = 'partner_id'
+
+ partner_id = fields.Many2one('res.partner', string='Customer',
+ required=True)
+ rating = fields.Selection(selection=[('1', '1'), ('2', '2'), ('3', '3'),
+ ('4', '4'), ('5', '5')])
+ review = fields.Text(help='Add your review here')
diff --git a/theme_autofly/security/ir.model.access.csv b/theme_autofly/security/ir.model.access.csv
new file mode 100644
index 000000000..6ea6a3c84
--- /dev/null
+++ b/theme_autofly/security/ir.model.access.csv
@@ -0,0 +1,6 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_car_type_user,access.car.type.user,model_car_types,base.group_user,1,1,1,1
+access_car_brand_user,access.car.brand.user,model_car_brand,base.group_user,1,1,1,1
+access_service_booking_user,access.service.booking.user,model_service_booking,base.group_user,1,1,1,1
+access_car_garage_user,access.car.garage.user,model_car_garage,base.group_user,1,1,1,1
+access_testimonial_user,access.autofly.testimonial,model_autofly_testimonial,base.group_user,1,1,1,1
\ No newline at end of file
diff --git a/theme_autofly/static/description/Images/BLOG-4.png b/theme_autofly/static/description/Images/BLOG-4.png
new file mode 100644
index 000000000..9b6d5922d
Binary files /dev/null and b/theme_autofly/static/description/Images/BLOG-4.png differ
diff --git a/theme_autofly/static/description/Images/Edu.png b/theme_autofly/static/description/Images/Edu.png
new file mode 100644
index 000000000..158b36a16
Binary files /dev/null and b/theme_autofly/static/description/Images/Edu.png differ
diff --git a/theme_autofly/static/description/Images/Hero-banner.png b/theme_autofly/static/description/Images/Hero-banner.png
new file mode 100644
index 000000000..9fa1be12f
Binary files /dev/null and b/theme_autofly/static/description/Images/Hero-banner.png differ
diff --git a/theme_autofly/static/description/Images/Home-1.png b/theme_autofly/static/description/Images/Home-1.png
new file mode 100644
index 000000000..12e48fcae
Binary files /dev/null and b/theme_autofly/static/description/Images/Home-1.png differ
diff --git a/theme_autofly/static/description/Images/Home-2.png b/theme_autofly/static/description/Images/Home-2.png
new file mode 100644
index 000000000..cd8015225
Binary files /dev/null and b/theme_autofly/static/description/Images/Home-2.png differ
diff --git a/theme_autofly/static/description/Images/Home-3.png b/theme_autofly/static/description/Images/Home-3.png
new file mode 100644
index 000000000..eba6e45b6
Binary files /dev/null and b/theme_autofly/static/description/Images/Home-3.png differ
diff --git a/theme_autofly/static/description/Images/Home-4.png b/theme_autofly/static/description/Images/Home-4.png
new file mode 100644
index 000000000..0a306c562
Binary files /dev/null and b/theme_autofly/static/description/Images/Home-4.png differ
diff --git a/theme_autofly/static/description/Images/Home-5.png b/theme_autofly/static/description/Images/Home-5.png
new file mode 100644
index 000000000..693136fc2
Binary files /dev/null and b/theme_autofly/static/description/Images/Home-5.png differ
diff --git a/theme_autofly/static/description/Images/Home-6.png b/theme_autofly/static/description/Images/Home-6.png
new file mode 100644
index 000000000..dddb36c5f
Binary files /dev/null and b/theme_autofly/static/description/Images/Home-6.png differ
diff --git a/theme_autofly/static/description/Images/Home-7.png b/theme_autofly/static/description/Images/Home-7.png
new file mode 100644
index 000000000..4a29984c5
Binary files /dev/null and b/theme_autofly/static/description/Images/Home-7.png differ
diff --git a/theme_autofly/static/description/Images/POS.png b/theme_autofly/static/description/Images/POS.png
new file mode 100644
index 000000000..3c7f1cfe9
Binary files /dev/null and b/theme_autofly/static/description/Images/POS.png differ
diff --git a/theme_autofly/static/description/Images/Production.png b/theme_autofly/static/description/Images/Production.png
new file mode 100644
index 000000000..e88dcd0d6
Binary files /dev/null and b/theme_autofly/static/description/Images/Production.png differ
diff --git a/theme_autofly/static/description/Images/about-1.png b/theme_autofly/static/description/Images/about-1.png
new file mode 100644
index 000000000..e69de29bb
diff --git a/theme_autofly/static/description/Images/about-2.png b/theme_autofly/static/description/Images/about-2.png
new file mode 100644
index 000000000..baec0305b
Binary files /dev/null and b/theme_autofly/static/description/Images/about-2.png differ
diff --git a/theme_autofly/static/description/Images/about-3.png b/theme_autofly/static/description/Images/about-3.png
new file mode 100644
index 000000000..a3eeb169b
Binary files /dev/null and b/theme_autofly/static/description/Images/about-3.png differ
diff --git a/theme_autofly/static/description/Images/arrow-black.png b/theme_autofly/static/description/Images/arrow-black.png
new file mode 100644
index 000000000..3fd6da801
Binary files /dev/null and b/theme_autofly/static/description/Images/arrow-black.png differ
diff --git a/theme_autofly/static/description/Images/banner-thumb.png b/theme_autofly/static/description/Images/banner-thumb.png
new file mode 100644
index 000000000..214f3414e
Binary files /dev/null and b/theme_autofly/static/description/Images/banner-thumb.png differ
diff --git a/theme_autofly/static/description/Images/contact-1.png b/theme_autofly/static/description/Images/contact-1.png
new file mode 100644
index 000000000..afe87953c
Binary files /dev/null and b/theme_autofly/static/description/Images/contact-1.png differ
diff --git a/theme_autofly/static/description/Images/contact-2.png b/theme_autofly/static/description/Images/contact-2.png
new file mode 100644
index 000000000..c596d1b67
Binary files /dev/null and b/theme_autofly/static/description/Images/contact-2.png differ
diff --git a/theme_autofly/static/description/Images/icon-Compatibility-with-plugins.png b/theme_autofly/static/description/Images/icon-Compatibility-with-plugins.png
new file mode 100644
index 000000000..2c0c4015e
Binary files /dev/null and b/theme_autofly/static/description/Images/icon-Compatibility-with-plugins.png differ
diff --git a/theme_autofly/static/description/Images/icon-Fast-loading-times.png b/theme_autofly/static/description/Images/icon-Fast-loading-times.png
new file mode 100644
index 000000000..d758dea65
Binary files /dev/null and b/theme_autofly/static/description/Images/icon-Fast-loading-times.png differ
diff --git a/theme_autofly/static/description/Images/icon-One-Click-Installation.png b/theme_autofly/static/description/Images/icon-One-Click-Installation.png
new file mode 100644
index 000000000..189cc7cbb
Binary files /dev/null and b/theme_autofly/static/description/Images/icon-One-Click-Installation.png differ
diff --git a/theme_autofly/static/description/Images/icon-Responsive-design.png b/theme_autofly/static/description/Images/icon-Responsive-design.png
new file mode 100644
index 000000000..963329a0a
Binary files /dev/null and b/theme_autofly/static/description/Images/icon-Responsive-design.png differ
diff --git a/theme_autofly/static/description/Images/icon-Up-to-date-development.png b/theme_autofly/static/description/Images/icon-Up-to-date-development.png
new file mode 100644
index 000000000..892a490e8
Binary files /dev/null and b/theme_autofly/static/description/Images/icon-Up-to-date-development.png differ
diff --git a/theme_autofly/static/description/Images/icon-design.png b/theme_autofly/static/description/Images/icon-design.png
new file mode 100644
index 000000000..bd578f6d1
Binary files /dev/null and b/theme_autofly/static/description/Images/icon-design.png differ
diff --git a/theme_autofly/static/description/Images/icons8-search-32.png b/theme_autofly/static/description/Images/icons8-search-32.png
new file mode 100644
index 000000000..e61cf7250
Binary files /dev/null and b/theme_autofly/static/description/Images/icons8-search-32.png differ
diff --git a/theme_autofly/static/description/Images/icons8-search-64.png b/theme_autofly/static/description/Images/icons8-search-64.png
new file mode 100644
index 000000000..ec9035517
Binary files /dev/null and b/theme_autofly/static/description/Images/icons8-search-64.png differ
diff --git a/theme_autofly/static/description/Images/logo-cybro.png b/theme_autofly/static/description/Images/logo-cybro.png
new file mode 100644
index 000000000..ecf9b0134
Binary files /dev/null and b/theme_autofly/static/description/Images/logo-cybro.png differ
diff --git a/theme_autofly/static/description/Images/odoo-consultency.png b/theme_autofly/static/description/Images/odoo-consultency.png
new file mode 100644
index 000000000..bf2d21531
Binary files /dev/null and b/theme_autofly/static/description/Images/odoo-consultency.png differ
diff --git a/theme_autofly/static/description/Images/odoo-customization.png b/theme_autofly/static/description/Images/odoo-customization.png
new file mode 100644
index 000000000..a51a84de4
Binary files /dev/null and b/theme_autofly/static/description/Images/odoo-customization.png differ
diff --git a/theme_autofly/static/description/Images/odoo-developer.png b/theme_autofly/static/description/Images/odoo-developer.png
new file mode 100644
index 000000000..b2272be9e
Binary files /dev/null and b/theme_autofly/static/description/Images/odoo-developer.png differ
diff --git a/theme_autofly/static/description/Images/odoo-implement.png b/theme_autofly/static/description/Images/odoo-implement.png
new file mode 100644
index 000000000..ab975c139
Binary files /dev/null and b/theme_autofly/static/description/Images/odoo-implement.png differ
diff --git a/theme_autofly/static/description/Images/odoo-intergration.png b/theme_autofly/static/description/Images/odoo-intergration.png
new file mode 100644
index 000000000..82b73a193
Binary files /dev/null and b/theme_autofly/static/description/Images/odoo-intergration.png differ
diff --git a/theme_autofly/static/description/Images/odoo-licencing.png b/theme_autofly/static/description/Images/odoo-licencing.png
new file mode 100644
index 000000000..fe24f14c4
Binary files /dev/null and b/theme_autofly/static/description/Images/odoo-licencing.png differ
diff --git a/theme_autofly/static/description/Images/odoo-logo.png b/theme_autofly/static/description/Images/odoo-logo.png
new file mode 100644
index 000000000..d3eae23f2
Binary files /dev/null and b/theme_autofly/static/description/Images/odoo-logo.png differ
diff --git a/theme_autofly/static/description/Images/odoo-migration.png b/theme_autofly/static/description/Images/odoo-migration.png
new file mode 100644
index 000000000..03ac43d05
Binary files /dev/null and b/theme_autofly/static/description/Images/odoo-migration.png differ
diff --git a/theme_autofly/static/description/Images/odoo-support.png b/theme_autofly/static/description/Images/odoo-support.png
new file mode 100644
index 000000000..6d481032c
Binary files /dev/null and b/theme_autofly/static/description/Images/odoo-support.png differ
diff --git a/theme_autofly/static/description/Images/portfolio-1.png b/theme_autofly/static/description/Images/portfolio-1.png
new file mode 100644
index 000000000..0098ee626
Binary files /dev/null and b/theme_autofly/static/description/Images/portfolio-1.png differ
diff --git a/theme_autofly/static/description/Images/portfolio-2.png b/theme_autofly/static/description/Images/portfolio-2.png
new file mode 100644
index 000000000..633f4002b
Binary files /dev/null and b/theme_autofly/static/description/Images/portfolio-2.png differ
diff --git a/theme_autofly/static/description/Images/portfolio-3.png b/theme_autofly/static/description/Images/portfolio-3.png
new file mode 100644
index 000000000..f9b577815
Binary files /dev/null and b/theme_autofly/static/description/Images/portfolio-3.png differ
diff --git a/theme_autofly/static/description/Images/portfolio-4.png b/theme_autofly/static/description/Images/portfolio-4.png
new file mode 100644
index 000000000..a16ca66dd
Binary files /dev/null and b/theme_autofly/static/description/Images/portfolio-4.png differ
diff --git a/theme_autofly/static/description/Images/services-1.png b/theme_autofly/static/description/Images/services-1.png
new file mode 100644
index 000000000..7f5335ca6
Binary files /dev/null and b/theme_autofly/static/description/Images/services-1.png differ
diff --git a/theme_autofly/static/description/Images/services-2.png b/theme_autofly/static/description/Images/services-2.png
new file mode 100644
index 000000000..93b4334a9
Binary files /dev/null and b/theme_autofly/static/description/Images/services-2.png differ
diff --git a/theme_autofly/static/description/Images/services-3.png b/theme_autofly/static/description/Images/services-3.png
new file mode 100644
index 000000000..a488cfcd9
Binary files /dev/null and b/theme_autofly/static/description/Images/services-3.png differ
diff --git a/theme_autofly/static/description/Images/services-4.png b/theme_autofly/static/description/Images/services-4.png
new file mode 100644
index 000000000..a488cfcd9
Binary files /dev/null and b/theme_autofly/static/description/Images/services-4.png differ
diff --git a/theme_autofly/static/description/Images/services-5.png b/theme_autofly/static/description/Images/services-5.png
new file mode 100644
index 000000000..78817e826
Binary files /dev/null and b/theme_autofly/static/description/Images/services-5.png differ
diff --git a/theme_autofly/static/description/Images/services-6.png b/theme_autofly/static/description/Images/services-6.png
new file mode 100644
index 000000000..6b794b513
Binary files /dev/null and b/theme_autofly/static/description/Images/services-6.png differ
diff --git a/theme_autofly/static/description/Images/services-7.png b/theme_autofly/static/description/Images/services-7.png
new file mode 100644
index 000000000..0eaa8d290
Binary files /dev/null and b/theme_autofly/static/description/Images/services-7.png differ
diff --git a/theme_autofly/static/description/Images/services.png b/theme_autofly/static/description/Images/services.png
new file mode 100644
index 000000000..0210e5ca3
Binary files /dev/null and b/theme_autofly/static/description/Images/services.png differ
diff --git a/theme_autofly/static/description/Images/team-1.png b/theme_autofly/static/description/Images/team-1.png
new file mode 100644
index 000000000..419345e0e
Binary files /dev/null and b/theme_autofly/static/description/Images/team-1.png differ
diff --git a/theme_autofly/static/description/Images/team-2.png b/theme_autofly/static/description/Images/team-2.png
new file mode 100644
index 000000000..5ba09d5fc
Binary files /dev/null and b/theme_autofly/static/description/Images/team-2.png differ
diff --git a/theme_autofly/static/description/Images/team-3.png b/theme_autofly/static/description/Images/team-3.png
new file mode 100644
index 000000000..295e673b3
Binary files /dev/null and b/theme_autofly/static/description/Images/team-3.png differ
diff --git a/theme_autofly/static/description/Images/tittle.png b/theme_autofly/static/description/Images/tittle.png
new file mode 100644
index 000000000..930218b3a
Binary files /dev/null and b/theme_autofly/static/description/Images/tittle.png differ
diff --git a/theme_autofly/static/description/Images/trading.png b/theme_autofly/static/description/Images/trading.png
new file mode 100644
index 000000000..9d99bc55b
Binary files /dev/null and b/theme_autofly/static/description/Images/trading.png differ
diff --git a/theme_autofly/static/description/banner.jpg b/theme_autofly/static/description/banner.jpg
new file mode 100644
index 000000000..e084af06b
Binary files /dev/null and b/theme_autofly/static/description/banner.jpg differ
diff --git a/theme_autofly/static/description/icon.png b/theme_autofly/static/description/icon.png
new file mode 100644
index 000000000..5edbb3966
Binary files /dev/null and b/theme_autofly/static/description/icon.png differ
diff --git a/theme_autofly/static/description/index.html b/theme_autofly/static/description/index.html
new file mode 100644
index 000000000..58eb53193
--- /dev/null
+++ b/theme_autofly/static/description/index.html
@@ -0,0 +1,1388 @@
+
+
+
+ odoo
+
+
+
+
+
+
+
+
+
+
+
+
+
+