diff --git a/open_academy/README.rst b/open_academy/README.rst new file mode 100644 index 000000000..c8e319e9f --- /dev/null +++ b/open_academy/README.rst @@ -0,0 +1,46 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +Odoo 16 Development Tutorials +================================= +Our Unique Odoo Development Tutorial Course will cover the basics of Odoo Development. You will learn how to develop and configure odoo, based on specific requirements. + +Configuration +============= +* Open Academy Manager added in configuration who can modify courses + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developers: Cybrosys Techno Solutions odoo@cybrosys.com + Version 16: Dhanya Babu @cybrosys + +License +======= +GNU AFFERO GENERAL PUBLIC LICENSE, Version 3 (AGPLv3) +(http://www.gnu.org/licenses/agpl.html) + +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 `Our Website `__ + +Further information +=================== +HTML Description: ``__ diff --git a/open_academy/__init__.py b/open_academy/__init__.py new file mode 100644 index 000000000..0281eb51e --- /dev/null +++ b/open_academy/__init__.py @@ -0,0 +1,24 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Dhanya Babu () +# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################### +from . import models +from . import wizard diff --git a/open_academy/__manifest__.py b/open_academy/__manifest__.py new file mode 100644 index 000000000..6a466a121 --- /dev/null +++ b/open_academy/__manifest__.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Dhanya Babu () +# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################### +{ + 'name': "Odoo 16 Development Tutorials", + 'version': '16.0.1.0.0', + 'summary': """ + This module containing Odoo13, Odoo14, odoo15, odoo16 Tutorials, and + also how to configure pycharm in ubuntu""", + 'description': """ + This module containing Odoo13, Odoo14, odoo15, odoo16 Tutorials """, + 'author': 'Cybrosys Techno Solutions', + 'company': 'Cybrosys Techno Solutions', + 'maintainer': 'Cybrosys Techno Solutions', + 'website': 'https://www.cybrosys.com', + 'category': 'Website/eLearning', + 'depends': ['base', 'board', 'website_slides'], + 'data': [ + 'data/slide_channel_data_v14.xml', + 'data/slide_channel_data_v13.xml', + 'data/slide_channel_data_v15.xml', + 'data/slide_channel_data_v16.xml', + 'security/openacademy_groups.xml', + 'security/openacademy_security.xml', + 'security/ir.model.access.csv', + 'wizard/openacademy_wizard_views.xml', + 'views/res_partner_views.xml', + 'views/open_academy_session_views.xml', + 'views/open_academy_course_views.xml', + 'views/board_views.xml', + 'report/openacademy_session_reports.xml', + ], + 'images': ['static/description/banner.png'], + 'license': 'AGPL-3', + 'installable': True, + 'application': True, + 'auto_install': False, + 'demo': [ + 'demo/openacademy_demo.xml', + ], +} diff --git a/open_academy/data/slide_channel_data_v13.xml b/open_academy/data/slide_channel_data_v13.xml new file mode 100644 index 000000000..9c3f9b204 --- /dev/null +++ b/open_academy/data/slide_channel_data_v13.xml @@ -0,0 +1,389 @@ + + + + + + Odoo 13 Development Tutorial + + public + 0 + training + + most_voted + + + Learn how to build a module for Odoo 13 + + + + + + + 1-How to Install Pycharm and Configure + PostgreSQL on Ubuntu + + 1 + https://youtu.be/V8JxrYLX0VM + video + + + + + + + 2-How to Configure Odoo 13 on Pycharm Ubuntu + + 2 + https://youtu.be/nKguOFx0L08 + video + + + + + + + 3-Components and Structure of Odoo 13 Module + + 3 + https://youtu.be/7vkRCzvnhHs + video + + + + + + + 4-How to Create an Empty Module Structure + Scaffold Command in Odoo 13 + + 4 + https://youtu.be/YbKbYHt3quw + video + + + + + + + 5-Building a module in Odoo 13 + 5 + https://youtu.be/9AvMGOn2ZIw + video + + + + + + + 6-Relations Between Models on Odoo: Many2One + Fields in Odoo 13 + + 6 + https://youtu.be/MY2bmJmvjSw + video + + + + + + + 7-Relations Between Models in Odoo: One2Many + Fields in Odoo 13 + + 7 + https://youtu.be/r23BsiktP5g + video + + + + + + + 8-Relations Between Models in Odoo: Many2Many + Fields in Odoo 13 + + 8 + https://youtu.be/Mgr4M59KjhM + video + + + + + + + 9-Inheritance - Traditional Class Inheritance in + Odoo 13 + + 9 + https://youtu.be/9AvMGOn2ZIw + video + + + + + + + 10-Inheritance - Traditional Prototype + Inheritance in Odoo 13 + + 10 + https://youtu.be/WfYN_-AZqio + video + + + + + + + 11-Inheritance - Delegation Inheritance in Odoo + 13 + + 11 + https://youtu.be/46V3kD5O1sw + video + + + + + + + 12-View Inheritance in Odoo 13 + 12 + https://youtu.be/nTXZOSWhqQs + video + + + + + + + 13-Computed fields and @api.depends in Odoo 13 + + 13 + https://youtu.be/eNEgnJGXf68 + video + + + + + + + 14-Setting Default Value for Fields in Odoo 13 + + 14 + https://youtu.be/pwgFTIKmH4g + video + + + + + + + 15-Onchange mechanism - @api.onchange in Odoo + 13 + + 15 + https://youtu.be/NVr5rqklowQ + video + + + + + + + 16-Model Constraints - Python Constraints in + Odoo 13 + + 16 + https://youtu.be/GTpoo7dgcOY + video + + + + + + + 17-Model Constraints - SQL Constraints in Odoo + 13 + + 17 + https://youtu.be/EgijG79thgw + video + + + + + + + 18-Tree View Decoration Attribute in odoo 13 + + 18 + https://youtu.be/UkBQZeTVLuo + video + + + + + + + 19-Advanced Views - Calendar View in Odoo 13 + + 19 + https://youtu.be/gJdRL7Nlmno + video + + + + + + + 20-Advanced Views - Search View in Odoo 13 + + 20 + https://youtu.be/b5pxrpntIqE + video + + + + + + + 21-Advanced Views - Gantt View in Odoo 13 + + 21 + https://youtu.be/xvGZ9at5c_w + video + + + + + + + 22-Pivot View in Odoo + 22 + https://youtu.be/t9233sxQVIc + video + + + + + + + 23-Graph View in Odoo + 23 + https://youtu.be/8-cup65wEF4 + video + + + + + + + 24-Kanban View in Odoo 13 + 24 + https://youtu.be/Hj4lbg_uwJA + video + + + + + + + 25-Pivot View in Odoo + 25 + https://youtu.be/t9233sxQVIc + video + + + + + + + 26-Security - Groups and access rights in Odoo + + 26 + https://youtu.be/wgPtgPbY4uc + video + + + + + + + 27-Wizards - Defining and Launching in Odoo + + 27 + https://youtu.be/KT5Vj0P8f8c + video + + + + + + + 28-Odoo Development - URL Actions in Odoo 13 + + 28 + https://youtu.be/HxiBsiMCqDY + video + + + + + + + 29-Odoo Development - Server Actions in Odoo + 13 + + 29 + https://youtu.be/dS3EVb-Xjms + video + + + + + + + 30-Odoo Development - Automated Actions in Odoo + 13 + + 30 + https://youtu.be/dS3EVb-Xjms + video + + + + + + diff --git a/open_academy/data/slide_channel_data_v14.xml b/open_academy/data/slide_channel_data_v14.xml new file mode 100644 index 000000000..29d1e33bf --- /dev/null +++ b/open_academy/data/slide_channel_data_v14.xml @@ -0,0 +1,672 @@ + + + + + + Odoo 14 Development Tutorial + + public + 1 + training + + most_voted + + + Learn how to build a module for Odoo 14 + + + + + + + Odoo Technical Tips + + public + 1 + training + + most_voted + + + Useful Odoo Technical Tips + + + + + 1-How to Create a Website in Odoo + 1 + https://youtu.be/tiVOy_rjoBk + video + + + + + + + 2-How to Create a Dashboard in Odoo + 2 + https://youtu.be/PimIGb0UDFQ + video + + + + + + + 3-How to Create a Custom Module in Odoo + 3 + https://youtu.be/TiJ__I77CyE + video + + + + + + + 4-Forecast Widget in Tree View + 4 + https://youtu.be/qYGakJExHTk + video + + + + + + + 5-Odoo 14 Printed Reports PDF + 5 + https://youtu.be/aEaFPo7eUL8 + video + + + + + + + 6-Odoo 14 Reporting Dashboard + 6 + https://youtu.be/sxXMnym1jRg + video + + + + + + + 7-How to Create New Models in Odoo? + 7 + https://youtu.be/NN6DwPFp0NQ + video + + + + + + + 8-Odoo Security Record Rules + 8 + https://youtu.be/LoXZk52aZVU + video + + + + + + + 9-Translation In Odoo 14 + 9 + https://youtu.be/yG6p4hFwSSM + video + + + + + + + 10-How to add settings for custom module in Odoo + 14 + + 10 + https://youtu.be/3E1B-wAquLc + video + + + + + + + 11-Method Overriding & Super in Python + Odoo + + 11 + https://youtu.be/ZRNaZF4Hvmg + video + + + + + + + 12-How to Create Wizard in Odoo 14 + 12 + https://youtu.be/nzPWPUGf9LQ + video + + + + + + + 13-Web Controller in Odoo + 13 + https://youtu.be/xuIs1B4uueQ + video + + + + + + + 14-Odoo Owl Framework + 14 + https://youtu.be/ZxEhlOoYmWw + video + + + + + + + 15-How to hide a new or existing field inside a + One2Many fields + + 15 + https://youtu.be/4ncw5ltZRiw + video + + + + + + + 16-How to make all fields read-only in a form + + 16 + https://youtu.be/gU0Vwt4SNaM + video + + + + + + + 17-How to secure your Odoo database + 17 + https://youtu.be/jqTHa8BDIIo + video + + + + + + + 18-How to add chatter to your custom module + + 18 + https://youtu.be/-ezlWbg9EsM + video + + + + + + + 19-How to Install Odoo 15 on Ubuntu 20.04 + + 19 + https://youtu.be/mlvJCfxNKDE + video + + + + + + + 20-How to Install Odoo 14 on Ubuntu 20.04 + + 20 + https://youtu.be/ud0z9GB6phs + video + + + + + + + 21-How to Install Odoo 13 on Ubuntu 18.04 + + 21 + https://youtu.be/d4AaniD_UDY + video + + + + + + + 22-How to Configure Odoo 12 on Pycharm Ubuntu + 18 + + 22 + https://youtu.be/qri0ZF8kUhU + video + + + + + + + 23-How to Create Smart Button in Odoo 14 + 23 + https://youtu.be/4_5Ia2wwrNo + video + + + + + + + 1-How to Install Pycharm and Configure + PostgreSQL on Ubuntu + + 1 + https://youtu.be/V8JxrYLX0VM + video + + + + + + + 2-How to Configure Odoo 14 on Pycharm Ubuntu + + 2 + https://youtu.be/UGg1j5RCXKk + video + + + + + + + 3-Building a Module With Menus and Actions in + Odoo 14 + + 3 + https://youtu.be/wwIniIlIrAc + video + + + + + + + 4-Compositions of a Odoo 14 Module + 4 + https://youtu.be/8_M96X4O6XI + video + + + + + + + 5- Structure of a Odoo 14 Module + 5 + https://youtu.be/1F0veP4EJ2Q + video + + + + + + + 6- Creating an Empty Module Structure Using + Scaffold in Odoo 14 + + 6 + https://youtu.be/fY-QQXT2clw + video + + + + + + + 7- Adding Data Files in to Your Odoo 14 module + + 7 + https://youtu.be/ZGBm2X8xS8A + video + + + + + + + 8- Basic Views in Odoo 14 (Tree, Form, and + Search) + + 8 + https://youtu.be/kDqrUCWaYAQ + video + + + + + + + 9-Relations Between Models: Many2One Fields in + Odoo 14 + + 9 + https://youtu.be/g2ug1_WRepk + video + + + + + + + 10-Relations Between Models: One2Many Fields in + Odoo 14 + + 10 + https://youtu.be/BtcciC84bCE + video + + + + + + + 11-Relations Between Models: Many2Many Fields in + Odoo 14 + + 11 + https://youtu.be/_75tecUCgd4 + video + + + + + + + 12-Inheritance - Traditional Class Inheritance + in Odoo 14 + + 12 + https://youtu.be/YZs5fupECxE + video + + + + + + + 13-Inheritance - Traditional Prototype + Inheritance in Odoo 14 + + 13 + https://youtu.be/UsedzCIpre4 + video + + + + + + + 14-Inheritance - Delegation Inheritance in Odoo + 14 + + 14 + https://youtu.be/DXXOLKw3HmE + video + + + + + + + 15-Computed fields and @api.depends in Odoo 14 + + 15 + https://youtu.be/ElpjiSX0Xug + video + + + + + + + 16-Setting Default Value for Fields in Odoo 14 + + 16 + https://youtu.be/9Xju_GFFiWA + video + + + + + + + 17-Onchange mechanism - @api.onchange in Odoo + 14 + + 17 + https://youtu.be/5sLcvZYy78o + video + + + + + + + 18-Model Constraints - Python Constraints in + Odoo 14 + + 18 + https://youtu.be/iGSmGY6ba9I + video + + + + + + + 19-Model Constraints - SQL Constraints in Odoo + 14 + + 19 + https://youtu.be/QcI50BPyiT8 + video + + + + + + + 20-Advanced Views - Tree View Decoration + Attribute in Odoo 14 + + 20 + https://youtu.be/iHDnzSbKeSo + video + + + + + + + 21-Advanced Views - Calendar View in Odoo 14 + + 21 + https://youtu.be/O3VVB0UsN-U + video + + + + + + + 22-Advanced Views - Search View in Odoo 14 + + 22 + https://youtu.be/WtBjxvXC504 + video + + + + + + + 23-Advanced Views - Graph View in Odoo 14 + + 23 + https://youtu.be/qTXbbOrdgAo + video + + + + + + + 24-Advanced Views - Gantt View in Odoo 14 + + 24 + https://youtu.be/kAbSIto2WDU + video + + + + + + + 25-Advanced Views - Kanban View in Odoo 14 + + 25 + https://youtu.be/FIZy-O3T3T4 + video + + + + + + + 26-Odoo Security - Groups and Access Rights + + 26 + https://youtu.be/IF2q7rzjIew + video + + + + + + + 27-Odoo Security - Record Rules + 27 + https://youtu.be/LoXZk52aZVU + video + + + + + + + 28-Odoo wizards - Creating and Launching + 28 + https://youtu.be/f2YesIhCQT4 + video + + + + + + + 29-Odoo Reporting - Printed Report(PDF).mp4 + + 29 + https://youtu.be/aEaFPo7eUL8 + video + + + + + + + 30-Odoo Reporting - Setup a Dashboard + 30 + https://youtu.be/sxXMnym1jRg + video + + + + + + diff --git a/open_academy/data/slide_channel_data_v15.xml b/open_academy/data/slide_channel_data_v15.xml new file mode 100644 index 000000000..935215a0d --- /dev/null +++ b/open_academy/data/slide_channel_data_v15.xml @@ -0,0 +1,391 @@ + + + + + + Odoo 15 Development Tutorial + + public + 1 + training + + most_voted + + + Learn how to build a module for Odoo 15 + + + + + + 1-How to Install Pycharm and Configure + PostgreSQL on Ubuntu + + 1 + https://youtu.be/V8JxrYLX0VM + video + + + + + + + 2-How to Configure Odoo 15 on Pycharm Ubuntu + + 2 + https://youtu.be/eXVLsQhu0wQ + video + + + + + + + 3-Building a Module With Menus and Actions in + Odoo 15 + + 3 + https://youtu.be/TiJ__I77CyE + video + + + + + + + 4-Compositions of a Odoo 15 Module + 4 + https://youtu.be/v9sZdqDDWDs + video + + + + + + + 5- Structure of a Odoo 15 Module + 5 + https://youtu.be/hdYiwlSZavM + video + + + + + + + 6- Creating an Empty Module Structure Using + Scaffold in Odoo 15 + + 6 + https://youtu.be/FXj0-BEfZBo + video + + + + + + + 7- Adding Data Files in to Your Odoo 15 module + + 7 + https://youtu.be/56KHuSyMdIE + video + + + + + + + 8- Basic Views in Odoo 15 (Tree, Form, and + Search) + + 8 + https://youtu.be/oI89tlL5gyo + video + + + + + + + 9-Relations Between Models: Many2One Fields in + Odoo 15 + + 9 + https://youtu.be/qiTbIM8i04w + video + + + + + + + 10-Relations Between Models: One2Many Fields in + Odoo 15 + + 10 + https://youtu.be/HP_s-XlhbfE + video + + + + + + + 11-Relations Between Models: Many2Many Fields in + Odoo 15 + + 11 + https://youtu.be/yvkQBvFKDWk + video + + + + + + + 12-Inheritance - Traditional Class Inheritance + in Odoo 15 + + 12 + https://youtu.be/H_CvJaIcby8 + video + + + + + + + 13-Inheritance - Traditional Prototype + Inheritance in Odoo 15 + + 13 + https://youtu.be/y8wZDo_CQag + video + + + + + + + 14-Inheritance - Delegation Inheritance in Odoo + 15 + + 14 + https://youtu.be/o6YiKsbYZ3k + video + + + + + + + 15-Computed fields and @api.depends in Odoo 15 + + 15 + https://youtu.be/Ls4d_7D_kVE + video + + + + + + + 16-Setting Default Value for Fields in Odoo 15 + + 16 + https://youtu.be/M02XbyiSYpo + video + + + + + + + 17-Onchange mechanism - @api.onchange in Odoo + 15 + + 17 + https://youtu.be/tzWrNVDt244 + video + + + + + + + 18-Model Constraints - Python Constraints in + Odoo 15 + + 18 + https://youtu.be/xoVnGqI_v1s + video + + + + + + + 19-Model Constraints - SQL Constraints in Odoo + 15 + + 19 + https://youtu.be/3hq-7rZl73M + video + + + + + + + 20-Advanced Views - Tree View Decoration + Attribute in Odoo 15 + + 20 + https://youtu.be/DQJwjv76zz0 + video + + + + + + + 21-Advanced Views - Calendar View in Odoo 15 + + 21 + https://youtu.be/pDm9wzPimyA + video + + + + + + + 22-Advanced Views - Search View in Odoo 15 + + 22 + https://youtu.be/fS7qT0dOmPQ + video + + + + + + + 23-Advanced Views - Graph View in Odoo 15 + + 23 + https://youtu.be/v8JYYUASVsU + video + + + + + + + 24-Advanced Views - Gantt View in Odoo 15 + + 24 + https://youtu.be/bsbRLPYj3k0 + video + + + + + + + 25-Advanced Views - Kanban View in Odoo 15 + + 25 + https://youtu.be/lwIyDmTX3uQ + video + + + + + + + 26-Odoo Security - Groups and Access Rights + + 26 + https://youtu.be/pTmv_Nwg2O4 + video + + + + + + + 27-Odoo Security - Record Rules + 27 + https://youtu.be/JS3lxDdOl-Y + video + + + + + + + 28-Odoo wizards - Creating and Launching + 28 + https://youtu.be/CFEOKFKmz7Q + video + + + + + + + 29-Odoo Reporting - Printed Report(PDF).mp4 + + 29 + https://youtu.be/evXKEMFc3FQ + video + + + + + + + 30-Odoo Reporting - Setup a Dashboard + 30 + https://youtu.be/sxXMnym1jRg + video + + + + + + + diff --git a/open_academy/data/slide_channel_data_v16.xml b/open_academy/data/slide_channel_data_v16.xml new file mode 100644 index 000000000..370cbec11 --- /dev/null +++ b/open_academy/data/slide_channel_data_v16.xml @@ -0,0 +1,395 @@ + + + + + + Odoo 16 Development Tutorial + + public + training + + most_voted + + + + Learn the basics of odoo ! + + + + + + 1-How to Install Pycharm and Configure + PostgreSQL on Ubuntu + + 1 + https://www.youtube.com/watch?v=V8JxrYLX0VM + video + + + + + + + 2-How to Configure Odoo 16 on Pycharm Ubuntu + + 2 + https://www.youtube.com/watch?v=Yt4667AthYc + video + + + + + + + 3-Building a Module With Menus and Actions in + Odoo 16 + + 3 + https://youtu.be/TiJ__I77CyE + video + + + + + + + 4-Compositions of a Odoo 16 Module + 4 + https://www.youtube.com/watch?app=desktop&v=AuFXGMRokbs + video + + + + + + + 5- Structure of a Odoo 16 Module + 5 + https://www.youtube.com/watch?v=-wWyEAEzb_g + video + + + + + + + 6- Creating an Empty Module Structure Using + Scaffold in Odoo 16 + + 6 + https://youtu.be/FXj0-BEfZBo + video + + + + + + + 7- Adding Data Files in to Your Odoo 16 module + + 7 + https://www.youtube.com/watch?v=PsPc1EGeFtI + video + + + + + + + 8- Basic Views in Odoo 16 (Tree, Form, and + Search) + + 8 + https://www.youtube.com/watch?app=desktop&v=QEYuRAP_pS4 + video + + + + + + + 9-Relations Between Models: Many2One Fields in + Odoo 16 + + 9 + https://www.youtube.com/watch?v=17qp5jSBqUo + video + + + + + + + 10-Relations Between Models: One2Many Fields in + Odoo 16 + + 10 + https://youtu.be/HP_s-XlhbfE + video + + + + + + + 11-Relations Between Models: Many2Many Fields in + Odoo 16 + + 11 + https://www.youtube.com/watch?v=MOVqzD1JL60 + video + + + + + + + 12-Inheritance - Traditional Class Inheritance + in Odoo 16 + + 12 + https://www.youtube.com/watch?v=QDvYq1FqELQ + video + + + + + + + 13-Inheritance - Traditional Prototype + Inheritance in Odoo 16 + + 13 + https://www.youtube.com/watch?v=eqw0oMqrato + video + + + + + + + 14-Inheritance - Delegation Inheritance in Odoo + 16 + + 14 + https://www.youtube.com/watch?v=PDIxipYNkhU + video + + + + + + + 15-Computed fields and @api.depends in Odoo 16 + + 15 + https://www.youtube.com/watch?v=VmP3qph23oo + video + + + + + + + 16-Setting Default Value for Fields in Odoo 16 + + 16 + https://www.youtube.com/watch?v=hUKf2z5Hd3o + video + + + + + + + 17-Onchange mechanism - @api.onchange in Odoo + 16 + + 17 + https://www.youtube.com/watch?v=jHBUoXuZJTE + video + + + + + + + 18-Model Constraints - Python Constraints in + Odoo 16 + + 18 + https://www.youtube.com/watch?v=jk_-FRGWryI + video + + + + + + + 19-Model Constraints - SQL Constraints in Odoo + 16 + + 19 + https://www.youtube.com/watch?v=T8pZrHzQue0 + video + + + + + + + 20-Advanced Views - Tree View Decoration + Attribute in Odoo 16 + + 20 + https://www.youtube.com/watch?v=1s0xlh-d-KI + video + + + + + + + 21-Advanced Views - Calendar View in Odoo 16 + + 21 + https://www.youtube.com/watch?v=xo6XLU6PpAE + video + + + + + + + 22-Advanced Views - Search View in Odoo 16 + + 22 + https://www.youtube.com/watch?v=BaHwSbcCCvk + video + + + + + + + 23-Advanced Views - Graph View in Odoo 16 + + 23 + https://www.youtube.com/watch?v=QSgOV0Jv_s4 + video + + + + + + + 24-Advanced Views - Gantt View in Odoo 16 + + 24 + https://youtu.be/bsbRLPYj3k0 + video + + + + + + + 25-Advanced Views - Kanban View in Odoo 16 + + 25 + https://www.youtube.com/watch?v=dELLqnol9x4 + video + + + + + + + 26-Odoo Security - Groups and Access Rights + + 26 + https://www.youtube.com/watch?v=PmSepSujsBk + video + + + + + + + 27-Odoo Security - Record Rules + 27 + https://www.youtube.com/watch?v=lRvwYCgQwFQ + video + + + + + + + 28-Odoo wizards - Creating and Launching + 28 + https://www.youtube.com/watch?v=66bJa764dQU + video + + + + + + + 29-Odoo Reporting - Printed Report(PDF).mp4 + + 29 + https://youtu.be/evXKEMFc3FQ + video + + + + + + + 30-Odoo Reporting - Setup a Dashboard + 30 + https://youtu.be/sxXMnym1jRg + video + + + + + + diff --git a/open_academy/demo/openacademy_demo.xml b/open_academy/demo/openacademy_demo.xml new file mode 100644 index 000000000..aa4415739 --- /dev/null +++ b/open_academy/demo/openacademy_demo.xml @@ -0,0 +1,27 @@ + + + + + + Course 0 + Course 0's description Can have multiple + lines + + + + + Course 1 + Course 1's description + + + + Course 2 + Course 2's description + + + + Course 3 + Course 3's description + + + diff --git a/open_academy/doc/RELEASE_NOTES.md b/open_academy/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..af2cb1327 --- /dev/null +++ b/open_academy/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 09.1.2023 +#### Version 16.0.1.0.0 +#### ADD + +Initial Commit For Odoo 16 Development Tutorials diff --git a/open_academy/models/__init__.py b/open_academy/models/__init__.py new file mode 100644 index 000000000..2312b3cfc --- /dev/null +++ b/open_academy/models/__init__.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Dhanya Babu () +# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################### +from . import open_academy_course +from . import open_academy_session +from . import res_partner diff --git a/open_academy/models/open_academy_course.py b/open_academy/models/open_academy_course.py new file mode 100644 index 000000000..53d912b2a --- /dev/null +++ b/open_academy/models/open_academy_course.py @@ -0,0 +1,45 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Dhanya Babu () +# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################### +from odoo import fields, models + + +class OpenAcademyCourse(models.Model): + """creating open academy courses""" + _name = 'openacademy.course' + _description = "OpenAcademy Courses" + + name = fields.Char(string="Title", required=True, help='Name of the course') + description = fields.Text(string='Description', help='Description of the course') + responsible_id = fields.Many2one('res.users', string='Responsible', + ondelete='set null', index=True, + help='Responsible user name') + session_ids = fields.One2many('openacademy.session', 'course_id', + string="Sessions", help='Sessions') + _sql_constraints = [ + ('name_description_check', + 'CHECK(name != description)', + "The title of the course should not be the description"), + ('name_unique', + 'UNIQUE(name)', + "The course title must be unique"), + ] diff --git a/open_academy/models/open_academy_session.py b/open_academy/models/open_academy_session.py new file mode 100644 index 000000000..ec31cd63f --- /dev/null +++ b/open_academy/models/open_academy_session.py @@ -0,0 +1,124 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Dhanya Babu () +# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################### +from datetime import timedelta +from odoo import api, exceptions, fields, models, _ + + +class OpenAcademySession(models.Model): + """creating sessions""" + _name = 'openacademy.session' + _description = "OpenAcademy Sessions" + + name = fields.Char(string='Name', required=True, + help='Name of the session') + start_date = fields.Date(string='Start Date', default=fields.Date.today(), + help='Start date of the session') + duration = fields.Float(string='Duration', digits=(6, 2), + help="Duration in days") + seats = fields.Integer(string="Number of seats", help='Total seats') + instructor_id = fields.Many2one('res.partner', string='Instructor', + help='Instructor name') + course_id = fields.Many2one('openacademy.course', string='Course', + ondelete='cascade', required=True, + help='Course name') + attendee_ids = fields.Many2many('res.partner', string="Attendees", + help='Attendees') + active = fields.Boolean(string='Active', default=True, + help='Check this box to indicate if' + ' the session is currently active.') + taken_seats = fields.Float(string="Taken seats", + compute='_compute_taken_seats', + help='Taken seats') + end_date = fields.Date(string="End Date", store=True, + compute='_compute_get_end_date', + inverse='_compute_set_end_date', help='End date') + attendees_count = fields.Integer( + string="Attendees count", compute='_compute_attendees_count', + store=True, help='Attendees count') + color = fields.Integer(string='Colour', help='Colour') + + @api.depends('seats', 'attendee_ids') + def _compute_taken_seats(self): + """Computing number of seats""" + for record in self: + if not record.seats: + record.taken_seats = 0.0 + else: + record.taken_seats = 100.0 * len( + record.attendee_ids) / record.seats + + @api.onchange('seats', 'attendee_ids') + def _onchange_seats(self): + """verifying number of seats + If number of seats less than zero it will display warning""" + if self.seats < 0: + return { + 'warning': { + 'title': _("Incorrect 'seats' value"), + 'message': _( + "The number of available seats may not be negative"), + }, + } + if self.seats < len(self.attendee_ids): + return { + 'warning': { + 'title': "Too many attendees", + 'message': "Increase seats or remove excess attendees", + }, + } + + def _compute_get_end_date(self): + """compute the value of end_date based on the values of + start_date and duration""" + for record in self: + if not (record.start_date and record.duration): + record.end_date = record.start_date + continue + # Add duration to start_date, but: Monday + 5 days = Saturday, so + # subtract one second to get on Friday instead + duration = timedelta(days=record.duration, seconds=-1) + record.end_date = record.start_date + duration + + def _compute_set_end_date(self): + """compute the value of duration """ + for record in self: + if not (record.start_date and record.end_date): + continue + # Compute the difference between dates, + # but: Friday - Monday = 4 days, + # so add one day to get 5 days instead + record.duration = (record.end_date - record.start_date).days + 1 + + @api.depends('attendee_ids') + def _compute_attendees_count(self): + """compute number of attendees""" + for record in self: + record.attendees_count = len(record.attendee_ids) + + @api.constrains('instructor_id', 'attendee_ids') + def _check_instructor_not_in_attendees(self): + """Check instructor is in attendee""" + for record in self: + if record.instructor_id and record.instructor_id in record.attendee_ids: + raise exceptions.ValidationError( + "A session's instructor can't be an attendee") diff --git a/open_academy/models/res_partner.py b/open_academy/models/res_partner.py new file mode 100644 index 000000000..c3e75f298 --- /dev/null +++ b/open_academy/models/res_partner.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Dhanya Babu () +# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################### +from odoo import fields, models + + +class ResPartner(models.Model): + """Add a new column to the res.partner model, + by default partners are not""" + _inherit = 'res.partner' + + instructor = fields.Boolean(string="Instructor", default=False, + help='Instructor') + session_ids = fields.Many2many('openacademy.session', + string="Attended Sessions", + readonly=True, help='Session id') + diff --git a/open_academy/report/openacademy_session_reports.xml b/open_academy/report/openacademy_session_reports.xml new file mode 100644 index 000000000..7af75a573 --- /dev/null +++ b/open_academy/report/openacademy_session_reports.xml @@ -0,0 +1,44 @@ + + + + + Session Report + openacademy.session + qweb-pdf + open_academy.report_session_view + open_academy.report_session + + report + + + + + + diff --git a/open_academy/security/ir.model.access.csv b/open_academy/security/ir.model.access.csv new file mode 100644 index 000000000..c767f8717 --- /dev/null +++ b/open_academy/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_openacademy_course_manager,access.openacdemy.course,model_openacademy_course,openacademy_course_group_manager,1,1,1,1 +access_openacademy_session_manager,access.openacademy.session.manager,model_openacademy_session,openacademy_course_group_manager,1,1,1,1 +access_openacademy_course_read_all,access.openacademy.course.all,model_openacademy_course,base.group_user,1,0,0,0 +access_openacademy_session_read_all,access.openacademy.session.all,model_openacademy_session,base.group_user,1,0,0,0 +access_openacademy_wizard_manager,access.openacademy.wizard.manager,model_openacademy_wizard,openacademy_course_group_manager,1,1,1,1 diff --git a/open_academy/security/openacademy_groups.xml b/open_academy/security/openacademy_groups.xml new file mode 100644 index 000000000..35d570b24 --- /dev/null +++ b/open_academy/security/openacademy_groups.xml @@ -0,0 +1,7 @@ + + + + + OpenAcademy / Manager + + diff --git a/open_academy/security/openacademy_security.xml b/open_academy/security/openacademy_security.xml new file mode 100644 index 000000000..67d29ce82 --- /dev/null +++ b/open_academy/security/openacademy_security.xml @@ -0,0 +1,20 @@ + + + + + Only Responsible can modify Course + + + + + + + + ['|', ('responsible_id','=',False), + ('responsible_id','=',user.id)] + + + diff --git a/open_academy/static/description/assets/icons/check.png b/open_academy/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/open_academy/static/description/assets/icons/check.png differ diff --git a/open_academy/static/description/assets/icons/chevron.png b/open_academy/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/open_academy/static/description/assets/icons/chevron.png differ diff --git a/open_academy/static/description/assets/icons/cogs.png b/open_academy/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/open_academy/static/description/assets/icons/cogs.png differ diff --git a/open_academy/static/description/assets/icons/consultation.png b/open_academy/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/open_academy/static/description/assets/icons/consultation.png differ diff --git a/open_academy/static/description/assets/icons/ecom-black.png b/open_academy/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/open_academy/static/description/assets/icons/ecom-black.png differ diff --git a/open_academy/static/description/assets/icons/education-black.png b/open_academy/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/open_academy/static/description/assets/icons/education-black.png differ diff --git a/open_academy/static/description/assets/icons/hotel-black.png b/open_academy/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/open_academy/static/description/assets/icons/hotel-black.png differ diff --git a/open_academy/static/description/assets/icons/license.png b/open_academy/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/open_academy/static/description/assets/icons/license.png differ diff --git a/open_academy/static/description/assets/icons/lifebuoy.png b/open_academy/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/open_academy/static/description/assets/icons/lifebuoy.png differ diff --git a/open_academy/static/description/assets/icons/manufacturing-black.png b/open_academy/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/open_academy/static/description/assets/icons/manufacturing-black.png differ diff --git a/open_academy/static/description/assets/icons/pos-black.png b/open_academy/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/open_academy/static/description/assets/icons/pos-black.png differ diff --git a/open_academy/static/description/assets/icons/puzzle.png b/open_academy/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/open_academy/static/description/assets/icons/puzzle.png differ diff --git a/open_academy/static/description/assets/icons/restaurant-black.png b/open_academy/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/open_academy/static/description/assets/icons/restaurant-black.png differ diff --git a/open_academy/static/description/assets/icons/service-black.png b/open_academy/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/open_academy/static/description/assets/icons/service-black.png differ diff --git a/open_academy/static/description/assets/icons/trading-black.png b/open_academy/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/open_academy/static/description/assets/icons/trading-black.png differ diff --git a/open_academy/static/description/assets/icons/training.png b/open_academy/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/open_academy/static/description/assets/icons/training.png differ diff --git a/open_academy/static/description/assets/icons/update.png b/open_academy/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/open_academy/static/description/assets/icons/update.png differ diff --git a/open_academy/static/description/assets/icons/user.png b/open_academy/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/open_academy/static/description/assets/icons/user.png differ diff --git a/open_academy/static/description/assets/icons/wrench.png b/open_academy/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/open_academy/static/description/assets/icons/wrench.png differ diff --git a/open_academy/static/description/assets/misc/categories.png b/open_academy/static/description/assets/misc/categories.png new file mode 100644 index 000000000..bedf1e0b1 Binary files /dev/null and b/open_academy/static/description/assets/misc/categories.png differ diff --git a/open_academy/static/description/assets/misc/check-box.png b/open_academy/static/description/assets/misc/check-box.png new file mode 100644 index 000000000..42caf24b9 Binary files /dev/null and b/open_academy/static/description/assets/misc/check-box.png differ diff --git a/open_academy/static/description/assets/misc/compass.png b/open_academy/static/description/assets/misc/compass.png new file mode 100644 index 000000000..d5fed8faa Binary files /dev/null and b/open_academy/static/description/assets/misc/compass.png differ diff --git a/open_academy/static/description/assets/misc/corporate.png b/open_academy/static/description/assets/misc/corporate.png new file mode 100644 index 000000000..2eb13edbf Binary files /dev/null and b/open_academy/static/description/assets/misc/corporate.png differ diff --git a/open_academy/static/description/assets/misc/customer-support.png b/open_academy/static/description/assets/misc/customer-support.png new file mode 100644 index 000000000..79efc72ed Binary files /dev/null and b/open_academy/static/description/assets/misc/customer-support.png differ diff --git a/open_academy/static/description/assets/misc/cybrosys-logo.png b/open_academy/static/description/assets/misc/cybrosys-logo.png new file mode 100644 index 000000000..cc3cc0ccf Binary files /dev/null and b/open_academy/static/description/assets/misc/cybrosys-logo.png differ diff --git a/open_academy/static/description/assets/misc/features.png b/open_academy/static/description/assets/misc/features.png new file mode 100644 index 000000000..b41769f77 Binary files /dev/null and b/open_academy/static/description/assets/misc/features.png differ diff --git a/open_academy/static/description/assets/misc/logo.png b/open_academy/static/description/assets/misc/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/open_academy/static/description/assets/misc/logo.png differ diff --git a/open_academy/static/description/assets/misc/pictures.png b/open_academy/static/description/assets/misc/pictures.png new file mode 100644 index 000000000..56d255fe9 Binary files /dev/null and b/open_academy/static/description/assets/misc/pictures.png differ diff --git a/open_academy/static/description/assets/misc/pie-chart.png b/open_academy/static/description/assets/misc/pie-chart.png new file mode 100644 index 000000000..426e05244 Binary files /dev/null and b/open_academy/static/description/assets/misc/pie-chart.png differ diff --git a/open_academy/static/description/assets/misc/right-arrow.png b/open_academy/static/description/assets/misc/right-arrow.png new file mode 100644 index 000000000..730984a06 Binary files /dev/null and b/open_academy/static/description/assets/misc/right-arrow.png differ diff --git a/open_academy/static/description/assets/misc/star.png b/open_academy/static/description/assets/misc/star.png new file mode 100644 index 000000000..2eb9ab29f Binary files /dev/null and b/open_academy/static/description/assets/misc/star.png differ diff --git a/open_academy/static/description/assets/misc/support.png b/open_academy/static/description/assets/misc/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/open_academy/static/description/assets/misc/support.png differ diff --git a/open_academy/static/description/assets/misc/whatsapp.png b/open_academy/static/description/assets/misc/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/open_academy/static/description/assets/misc/whatsapp.png differ diff --git a/open_academy/static/description/assets/modules/1.png b/open_academy/static/description/assets/modules/1.png new file mode 100644 index 000000000..359d3e4d6 Binary files /dev/null and b/open_academy/static/description/assets/modules/1.png differ diff --git a/open_academy/static/description/assets/modules/2.png b/open_academy/static/description/assets/modules/2.png new file mode 100644 index 000000000..5c56f0bcd Binary files /dev/null and b/open_academy/static/description/assets/modules/2.png differ diff --git a/open_academy/static/description/assets/modules/3.png b/open_academy/static/description/assets/modules/3.png new file mode 100644 index 000000000..c1f30354a Binary files /dev/null and b/open_academy/static/description/assets/modules/3.png differ diff --git a/open_academy/static/description/assets/modules/4.png b/open_academy/static/description/assets/modules/4.png new file mode 100644 index 000000000..33372bdc1 Binary files /dev/null and b/open_academy/static/description/assets/modules/4.png differ diff --git a/open_academy/static/description/assets/modules/5.gif b/open_academy/static/description/assets/modules/5.gif new file mode 100644 index 000000000..d0f36b007 Binary files /dev/null and b/open_academy/static/description/assets/modules/5.gif differ diff --git a/open_academy/static/description/assets/modules/6.png b/open_academy/static/description/assets/modules/6.png new file mode 100644 index 000000000..29d072e4b Binary files /dev/null and b/open_academy/static/description/assets/modules/6.png differ diff --git a/open_academy/static/description/assets/screenshots/Screenshot(18).png b/open_academy/static/description/assets/screenshots/Screenshot(18).png new file mode 100644 index 000000000..c2cf2eed7 Binary files /dev/null and b/open_academy/static/description/assets/screenshots/Screenshot(18).png differ diff --git a/open_academy/static/description/assets/screenshots/Screenshot(19).png b/open_academy/static/description/assets/screenshots/Screenshot(19).png new file mode 100644 index 000000000..047335288 Binary files /dev/null and b/open_academy/static/description/assets/screenshots/Screenshot(19).png differ diff --git a/open_academy/static/description/assets/screenshots/Screenshot(20).png b/open_academy/static/description/assets/screenshots/Screenshot(20).png new file mode 100644 index 000000000..60ba66ff2 Binary files /dev/null and b/open_academy/static/description/assets/screenshots/Screenshot(20).png differ diff --git a/open_academy/static/description/assets/screenshots/courses_open.png b/open_academy/static/description/assets/screenshots/courses_open.png new file mode 100644 index 000000000..44c57d787 Binary files /dev/null and b/open_academy/static/description/assets/screenshots/courses_open.png differ diff --git a/open_academy/static/description/assets/screenshots/hero.gif b/open_academy/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..15b2bb70c Binary files /dev/null and b/open_academy/static/description/assets/screenshots/hero.gif differ diff --git a/open_academy/static/description/assets/screenshots/open_menu.png b/open_academy/static/description/assets/screenshots/open_menu.png new file mode 100644 index 000000000..50c255794 Binary files /dev/null and b/open_academy/static/description/assets/screenshots/open_menu.png differ diff --git a/open_academy/static/description/assets/screenshots/session_atten_open.png b/open_academy/static/description/assets/screenshots/session_atten_open.png new file mode 100644 index 000000000..860107742 Binary files /dev/null and b/open_academy/static/description/assets/screenshots/session_atten_open.png differ diff --git a/open_academy/static/description/assets/screenshots/session_form_1.png b/open_academy/static/description/assets/screenshots/session_form_1.png new file mode 100644 index 000000000..404ba8ae5 Binary files /dev/null and b/open_academy/static/description/assets/screenshots/session_form_1.png differ diff --git a/open_academy/static/description/assets/screenshots/session_form_2.png b/open_academy/static/description/assets/screenshots/session_form_2.png new file mode 100644 index 000000000..0f7f5d644 Binary files /dev/null and b/open_academy/static/description/assets/screenshots/session_form_2.png differ diff --git a/open_academy/static/description/assets/screenshots/session_open_form.png b/open_academy/static/description/assets/screenshots/session_open_form.png new file mode 100644 index 000000000..9f60bfd01 Binary files /dev/null and b/open_academy/static/description/assets/screenshots/session_open_form.png differ diff --git a/open_academy/static/description/banner.png b/open_academy/static/description/banner.png new file mode 100644 index 000000000..4f0d6e0bd Binary files /dev/null and b/open_academy/static/description/banner.png differ diff --git a/open_academy/static/description/icon.png b/open_academy/static/description/icon.png new file mode 100644 index 000000000..2fe9e435e Binary files /dev/null and b/open_academy/static/description/icon.png differ diff --git a/open_academy/static/description/index.html b/open_academy/static/description/index.html new file mode 100644 index 000000000..087f9fd3a --- /dev/null +++ b/open_academy/static/description/index.html @@ -0,0 +1,751 @@ +
+ +
+ +
+
+ Community +
+
+ Enterprise +
+
+ Odoo.sh +
+
+
+ +
+
+
+ + + +

+ Odoo 16 Development Tutorials

+

+ Our Unique Odoo Development Tutorial Course will cover the + basics of Odoo Development. You + will learn how to develop and configure odoo, based on + specific requirements.

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

+ Explore This + Module

+
+ + + + +
+
+ +
+

+ Overview +

+
+
+
+ This module helps to cover all the + basics of Odoo Development. +
+
+ + + +
+
+ +
+

+ Features +

+
+
+
+
+ + Community & Enterprise + Support. +
+
+ + Odoo Technical + Tips. +
+
+ + Odoo 16 Development Tutorial + +
+
+ + Odoo 15 Development Tutorial + . +
+ +
+ + Odoo 14 Development Tutorial + . +
+ +
+ + + Odoo 13 Development Tutorial + +
+
+ + Learn to configure your Odoo project. + +
+
+ + Understand the components and structure of a Odoo module.. +
+
+ + + Design and create modules . +
+
+ + + Relation between models in Odoo(One2Many, Many2One and Many2Many).. +
+
+ + + Understand Inheritance aspects of Odoo (Class, Prototype and Delegation inheritances). +
+
+ + + How to modify existing views(View inheritance). +
+
+
+ + Learn advanced + views of the platform (Tree, Calander. Search, + Gantt, Pivot, Graph and Kanban views). +
+
+ + Understand + security of Odoo (Groups, Access rights, Record + rules) +
+ +
+ + + +
+
+ +
+

+ Screenshots +

+
+
+
+

+

+ +
+
+

+

+
+
+
+

+

+ +
+ + + + + + + +
+

+ We can create Courses fro open academy module +

+
+
+
+

+ Form view of Course +

+
+
+
+

+ +

+
+
+
+

+ We can create Sessions from open academy module,This is the Form + view of Course +

+
+
+
+

+ We can See the Session details in partner module. + +

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

+ Related + Products +

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

+ Our Services +

+
+ +
+
+
+
+ +
+
+ Odoo + Customization
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Support
+
+ + +
+
+ +
+
+ Hire + Odoo + Developer
+
+ +
+
+ +
+
+ Odoo + Integration
+
+ +
+
+ +
+
+ Odoo + Migration
+
+ + +
+
+ +
+
+ Odoo + Consultancy
+
+ +
+
+ +
+
+ Odoo + Implementation
+
+ +
+
+ +
+
+ Odoo + Licensing Consultancy
+
+
+ +
+ + + + + +
+
+ +
+

+ Our + Industries +

+
+ +
+
+
+
+ +
+ Trading +
+

+ Easily procure + and + sell your products

+
+
+ +
+
+ +
+ POS +
+

+ Easy + configuration + and convivial experience

+
+
+ +
+
+ +
+ Education +
+

+ A platform for + educational management

+
+
+ +
+
+ +
+ Manufacturing +
+

+ Plan, track and + schedule your operations

+
+
+ +
+
+ +
+ E-commerce & Website +
+

+ Mobile + friendly, + awe-inspiring product pages

+
+
+ +
+
+ +
+ Service Management +
+

+ Keep track of + services and invoice

+
+
+ +
+
+ +
+ Restaurant +
+

+ Run your bar or + restaurant methodically

+
+
+ +
+
+ +
+ Hotel Management +
+

+ An + all-inclusive + hotel management application

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

+ Support +

+
+
+
+
+
+
+ +
+
+

Need Help?

+

Got questions or need help? + Get in touch.

+ +

+ odoo@cybrosys.com

+
+
+
+
+
+
+
+ +
+
+

WhatsApp

+

Say hi to us on WhatsApp!

+ +

+ +91 86068 + 27707

+
+
+
+
+
+
+
+ +
+
+
+ \ No newline at end of file diff --git a/open_academy/views/board_views.xml b/open_academy/views/board_views.xml new file mode 100644 index 000000000..8d1396b76 --- /dev/null +++ b/open_academy/views/board_views.xml @@ -0,0 +1,47 @@ + + + + + session.dashboard.view.form + board.board + form + +
+ + + + + + + + + +
+
+
+ + + + Session Dashboard + board.board + form + menu + + + + + +
diff --git a/open_academy/views/open_academy_course_views.xml b/open_academy/views/open_academy_course_views.xml new file mode 100644 index 000000000..570e57f41 --- /dev/null +++ b/open_academy/views/open_academy_course_views.xml @@ -0,0 +1,112 @@ + + + + + Courses + openacademy.course + tree,form + + + + + + + + openacademy.course.view.list + openacademy.course + + + + + + + + + + + openacademy.course.view.form + openacademy.course + +
+ + + + + + + + + + + + + + + + + + + +
+
+
+ + + + + + openacademy.course.search.view + openacademy.course + + + + + + + + + + + + + + + + + Courses + openacademy.course + tree,form + + +

Create the first course +

+
+
+ + + + + + + + + + + + +
\ No newline at end of file diff --git a/open_academy/views/open_academy_session_views.xml b/open_academy/views/open_academy_session_views.xml new file mode 100644 index 000000000..265b103a7 --- /dev/null +++ b/open_academy/views/open_academy_session_views.xml @@ -0,0 +1,159 @@ + + + + + openacademy.session.view.tree + openacademy.session + + + + + + + + + + + + + openacademy.session.view.form + openacademy.session + +
+ + + + + + + + + + + + + + + + +
+
+
+ + + + openacdemy.session.view.calendar + openacademy.session + + + + + + + + + + openacademy.session.view.gantt + openacademy.session + + + + + + + + + openacademy.session.view.graph + openacademy.session + + + + + + + + + + + openacademy.session.view.kanban + openacademy.session + + + + + +
+
+ +
+ +
+
+
+
+ + Session name: + +
+ Start date: + +
+ duration: + +
+
+
+
+
+
+
+ + + + Sessions + openacademy.session + tree,form,calendar,gantt,graph,kanban + + + + + Attendees by course + openacademy.session + graph + + + + + + Sessions + openacademy.session + calendar + + + +
diff --git a/open_academy/views/res_partner_views.xml b/open_academy/views/res_partner_views.xml new file mode 100644 index 000000000..4425e47d7 --- /dev/null +++ b/open_academy/views/res_partner_views.xml @@ -0,0 +1,29 @@ + + + + + + res.partner.inherit.view.form.open.academy + + res.partner + + + + + + + + + + + + + + + + Contacts + res.partner + tree,form + + + diff --git a/open_academy/wizard/__init__.py b/open_academy/wizard/__init__.py new file mode 100644 index 000000000..0194f07c1 --- /dev/null +++ b/open_academy/wizard/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Dhanya Babu () +# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################### +from . import openacademy_wizard diff --git a/open_academy/wizard/openacademy_wizard.py b/open_academy/wizard/openacademy_wizard.py new file mode 100644 index 000000000..74f9026de --- /dev/null +++ b/open_academy/wizard/openacademy_wizard.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +############################################################################### +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Dhanya Babu () +# +# This program is free software: you can modify +# it under the terms of the GNU Affero General Public License (AGPL) as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################### +from odoo import fields, models + + +class OpenacademyWizard(models.TransientModel): + """This model represents a wizard that allows users to quickly register + attendees to selected sessions.The wizard is triggered from a session 's + form view, and it allows the user to select one or more sessions and add + attendees to them in a single step.""" + _name = 'openacademy.wizard' + _description = "Wizard: Quick Registration of Attendees to Sessions" + + def _default_sessions(self): + """this method is used to get the sessions + that are currently selected in the view""" + return self.env['openacademy.session'].browse( + self._context.get('active_ids')) + + session_ids = fields.Many2many('openacademy.session', + string="Session", required=True, + default=_default_sessions, help='Session') + attendee_ids = fields.Many2many('res.partner', string="Attendees", + help='Attendees') + + def subscribe(self): + """This function subscribes attendees to the selected sessions""" + for session in self.session_ids: + session.attendee_ids |= self.attendee_ids + return {} diff --git a/open_academy/wizard/openacademy_wizard_views.xml b/open_academy/wizard/openacademy_wizard_views.xml new file mode 100644 index 000000000..4041a2adf --- /dev/null +++ b/open_academy/wizard/openacademy_wizard_views.xml @@ -0,0 +1,32 @@ + + + + + openacademy.wizard.view.form + openacademy.wizard + +
+ + + + +
+
+
+
+
+ + + + Add Attendees + openacademy.wizard + form + new + + +