diff --git a/music_school_institute/README.rst b/music_school_institute/README.rst new file mode 100644 index 000000000..44600d4b7 --- /dev/null +++ b/music_school_institute/README.rst @@ -0,0 +1,41 @@ +.. image:: https://img.shields.io/badge/license-LGPL--3-blue.svg + :target: https://www.gnu.org/licenses/lgpl-3.0-standalone.html + :alt: License: lGPL-3 + +Music School Institute +======================= +* A Complete Solution for Music School Institute. + +Configuration +============= +* No additional configuration is needed. + +License +------- +General Public License, Version 3 (LGPL v3). +(https://www.gnu.org/licenses/lgpl-3.0-standalone.html) + +Company +------- +* `Cybrosys Techno Solutions `__ + +Credits +------- +* Developer: (V16) Vishnu kp, 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 +========== +.. image:: https://cybrosys.com/images/logo.png + :target: https://cybrosys.com +This module is maintained by Cybrosys Technologies. + +For support and more information, please visit https://www.cybrosys.com + +Further information +=================== +HTML Description: ``__ + diff --git a/music_school_institute/__init__.py b/music_school_institute/__init__.py new file mode 100644 index 000000000..ac072b089 --- /dev/null +++ b/music_school_institute/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Vishnu K P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import models diff --git a/music_school_institute/__manifest__.py b/music_school_institute/__manifest__.py new file mode 100644 index 000000000..fcbd6be44 --- /dev/null +++ b/music_school_institute/__manifest__.py @@ -0,0 +1,51 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Vishnu K P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +{ + "name": "Music School Institute", + "version": "16.0.1.0.0", + "category": "Industries", + "summary": "Efficiently manage teachers, students, classes, attendance, " + "fees, and more with our Music School Management module. ", + "description": """Simplify music school operations with this comprehensive + Odoo module. Manage teachers and students, track attendance, handle fees, + and plan events effortlessly. Stay organized and focus on nurturing + musical talent.""", + "author": "Cybrosys Techno Solutions", + "company": "Cybrosys Techno Solutions", + "maintainer": "Cybrosys Techno Solutions", + "website": "https://www.cybrosys.com", + "depends": ["base", "stock", "sale", "calendar", "event", "hr"], + "data": [ + "security/ir.model.access.csv", + "views/class_type_views.xml", + "views/res_partner_views.xml", + "views/product_template_views.xml", + "views/hr_employee_views.xml", + "views/class_lesson_views.xml", + "views/students_attendance_views.xml", + ], + "license": "LGPL-3", + "images": ["static/description/banner.jpg"], + "installable": True, + "auto_install": False, + "application": False, +} diff --git a/music_school_institute/doc/RELEASE_NOTES.md b/music_school_institute/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..b90ffe5f3 --- /dev/null +++ b/music_school_institute/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 13.12.2023 +#### Version 16.0.1.0.0 +##### ADD + +- Initial Commit for Music School Institute diff --git a/music_school_institute/models/__init__.py b/music_school_institute/models/__init__.py new file mode 100644 index 000000000..9bb5db7a4 --- /dev/null +++ b/music_school_institute/models/__init__.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Vishnu K P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import class_lesson +from . import class_type +from . import hr_employee +from . import product_template +from . import res_partner +from . import service_type +from . import students_attendance diff --git a/music_school_institute/models/class_lesson.py b/music_school_institute/models/class_lesson.py new file mode 100644 index 000000000..f1f76488b --- /dev/null +++ b/music_school_institute/models/class_lesson.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Vishnu K P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################## +from odoo import fields, models + + +class ClassLesson(models.Model): + """Class is used to represent the lessons.""" + _name = 'class.lesson' + _description = 'Class Lesson' + + name = fields.Char(string='Name', help='Name of the lesson.') + hours = fields.Char(string='Hours', help='Hours of the lesson.') + teacher_id = fields.Many2one('hr.employee', string='Teacher', + domain=[('teacher', '=', True)], + help='Teacher assigned to the lesson.') + relation_id = fields.Many2one('class.type', + string='Relation ID', + help='Relation to the corresponding class.') diff --git a/music_school_institute/models/class_type.py b/music_school_institute/models/class_type.py new file mode 100644 index 000000000..23d2dfb21 --- /dev/null +++ b/music_school_institute/models/class_type.py @@ -0,0 +1,135 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Vishnu K P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from datetime import timedelta +from odoo import api, fields, models + + +class ClassType(models.Model): + """Class is used to create the music class records.""" + _name = 'class.type' + _description = 'Class Type' + + name = fields.Char(string='Name', help='Class name.') + from_date = fields.Date(string='From', help='Class starting date.') + to_date = fields.Date(string='To', help='Class ending date.') + duration = fields.Integer(string='Duration', compute='_compute_duration', + store=True, help='Duration of the class.') + service_id = fields.Many2one('service.type', string='Services', + help='Type of service.') + instrument_id = fields.Many2one('product.product', + String='Instrument', + domain=[('music_instrument', '=', True)], + help='Instrument used in the music class.') + teacher_id = fields.Many2one('hr.employee', string='Teacher', + domain=[('teacher', '=', True)], + help='Teacher name.') + location = fields.Char(string='Location', help='Location of the class.') + repeats = fields.Selection(selection=[('weekly', 'Weekly'), + ('monthly', 'Monthly')], + string='Repeats', + help='Repeated days per week.') + state = fields.Selection( + selection=[('draft', 'Draft'), ('started', 'Started'), + ('completed', 'Completed'), + ('invoice', 'Invoiced'), ('canceled', 'Canceled')], + default='draft', help='State of the class.') + lesson_ids = fields.One2many('class.lesson', + 'relation_id', + String='Class Lessons', + help='Daily class lessons records.') + student_ids = fields.Many2many('res.partner', string='Student', + domain=[('student', '=', True)], + String='Student ID', + help='Student who joined in the class.') + order_count = fields.Integer(compute='_compute_order_count', + String='Order Count', + help='Total count of the invoice.') + sunday = fields.Boolean(string='Sunday', help='Mark the day as a workday.') + monday = fields.Boolean(string='Monday', help='Mark the day as a workday.') + tuesday = fields.Boolean(string='Tuesday', + help='Mark the day as a workday.') + wednesday = fields.Boolean(string='Wednesday', + help='Mark the day as a workday.') + thursday = fields.Boolean(string='Thursday', + help='Mark the day as a workday.') + friday = fields.Boolean(string='Friday', help='Mark the day as a workday.') + saturday = fields.Boolean(string='Saturday', + help='Mark the day as a workday.') + + @api.depends('from_date', 'to_date') + def _compute_duration(self): + """Function used to compute the days between the from and to date.""" + for records in self: + if records.from_date and records.to_date: + num_work_days = 0 + current_date = records.from_date + while current_date <= records.to_date: + if current_date.weekday() < 5: + num_work_days += 1 + current_date += timedelta(days=1) + self.duration = num_work_days + + def action_button_class_start(self): + """Change the corresponding class state to start.""" + self.write({'state': 'started'}) + return self._compute_duration() + + def action_button_set_to_draft(self): + """Change the corresponding class state to draft.""" + self.write({'state': 'draft'}) + + def action_button_class_cancel(self): + """Change the corresponding class state to cancel.""" + self.write({'state': 'canceled'}) + + def action_button_class_completed(self): + """Change the corresponding class state to complete.""" + self.write({'state': 'completed'}) + + def action_button_create_order(self): + """Button to create the invoice.""" + for student in self.student_ids: + self.env['account.move'].create([ + {'move_type': 'out_invoice', + 'partner_id': student.id, + 'invoice_date': self.from_date, + 'invoice_line_ids': [(0, 0, { + 'product_id': self.instrument_id.id, + 'price_unit': self.instrument_id.lst_price, + 'quantity': self.duration})]}]) + self.write({'state': 'invoice'}) + + def related_order(self): + """Related invoice in smart button.""" + return { + 'type': 'ir.actions.act_window', + 'name': 'Invoices', + 'view_mode': 'tree', + 'res_model': 'account.move', + 'domain': [('partner_id', 'in', self.student_ids.ids)], + 'context': {'create': False}} + + def _compute_order_count(self): + """To compute the total count of the invoice.""" + for record in self: + record.order_count = self.env['account.move'].search_count( + [('partner_id', 'in', self.student_ids.ids)]) diff --git a/music_school_institute/models/hr_employee.py b/music_school_institute/models/hr_employee.py new file mode 100644 index 000000000..4da38c1d4 --- /dev/null +++ b/music_school_institute/models/hr_employee.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Vishnu k P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class HrEmployee(models.Model): + """Model used to create the records of teacher.""" + _inherit = 'hr.employee' + + teacher = fields.Boolean(string='Is Teacher', help='Used to mark the ' + 'employee as a teacher.') diff --git a/music_school_institute/models/product_template.py b/music_school_institute/models/product_template.py new file mode 100644 index 000000000..56d00dd9e --- /dev/null +++ b/music_school_institute/models/product_template.py @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Vishnu K P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class ProductTemplate(models.Model): + """Model used to product template as an instrument.""" + _inherit = "product.template" + + music_instrument = fields.Boolean(string='Music Instrument', + help='Enable the boolean consider' + ' as instrument.') + event_ticket = fields.Boolean(string='Event Ticket', + help='Used to mark the contact as a student.') diff --git a/music_school_institute/models/res_partner.py b/music_school_institute/models/res_partner.py new file mode 100644 index 000000000..5d58bc11d --- /dev/null +++ b/music_school_institute/models/res_partner.py @@ -0,0 +1,59 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Vishnu K P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class ResPartner(models.Model): + """Model for adding details about the students in contact module.""" + _inherit = 'res.partner' + + student = fields.Boolean(string='Is Student', + help='Used to mark the contact as a student.') + classes = fields.Many2one('class.type', string='Joined Class', + help='Relation field use to connect the class ' + 'type to the contact.') + attendance_count = fields.Integer(String='Attendance Count', + compute='_compute_attendance_count', + help='Attendance count displaying field.') + student_type = fields.Selection( + [('part_time', 'Part Time'), ('full_time', 'Full Time')], + string='Course Mode', + help='Field used to define the student selected class type.') + + def class_attendance_view(self): + """Function used to view the student attendance.""" + return { + 'type': 'ir.actions.act_window', + 'name': 'class', + 'view_mode': 'tree', + 'res_model': 'students.attendance', + 'domain': [ + ('student_id', '=', self.id)], + 'context': "{'create': False}"} + + def _compute_attendance_count(self): + """Function used to count the attendance.""" + for record in self: + record.attendance_count = self.env[ + 'students.attendance'].search_count( + [('student_id', '=', record.id), + ('attendance', '=', 'present')]) diff --git a/music_school_institute/models/service_type.py b/music_school_institute/models/service_type.py new file mode 100644 index 000000000..16627bdf4 --- /dev/null +++ b/music_school_institute/models/service_type.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Vishnu K P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class ServiceType(models.Model): + """Service type model and the fields are used to create the service.""" + _name = 'service.type' + _description = 'Service Type' + + name = fields.Char(string='Name', help='Name of the service.') + instrument = fields.Char(string='Instrument', help='Instrument used in the ' + 'service.') + teacher_id = fields.Many2one('hr.employee', string='Teacher', + domain=[('teacher', '=', True)], + help='Teacher assigned to the lesson.') diff --git a/music_school_institute/models/students_attendance.py b/music_school_institute/models/students_attendance.py new file mode 100644 index 000000000..81d2b3458 --- /dev/null +++ b/music_school_institute/models/students_attendance.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2023-TODAY Cybrosys Technologies() +# Author: Vishnu K P () +# +# You can modify it under the terms of the GNU LESSER +# GENERAL PUBLIC LICENSE (LGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU LESSER GENERAL PUBLIC LICENSE (LGPL v3) for more details. +# +# You should have received a copy of the GNU LESSER GENERAL PUBLIC LICENSE +# (LGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import fields, models + + +class StudentsAttendance(models.Model): + """Model used to create the records of attendance.""" + _name = "students.attendance" + _description = 'Students Attendance' + _rec_name = 'student_id' + + student_id = fields.Many2one('res.partner', string='Students', + domain=[('student', '=', True)], + help="Name of the student.") + attendance = fields.Selection([('present', 'Present'), + ('absent', 'Absent')], string='Attendance', + help="Attendance selection field.") + date = fields.Date(string='Date', help='Date of the student attendance.') diff --git a/music_school_institute/security/ir.model.access.csv b/music_school_institute/security/ir.model.access.csv new file mode 100644 index 000000000..90ec322b9 --- /dev/null +++ b/music_school_institute/security/ir.model.access.csv @@ -0,0 +1,5 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_classes_type_user,access.class.type.user,model_class_type,base.group_user,1,1,1,1 +access_services_type_user,access.service.type.user,model_service_type,base.group_user,1,1,1,1 +access_class_lesson_user,access.class.lesson.user,model_class_lesson,base.group_user,1,1,1,1 +access_students_attendance_user,access.students.attendance.user,model_students_attendance,base.group_user,1,1,1,1 diff --git a/music_school_institute/static/description/assets/icons/check.png b/music_school_institute/static/description/assets/icons/check.png new file mode 100644 index 000000000..c8e85f51d Binary files /dev/null and b/music_school_institute/static/description/assets/icons/check.png differ diff --git a/music_school_institute/static/description/assets/icons/chevron.png b/music_school_institute/static/description/assets/icons/chevron.png new file mode 100644 index 000000000..2089293d6 Binary files /dev/null and b/music_school_institute/static/description/assets/icons/chevron.png differ diff --git a/music_school_institute/static/description/assets/icons/cogs.png b/music_school_institute/static/description/assets/icons/cogs.png new file mode 100644 index 000000000..95d0bad62 Binary files /dev/null and b/music_school_institute/static/description/assets/icons/cogs.png differ diff --git a/music_school_institute/static/description/assets/icons/consultation.png b/music_school_institute/static/description/assets/icons/consultation.png new file mode 100644 index 000000000..8319d4baa Binary files /dev/null and b/music_school_institute/static/description/assets/icons/consultation.png differ diff --git a/music_school_institute/static/description/assets/icons/ecom-black.png b/music_school_institute/static/description/assets/icons/ecom-black.png new file mode 100644 index 000000000..a9385ff13 Binary files /dev/null and b/music_school_institute/static/description/assets/icons/ecom-black.png differ diff --git a/music_school_institute/static/description/assets/icons/education-black.png b/music_school_institute/static/description/assets/icons/education-black.png new file mode 100644 index 000000000..3eb09b27b Binary files /dev/null and b/music_school_institute/static/description/assets/icons/education-black.png differ diff --git a/music_school_institute/static/description/assets/icons/hotel-black.png b/music_school_institute/static/description/assets/icons/hotel-black.png new file mode 100644 index 000000000..130f613be Binary files /dev/null and b/music_school_institute/static/description/assets/icons/hotel-black.png differ diff --git a/music_school_institute/static/description/assets/icons/license.png b/music_school_institute/static/description/assets/icons/license.png new file mode 100644 index 000000000..a5869797e Binary files /dev/null and b/music_school_institute/static/description/assets/icons/license.png differ diff --git a/music_school_institute/static/description/assets/icons/lifebuoy.png b/music_school_institute/static/description/assets/icons/lifebuoy.png new file mode 100644 index 000000000..658d56ccc Binary files /dev/null and b/music_school_institute/static/description/assets/icons/lifebuoy.png differ diff --git a/music_school_institute/static/description/assets/icons/manufacturing-black.png b/music_school_institute/static/description/assets/icons/manufacturing-black.png new file mode 100644 index 000000000..697eb0e9f Binary files /dev/null and b/music_school_institute/static/description/assets/icons/manufacturing-black.png differ diff --git a/music_school_institute/static/description/assets/icons/pos-black.png b/music_school_institute/static/description/assets/icons/pos-black.png new file mode 100644 index 000000000..97c0f90c1 Binary files /dev/null and b/music_school_institute/static/description/assets/icons/pos-black.png differ diff --git a/music_school_institute/static/description/assets/icons/puzzle.png b/music_school_institute/static/description/assets/icons/puzzle.png new file mode 100644 index 000000000..65cf854e7 Binary files /dev/null and b/music_school_institute/static/description/assets/icons/puzzle.png differ diff --git a/music_school_institute/static/description/assets/icons/restaurant-black.png b/music_school_institute/static/description/assets/icons/restaurant-black.png new file mode 100644 index 000000000..4a35eb939 Binary files /dev/null and b/music_school_institute/static/description/assets/icons/restaurant-black.png differ diff --git a/music_school_institute/static/description/assets/icons/service-black.png b/music_school_institute/static/description/assets/icons/service-black.png new file mode 100644 index 000000000..301ab51cb Binary files /dev/null and b/music_school_institute/static/description/assets/icons/service-black.png differ diff --git a/music_school_institute/static/description/assets/icons/trading-black.png b/music_school_institute/static/description/assets/icons/trading-black.png new file mode 100644 index 000000000..9398ba2f1 Binary files /dev/null and b/music_school_institute/static/description/assets/icons/trading-black.png differ diff --git a/music_school_institute/static/description/assets/icons/training.png b/music_school_institute/static/description/assets/icons/training.png new file mode 100644 index 000000000..884ca024d Binary files /dev/null and b/music_school_institute/static/description/assets/icons/training.png differ diff --git a/music_school_institute/static/description/assets/icons/update.png b/music_school_institute/static/description/assets/icons/update.png new file mode 100644 index 000000000..ecbc5a01a Binary files /dev/null and b/music_school_institute/static/description/assets/icons/update.png differ diff --git a/music_school_institute/static/description/assets/icons/user.png b/music_school_institute/static/description/assets/icons/user.png new file mode 100644 index 000000000..6ffb23d9f Binary files /dev/null and b/music_school_institute/static/description/assets/icons/user.png differ diff --git a/music_school_institute/static/description/assets/icons/wrench.png b/music_school_institute/static/description/assets/icons/wrench.png new file mode 100644 index 000000000..6c04dea0f Binary files /dev/null and b/music_school_institute/static/description/assets/icons/wrench.png differ diff --git a/music_school_institute/static/description/assets/misc/categories.png b/music_school_institute/static/description/assets/misc/categories.png new file mode 100644 index 000000000..bedf1e0b1 Binary files /dev/null and b/music_school_institute/static/description/assets/misc/categories.png differ diff --git a/music_school_institute/static/description/assets/misc/check-box.png b/music_school_institute/static/description/assets/misc/check-box.png new file mode 100644 index 000000000..42caf24b9 Binary files /dev/null and b/music_school_institute/static/description/assets/misc/check-box.png differ diff --git a/music_school_institute/static/description/assets/misc/compass.png b/music_school_institute/static/description/assets/misc/compass.png new file mode 100644 index 000000000..d5fed8faa Binary files /dev/null and b/music_school_institute/static/description/assets/misc/compass.png differ diff --git a/music_school_institute/static/description/assets/misc/corporate.png b/music_school_institute/static/description/assets/misc/corporate.png new file mode 100644 index 000000000..2eb13edbf Binary files /dev/null and b/music_school_institute/static/description/assets/misc/corporate.png differ diff --git a/music_school_institute/static/description/assets/misc/customer-support.png b/music_school_institute/static/description/assets/misc/customer-support.png new file mode 100644 index 000000000..79efc72ed Binary files /dev/null and b/music_school_institute/static/description/assets/misc/customer-support.png differ diff --git a/music_school_institute/static/description/assets/misc/cybrosys-logo.png b/music_school_institute/static/description/assets/misc/cybrosys-logo.png new file mode 100644 index 000000000..cc3cc0ccf Binary files /dev/null and b/music_school_institute/static/description/assets/misc/cybrosys-logo.png differ diff --git a/music_school_institute/static/description/assets/misc/features.png b/music_school_institute/static/description/assets/misc/features.png new file mode 100644 index 000000000..b41769f77 Binary files /dev/null and b/music_school_institute/static/description/assets/misc/features.png differ diff --git a/music_school_institute/static/description/assets/misc/logo.png b/music_school_institute/static/description/assets/misc/logo.png new file mode 100644 index 000000000..478462d3e Binary files /dev/null and b/music_school_institute/static/description/assets/misc/logo.png differ diff --git a/music_school_institute/static/description/assets/misc/pictures.png b/music_school_institute/static/description/assets/misc/pictures.png new file mode 100644 index 000000000..56d255fe9 Binary files /dev/null and b/music_school_institute/static/description/assets/misc/pictures.png differ diff --git a/music_school_institute/static/description/assets/misc/pie-chart.png b/music_school_institute/static/description/assets/misc/pie-chart.png new file mode 100644 index 000000000..426e05244 Binary files /dev/null and b/music_school_institute/static/description/assets/misc/pie-chart.png differ diff --git a/music_school_institute/static/description/assets/misc/right-arrow.png b/music_school_institute/static/description/assets/misc/right-arrow.png new file mode 100644 index 000000000..730984a06 Binary files /dev/null and b/music_school_institute/static/description/assets/misc/right-arrow.png differ diff --git a/music_school_institute/static/description/assets/misc/star.png b/music_school_institute/static/description/assets/misc/star.png new file mode 100644 index 000000000..2eb9ab29f Binary files /dev/null and b/music_school_institute/static/description/assets/misc/star.png differ diff --git a/music_school_institute/static/description/assets/misc/support.png b/music_school_institute/static/description/assets/misc/support.png new file mode 100644 index 000000000..4f18b8b82 Binary files /dev/null and b/music_school_institute/static/description/assets/misc/support.png differ diff --git a/music_school_institute/static/description/assets/misc/whatsapp.png b/music_school_institute/static/description/assets/misc/whatsapp.png new file mode 100644 index 000000000..d513a5356 Binary files /dev/null and b/music_school_institute/static/description/assets/misc/whatsapp.png differ diff --git a/music_school_institute/static/description/assets/modules/educational.png b/music_school_institute/static/description/assets/modules/educational.png new file mode 100644 index 000000000..fec2d72bc Binary files /dev/null and b/music_school_institute/static/description/assets/modules/educational.png differ diff --git a/music_school_institute/static/description/assets/modules/frond.png b/music_school_institute/static/description/assets/modules/frond.png new file mode 100644 index 000000000..c9d686d47 Binary files /dev/null and b/music_school_institute/static/description/assets/modules/frond.png differ diff --git a/music_school_institute/static/description/assets/modules/insurance.png b/music_school_institute/static/description/assets/modules/insurance.png new file mode 100644 index 000000000..6350a5b2e Binary files /dev/null and b/music_school_institute/static/description/assets/modules/insurance.png differ diff --git a/music_school_institute/static/description/assets/modules/laundry.png b/music_school_institute/static/description/assets/modules/laundry.png new file mode 100644 index 000000000..232897511 Binary files /dev/null and b/music_school_institute/static/description/assets/modules/laundry.png differ diff --git a/music_school_institute/static/description/assets/modules/legal.png b/music_school_institute/static/description/assets/modules/legal.png new file mode 100644 index 000000000..c61ac9571 Binary files /dev/null and b/music_school_institute/static/description/assets/modules/legal.png differ diff --git a/music_school_institute/static/description/assets/modules/spa.png b/music_school_institute/static/description/assets/modules/spa.png new file mode 100644 index 000000000..2a666bf79 Binary files /dev/null and b/music_school_institute/static/description/assets/modules/spa.png differ diff --git a/music_school_institute/static/description/assets/screenshots/attendance.png b/music_school_institute/static/description/assets/screenshots/attendance.png new file mode 100644 index 000000000..c33066f60 Binary files /dev/null and b/music_school_institute/static/description/assets/screenshots/attendance.png differ diff --git a/music_school_institute/static/description/assets/screenshots/class.png b/music_school_institute/static/description/assets/screenshots/class.png new file mode 100644 index 000000000..eb545beb5 Binary files /dev/null and b/music_school_institute/static/description/assets/screenshots/class.png differ diff --git a/music_school_institute/static/description/assets/screenshots/class_dash.png b/music_school_institute/static/description/assets/screenshots/class_dash.png new file mode 100644 index 000000000..d20b8ea4d Binary files /dev/null and b/music_school_institute/static/description/assets/screenshots/class_dash.png differ diff --git a/music_school_institute/static/description/assets/screenshots/events.png b/music_school_institute/static/description/assets/screenshots/events.png new file mode 100644 index 000000000..be4bf68e9 Binary files /dev/null and b/music_school_institute/static/description/assets/screenshots/events.png differ diff --git a/music_school_institute/static/description/assets/screenshots/hero.gif b/music_school_institute/static/description/assets/screenshots/hero.gif new file mode 100644 index 000000000..0405ebcec Binary files /dev/null and b/music_school_institute/static/description/assets/screenshots/hero.gif differ diff --git a/music_school_institute/static/description/assets/screenshots/instruments.png b/music_school_institute/static/description/assets/screenshots/instruments.png new file mode 100644 index 000000000..fe6f9c1d2 Binary files /dev/null and b/music_school_institute/static/description/assets/screenshots/instruments.png differ diff --git a/music_school_institute/static/description/banner.jpg b/music_school_institute/static/description/banner.jpg new file mode 100644 index 000000000..115becc92 Binary files /dev/null and b/music_school_institute/static/description/banner.jpg differ diff --git a/music_school_institute/static/description/cybro_logo.png b/music_school_institute/static/description/cybro_logo.png new file mode 100644 index 000000000..bb309114c Binary files /dev/null and b/music_school_institute/static/description/cybro_logo.png differ diff --git a/music_school_institute/static/description/icon.png b/music_school_institute/static/description/icon.png new file mode 100644 index 000000000..d35276aea Binary files /dev/null and b/music_school_institute/static/description/icon.png differ diff --git a/music_school_institute/static/description/index.html b/music_school_institute/static/description/index.html new file mode 100644 index 000000000..b62c9ab21 --- /dev/null +++ b/music_school_institute/static/description/index.html @@ -0,0 +1,618 @@ +
+ +
+ +
+
+ Community +
+
+ Enterprise +
+
+
+ +
+
+
+ +

