Browse Source

[UPDT] Responsive 'code_backend_theme'

pull/175/head
Ajmal Cybro 4 years ago
parent
commit
b334a87ee6
  1. 40
      code_backend_theme/README.rst
  2. 3
      code_backend_theme/__manifest__.py
  3. 11
      code_backend_theme/doc/RELEASE_NOTES.md
  4. 190
      code_backend_theme/hooks.py
  5. BIN
      code_backend_theme/static/description/assets/resp-gif.gif
  6. BIN
      code_backend_theme/static/description/assets/responsive.png
  7. 191
      code_backend_theme/static/description/index.html
  8. BIN
      code_backend_theme/static/src/img/icons/close.png
  9. 36
      code_backend_theme/static/src/js/chrome/sidebar_menu.js
  10. 21
      code_backend_theme/static/src/scss/sidebar.scss
  11. 124
      code_backend_theme/static/src/scss/theme.scss
  12. 5
      code_backend_theme/static/src/xml/sidebar.xml
  13. 6
      code_backend_theme/views/icons.xml
  14. 8
      code_backend_theme/views/layout.xml

40
code_backend_theme/README.rst

@ -0,0 +1,40 @@
Code Backend Theme
==================
* Code Backend Theme module for Odoo 14 community editions
Installation
============
- www.odoo.com/documentation/14.0/setup/install.html
- Install our custom addon
License
-------
General Public License, Version 3 (LGPL v3).
(https://www.odoo.com/documentation/user/14.0/legal/licenses/licenses.html)
Company
-------
* 'Cybrosys Techno Solutions <https://cybrosys.com/>'__
Credits
-------
* 'Cybrosys Techno Solutions <https://cybrosys.com/>'__
Contacts
--------
* Mail Contact : odoo@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
==========
This module is maintained by Cybrosys Technologies.
For support and more information, please visit https://www.cybrosys.com
Further information
===================
HTML Description: `<static/description/index.html>`__

3
code_backend_theme/__manifest__.py

@ -25,7 +25,7 @@
"description": """Minimalist and elegant backend theme for Odoo 14, Backend Theme, Theme""",
"summary": "Code Backend Theme V14 is an attractive theme for backend",
"category": "Theme/Backend",
"version": "14.0.1.0.0",
"version": "14.0.1.1.0",
'author': 'Cybrosys Techno Solutions',
'company': 'Cybrosys Techno Solutions',
'maintainer': 'Cybrosys Techno Solutions',
@ -34,6 +34,7 @@
"data": [
'assets/assets.xml',
'views/icons.xml',
'views/layout.xml',
],
"qweb": [
'static/src/xml/styles.xml',

11
code_backend_theme/doc/RELEASE_NOTES.md

@ -0,0 +1,11 @@
## Module <code_backend_theme>
#### 09.06.2021
#### Version 14.0.1.0.0
#### ADD
Initial Commit
#### 18.06.2021
#### Version 14.0.1.1.0
#### UPDT
Made Responsive

190
code_backend_theme/hooks.py

@ -1,3 +1,4 @@
"""Hooks for Changing Menu Web_icon"""
# -*- coding: utf-8 -*-
#############################################################################
#
@ -19,7 +20,6 @@
# If not, see <http://www.gnu.org/licenses/>.
#
#############################################################################
import base64
from odoo import api, SUPERUSER_ID
@ -27,202 +27,266 @@ from odoo.modules import get_module_resource
def test_pre_init_hook(cr):
"""pre init hook"""
env = api.Environment(cr, SUPERUSER_ID, {})
menu_item = env['ir.ui.menu'].search([('parent_id', '=', False)])
for menu in menu_item:
if menu.name == 'Contacts':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Contacts.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Contacts.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Link Tracker':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Link Tracker.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Link Tracker.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Dashboards':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Dashboards.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Dashboards.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Sales':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Sales.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Sales.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Invoicing':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Invoicing.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Invoicing.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Inventory':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Inventory.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Inventory.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Purchase':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Purchase.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Purchase.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Calendar':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Calendar.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Calendar.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'CRM':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'CRM.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'CRM.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Note':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Note.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Note.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Website':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Website.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Website.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Point of Sale':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Point of Sale.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Point of Sale.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Manufacturing':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Manufacturing.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Manufacturing.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Repairs':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Repairs.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Repairs.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Email Marketing':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Email Marketing.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Email Marketing.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'SMS Marketing':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'SMS Marketing.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'SMS Marketing.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Project':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Project.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Project.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Surveys':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Surveys.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Surveys.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Employees':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Employees.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Employees.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Recruitment':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Recruitment.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Recruitment.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Attendances':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Attendances.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Attendances.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Time Off':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Time Off.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Time Off.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Expenses':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Expenses.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Expenses.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Maintenance':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Maintenance.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Maintenance.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Live Chat':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Live Chat.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Live Chat.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Lunch':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Lunch.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Lunch.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Fleet':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Fleet.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Fleet.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Timesheets':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Timesheets.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Timesheets.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Events':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Events.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Events.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'eLearning':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'eLearning.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'eLearning.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Members':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Members.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Members.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
def test_post_init_hook(cr, registry):
"""post init hook"""
env = api.Environment(cr, SUPERUSER_ID, {})
menu_item = env['ir.ui.menu'].search([('parent_id', '=', False)])
for menu in menu_item:
if menu.name == 'Contacts':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Contacts.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Contacts.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Link Tracker':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Link Tracker.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Link Tracker.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Dashboards':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Dashboards.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Dashboards.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Sales':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Sales.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Sales.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Invoicing':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Invoicing.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Invoicing.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Inventory':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Inventory.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Inventory.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Purchase':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Purchase.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Purchase.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Calendar':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Calendar.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Calendar.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'CRM':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'CRM.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'CRM.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Note':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Note.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Note.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Website':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Website.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Website.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Point of Sale':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Point of Sale.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Point of Sale.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Manufacturing':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Manufacturing.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Manufacturing.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Repairs':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Repairs.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Repairs.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Email Marketing':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Email Marketing.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Email Marketing.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'SMS Marketing':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'SMS Marketing.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'SMS Marketing.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Project':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Project.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Project.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Surveys':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Surveys.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Surveys.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Employees':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Employees.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Employees.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Recruitment':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Recruitment.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Recruitment.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Attendances':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Attendances.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Attendances.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Time Off':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Time Off.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Time Off.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Expenses':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Expenses.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Expenses.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Maintenance':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Maintenance.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Maintenance.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Live Chat':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Live Chat.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Live Chat.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Lunch':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Lunch.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Lunch.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Fleet':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Fleet.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Fleet.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Timesheets':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Timesheets.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Timesheets.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Events':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Events.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Events.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'eLearning':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'eLearning.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'eLearning.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})
if menu.name == 'Members':
img_path = get_module_resource('code_backend_theme', 'static', 'src', 'img', 'icons', 'Members.png')
img_path = get_module_resource(
'code_backend_theme', 'static', 'src', 'img', 'icons', 'Members.png')
menu.write({'web_icon_data': base64.b64encode(open(img_path, "rb").read())})

