Merge pull request #29 from expsa/migration-modules

Migration modules
This commit is contained in:
ahmed-nouri051 2025-10-01 09:41:41 +02:00 committed by GitHub
commit cba0b9857c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
381 changed files with 19958 additions and 304 deletions

View File

@ -1,44 +0,0 @@
# -*- coding: utf-8 -*-
{
"name": "Code Backend Theme V18",
"summary": "Minimalist and elegant backend theme for Odoo 18",
"description": """Attractive and modern backend theme for Odoo 18""",
"category": "Themes/Backend",
"version": "18.0.1.0.0",
"author": "Cybrosys Techno Solutions",
"company": "Cybrosys Techno Solutions",
"maintainer": "Cybrosys Techno Solutions",
"website": "https://www.cybrosys.com",
"license": "LGPL-3",
"depends": ["base", "web", "mail", "account"], # add 'account' if you patch its dashboard
"assets": {
"web.assets_backend": [
# "code_backend_theme/static/src/scss/theme_accent.scss",
"code_backend_theme/static/src/scss/navigation_bar.scss",
"code_backend_theme/static/src/scss/datetimepicker.scss",
"code_backend_theme/static/src/scss/theme.scss",
"code_backend_theme/static/src/scss/sidebar.scss",
"code_backend_theme/static/src/js/fields/basic_fields.js",
"code_backend_theme/static/src/js/fields/graph.js",
"code_backend_theme/static/src/js/chrome/sidebar.js",
"code_backend_theme/static/src/js/chrome/sidebar_menu.js",
],
"web.assets_frontend": [
"code_backend_theme/static/src/scss/login.scss",
],
"web.qweb": [
"code_backend_theme/static/src/xml/sidebar.xml",
"code_backend_theme/static/src/xml/styles.xml",
"code_backend_theme/static/src/xml/top_bar.xml",
],
},
"images": [
"static/description/banner.png",
"static/description/theme_screenshot.png",
],
"post_init_hook": "post_init_hook",
"installable": True,
"application": False,
"auto_install": False,
}

View File

@ -1,25 +0,0 @@
<odoo>
<data>
<template id="code_backend_theme_assets" inherit_id="web.assets_backend" name="Code Backend Theme Assets">
<xpath expr="." position="inside">
<!-- <link rel="stylesheet" href="/code_backend_theme/static/src/scss/theme_accent.scss"/>
<link rel="stylesheet" href="/code_backend_theme/static/src/scss/navigation_bar.scss"/>
<link rel="stylesheet" href="/code_backend_theme/static/src/scss/datetimepicker.scss"/>
<link rel="stylesheet" href="/code_backend_theme/static/src/scss/theme.scss"/>
<link rel="stylesheet" href="/code_backend_theme/static/src/scss/sidebar.scss"/> !-->
<script src="/code_backend_theme/static/src/js/fields/basic_fields.js"/>
<script src="/code_backend_theme/static/src/js/fields/graph.js"/>
<script src="/code_backend_theme/static/src/js/chrome/sidebar.js"/>
<script src="/code_backend_theme/static/src/js/chrome/sidebar_menu.js"/>
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&amp;display=swap" rel="stylesheet"/>
</xpath>
</template>
<template id="code_backend_theme_assets_frontend" inherit_id="web.assets_frontend">
<xpath expr="." position="inside">
<!--<link rel="stylesheet" href="/code_backend_theme/static/src/scss/login.scss"/>-->
<link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&amp;display=swap" rel="stylesheet"/>
</xpath>
</template>
</data>
</odoo>

View File

@ -1,32 +0,0 @@
/** @odoo-module **/
import { Component } from "@odoo/owl";
import { patch } from "@web/core/utils/patch";
import { AppMenu } from "@web/webclient/app_menu/app_menu";
export class SideBar extends Component {
setup() {
this.apps = this.props.menuData.children.map((app) => ({
actionID: parseInt(app.action.split(",")[1]),
menuID: app.id,
name: app.name,
xmlID: app.xmlid,
web_icon_data: app.web_icon_data,
}));
}
onAppClick(app) {
this.env.bus.trigger("APP-CLICKED", {
action_id: app.actionID,
menu_id: app.menuID,
});
}
}
SideBar.template = "code_backend_theme.Sidebar";
// Patch AppMenu to include the sidebar
patch(AppMenu.prototype, "code_backend_theme.Sidebar", {
setup() {
super.setup();
},
});