+ Music School Institute +

+

+ A Module For Managing Music School +

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

Explore This + Module

+
+ + + +
+
+ +
+

Overview +

+
+
+
+ Music School institute is a core module which can manage any type of music school. + The user can download the module and manage the music school with lots of different class. + It can be used to manage music school event, product, students, and teacher. +
+
+ + +
+
+ +
+

Features +

+
+
+
+
+ +
+ + Class Management + + + Can Manage Different Class. + +
+
+
+ +
+ + Students Management + + + Easily add Student to the class and can view part-time and full time students. + +
+
+
+ +
+ + Events Management + + + Easily create events for music class and can sell the seat. + +
+
+
+ +
+ + Teachers Management + + + Easily manage your Teachers records. + +
+
+
+ +
+ + Informative Form Page + + + Class related order count is visible and can see the invoice. + +
+
+
+ +
+ + Attendance + + + Easy way to add attendance of the students and can issue invoice based on the attendance. + +
+
+
+
+ + +
+
+ +
+

+ Screenshots +

+
+
+
+ +
+

+ Events Management +

+ + +
+
+

+ Attendance +

+

+ Can add students attendance to the program. +

+ +
+
+

+ Class +

+

+ We can add the details including Students, start and end date, state etc. +

+ +
+
+

+ Class Dashboard View +