BIN
code_backend_theme/static/description/assets/resp-gif.gif

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 MiB

BIN
code_backend_theme/static/description/assets/responsive.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 292 KiB

191
code_backend_theme/static/description/index.html

@ -23,19 +23,20 @@
<div class="col-lg-12 d-flex flex-column justify-content-center">
<p class="my-1 text-center"
style="font-family: Montserrat, 'sans-serif' !important; color: #212121 !important;">
The Code Backend Theme V14 Gives You The Fully Modified View with a Full Screen Display.
The Code Backend Theme V14 Gives You a Fully Modified View with a Full Screen Display.
This is a Minimalist and Elegant Backend Theme for Odoo 14.
This Theme Will Change Your Old Experience to a New Experience With Odoo.
It is a Perfect Choice for Your Odoo Backend and an Attractive Theme for Your Odoo 14.
It will Give You a Clean Layout with the New Color Combination and a Modified Font. It Have a
It will Give You a Clean Layout with a New Color Combination and a Modified Font. It has a
Sidebar with
New App Icons and Company Logo. This Will Change Your Old Kanban, List and Form Views to A Fully
Modified Views.
Modified View.
</p>
</div>
<div class="col-lg-12 mt-4">
<div class="alert alert-warning text-center" role="alert">
<i class="fa fa-exclamation-triangle mr-2" aria-hidden="true"></i>Please make sure that you install all
<i class="fa fa-exclamation-triangle mr-2" aria-hidden="true"></i>Please make sure that you install
all
your apps prior to the installation of this theme.
</div>
</div>
@ -43,26 +44,86 @@
</div>
<!-- END OF OVERVIEW-->
<!-- FEATURE -->
<div class="container" style="margin-top: 3rem;">
<div class="row">
<div class="col-lg-12 d-flex flex-column justify-content-center align-items-center">
<hr class="position-absolute" style="border: 1px solid #c4c6cc !important; width: 40% !important;">
<h2
style="font-weight: 300 !important; background-color: #fff !important; z-index: 1 !important; padding: 0 1rem !important;">
<hr class="position-absolute"
style="border: 1px solid #c4c6cc !important; width: 40% !important; z-index: 0 !important;">
<h2 style="font-weight: 300 !important; background-color: #fff !important; z-index: 1 !important; padding: 0 1rem !important;">
Features</h2>
</div>
</div>
<!-- RESPONSIVE -->
<div class="container" style="margin-top: 3rem;">
<div class="row shadow"
style="margin: 2rem; padding: 0rem !important; background-color: #fff !important; border-top: 3px solid #556EE6 !important; min-width: 100% !important;">
<div class="col-lg-12" style="padding-left: 0 !important; padding-right: 0!important;">
<img src="assets/responsive.png" width="100%" height="auto" class="img-responsive">
</div>
<div class="row">
<div class="col-lg-4 d-flex justify-content-center align-items-center"
style="padding: 1.5rem !important; margin: 0rem 0rem 3rem !important;">
<img src="assets/resp-gif.gif" width="80%" height="auto" class="img-responsive rounded">
</div>
<div class="col-lg-8" style="padding: 2.5rem 1.5rem!important;">
<div class="text-center"
style="font-size: 0.9rem !important; background-color: #556EE6 !important; padding: 0.5 1.5rem !important; width: 60px; color: #ffffff !important; font-weight: 700; border-radius: 0.2rem !important; margin: 10px 0 !important;">
New
</div>
<h3 style="font-weight: 700 !important;">Fully Responsive Layout</h3>
<h6 style="font-style: Montserrat, 'sans-serif' !important; color: #2A3042 !important; font-weight: 300 !important;">
Now take advantage of everything your dashboard has to offer even on the go. Our design are
now
fully responsive enabling you to view and manage everything from the comfort of your mobile
device. Everything
has been designed in a meticulous fashion so that every view snaps itself to fit the size of
the
device you are using, be it smartphones, tablet or any other portables, our theme adjusts
itself
to fit the screen size.
</h6>
<span class="d-flex" style="margin-top: 2rem !important;">
<i class="fa fa-check-square mr-2"
style="color:#556EE6 !important; margin-top: 5px !important;"></i>
<p>Fully responsive</p>
</span>
<span class="d-flex">
<i class="fa fa-check-square mr-2"
style="color:#556EE6 !important; margin-top: 5px !important;"></i>
<p>Fly-out hamburger menu on the left</p>
</span>
<span class="d-flex">
<i class="fa fa-check-square mr-2"
style="color:#556EE6 !important; margin-top: 5px !important;"></i>
<p>Fits perfectly to all screen sizes</p>
</span>
<span class="d-flex">
<i class="fa fa-check-square mr-2"
style="color:#556EE6 !important; margin-top: 5px !important;"></i>
<p>Quick access menu at the bottom in discuss</p>
</span>
</div>
</div>
</div>
</div>
<!-- END OF RESPONSIVE -->
<!-- FEATURE -->
<div class="container" style="margin-top: 3rem;">
<div class="row shadow"
style="margin: 2rem; padding: 0rem !important; background-color: #fff !important; border-top: 3px solid #556EE6 !important; min-width: 100% !important;">
<div class="col-lg-12" style="padding: 2.5rem 1.5rem!important;">
<h3 style="font-weight: 700 !important;">Kanban Group View</h3>
<h6
style="font-style: Montserrat, 'sans-serif' !important; color: #2A3042 !important; font-weight: 300 !important;">
The Code Backend Theme V14 Gives You The Fully Modified Kanban View and Kanban Group View.
The Section Wise Separated Stages are have a Good Looking Experience And a Extra Ordinary Design
for Your Content Tiles is Looking Great.
<h6 style="font-style: Montserrat, 'sans-serif' !important; color: #2A3042 !important; font-weight: 300 !important;">
The Code Backend Theme V14 Gives You a Fully Modified Kanban View and Kanban Group View.
The Section Wise Separated Stages give a Pleasant Experience And an Extraordinary Design
To Your Content Tiles Making The Tiles Look Great.
It will Give You a Clean Layout with the New Color Combination and a Modified Font.
</h6>
<div class="row mt-4">
@ -90,7 +151,7 @@
<span class="d-flex">
<i class="fa fa-check-square mr-2"
style="color:#556EE6 !important; margin-top: 5px !important;"></i>
<p>Stages are Seperated in View</p>
<p>Stages are Separated in View</p>
</span>
<span class="d-flex">
@ -120,8 +181,7 @@
style="margin: 2rem; padding: 0rem !important; background-color: #fff !important; border-top: 3px solid #556EE6 !important; min-width: 100% !important;">
<div class="col-lg-12" style="padding: 2.5rem 1.5rem!important;">
<h3 style="font-weight: 700 !important;">List View</h3>
<h6
style="font-style: Montserrat, 'sans-serif' !important; color: #2A3042 !important; font-weight: 300 !important;">
<h6 style="font-style: Montserrat, 'sans-serif' !important; color: #2A3042 !important; font-weight: 300 !important;">
The All new Code Backend Theme V14 Gives You The Fully Modified List View and This Table Design
is Also Have Awesome Design and it Gives You More Beauty for Your Odoo Backend.
It will Give You a Clean Layout with the New Color Combination and a Modified Font.
@ -181,8 +241,7 @@
style="margin: 2rem; padding: 0rem !important; background-color: #fff !important; border-top: 3px solid #556EE6 !important; min-width: 100% !important;">
<div class="col-lg-12" style="padding: 2.5rem 1.5rem!important;">
<h3 style="font-weight: 700 !important;">Form View</h3>
<h6
style="font-style: Montserrat, 'sans-serif' !important; color: #2A3042 !important; font-weight: 300 !important;">
<h6 style="font-style: Montserrat, 'sans-serif' !important; color: #2A3042 !important; font-weight: 300 !important;">
Code Backend Theme Gives You The Fully Modified Form View with a Full Screen Experience. It will
Give You a Clean Layout with the New Color Combination
and a Modified Font.
@ -246,16 +305,17 @@
<h3 class="mx-4 mt-3" style="font-weight: 700 !important;">Overview</h3>
<h6 class="mx-4"
style="font-style: Montserrat, 'sans-serif' !important; color: #2A3042 !important; font-weight: 300 !important;">
Code Backend Theme V14 is an Attractive Theme for Your Odoo 14. This Theme Will Change Your
All Experience With Odoo.
The Minimalist and Elegant Backend Theme for Odoo 14. This Theme is a Perfect Choice for
Your Odoo Backend."
Code Backend Theme V14 is an Attractive Theme for Your Odoo 14.
This Theme Will Change Improve Your Experience With Odoo.
This is a Minimalist and Elegant Backend Theme for Odoo 14 And Can Offer a Perfect Choice
for
Your Odoo Backend.
</h6>
<div class="mx-4 my-4">
<span class="d-flex">
<i class="fa fa-check-square mr-2"
style="color:#556EE6 !important; margin-top: 5px !important;"></i>
<p>Modifed Structure for All Type Views</p>
<p>Modified Structure for All Type Views</p>
</span>
<span class="d-flex">
@ -294,12 +354,8 @@
<div class="col-lg-4" style="padding: 1rem 0rem 1rem 1rem!important;">
<div class="shadow"
style="background-color: #fff !important; border-top: 3px solid #556EE6 !important; padding: 2.5rem 0rem 0rem 1.5rem !important; position: relative; overflow: hidden !important;">
<div class="text-center"
style="background-color: #556EE6 !important; color: #fff !important; font-size: 10px !important; font-weight: 500 !important; width: 100px !important; padding: 3px 0px 3px 20px !important; white-space: nowrap !important; position: absolute !important; transform: rotate(40deg) !important; top: 0px !important; right: -20px !important; ">
New</div>
<h3 class="mt-3" style="font-weight: 700 !important;">All-New Menu Design</h3>
<h6
style="font-style: Montserrat, 'sans-serif' !important; color: #2A3042 !important; font-weight: 300 !important; padding-bottom: 6.7rem !important;">
<h6 style="font-style: Montserrat, 'sans-serif' !important; color: #2A3042 !important; font-weight: 300 !important; padding-bottom: 6.7rem !important;">
The All-New Menu Design is Main Attractive Section for the Code Backend Theme. The Sidebar
have New Minimalist
Icons for Applications in Odoo. Also the Sidebar Have Closing and Opening Option.
@ -322,11 +378,12 @@
style="margin: 2rem; padding: 0rem !important; background-color: #fff !important; border-top: 3px solid #556EE6 !important; min-width: 100% !important;">
<div class="col-lg-12" style="padding: 2.5rem 1.5rem!important;">
<h3 style="font-weight: 700 !important;">Easily Access Sidebar Menu</h3>
<h6
style="font-style: Montserrat, 'sans-serif' !important; color: #2A3042 !important; font-weight: 300 !important;">
Reveal the sidebar menu with just a click. Sidebar menu features all the relevant links to navigate
<h6 style="font-style: Montserrat, 'sans-serif' !important; color: #2A3042 !important; font-weight: 300 !important;">
Reveal the sidebar menu with just a click. Sidebar menu features all the relevant links to
navigate
through the application.
Hiding the sidebar leaves more space on the main area offering a distraction-free view that lets you
Hiding the sidebar leaves more space on the main area offering a distraction-free view that lets
you
focus on what matters the most.
</h6>
</div>
@ -341,9 +398,9 @@
<div class="container" style="margin-top: 3rem;">
<div class="row">
<div class="col-lg-12 d-flex flex-column justify-content-center align-items-center">
<hr class="position-absolute" style="border: 1px solid #c4c6cc !important; width: 40% !important;">
<h2
style="font-weight: 300 !important; background-color: #fff !important; z-index: 1 !important; padding: 0 1rem !important;">
<hr class="position-absolute"
style="border: 1px solid #c4c6cc !important; width: 40% !important; z-index: 0 !important;">
<h2 style="font-weight: 300 !important; background-color: #fff !important; z-index: 1 !important; padding: 0 1rem !important;">
Screenshots</h2>
</div>
</div>
@ -467,7 +524,8 @@
style="background-color: #556EE6 !important; border: 4px solid #D4DAF9 !important; color: #fff !important; height: 35px; width: 35px; border-radius: 50% !important; font-size: 1.1rem !important;">
<h6 style="margin-top: 0.3rem; color: #fff !important;">8</h6>
</div>
<h6 class="mt-2 ml-2">Modified Alert Notification are Placed on Right Bottom of Display</h6>
<h6 class="mt-2 ml-2">Modified Alert Notifications are Placed on the Right Bottom of Display
</h6>
</div>
</div>
<div class="col-lg-12" style="padding-left: 0 !important; padding-right: 0!important;">
@ -663,7 +721,6 @@
<img src="assets/screenshots/graph.png" width="100%" height="auto" class="img-responsive">
</div>
</div>
</div>
<!-- END OF SCREENSHOTS -->
@ -672,9 +729,9 @@
<section class="container" style="margin-top: 6rem !important;">
<div class="row">
<div class="col-lg-12 d-flex flex-column justify-content-center align-items-center mb-4">
<hr class="position-absolute" style="border: 1px solid #c4c6cc !important; width: 40% !important;">
<h2
style="font-weight: 300 !important; background-color: #fff !important; z-index: 1 !important; padding: 0 1rem !important;">
<hr class="position-absolute"
style="border: 1px solid #c4c6cc !important; width: 40% !important; z-index: 0 !important;">
<h2 style="font-weight: 300 !important; background-color: #fff !important; z-index: 1 !important; padding: 0 1rem !important;">
Our Services</h2>
</div>
@ -708,7 +765,6 @@
Support</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #ffa801 !important; border-radius: 15px !important; height: 80px; width: 80px;">
@ -740,7 +796,6 @@
Migration</h6>
</div>
<div class="col-lg-4 d-flex flex-column justify-content-center align-items-center my-4">
<div class="d-flex justify-content-center align-items-center mx-3 my-3"
style="background-color: #786fa6 !important; border-radius: 15px !important; height: 80px; width: 80px;">
@ -778,9 +833,9 @@
<section class="container" style="margin-top: 6rem !important; background-color: #fff !important;">
<div class="row">
<div class="col-lg-12 d-flex flex-column justify-content-center align-items-center mb-4">
<hr class="position-absolute" style="border: 1px solid #c4c6cc !important; width: 40% !important;">
<h2
style="font-weight: 300 !important; background-color: #fff !important; z-index: 1 !important; padding: 0 1rem !important;">
<hr class="position-absolute"
style="border: 1px solid #c4c6cc !important; width: 40% !important; z-index: 0 !important;">
<h2 style="font-weight: 300 !important; background-color: #fff !important; z-index: 1 !important; padding: 0 1rem !important;">
Our Industries</h2>
</div>
@ -788,8 +843,7 @@
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/trading-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5
style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Trading
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">Easily
@ -803,8 +857,7 @@
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/pos-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5
style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
POS
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">Easy
@ -818,8 +871,7 @@
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/education-black.png" class="img-responsive mb-3" height="48px"
width="48px">
<h5
style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Education
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">A
@ -833,8 +885,7 @@
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/manufacturing-black.png" class="img-responsive mb-3" height="48px"
width="48px">
<h5
style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Manufacturing
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">Plan,
@ -842,13 +893,11 @@
schedule your operations</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/ecom-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5
style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
E-commerce &amp; Website
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">Mobile
@ -856,13 +905,11 @@
awe-inspiring product pages</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/service-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5
style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Service Management
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">Keep
@ -870,14 +917,12 @@
services and invoice</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/restaurant-black.png" class="img-responsive mb-3" height="48px"
width="48px">
<h5
style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Restaurant
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">Run
@ -885,13 +930,11 @@
restaurant methodically</p>
</div>
</div>
<div class="col-lg-3">
<div class="my-4 d-flex flex-column justify-content-center"
style="background-color: #f6f8f9 !important; border-radius: 10px; padding: 2rem !important; height: 250px !important;">
<img src="./assets/icons/hotel-black.png" class="img-responsive mb-3" height="48px" width="48px">
<h5
style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
<h5 style="font-family: Montserrat, sans-serif !important; color: #000 !important; font-weight: bold;">
Hotel Management
</h5>
<p style="font-family: Montserrat, sans-serif !important; font-size: 0.9rem !important;">An
@ -899,7 +942,6 @@
hotel management application</p>
</div>
</div>
</div>
</section>
@ -910,19 +952,16 @@
<section class="container" style="margin: 5rem auto 2rem; background-color: #fff !important;">
<div class="row" style="max-width:1540px;">
<div class="col-lg-12 d-flex flex-column justify-content-center align-items-center mb-4">
<hr class="position-absolute" style="border: 1px solid #c4c6cc !important; width: 40% !important;">
<h2
style="font-weight: 300 !important; background-color: #fff !important; z-index: 1 !important; padding: 0 1rem !important;">
<hr class="position-absolute"
style="border: 1px solid #c4c6cc !important; width: 40% !important; z-index: 0 !important;">
<h2 style="font-weight: 300 !important; background-color: #fff !important; z-index: 1 !important; padding: 0 1rem !important;">
Need Help?</h2>
</div>
</div>
<!-- Contact Cards -->
<div class="row d-flex justify-content-center align-items-center"
style="max-width:1540px; margin: 0 auto 2rem auto;">
<div class="col-lg-12" style="padding: 0rem 3rem 2rem; border-radius: 10px; margin-right: 3rem; ">
<div class="row mt-4">
<div class="col-lg-4">
<a href="mailto:odoo@cybrosys.com" target="_blank" class="btn btn-block mb-2 deep_hover"
@ -932,17 +971,16 @@
<div class="col-lg-4">
<a href="https://api.whatsapp.com/send?phone=918606827707" target="_blank"
class="btn btn-block mb-2 deep_hover"
style="text-decoration: none; background-color: #25D366; color: #FFF; border-radius: 4px;"><i
class="fa fa-whatsapp mr-2"></i>WhatsApp</a>
style="text-decoration: none; background-color: #25D366; color: #FFF; border-radius: 4px;">
<i class="fa fa-whatsapp mr-2"></i>WhatsApp</a>
</div>
<div class="col-lg-4">
<a href="mailto:info@cybrosys.com" target="_blank" class="btn btn-block deep_hover"
style="text-decoration: none; background-color: #4d4d4d; color: #FFF; border-radius: 4px;"><i
class="fa fa-envelope mr-2"></i>info@cybrosys.com</a>
style="text-decoration: none; background-color: #4d4d4d; color: #FFF; border-radius: 4px;">
<i class="fa fa-envelope mr-2"></i>info@cybrosys.com</a>
</div>
</div>
</div>
</div>
<!-- End of Contact Cards -->
</section>
@ -957,3 +995,4 @@
</div>
</section>
<!-- END OF FOOTER -->
</div>