View File

@ -1,15 +0,0 @@
/** @odoo-module **/
import { patch } from "@web/core/utils/patch";
import { AppMenu } from "@web/webclient/app_menu/app_menu";
patch(AppMenu.prototype, "code_backend_theme.SidebarMenu", {
setup() {
super.setup();
this.state = { sidebarOpen: false };
},
toggleSidebar() {
this.state.sidebarOpen = !this.state.sidebarOpen;
},
});

View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<templates id="template" xml:space="preserve">
<t t-name="code_backend_theme.SidebarToggle" owl="1">
<li class="dropdown">
<a id="openSidebar" t-if="!state.sidebarOpen" t-on-click="toggleSidebar">
<i class="fa fa-bars fa-lg"/>
</a>
<a id="closeSidebar" t-if="state.sidebarOpen" t-on-click="toggleSidebar">
<i class="fa fa-times fa-lg"/>
</a>
</li>
</t>
</templates>

View File

@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="custom_report_assets_common" inherit_id="web.report_assets_common">
<xpath expr="." position="inside">
<link rel="stylesheet" type="text/scss" href="/exp_base_document_layout_fonts/static/src/scss/fonts.scss"/>
</xpath>
</template>
</odoo>

View File

@ -1,39 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="assets_frontend_css" inherit_id="web.assets_frontend">
<xpath expr="." position="inside">
<!--Montserrat-->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" />
<link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@100;200;300;400;500;600;700;800;900&amp;display=swap" rel="stylesheet" />
<!--style-->
<link rel="stylesheet" type="text/css" href="/expert_font_for_website/static/src/css/custom_rtl.css"/>
<link rel="stylesheet" type="text/css" href="/expert_font_for_website/static/src/css/footer.css"/>
</xpath>
</template>
<!-- <template id="MYSITE_layout" inherit_id="web.layout" name="MYSITE layout" priority="17">
<xpath expr="//head//link" position="replace">
<link rel="shortcut icon" href="/expert_font_for_website/static/img/favicon.ico" type="image/x-icon"/>
</xpath>
</template> -->
<!-- <template id="custom_layout" inherit_id="website.layout">
<xpath expr="//div[hasclass('o_footer_copyright')]" position="replace">
<div t-if="not no_copyright" class="o_footer_copyright">
<div class="container py-3">
<div class="row">
<div class="col-sm text-center text-sm-left text-muted">
<t t-call="web.debug_icon"/>
<span class="o_footer_copyright_name mr-2">Copyright &amp;copy; Company name</span>
</div>
<div class="col-sm text-center text-sm-right">
</div>
</div>
</div>
</div>
</xpath>
</template> -->
</odoo>

View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="assets_frontend_css" inherit_id="web.assets_frontend">
<xpath expr="." position="inside">
<!--style-->
<link rel="stylesheet" type="text/css" href="/hide_login_db_selection/static/src/css/database-hide.css"/>
<!--script-->
<script src="/hide_login_db_selection/static/js/login_page.js"></script>
</xpath>
</template>
</odoo>

View File

@ -1,8 +0,0 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/../../../../../../../:\Users\Adnan Usmani\Downloads\Compressed\inbox_notif_email\.idea/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

View File

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="PyDocumentationSettings">
<option name="format" value="PLAIN" />
<option name="myDocStringFormat" value="Plain" />
</component>
<component name="TemplatesService">
<option name="TEMPLATE_CONFIGURATION" value="Web2Py" />
</component>
</module>

View File

@ -1,14 +0,0 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredPackages">
<value>
<list size="1">
<item index="0" class="java.lang.String" itemvalue="pyparsing" />
</list>
</value>
</option>
</inspection_tool>
</profile>
</component>

View File

@ -1,6 +0,0 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

View File

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8" project-jdk-type="Python SDK" />
</project>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/inbox_notif_email.iml" filepath="$PROJECT_DIR$/.idea/inbox_notif_email.iml" />
</modules>
</component>
</project>

View File

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>

View File