+ +
+
+

+ Instruments Management +

+ +
+
+
+ + +
+
+ +
+

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

+
+
+
+
+
+
+
+ +
+
+
+ diff --git a/music_school_institute/views/class_lesson_views.xml b/music_school_institute/views/class_lesson_views.xml new file mode 100644 index 000000000..e986a13f1 --- /dev/null +++ b/music_school_institute/views/class_lesson_views.xml @@ -0,0 +1,81 @@ + + + + + Lessons + class.lesson + tree,form,kanban + + + + + + class.lesson.view.form + class.lesson + +
+ + +
+
+
+ + + + +
+
+
+
+ + + class.lesson.view.tree + class.lesson + + + + + + + + + + + class.lesson.view.kanban + class.lesson + + + + +
+
+ + Lesson: + + +
+
+ Hours: + +
+
+ Teacher: + +
+
+
+
+
+
+
+
+
+
diff --git a/music_school_institute/views/class_type_views.xml b/music_school_institute/views/class_type_views.xml new file mode 100644 index 000000000..7937720e8 --- /dev/null +++ b/music_school_institute/views/class_type_views.xml @@ -0,0 +1,167 @@ + + + + + Class + class.type + tree,form,kanban,calendar + + + + + + + + class.type.view.form + class.type + +
+
+
+ +
+ +
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+
+ + + class.type.view.tree + class.type + + + + + + + + + + + + class.type.view.calendar + class.type + + + + + + + + + + class.type.view.kanban + class.type + + + + +
+
+ + Class: + + +
+ + Service: + + +
+ From date: + +
+
+ To date: + +
+
+ +
+
+ + Teacher: + + +
+
+
+
+
+
+
+
+
+
diff --git a/music_school_institute/views/hr_employee_views.xml b/music_school_institute/views/hr_employee_views.xml new file mode 100644 index 000000000..c974b8e7f --- /dev/null +++ b/music_school_institute/views/hr_employee_views.xml @@ -0,0 +1,31 @@ + + + + + Teachers + [('teacher','=', True)] + {'default_teacher':True} + hr.employee + kanban,tree,form + + + + + + + hr.employee.view.form.inherit.music.school.management + + hr.employee + + + + + + + + diff --git a/music_school_institute/views/product_template_views.xml b/music_school_institute/views/product_template_views.xml new file mode 100644 index 000000000..0be3259d6 --- /dev/null +++ b/music_school_institute/views/product_template_views.xml @@ -0,0 +1,35 @@ + + + + + + product.template.view.form.inherit.music.school.management + + product.template + + + + + + + + + + + + + Instruments + [('music_instrument','=', True)] + {'default_music_instrument':True} + product.template + kanban,tree,form + + + + diff --git a/music_school_institute/views/res_partner_views.xml b/music_school_institute/views/res_partner_views.xml new file mode 100644 index 000000000..46aa756f5 --- /dev/null +++ b/music_school_institute/views/res_partner_views.xml @@ -0,0 +1,88 @@ + + + + + Students + [('student','=', True)] + {'default_student':True} + res.partner + kanban,tree,form + + + + Part Time + [('student_type','=', 'part_time')] + {'default_student':True ,'default_student_type':'part_time' } + res.partner + kanban,tree,form + + + + Full Time + [('student_type','=', 'full_time')] + {'default_student':True, 'default_student_type':'full_time' } + res.partner + kanban,tree,form + + + + + + + + + + + + + + + + + res.partner.form.view.inherit.music.school.management + + res.partner + + + + + + + + + + + + + + + + +
+ +
+
+
+
+
diff --git a/music_school_institute/views/students_attendance_views.xml b/music_school_institute/views/students_attendance_views.xml new file mode 100644 index 000000000..17aa2a3c2 --- /dev/null +++ b/music_school_institute/views/students_attendance_views.xml @@ -0,0 +1,44 @@ + + + + + Attendance + students.attendance + tree,form,kanban + + + + + + students.attendance.view.form + students.attendance + +
+ + + + + + + +
+
+
+ + + students.attendance.view.tree + students.attendance + + + + + + + + +