BIN
code_backend_theme/static/src/img/icons/close.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 527 B

36
code_backend_theme/static/src/js/chrome/sidebar_menu.js

@ -35,6 +35,18 @@ odoo.define('code_backend_theme.SidebarMenu', function (require) {
var navbar_id = navbar.data("id");
$("nav").addClass(navbar_id);
navbar.addClass("small_nav");
//add class in action-manager
var action_manager = $(".o_action_manager");
var action_manager_id = action_manager.data("id");
$("div").addClass(action_manager_id);
action_manager.addClass("sidebar_margin");
//add class in top_heading
var top_head = $(".top_heading");
var top_head_id = top_head.data("id");
$("div").addClass(top_head_id);
top_head.addClass("sidebar_margin");
});
$(document).on("click", "#closeSidebar", function(event){
$("#sidebar_panel").css({'display':'none'});
@ -46,6 +58,18 @@ odoo.define('code_backend_theme.SidebarMenu', function (require) {
var navbar_id = navbar.data("id");
$("nav").removeClass(navbar_id);
navbar.removeClass("small_nav");
//remove class in action-manager
var action_manager = $(".o_action_manager");
var action_manager_id = action_manager.data("id");
$("div").removeClass(action_manager_id);
action_manager.removeClass("sidebar_margin");
//remove class in top_heading
var top_head = $(".top_heading");
var top_head_id = top_head.data("id");
$("div").removeClass(top_head_id);
top_head.removeClass("sidebar_margin");
});
$(document).on("click", ".sidebar a", function(event){
@ -68,5 +92,17 @@ odoo.define('code_backend_theme.SidebarMenu', function (require) {
var navbar_id = navbar.data("id");
$("nav").removeClass(navbar_id);
navbar.removeClass("small_nav");
//remove class in action-manager
var action_manager = $(".o_action_manager");
var action_manager_id = action_manager.data("id");
$("div").removeClass(action_manager_id);
action_manager.removeClass("sidebar_margin");
//remove class in top_heading
var top_head = $(".top_heading");
var top_head_id = top_head.data("id");
$("div").removeClass(top_head_id);
top_head.removeClass("sidebar_margin");
});
});

21
code_backend_theme/static/src/scss/sidebar.scss

@ -8,7 +8,7 @@
overflow-y: scroll;
-ms-overflow-style: none; /* Hide scrollbar for IE and Edge */
scrollbar-width: none; /* Hide scrollbar for Firefox */
z-index: 2;
z-index: 999;
}
#sidebar_panel::-webkit-scrollbar {
display: none; /* Hide scrollbar for Chrome, Safari and Opera */
@ -19,6 +19,25 @@
padding-bottom: 20px;
padding-top: 5px;
}
.sidebar_panel .sidebar_close {
text-align: end;
display: none;
position: sticky;
height: 35px;
padding-top: 5px;
top: 0;
background: #2a3042;
z-index: 1;
}
.sidebar_panel .sidebar_close a#closeSidebar {
font-size: 18px;
margin-right: 10px;
color: #ffffff;
opacity: .3;
}
.sidebar_panel .sidebar_close a#closeSidebar img {
width: 15px;
}
.sidebar_panel .sidebar .sidebar_logo {
padding-top: 20px;
text-align: center;

124
code_backend_theme/static/src/scss/theme.scss

@ -629,6 +629,12 @@ th.o_list_record_selector {
.o_ThreadIcon_online {
color: #34c38f;
}
.o_Message_prettyBody table th {
color: $primary_accent !important;
}
.o_Message_prettyBody table thead tr td {
background-color: $primary_hover !important;
}
// Discuss End
//Chatter @form
@ -1429,3 +1435,121 @@ div.dropdown-menu.bootstrap-datetimepicker-widget{
background-color: rgba(85,110,230,0.23);
}
//groupby color ends
//Responsive starts
@media (max-width:992px) {
.o_action_manager.sidebar_margin {
margin: 0 !important;
}
.top_heading.sidebar_margin {
margin: 0 !important;
}
.sidebar_panel .sidebar {
position: relative;
padding-top: 0px !important;
}
.sidebar_panel .sidebar_close {
display: block !important;
}
}
@media (max-width:480px) {
ul.o_menu_apps {
padding-left: 25px;
}
.o_control_panel {
margin: 15px 10px 0 10px;
}
.o_control_panel > div {
flex-wrap: wrap;
}
.o_cp_top_left, .o_cp_top_right,
.o_cp_bottom_left, .o_cp_bottom_right {
width: 100%;
}
.o_widget_Discuss .o_Discuss.o-mobile:not(.o-adding-item) {
border: none !important;
}
html .o_web_client > .o_action_manager {
overflow: auto !important;
}
ul.o_menu_systray.topbar_icon li:nth-child(1) {
margin-left: 20px;
}
.o_main_navbar .o_user_menu {
margin-left: 20px;
}
.sidebar_panel .sidebar .sidebar_logo img {
max-width: 112px;
}
.sidebar_panel .sidebar .sidebar_logo {
padding-top: 20px;
text-align: center;
padding-bottom: 5px;
}
li.o_switch_company_menu.show .dropdown-menu.dropdown-menu-right.show {
right: auto !important;
left: 0px;
}
ul.o_menu_systray.topbar_icon .dropdown-menu.show{
left: 0px !important;
right: auto !important;
}
ul.o_menu_systray.topbar_icon {
margin-left: 0;
}
.o_MessagingMenu_dropdownMenu.o-mobile {
top: 70px;
}
.o_control_panel .o_cp_bottom_right {
flex-wrap: wrap;
}
.o_form_view .o_form_statusbar {
flex-wrap: wrap;
}
.btn {
padding: 2px 10px !important;
height: 35px !important;
}
.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button:not(:first-child):before,
.o_form_view .o_form_statusbar > .o_statusbar_status > .o_arrow_button:not(:first-child):after {
border-top: 17px solid transparent !important;
border-bottom: 16px solid transparent !important;
}
.o_statusbar_status.o_field_widget.o_readonly_modifier {
width: 100%;
justify-content: flex-end;
margin-top: 5px;
}
.o_form_view .o_form_statusbar > .o_statusbar_buttons > .btn {
margin: 1px 0px 4px 0;
}
.o_form_statusbar .o_statusbar_buttons .btn {
margin-right: 5px !important;
}
.o_control_panel .o_cp_bottom_left > .o_cp_action_menus .o_dropdown_toggler_btn {
margin-right: 3px;
}
.o_form_view .o_form_sheet_bg > .o_form_sheet {
min-width: auto;
}
.nav-tabs .nav-link {
padding: 8px;
}
.modal.o_technical_modal.o_modal_full .modal-dialog .modal-content .modal-header {
background: $primary_accent;
}
.o_form_view .o_group .o_group_col_6 {
width: 100%;
}
.o_kanban_view.o_kanban_ungrouped .o_kanban_record {
flex-wrap: wrap;
}
.o_kanban_view .o_kanban_record.o_kanban_record_has_image_fill .o_kanban_image_fill_left {
border-radius: 5px;
}
.o_field_widget.o_field_image .o_form_image_controls > .fa.o_select_file_button {
background: #74788d;
}
}
//Responsive ends

5
code_backend_theme/static/src/xml/sidebar.xml

@ -7,6 +7,11 @@
</t>
<t t-name="code_backend_theme.SideBar">
<div class="sidebar">
<div class="sidebar_close">
<a id="closeSidebar" style="cursor: pointer;">
<img src="/code_backend_theme/static/src/img/icons/close.png"/>
</a>
</div>
<div class="sidebar_logo">
<img src="/web/binary/company_logo" class="logo_img"/>
</div>

6
code_backend_theme/views/icons.xml

@ -1,8 +1,10 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<data>
<menuitem id="base.menu_administration" name="Settings" web_icon="code_backend_theme,static/src/img/icons/settings.png"/>
<menuitem id="base.menu_administration" name="Settings"
web_icon="code_backend_theme,static/src/img/icons/settings.png"/>
<menuitem id="base.menu_management" name="Apps" web_icon="code_backend_theme,static/src/img/icons/apps.png"/>
<menuitem id="mail.menu_root_discuss" name="Discuss" web_icon="code_backend_theme,static/src/img/icons/discuss.png"/>
<menuitem id="mail.menu_root_discuss" name="Discuss"
web_icon="code_backend_theme,static/src/img/icons/discuss.png"/>
</data>
</odoo>

8
code_backend_theme/views/layout.xml

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo>
<template id="code_custom_layout" inherit_id="web.layout" name="Custom Layout">
<xpath expr="//meta[@content='IE=edge,chrome=1']" position="after">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"/>
</xpath>
</template>
</odoo>
Loading…
Cancel
Save