@ -0,0 +1,11 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# LCT, Life Connection Technology
# Copyright (C) 2019-2020 LCT
#
##############################################################################
from . import models
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,30 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# LCT, Life Connection Technology
# Copyright (C) 2011-2012 LCT
#
##############################################################################
{
'name' : 'Base Custom',
'category': 'HR-Odex',
'version': '18.0.1.0.0',
'author': 'Expert Co. Ltd.' ,
'website': 'http://exp-sa.com',
'summary': 'Solving defulat groups for newly created users',
'description' : """Add the following features: 1-Prevent granting defulat groups for newly created users """,
'depends' : ['base','hr','hr_contract'],
'data': [ ],
"assets": {
"web.assets_backend": [
# Google Fonts (Montserrat)
'/base_custom/static/src/css/website_rtl.css'
],
},
'auto_install': True,
'installable': True,
'application': True,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-# -*- coding: utf-8 -*-
##############################################################################
#
# LCT, Life Connection Technology
# Copyright (C) 2011-2012 LCT
#
##############################################################################
from . import res_users
from . import hr_employee

View File

@ -0,0 +1,47 @@
from odoo import api, fields, models, _
class HrEmployee(models.Model):
_inherit = 'hr.employee'
contract_id = fields.Many2one('hr.contract', string='Current Contract',
groups="base.group_user",
domain="[('company_id', '=', company_id)]",
help='Current contract of the employee')
barcode = fields.Char(string="Badge ID", help="ID used for employee identification.", groups="base.group_user",
copy=False)
birthday = fields.Date('Date of Birth', groups="base.group_user", tracking=True)
address_home_id = fields.Many2one(
'res.partner', 'Address',
help='Enter here the private address of the employee, not the one linked to your company.',
groups="base.group_user", tracking=True,
domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]")
certificate = fields.Selection([
('graduate', 'Graduate'),
('bachelor', 'Bachelor'),
('master', 'Master'),
('doctor', 'Doctor'),
('other', 'Other'),
], 'Certificate Level', default='other', groups="base.group_user", tracking=True)
children = fields.Integer(string='Number of Children', groups="base.group_user", tracking=True)
country_of_birth = fields.Many2one('res.country', string="Country of Birth", groups="base.group_user",
tracking=True)
emergency_contact = fields.Char("Emergency Contact", groups="base.group_user", tracking=True)
emergency_phone = fields.Char("Emergency Phone", groups="base.group_user", tracking=True)
phone = fields.Char(related='address_home_id.phone', related_sudo=False, readonly=False, string="Private Phone",
groups="base.group_user")
identification_id = fields.Char(string='Identification No', groups="base.group_user", tracking=True)
km_home_work = fields.Integer(string="Home-Work Distance", groups="base.group_user", tracking=True)
permit_no = fields.Char('Work Permit No', groups="base.group_user", tracking=True)
pin = fields.Char(string="PIN", groups="base.group_user", copy=False,
help="PIN used to Check In/Out in Kiosk Mode (if enabled in Configuration).")
place_of_birth = fields.Char('Place of Birth', groups="base.group_user", tracking=True)
spouse_birthdate = fields.Date(string="Spouse Birthdate", groups="base.group_user", tracking=True)
spouse_complete_name = fields.Char(string="Spouse Complete Name", groups="base.group_user", tracking=True)
study_field = fields.Char("Field of Study", groups="base.group_user", tracking=True)
study_school = fields.Char("School", groups="base.group_user", tracking=True)
visa_expire = fields.Date('Visa Expire Date', groups="base.group_user", tracking=True)
visa_no = fields.Char('Visa No', groups="base.group_user", tracking=True)

View File

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# LCT, Life Connection Technology
# Copyright (C) 2011-2012 LCT
#
##############################################################################
from odoo import api, fields, models, _
class ResUsers(models.Model):
_inherit = 'res.users'
def _default_groups_custom(self):
"""
pervents newly created user from holding all managers groups.
"""
default_user = self.env.ref('base.group_user', raise_if_not_found=False)
return default_user
groups_id = fields.Many2many('res.groups', 'res_groups_users_rel', 'uid', 'gid', string='Groups', default =_default_groups_custom)

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

View File

@ -0,0 +1,25 @@
@media (min-width: 768px){
.rtl .navbar-right{
float: left !important;
}
.rtl .navbar-right .dropdown .dropdown-menu{
right: auto !important;
left: 0 !important;
}
.rtl .navbar-left{
float: right !important;
}
.rtl .navbar-left .dropdown .dropdown-menu{
left: auto !important;
right: 0 !important;
}
.navbar-nav.navbar-right:last-child{
margin-left: auto;
}
.rtl .pull-left{
float: right !important;
}
}

View File

Before

Width:  |  Height:  |  Size: 285 KiB

After

Width:  |  Height:  |  Size: 285 KiB

View File

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View File

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View File

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

View File

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 50 KiB

View File

Before

Width:  |  Height:  |  Size: 510 KiB

After

Width:  |  Height:  |  Size: 510 KiB

View File

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 49 KiB

View File

Before

Width:  |  Height:  |  Size: 285 KiB

After

Width:  |  Height:  |  Size: 285 KiB

View File

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View File

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 54 KiB

View File

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

View File

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 45 KiB

View File

@ -5,13 +5,13 @@
<record id="res_config_settings_view_form_inherit_chatgpt" model="ir.ui.view">
<field name="name">res.config.settings.view.form.inherit.chatgpt</field>
<field name="model">res.config.settings</field>
<field name="inherit_id" ref="base.res_config_settings_view_form"/>
<field name="inherit_id" ref="base.res_config_settings_view_form" />
<field name="arch" type="xml">
<!-- Insert inside the main form -->
<xpath expr="//form" position="inside">
<div class="app_settings_block" string="ChatGPT BOT"
data-key="chatgpt_blog" data-string="ChatGPT Blog">
data-key="chatgpt_blog" data-string="ChatGPT Blog">
<h2>ChatGPT OdooBot</h2>
<div class="row mt16 o_settings_container" id="chatgpt_bot_setting">
<div class="col-12 col-lg-6 o_setting_box">
@ -20,8 +20,8 @@
<div class="content-group">
<div class="row">
<label for="apikey" string="API Key"
class="col-md-3 o_light_label"/>
<field name="apikey"/>
class="col-md-3 o_light_label" />
<field name="apikey" />
</div>
</div>
</div>

View File

@ -0,0 +1,50 @@
# -*- coding: utf-8 -*-
{
"name": "Code Backend Theme ",
"summary": "Minimalist and elegant backend theme for Odoo 18",
"description": "Attractive and modern backend theme for Odoo 18",
"category": "Themes/Backend",
"version": "18.0.1.0.0",
"author": "Cybrosys Techno Solutions",
"company": "Cybrosys Techno Solutions",
"maintainer": "Cybrosys Techno Solutions",
"website": "https://www.cybrosys.com",
"license": "LGPL-3",
"depends": ["base", "web", "mail", "account"], # keep 'account' only if you extend it
"assets": {
"web.assets_backend": [
"/code_backend_theme/static/src/scss/theme_accent.scss",
"/code_backend_theme/static/src/scss/navigation_bar.scss",
"/code_backend_theme/static/src/scss/datetimepicker.scss",
"/code_backend_theme/static/src/scss/theme.scss",
"/code_backend_theme/static/src/scss/sidebar.scss",
"/code_backend_theme/static/src/js/fields/basic_fields.js",
# "/code_backend_theme/static/src/js/fields/graph.js",
"/code_backend_theme/static/src/js/chrome/sidebar.js",
# "/code_backend_theme/static/src/js/chrome/sidebar_menu.js",
"https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&display=swap",
],
'web.assets_backend_lazy': [ # ← KEY CHANGE
"/code_backend_theme/static/src/js/fields/graph.js",
"/code_backend_theme/static/src/js/chrome/sidebar_menu.js",
],
"web.assets_frontend": [
"/code_backend_theme/static/src/scss/login.scss",
"https://fonts.googleapis.com/css2?family=Poppins:wght@400;600&display=swap",
],
"web.qweb": [
"/code_backend_theme/static/src/xml/sidebar.xml",
"/code_backend_theme/static/src/xml/styles.xml",
"/code_backend_theme/static/src/xml/top_bar.xml",
],
},
"images": [
"static/description/banner.png",
"static/description/theme_screenshot.png",
],
"installable": True,
"application": False,
"auto_install": False,
}

View File

Before

Width:  |  Height:  |  Size: 362 KiB

After

Width:  |  Height:  |  Size: 362 KiB

View File

Before

Width:  |  Height:  |  Size: 344 KiB

After

Width:  |  Height:  |  Size: 344 KiB

View File

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 653 B

After

Width:  |  Height:  |  Size: 653 B

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 988 B

After

Width:  |  Height:  |  Size: 988 B

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

Before

Width:  |  Height:  |  Size: 102 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Some files were not shown because too many files have changed in this diff Show More