diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/__init__.py b/Elearning/bhs_elearning_certification_template/__init__.py similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/__init__.py rename to Elearning/bhs_elearning_certification_template/__init__.py diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/__manifest__.py b/Elearning/bhs_elearning_certification_template/__manifest__.py similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/__manifest__.py rename to Elearning/bhs_elearning_certification_template/__manifest__.py diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/models/__init__.py b/Elearning/bhs_elearning_certification_template/models/__init__.py similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/models/__init__.py rename to Elearning/bhs_elearning_certification_template/models/__init__.py diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/models/survey_survey.py b/Elearning/bhs_elearning_certification_template/models/survey_survey.py similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/models/survey_survey.py rename to Elearning/bhs_elearning_certification_template/models/survey_survey.py diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/banner.png b/Elearning/bhs_elearning_certification_template/static/description/banner.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/banner.png rename to Elearning/bhs_elearning_certification_template/static/description/banner.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/icon.png b/Elearning/bhs_elearning_certification_template/static/description/icon.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/icon.png rename to Elearning/bhs_elearning_certification_template/static/description/icon.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Customization_icon.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/Customization_icon.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Customization_icon.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/Customization_icon.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Development_icon.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/Development_icon.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Development_icon.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/Development_icon.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Implementation_icon.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/Implementation_icon.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Implementation_icon.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/Implementation_icon.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Migration_icon.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/Migration_icon.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Migration_icon.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/Migration_icon.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Support_icon.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/Support_icon.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Support_icon.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/Support_icon.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Training_icon.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/Training_icon.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Training_icon.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/Training_icon.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/call.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/call.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/call.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/call.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/call.svg b/Elearning/bhs_elearning_certification_template/static/description/imgs/call.svg similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/call.svg rename to Elearning/bhs_elearning_certification_template/static/description/imgs/call.svg diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/facebook_icon.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/facebook_icon.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/facebook_icon.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/facebook_icon.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/instagram_icon.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/instagram_icon.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/instagram_icon.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/instagram_icon.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/linkedin_icon.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/linkedin_icon.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/linkedin_icon.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/linkedin_icon.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/logo.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/logo.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/logo.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/logo.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/mail.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/mail.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/mail.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/mail.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/mail.svg b/Elearning/bhs_elearning_certification_template/static/description/imgs/mail.svg similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/mail.svg rename to Elearning/bhs_elearning_certification_template/static/description/imgs/mail.svg diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/mail_footer.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/mail_footer.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/mail_footer.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/mail_footer.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/advance_marketing_automation.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/other_module/advance_marketing_automation.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/advance_marketing_automation.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/other_module/advance_marketing_automation.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/auto_create_user_from_employee.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/other_module/auto_create_user_from_employee.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/auto_create_user_from_employee.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/other_module/auto_create_user_from_employee.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/aws_ses_mail_tracking.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/other_module/aws_ses_mail_tracking.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/aws_ses_mail_tracking.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/other_module/aws_ses_mail_tracking.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/groups_access_management.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/other_module/groups_access_management.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/groups_access_management.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/other_module/groups_access_management.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/hr_attendance_management.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/other_module/hr_attendance_management.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/hr_attendance_management.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/other_module/hr_attendance_management.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/hr_resignation_management.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/other_module/hr_resignation_management.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/hr_resignation_management.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/other_module/hr_resignation_management.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/project_task_check_list.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/other_module/project_task_check_list.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/project_task_check_list.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/other_module/project_task_check_list.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/screen/template.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/screen/template.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/screen/template.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/screen/template.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/skype_footer.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/skype_footer.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/skype_footer.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/skype_footer.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/twitter_icon.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/twitter_icon.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/twitter_icon.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/twitter_icon.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/whatsapp_icon.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/whatsapp_icon.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/whatsapp_icon.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/whatsapp_icon.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/youtube_icon.png b/Elearning/bhs_elearning_certification_template/static/description/imgs/youtube_icon.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/youtube_icon.png rename to Elearning/bhs_elearning_certification_template/static/description/imgs/youtube_icon.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/index.html b/Elearning/bhs_elearning_certification_template/static/description/index.html similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/index.html rename to Elearning/bhs_elearning_certification_template/static/description/index.html diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/GreatVibes-Regular.ttf b/Elearning/bhs_elearning_certification_template/static/src/fonts/GreatVibes-Regular.ttf similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/GreatVibes-Regular.ttf rename to Elearning/bhs_elearning_certification_template/static/src/fonts/GreatVibes-Regular.ttf diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Lobster-Regular-ofl.txt b/Elearning/bhs_elearning_certification_template/static/src/fonts/Lobster-Regular-ofl.txt similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Lobster-Regular-ofl.txt rename to Elearning/bhs_elearning_certification_template/static/src/fonts/Lobster-Regular-ofl.txt diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Lobster-Regular.ttf b/Elearning/bhs_elearning_certification_template/static/src/fonts/Lobster-Regular.ttf similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Lobster-Regular.ttf rename to Elearning/bhs_elearning_certification_template/static/src/fonts/Lobster-Regular.ttf diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Merriweather-Italic.ttf b/Elearning/bhs_elearning_certification_template/static/src/fonts/Merriweather-Italic.ttf similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Merriweather-Italic.ttf rename to Elearning/bhs_elearning_certification_template/static/src/fonts/Merriweather-Italic.ttf diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Merriweather-Regular.ttf b/Elearning/bhs_elearning_certification_template/static/src/fonts/Merriweather-Regular.ttf similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Merriweather-Regular.ttf rename to Elearning/bhs_elearning_certification_template/static/src/fonts/Merriweather-Regular.ttf diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Poppins-Italic.ttf b/Elearning/bhs_elearning_certification_template/static/src/fonts/Poppins-Italic.ttf similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Poppins-Italic.ttf rename to Elearning/bhs_elearning_certification_template/static/src/fonts/Poppins-Italic.ttf diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Poppins-Regular.ttf b/Elearning/bhs_elearning_certification_template/static/src/fonts/Poppins-Regular.ttf similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Poppins-Regular.ttf rename to Elearning/bhs_elearning_certification_template/static/src/fonts/Poppins-Regular.ttf diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/img/certification_bg_bhs.png b/Elearning/bhs_elearning_certification_template/static/src/img/certification_bg_bhs.png similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/img/certification_bg_bhs.png rename to Elearning/bhs_elearning_certification_template/static/src/img/certification_bg_bhs.png diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/scss/survey_reports.scss b/Elearning/bhs_elearning_certification_template/static/src/scss/survey_reports.scss similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/scss/survey_reports.scss rename to Elearning/bhs_elearning_certification_template/static/src/scss/survey_reports.scss diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/views/survey_report_templates.xml b/Elearning/bhs_elearning_certification_template/views/survey_report_templates.xml similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/views/survey_report_templates.xml rename to Elearning/bhs_elearning_certification_template/views/survey_report_templates.xml diff --git a/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/views/survey_reports.xml b/Elearning/bhs_elearning_certification_template/views/survey_reports.xml similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/views/survey_reports.xml rename to Elearning/bhs_elearning_certification_template/views/survey_reports.xml diff --git a/Elearning/bhs_elearning_required_slide/__init__.py b/Elearning/bhs_elearning_required_slide/__init__.py new file mode 100644 index 0000000..511a0ca --- /dev/null +++ b/Elearning/bhs_elearning_required_slide/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- + +from . import controllers +from . import models \ No newline at end of file diff --git a/Elearning/bhs_elearning_required_slide/__manifest__.py b/Elearning/bhs_elearning_required_slide/__manifest__.py new file mode 100644 index 0000000..662411c --- /dev/null +++ b/Elearning/bhs_elearning_required_slide/__manifest__.py @@ -0,0 +1,31 @@ +# -*- encoding: utf-8 -*- +{ + 'name': "Elearning Slide Requirement", + 'version': '1.0', + 'summary': 'Requirement on specific slide', + 'category': 'elearning', + 'description': """ + A product of Bac Ha Software allows to require user to learn specific slide + before able to learn next slides. + """, + "depends": ['website_slides', 'website_slides_survey'], + 'data': [ + 'views/slides_templates.xml', + 'views/slide_slide_view.xml', + ], + 'license': 'LGPL-3', + # Author + 'author': 'Bac Ha Software', + 'website': 'https://bachasoftware.com', + 'maintainer': 'Bac Ha Software', + 'images': ['static/description/banner.png'], + 'installable': True, + 'auto_install': False, + 'assets': { + 'web.assets_frontend': [ + 'bhs_elearning_required_slide/static/src/scss/required_slide.scss', + 'bhs_elearning_required_slide/static/src/js/slides_slide_toggle_is_required.js', + 'bhs_elearning_required_slide/static/src/js/slides_slide_prevent_learning.js', + ] + } +} diff --git a/Elearning/bhs_elearning_required_slide/controllers/__init__.py b/Elearning/bhs_elearning_required_slide/controllers/__init__.py new file mode 100644 index 0000000..6920e20 --- /dev/null +++ b/Elearning/bhs_elearning_required_slide/controllers/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import main \ No newline at end of file diff --git a/Elearning/bhs_elearning_required_slide/controllers/main.py b/Elearning/bhs_elearning_required_slide/controllers/main.py new file mode 100644 index 0000000..00fd06c --- /dev/null +++ b/Elearning/bhs_elearning_required_slide/controllers/main.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from ast import literal_eval +from collections import defaultdict + +import base64 +import json +import logging +import math +import werkzeug + +from odoo import http, tools, _ +# from odoo.addons.http_routing.models.ir_http import slug, unslug +# from odoo.tools import slugify +from odoo.addons.website.controllers.main import QueryURL +from odoo.addons.website.models.ir_http import sitemap_qs2dom +from odoo.addons.website_profile.controllers.main import WebsiteProfile +from odoo.exceptions import AccessError, UserError +from odoo.http import request +from odoo.osv import expression + +_logger = logging.getLogger(__name__) + + +class WebsiteSlides(WebsiteProfile): + + @http.route('/slides/slide/toggle_is_required', type='json', auth='user', website=True) + def toggle_slide_required(self, slide_id): + slide = request.env['slide.slide'].browse(int(slide_id)) + if slide.channel_id.can_publish: + slide.is_required = not slide.is_required + return slide.is_required + + @http.route('/slides/slide/required_slide', type='json', auth='public', website=True) + def get_required_slide(self, slide_id): + slide = request.env['slide.slide'].sudo().browse(int(slide_id)) + channel_id = slide.channel_id + required_slide = channel_id.current_req_slide if slide.sequence > channel_id.current_req_slide.sequence else False + if not required_slide: + return False + + return {'id': required_slide.id, + 'name': required_slide.name, + 'url': required_slide.website_url, + 'can_skip': slide.is_preview} + + diff --git a/Elearning/bhs_elearning_required_slide/i18n/vi.po b/Elearning/bhs_elearning_required_slide/i18n/vi.po new file mode 100644 index 0000000..29ec638 --- /dev/null +++ b/Elearning/bhs_elearning_required_slide/i18n/vi.po @@ -0,0 +1,94 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * bhs_elearning_required_slide +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-11-17 09:33+0000\n" +"PO-Revision-Date: 2022-11-17 09:33+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: bhs_elearning_required_slide +#: model_terms:ir.ui.view,arch_db:bhs_elearning_required_slide.missing_requirement_modal +msgid "" +"
\n" +" before learning this slide." +msgstr "" +"
\n" +" trước khi học bài học này." + +#. module: bhs_elearning_required_slide +#: model_terms:ir.ui.view,arch_db:bhs_elearning_required_slide.slide_fullscreen_sidebar_category +msgid "Quiz" +msgstr "Đố vui" + +#. module: bhs_elearning_required_slide +#: model_terms:ir.ui.view,arch_db:bhs_elearning_required_slide.course_slides_required_slide +msgid "" +"Required" +msgstr "" +"Bắt buộc" + +#. module: bhs_elearning_required_slide +#: model_terms:ir.ui.view,arch_db:bhs_elearning_required_slide.slide_content_detailed_required +msgid "" +"Next " +msgstr "" +"Tiếp " + + +#. module: bhs_elearning_required_slide +#: model_terms:ir.ui.view,arch_db:bhs_elearning_required_slide.course_slides_required_slide +msgid "Required" +msgstr "Bắt buộc" + +#. module: bhs_elearning_required_slide +#: model:ir.model,name:bhs_elearning_required_slide.model_slide_channel +msgid "Course" +msgstr "Khóa học" + +#. module: bhs_elearning_required_slide +#: model:ir.model.fields,field_description:bhs_elearning_required_slide.field_slide_channel__current_req_slide +msgid "Current Req Slide" +msgstr "Bài học bắt buộc" + +#. module: bhs_elearning_required_slide +#: model:ir.model.fields,field_description:bhs_elearning_required_slide.field_slide_slide__missing_requirement +msgid "Missing requirement" +msgstr "Thiếu điều kiện" + +#. module: bhs_elearning_required_slide +#: model_terms:ir.ui.view,arch_db:bhs_elearning_required_slide.missing_requirement_modal +msgid "" +"Please complete the Required Slide:\n" +"
" +msgstr "" +"Vui lòng hoàn thành Bài học Bắt buộc:\n" +"
" + +#. module: bhs_elearning_required_slide +#: model:ir.model.fields,field_description:bhs_elearning_required_slide.field_slide_slide__is_required +msgid "Required" +msgstr "Bắt buộc" + +#. module: bhs_elearning_required_slide +#: model_terms:ir.ui.view,arch_db:bhs_elearning_required_slide.missing_requirement_modal +msgid "Understood" +msgstr "Đã hiểu" + +#. module: bhs_elearning_required_slide +#: code:addons/bhs_elearning_required_slide/models/slide.py:0 +#, python-format +msgid "You need to learn required slide first." +msgstr "Bạn cần học bài học bắt buộc trước." diff --git a/Elearning/bhs_elearning_required_slide/models/__init__.py b/Elearning/bhs_elearning_required_slide/models/__init__.py new file mode 100644 index 0000000..62488b6 --- /dev/null +++ b/Elearning/bhs_elearning_required_slide/models/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import slide \ No newline at end of file diff --git a/Elearning/bhs_elearning_required_slide/models/slide.py b/Elearning/bhs_elearning_required_slide/models/slide.py new file mode 100644 index 0000000..89e66a1 --- /dev/null +++ b/Elearning/bhs_elearning_required_slide/models/slide.py @@ -0,0 +1,50 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +import logging +from odoo import api, fields, models, tools, _ +from odoo.exceptions import UserError + +_logger = logging.getLogger(__name__) + + +class Channel(models.Model): + _inherit = 'slide.channel' + + current_req_slide = fields.Many2one('slide.slide', compute='_get_current_required_slide') + + @api.depends('slide_ids.sequence', 'slide_ids.is_required') + @api.depends_context('uid') + def _get_current_required_slide(self): + for channel in self: + required_slides = channel.slide_ids.filtered('is_required') + required_slides_learned = self.env['slide.slide.partner'].sudo().search([('slide_id', 'in', required_slides.ids), + ('partner_id', '=', self.env.user.partner_id.id), + ('completed', '=', True)]) + required_slides_not_learned = required_slides - required_slides_learned.mapped('slide_id') + channel.current_req_slide = required_slides_not_learned[0] if required_slides_not_learned else False + + +class Slide(models.Model): + _inherit = 'slide.slide' + + is_required = fields.Boolean('Required', default=False) + missing_requirement = fields.Boolean('Missing requirement', compute='_get_missing_requirement') + + @api.depends('sequence', 'channel_id.current_req_slide') + @api.depends_context('uid') + def _get_missing_requirement(self): + for slide in self: + req_slide = slide.channel_id.current_req_slide + slide.missing_requirement = req_slide and not slide.is_preview and slide.sequence > req_slide.sequence + + +class SlidePartner(models.Model): + _inherit = 'slide.slide.partner' + + @api.constrains('slide_id', 'partner_id') + def required_slide_constrain(self): + for record in self: + slide = record.slide_id + if slide.missing_requirement: + raise UserError(_("You need to learn required slide first.")) diff --git a/Elearning/bhs_elearning_required_slide/static/description/banner.gif b/Elearning/bhs_elearning_required_slide/static/description/banner.gif new file mode 100644 index 0000000..1525f1d Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/banner.gif differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/banner.png b/Elearning/bhs_elearning_required_slide/static/description/banner.png new file mode 100644 index 0000000..29815a2 Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/banner.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/icon.png b/Elearning/bhs_elearning_required_slide/static/description/icon.png new file mode 100644 index 0000000..3104816 Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/icon.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/Customization_icon.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/Customization_icon.png new file mode 100644 index 0000000..75f003b Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/Customization_icon.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/Development_icon.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/Development_icon.png new file mode 100644 index 0000000..0c645a0 Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/Development_icon.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/Implementation_icon.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/Implementation_icon.png new file mode 100644 index 0000000..fb364d9 Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/Implementation_icon.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/Migration_icon.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/Migration_icon.png new file mode 100644 index 0000000..02328bc Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/Migration_icon.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/Support_icon.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/Support_icon.png new file mode 100644 index 0000000..fa132c1 Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/Support_icon.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/Training_icon.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/Training_icon.png new file mode 100644 index 0000000..606d527 Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/Training_icon.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/call.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/call.png new file mode 100644 index 0000000..0e2ba5a Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/call.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/call.svg b/Elearning/bhs_elearning_required_slide/static/description/imgs/call.svg new file mode 100644 index 0000000..760aaeb --- /dev/null +++ b/Elearning/bhs_elearning_required_slide/static/description/imgs/call.svg @@ -0,0 +1,3 @@ + + + diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/facebook_icon.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/facebook_icon.png new file mode 100644 index 0000000..5a9de22 Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/facebook_icon.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/instagram_icon.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/instagram_icon.png new file mode 100644 index 0000000..f50d6cf Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/instagram_icon.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/linkedin_icon.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/linkedin_icon.png new file mode 100644 index 0000000..2170049 Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/linkedin_icon.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/logo.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/logo.png new file mode 100644 index 0000000..5e4e0f2 Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/logo.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/mail.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/mail.png new file mode 100644 index 0000000..1f28305 Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/mail.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/mail.svg b/Elearning/bhs_elearning_required_slide/static/description/imgs/mail.svg new file mode 100644 index 0000000..c5962a8 --- /dev/null +++ b/Elearning/bhs_elearning_required_slide/static/description/imgs/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/mail_footer.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/mail_footer.png new file mode 100644 index 0000000..24cb5e4 Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/mail_footer.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/advance_marketing_automation.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/advance_marketing_automation.png new file mode 100644 index 0000000..a49ec79 Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/advance_marketing_automation.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/auto_create_user_from_employee.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/auto_create_user_from_employee.png new file mode 100644 index 0000000..9b114eb Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/auto_create_user_from_employee.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/aws_ses_mail_tracking.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/aws_ses_mail_tracking.png new file mode 100644 index 0000000..eafc991 Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/aws_ses_mail_tracking.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/custom_invoice_report.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/custom_invoice_report.png new file mode 100644 index 0000000..02e50dc Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/custom_invoice_report.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/customer_code.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/customer_code.png new file mode 100644 index 0000000..4ba1ce6 Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/customer_code.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/email_invoice.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/email_invoice.png new file mode 100644 index 0000000..19a3adb Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/email_invoice.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/groups_access_management.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/groups_access_management.png new file mode 100644 index 0000000..9c8cdc2 Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/groups_access_management.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/hr_attendance_management.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/hr_attendance_management.png new file mode 100644 index 0000000..b7716fa Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/hr_attendance_management.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/hr_resignation_management.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/hr_resignation_management.png new file mode 100644 index 0000000..c7d88fa Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/hr_resignation_management.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/invoice_currency_customer.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/invoice_currency_customer.png new file mode 100644 index 0000000..7a17e4a Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/invoice_currency_customer.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/project_task_check_list.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/project_task_check_list.png new file mode 100644 index 0000000..5e9f9f0 Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/other_module/project_task_check_list.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/screen/require.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/screen/require.png new file mode 100644 index 0000000..a5ab55a Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/screen/require.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/skype_footer.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/skype_footer.png new file mode 100644 index 0000000..eb926af Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/skype_footer.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/twitter_icon.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/twitter_icon.png new file mode 100644 index 0000000..6f88638 Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/twitter_icon.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/whatsapp_icon.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/whatsapp_icon.png new file mode 100644 index 0000000..302237d Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/whatsapp_icon.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/imgs/youtube_icon.png b/Elearning/bhs_elearning_required_slide/static/description/imgs/youtube_icon.png new file mode 100644 index 0000000..0c14467 Binary files /dev/null and b/Elearning/bhs_elearning_required_slide/static/description/imgs/youtube_icon.png differ diff --git a/Elearning/bhs_elearning_required_slide/static/description/index.html b/Elearning/bhs_elearning_required_slide/static/description/index.html new file mode 100644 index 0000000..b702e04 --- /dev/null +++ b/Elearning/bhs_elearning_required_slide/static/description/index.html @@ -0,0 +1,216 @@ + +
+
+
+
+ +
+
+
+
+ TOP SOFTWARE COMPANY IN VIETNAM +
hello@bachasoftware.com
+
+
+
+
+ +
+
+
+

+ Elearning Slide Requirement +

+

+ A product of Bac Ha Software allows to require user to learn specific slide + before able to learn next slides. +

+ + +
+

+ Featured Highlight +

+ +
+
+

Simple Setup

+

You can easily configure required slides in each course.

+
+
+
+ +
+

+ Key Features +

+ +
+
+ +
+
+

Slide Requirement

+

+ Require user to learn specific slide before able to learn next slides. +

+
+
+
+ +
+

+ Other Modules +

+ + +
+ +
+
+

+ Need Help? +

+

+ Need assistance with setup or have any concerns? + Contact Bac Ha Software directly for prompt and dedicated support: +

+ +
+
+ +

Drop us a message:

+

odoo@bachasoftware.com

+
+
+ +

Set up a quick call:

+

+84 88 616 0880 / +84 88 636 0880

+
+
+
+
+ +
+
+
+
+ +
+
+ + + + + +
+
+
+
+ +
bachasoftware
+
+84 88 616 0880/ +84 88 636 0880
+
+
+
+
+
Odoo Implementation
+
Odoo Customization
+
Odoo Development
+
Odoo Training
+
Odoo Migration
+
Odoo Support
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/Elearning/bhs_elearning_required_slide/static/src/js/slides_slide_prevent_learning.js b/Elearning/bhs_elearning_required_slide/static/src/js/slides_slide_prevent_learning.js new file mode 100644 index 0000000..c47e13d --- /dev/null +++ b/Elearning/bhs_elearning_required_slide/static/src/js/slides_slide_prevent_learning.js @@ -0,0 +1,339 @@ +/** @odoo-module **/ + +import { _t } from "@web/core/l10n/translation"; +import publicWidget from '@web/legacy/js/public/public_widget'; +import Fullscreen from '@website_slides/js/slides_course_fullscreen_player'; +import { useService } from "@web/core/utils/hooks"; + +var getReqSlide = function (obj, slideId){ + return obj.rpc('/slides/slide/required_slide',{slide_id: slideId}); +}; + +publicWidget.registry.websiteSlidesSlidePreventLearningAdmin = publicWidget.Widget.extend({ + selector: '.o_wslides_js_slides_list_slide_link,.o_wslides_lesson_aside_list_link a,.next-slide-link', + xmlDependencies: ['/website_slides/static/src/xml/website_slides_upload.xml'], + events: { + 'click': '_onMissingRequirementSlideClick', + }, + + init() { + this._super(...arguments); + this.rpc = this.bindService("rpc"); + }, + + _onMissingRequirementSlideClick: async function (ev) { + console.log('_onMissingRequirementSlideClick'); + ev.stopPropagation(); + ev.preventDefault(); + var dataId = $(ev.currentTarget).data('id'); + var slideHref = $(ev.currentTarget).attr('href') + if (dataId) { + var slideId = parseInt(dataId) + }else { + var slideLink = slideHref.replace('?fullscreen=1', ''); + if(slideLink.includes('-')) { + var slideSplit = slideLink.split('-'); + }else{ + var slideSplit = slideLink.split('/'); + } +// var slideSplit = slideLink.split('-'); + console.log(slideSplit); + var slideId = parseInt(slideSplit[slideSplit.length - 1]); + console.log(slideId); + } + const reqSlide = await getReqSlide(this, slideId); + console.log('reqSlide: ', reqSlide); + if (reqSlide && !reqSlide.can_skip) { + console.log('cant skip'); + var url = reqSlide.url; + if (slideHref.includes('?fullscreen=1')) {url = url + '?fullscreen=1'} + $("#modal_required_slide").attr('href', url); + $("#modal_required_slide").html(reqSlide.name); + $("#missing_requirement_modal").modal('show'); + } + else if (slideHref) {location.href = slideHref;} + }, +}); + +var BHSidebar = publicWidget.Widget.extend({ + events: { + "click .o_wslides_fs_sidebar_list_item": '_onClickTab', + "click .o_wslides_fs_slide_link": '_onClickLink', +// "click #modal_required_slide": '_onClickModalLink', + }, + init: function (parent, slideList, defaultSlide) { + var result = this._super.apply(this, arguments); + this.slideEntries = slideList; + this.set('slideEntry', defaultSlide); + this.rpc = this.bindService("rpc"); + return result; + }, + start: function (){ + var self = this; + this.on('change:slideEntry', this, this._onChangeCurrentSlide); + return this._super.apply(this, arguments).then(function (){ + $(document).keydown(self._onKeyDown.bind(self)); + }); + }, + destroy: function () { + $(document).unbind('keydown', this._onKeyDown.bind(this)); + return this._super.apply(this, arguments); + }, + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + openRequiredSlideModal: function (reqSlide) { + var self = this; + $("#modal_required_slide").attr('data-id', reqSlide.id); + $("#modal_required_slide span").html(reqSlide.name); + $("#missing_requirement_modal").modal('show'); + $("#modal_required_slide").click(function () { + var slide = findSlide(self.slideEntries, {id: reqSlide.id, isQuiz: false}); + self.set('slideEntry', slide); + $("#missing_requirement_modal").modal('hide'); + }); + }, + + /** + * Change the current slide with the next one (if there is one). + * + * @public + */ + goNext: async function () { + var currentIndex = this._getCurrentIndex(); + if (currentIndex < this.slideEntries.length-1) { + var nextSlide = this.slideEntries[currentIndex+1]; + const reqSlide = await getReqSlide(this, nextSlide.id); + if (reqSlide && !reqSlide.can_skip) {this.openRequiredSlideModal(reqSlide)} + else {this.set('slideEntry', nextSlide);} + } + }, + /** + * Change the current slide with the previous one (if there is one). + * + * @public + */ + goPrevious: function () { + var currentIndex = this._getCurrentIndex(); + if (currentIndex >= 1) { + this.set('slideEntry', this.slideEntries[currentIndex-1]); + } + }, + /** + * Greens up the bullet when the slide is completed + * + * @public + * @param {Integer} slideId + */ + setSlideCompleted: async function (slideId) { + var $elem = this.$('.fa-circle-thin[data-slide-id="'+slideId+'"],.fa-lock[data-slide-id="'+slideId+'"]'); + $elem.removeClass('fa-circle-thin').removeClass('fa-lock').addClass('fa-check text-success o_wslides_slide_completed'); + + const reqSlide = await getReqSlide(this, slideId); + if (!reqSlide) {this.updateRequirement()} + }, + /** + * Updates the progressbar whenever a lesson is completed + * + * @public + * @param {*} channelCompletion + */ + updateProgressbar: function (channelCompletion) { + var completion = Math.min(100, channelCompletion); + this.$('.progress-bar').css('width', completion + "%" ); + this.$('.o_wslides_progress_percentage').text(completion); + }, + + updateRequirement: function () { + var self = this; + var allSlides = this.slideEntries; + var nextSlides = allSlides.slice(this._getCurrentIndex() + 1, allSlides.length - 1); + for (const slide of nextSlides) { + var slideId = slide.id; + var $slideName = self.$('li[data-id="'+slideId+'"] div.o_wslides_fs_slide_name'); + var $slideLink = self.$('li[data-id="'+slideId+'"] a.o_wslides_fs_slide_link'); + $slideName.removeClass('text-600'); + $slideLink.removeClass('text-600'); + if (slide.hasQuestion && !slide.isQuiz) { + var $slideQuiz = self.$('li[data-id="'+slideId+'"] a.o_wslides_fs_slide_quiz'); + $slideQuiz.removeClass('text-600'); + }; + if (slide.required === 'True') {break} + }; + }, + //-------------------------------------------------------------------------- + // Private + //-------------------------------------------------------------------------- + /** + * Get the index of the current slide entry (slide and/or quiz) + */ + _getCurrentIndex: function () { + var slide = this.get('slideEntry'); + var currentIndex = this.slideEntries.findIndex(entry =>{ + return entry.id === slide.id && entry.isQuiz === slide.isQuiz; + }); + return currentIndex; + }, + //-------------------------------------------------------------------------- + // Handler + //-------------------------------------------------------------------------- + /** + * Handler called whenever the user clicks on a sub-quiz which is linked to a slide. + * This does NOT handle the case of a slide of type "quiz". + * By going through this handler, the widget will be able to determine that it has to render + * the associated quiz and not the main content. + * + * @private + * @param {*} ev + */ + _onClickMiniQuiz: function (ev){ + var slideID = parseInt($(ev.currentTarget).data().slide_id); + this.set('slideEntry',{ + slideID: slideID, + isMiniQuiz: true + }); + this.trigger_up('change_slide', this.get('slideEntry')); + }, + + /** + * Handler called when the user clicks on a normal slide tab + * + * @private + * @param {*} ev + */ + _onClickTab: async function (ev) { + ev.stopPropagation(); + var self = this; + var $elem = $(ev.currentTarget); + var slideID = parseInt($elem.data('id')); + console.log('aaaa'); + const reqSlide = await getReqSlide(this, slideID); + if ($elem.data('canAccess') === 'True') { + if (!reqSlide || (reqSlide && reqSlide.can_skip)) { + var isQuiz = $elem.data('isQuiz'); + var slide = findSlide(this.slideEntries, {id: slideID, isQuiz: isQuiz}); + this.set('slideEntry', slide); + } + else {this.openRequiredSlideModal(reqSlide)}; + } + }, + + _onClickLink: async function (ev) { + ev.preventDefault(); + var self = this; + var $elem = $(ev.currentTarget); + var $slideElem = $elem.closest('li.o_wslides_fs_sidebar_list_item'); + var slideID = parseInt($slideElem.data('id')); + const reqSlide = await getReqSlide(this, slideID); + if ($slideElem.data('canAccess') === 'True') { + if (!reqSlide || (reqSlide && reqSlide.can_skip)) { + window.open($elem.attr('href'), '_blank').focus(); + } + else {this.openRequiredSlideModal(reqSlide)}; + } + }, + + /** + * Actively changes the active tab in the sidebar so that it corresponds + * the slide currently displayed + * + * @private + */ + _onChangeCurrentSlide: function () { + var slide = this.get('slideEntry'); + this.$('.o_wslides_fs_sidebar_list_item.active').removeClass('active'); + var selector = '.o_wslides_fs_sidebar_list_item[data-id='+slide.id+'][data-is-quiz!="1"]'; + + this.$(selector).addClass('active'); + this.trigger_up('change_slide', this.get('slideEntry')); + }, + + /** + * Binds left and right arrow to allow the user to navigate between slides + * + * @param {*} ev + * @private + */ + _onKeyDown: function (ev){ + switch (ev.key){ + case "ArrowLeft": + this.goPrevious(); + break; + case "ArrowRight": + this.goNext(); + break; + } + }, +}); + +//var findSlide = function (slideList, matcher) { +// var slideMatch = _.matcher(matcher); +// return _.find(slideList, slideMatch); +//}; + +/** + * Helper: Get the slide dict matching the given criteria + * + * @private + * @param {Array} slideList List of dict reprensenting a slide + * @param {[string] : any} matcher + */ +var findSlide = function (slideList, matcher) { + return slideList.find((slide) => { + return Object.keys(matcher).every((key) => matcher[key] === slide[key]); + }); +}; + +var ShareButton = publicWidget.Widget.extend({ + events: { + "click .o_wslides_fs_share": '_onClickShareSlide' + }, + + init: function (el, slide) { + var result = this._super.apply(this, arguments); + this.slide = slide; + this.rpc = this.bindService("rpc"); + return result; + }, + + _openDialog: function() { + return new ShareDialog(this, {}, this.slide).open(); + }, + + _onClickShareSlide: function (ev) { + ev.preventDefault(); + this._openDialog(); + }, + + _onChangeSlide: function (currentSlide) { + this.slide = currentSlide; + } + +}); + +var BHFullscreen = Fullscreen.include({ + init: function (parent, slides, defaultSlideId, channelData) { + var result = this._super.apply(this,arguments); + this.initialSlideID = defaultSlideId; + this.slides = this._preprocessSlideData(slides); + this.channel = channelData; + var slide; + const urlParams = new URL(window.location).searchParams; + if (defaultSlideId) { + slide = findSlide(this.slides, {id: defaultSlideId, isQuiz: String(urlParams.get("quiz")) === "1" }); + } else { + slide = this.slides[0]; + } + + this.set('slide', slide); + + this.sidebar = new BHSidebar(this, this.slides, slide); + this.shareButton = new ShareButton(this, slide); + return result; + }, +}); + +export default { + websiteSlidesSlidePreventLearningAdmin: publicWidget.registry.websiteSlidesSlidePreventLearningAdmin +}; diff --git a/Elearning/bhs_elearning_required_slide/static/src/js/slides_slide_toggle_is_required.js b/Elearning/bhs_elearning_required_slide/static/src/js/slides_slide_toggle_is_required.js new file mode 100644 index 0000000..9ba0736 --- /dev/null +++ b/Elearning/bhs_elearning_required_slide/static/src/js/slides_slide_toggle_is_required.js @@ -0,0 +1,128 @@ +/** @odoo-module **/ + +//import { useService } from "@web/core/utils/hooks"; +//import browser from "@web/core/browser/browser"; +//import publicWidget from '@web/legacy/js/public/public_widget'; +// +//publicWidget.registry.websiteSlidesSlideToggleIsRequired = publicWidget.Widget.extend({ +// selector: '.o_wslides_js_slide_toggle_is_required', +// xmlDependencies: ['/website_slides/static/src/xml/slide_management.xml'], +// events: { +// 'click': '_onRequiredSlideClick', +// }, +// +// _updateMissingReq: function ($liParent) { +// var slides = $liParent.closest('.o_wslides_slides_list'); +// var allLi = slides.find('li.o_wslides_slides_list_slide'); +// var missingReq = false; +// allLi.each(function (){ +// var $slideLink = $(this).find('.o_wslides_js_slides_list_slide_link'); +// var muted = $slideLink.hasClass('text-muted'); +// var slideReq = Boolean($(this).find('.o_wslides_js_slide_toggle_is_required.bh-badge-warning').length); +// var slideLearned = Boolean($(this).find('.fa-check-circle').length); +// var isPreview = Boolean($(this).find('.o_wslides_js_slide_toggle_is_preview.badge-success').length); +// if (missingReq && !isPreview && !muted) { +// $slideLink.addClass('text-muted'); +// } +// else if (!missingReq && muted) { +// $slideLink.removeClass('text-muted'); +// }; +// if (slideReq && !slideLearned) { +// missingReq = slideReq; +// }; +// }); +// }, +// +// _toggleSlideRequired: function($slideTarget) { +// var self = this +// this.rpc = useService('rpc'); +// this.rpc('/slides/slide/toggle_is_required', +// { +// slide_id: $slideTarget.data('slideId') +// } +// ).then(function (isRequired) { +// var $liParent = $slideTarget.closest('li.o_wslides_slides_list_slide'); +// var learned = Boolean($liParent.find('.fa-check-circle').length); +// if (isRequired) { +// $slideTarget.removeClass('badge-light badge-hide border text-bg-light'); +// $slideTarget.addClass('bh-badge-warning'); +// } else { +// $slideTarget.removeClass('bh-badge-warning'); +// $slideTarget.addClass('badge-light badge-hide border text-bg-light'); +// }; +// if (!learned) { +// self._updateMissingReq($liParent); +// } +// }); +// }, +// +// _onRequiredSlideClick: function (ev) { +// ev.preventDefault(); +// this._toggleSlideRequired($(ev.currentTarget)); +// }, +//}); +// +//export default { +// websiteSlidesSlideToggleIsRequired: publicWidget.registry.websiteSlidesSlideToggleIsRequired +//}; + +import publicWidget from '@web/legacy/js/public/public_widget'; + +publicWidget.registry.websiteSlidesSlideToggleIsRequired = publicWidget.Widget.extend({ + selector: '.o_wslides_js_slide_toggle_is_required', + events: { + 'click': '_onRequiredSlideClick', + }, + + init() { + this._super(...arguments); + this.rpc = this.bindService("rpc"); + }, + + _toggleSlideRequired: function($slideTarget) { + this.rpc('/slides/slide/toggle_is_required', { + slide_id: $slideTarget.data('slideId') + }).then(function (isRequired) { + var $liParent = $slideTarget.closest('li.o_wslides_slides_list_slide'); + var learned = Boolean($liParent.find('.fa-check-circle').length); + if (isRequired) { + $slideTarget.removeClass('badge-light badge-hide border text-bg-light'); + $slideTarget.addClass('bh-badge-warning'); + } else { + $slideTarget.removeClass('bh-badge-warning'); + $slideTarget.addClass('badge-light badge-hide border text-bg-light'); + }; + if (!learned) { + var slides = $liParent.closest('.o_wslides_slides_list'); + var allLi = slides.find('li.o_wslides_slides_list_slide'); + var missingReq = false; + allLi.each(function (){ + var $slideLink = $(this).find('.o_wslides_js_slides_list_slide_link'); + var muted = $slideLink.hasClass('text-muted'); + var slideReq = Boolean($(this).find('.o_wslides_js_slide_toggle_is_required.bh-badge-warning').length); + var slideLearned = Boolean($(this).find('.fa-check-circle').length); + var isPreview = Boolean($(this).find('.o_wslides_js_slide_toggle_is_preview.badge-success').length); + if (missingReq && !isPreview && !muted) { + $slideLink.addClass('text-muted'); + } + else if (!missingReq && muted) { + $slideLink.removeClass('text-muted'); + }; + if (slideReq && !slideLearned) { + missingReq = slideReq; + }; + }); + } + }); + }, + + _onRequiredSlideClick: function (ev) { + ev.preventDefault(); + this._toggleSlideRequired($(ev.currentTarget)); + }, +}); + +export default { + websiteSlidesSlideToggleIsPreview: publicWidget.registry.websiteSlidesSlideToggleIsPreview +}; + diff --git a/Elearning/bhs_elearning_required_slide/static/src/scss/required_slide.scss b/Elearning/bhs_elearning_required_slide/static/src/scss/required_slide.scss new file mode 100644 index 0000000..5f986d0 --- /dev/null +++ b/Elearning/bhs_elearning_required_slide/static/src/scss/required_slide.scss @@ -0,0 +1,74 @@ + +.bh-badge-warning{ + color: #FFFFFF; + background-color: #F99C19; +} + +.o_wslides_js_slide_toggle_is_required p { + margin-bottom: 0 !important;; +} + +.o_wslides_js_slide_toggle_is_preview.badge-success{ + color: #FFFFFF; + background-color: #09D5AC; +} + +.bh_text_popup a { + font-style: normal; + font-weight: 500; + font-size: 16px; + line-height: 150%; + text-align: center; +} + +#missing_requirement_modal .btn.btn-primary{ + background-color: #2F64E4; + border-color: #2F64E4; + color: #fff; + border-radius: 8px; +} +/* required box dia*/ +.bh_img_icon { + width: 100%; + height: 100%; + padding-bottom: 25%; +} + +.bh_button_popup { + background: #2F64E4; + width: 49%; + border-radius: 8px; + border: solid 1px #405089; + color: #FFF; +} + +.bh_text_popup { + padding-bottom: 2%; +} + +.bh_text_popup p { + font-style: normal; + font-weight: 500; + font-size: 16px; + line-height: 150%; + text-align: center; + color: #262D57; +} + +.bh_modal-box { + width: 70%; + top: 25%; + left: 15%; + background: white; + display: flex; + flex-direction: column; + justify-content: space-around; + align-items: center; + border-radius: 8px; + padding: 16px 16px; + border-radius: 8px; +} + +.bh_text_login { + color: gray; +} diff --git a/Elearning/bhs_elearning_required_slide/views/slide_slide_view.xml b/Elearning/bhs_elearning_required_slide/views/slide_slide_view.xml new file mode 100644 index 0000000..297152a --- /dev/null +++ b/Elearning/bhs_elearning_required_slide/views/slide_slide_view.xml @@ -0,0 +1,28 @@ + + + + + slide.slide.view.form.inherit.required.slide + slide.slide + + + + + + + + + + slide.channel.view.form.required.slide + slide.channel + + + + + + + + + + + diff --git a/Elearning/bhs_elearning_required_slide/views/slides_templates.xml b/Elearning/bhs_elearning_required_slide/views/slides_templates.xml new file mode 100644 index 0000000..2d69bf4 --- /dev/null +++ b/Elearning/bhs_elearning_required_slide/views/slides_templates.xml @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Elearning/bhs_hr_skill_elearning/__init__.py b/Elearning/bhs_hr_skill_elearning/__init__.py new file mode 100644 index 0000000..cde864b --- /dev/null +++ b/Elearning/bhs_hr_skill_elearning/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import models diff --git a/Elearning/bhs_hr_skill_elearning/__manifest__.py b/Elearning/bhs_hr_skill_elearning/__manifest__.py new file mode 100644 index 0000000..5c38760 --- /dev/null +++ b/Elearning/bhs_hr_skill_elearning/__manifest__.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': 'HR Skill eLearning', + 'author': 'Bac Ha Software', + 'website': 'https://bachasoftware.com', + 'maintainer': 'Bac Ha Software', + 'version': '1.0', + 'category': 'Website', + 'sequence': 101, + 'summary': 'HR Skill eLearning', + 'description': """ + A product of Bac Ha Software allows to record online courses that + each employee has/is taking in employee information. + """, + 'images': [], + 'depends': ['website_slides', 'hr_skills_slides'], + 'assets': { + 'web.assets_qweb': [ + 'bhs_hr_skill_elearning/static/src/xml/resume_templates.xml', + ], + }, + 'data': [ + 'views/hr_view.xml', + ], + 'demo': [], + "external_dependencies": {}, + 'images': ['static/description/banner.png'], + 'installable': True, + 'application': True, + 'auto_install': False, + 'qweb': [], + 'license': 'LGPL-3' +} diff --git a/Elearning/bhs_hr_skill_elearning/i18n/vi.po b/Elearning/bhs_hr_skill_elearning/i18n/vi.po new file mode 100644 index 0000000..625019c --- /dev/null +++ b/Elearning/bhs_hr_skill_elearning/i18n/vi.po @@ -0,0 +1,43 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * bhs_hr_skill_elearning +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-12-02 02:26+0000\n" +"PO-Revision-Date: 2022-12-02 02:26+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: bhs_hr_skill_elearning +#: model:ir.model,name:bhs_hr_skill_elearning.model_slide_channel_partner +msgid "Channel / Partners (Members)" +msgstr "Kênh / Đối tác (Thành viên)" + +#. module: bhs_hr_skill_elearning +#: model:ir.model.fields,field_description:bhs_hr_skill_elearning.field_hr_resume_line__completed +msgid "Completed" +msgstr "Đã hoàn thành" + +#. module: bhs_hr_skill_elearning +#: code:addons/bhs_hr_skill_elearning/models/slide_chanel_partner.py:0 +#, python-format +msgid "Completed course: %s" +msgstr "Hoàn thành khóa: %s" + +#. module: bhs_hr_skill_elearning +#: model:ir.model,name:bhs_hr_skill_elearning.model_hr_resume_line +msgid "Resumé line of an employee" +msgstr "Dòng sơ yếu lí lịch của nhân viên" + +#. module: bhs_hr_skill_elearning +#: code:addons/bhs_hr_skill_elearning/models/slide_chanel_partner.py:0 +#, python-format +msgid "Studying course: %s" +msgstr "Đang học khóa: %s" diff --git a/Elearning/bhs_hr_skill_elearning/models/__init__.py b/Elearning/bhs_hr_skill_elearning/models/__init__.py new file mode 100644 index 0000000..7454d4c --- /dev/null +++ b/Elearning/bhs_hr_skill_elearning/models/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import slide_chanel_partner \ No newline at end of file diff --git a/Elearning/bhs_hr_skill_elearning/models/slide_chanel_partner.py b/Elearning/bhs_hr_skill_elearning/models/slide_chanel_partner.py new file mode 100644 index 0000000..a61b640 --- /dev/null +++ b/Elearning/bhs_hr_skill_elearning/models/slide_chanel_partner.py @@ -0,0 +1,153 @@ +# -*- coding: utf-8 -*- +from odoo import models, fields, api,_ +from odoo.tools import html2plaintext + +class ResumeLine(models.Model): + _inherit = 'hr.resume.line' + + # Trạng thái + completed = fields.Boolean(string="Completed", default=True) + +class SlideChannelPartnerInherit(models.Model): + + _inherit = 'slide.channel.partner' + + def _recompute_completion(self): + # NOTE: KHI KẾ THỪA HÀM NÀY CẦN COPY LẠI GHI ĐÈ CẢ HÀM NÀY + # CODE BASE WEBSITE SLIDE:website_slides/slide_channel.py + """ This method computes the completion and member_status of attendees that are neither + 'invited' nor 'completed'. Indeed, once completed, membership should remain so. + We do not do any update on the 'invited' records. + One should first set member_status to 'joined' before recomputing those values + when enrolling an invited or archived attendee. + It takes into account the previous completion value to add or remove karma for + completing the course to the attendee (see _post_completion_update_hook) + """ + read_group_res = self.env['slide.slide.partner'].sudo()._read_group( + ['&', '&', ('channel_id', 'in', self.mapped('channel_id').ids), + ('partner_id', 'in', self.mapped('partner_id').ids), + ('completed', '=', True), + ('slide_id.is_published', '=', True), + ('slide_id.active', '=', True)], + ['channel_id', 'partner_id'], + aggregates=['__count']) + mapped_data = { + (channel.id, partner.id): count + for channel, partner, count in read_group_res + } + + completed_records = self.env['slide.channel.partner'] + uncompleted_records = self.env['slide.channel.partner'] + for record in self: + if record.member_status in ('completed', 'invited'): + continue + + # GHI NHẬN RESUME LINE + employee_id = self.env['hr.employee'].sudo().search( + [('user_id.partner_id', '=', record.partner_id.id)]) + for emp in employee_id: + # Nếu chưa ghi nhận thì tạo + check_resume_data = self.env['hr.resume.line'].search( + [('employee_id', '=', emp.id), ('channel_id', '=', record.channel_id.id)]) + if not check_resume_data: + line_type = self.env.ref('hr_skills_slides.resume_type_training', raise_if_not_found=False) + self.env['hr.resume.line'].create({ + 'employee_id': emp and emp.id, + 'name': _('Studying course: %s') % record.channel_id.name, + 'date_start': fields.Date.today(), + 'description': html2plaintext(record.channel_id.description), + 'line_type_id': line_type and line_type.id, + 'display_type': 'course', + 'channel_id': record.channel_id.id, + 'completed': False + }) + + was_finished = record.completion == 100 + record.completed_slides_count = mapped_data.get((record.channel_id.id, record.partner_id.id), 0) + record.completion = round(100.0 * record.completed_slides_count / (record.channel_id.total_slides or 1)) + + if not record.channel_id.active: + continue + elif not was_finished and record.completed_slides_count >= record.channel_id.total_slides: + completed_records += record + elif was_finished and record.completed_slides_count < record.channel_id.total_slides: + uncompleted_records += record + + if record.completion == 100: + record.member_status = 'completed' + elif record.completion == 0: + record.member_status = 'joined' + else: + record.member_status = 'ongoing' + + if completed_records: + # CODE GHI NHẬN HOÀN THÀNH KHÓA HỌC: + for completed_data in completed_records: + employee_completed_id = self.env['hr.employee'].sudo().search( + [('user_id.partner_id', '=', completed_data.partner_id.id)]) + resume_data = self.env['hr.resume.line'].search([('employee_id', 'in', employee_completed_id.ids), + ('channel_id', '=', completed_data.channel_id.id), + ('completed', '!=', True)]) + resume_data.write({'name': _('Completed course: %s') % completed_data.channel_id.name, + 'date_end': fields.Date.today(), 'completed': True}) + + completed_records._post_completion_update_hook(completed=True) + completed_records._send_completed_mail() + + if uncompleted_records: + uncompleted_records._post_completion_update_hook(completed=False) + + # def _recompute_completion(self): + # # NOTE: KHI KẾ THỪA HÀM NÀY CẦN COPY LẠI GHI ĐÈ CẢ HÀM NÀY + # # CODE BASE WEBSITE SLIDE:website_slides/slide_channel.py + # read_group_res = self.env['slide.slide.partner'].sudo().read_group( + # ['&', '&', ('channel_id', 'in', self.mapped('channel_id').ids), + # ('partner_id', 'in', self.mapped('partner_id').ids), + # ('completed', '=', True), + # ('slide_id.is_published', '=', True), + # ('slide_id.active', '=', True)], + # ['channel_id', 'partner_id'], + # groupby=['channel_id', 'partner_id'], lazy=False) + # mapped_data = dict() + # for item in read_group_res: + # mapped_data.setdefault(item['channel_id'][0], dict()) + # mapped_data[item['channel_id'][0]][item['partner_id'][0]] = item['__count'] + # + # completed_records = self.env['slide.channel.partner'] + # for record in self: + # # GHI NHẬN RESUME LINE + # employee_id = self.env['hr.employee'].sudo().search( + # [('user_id.partner_id', '=', record.partner_id.id)]) + # for emp in employee_id: + # # Nếu chưa ghi nhận thì tạo + # check_resume_data = self.env['hr.resume.line'].search([('employee_id', '=', emp.id), ('channel_id', '=', record.channel_id.id)]) + # if not check_resume_data: + # line_type = self.env.ref('hr_skills_slides.resume_type_training', raise_if_not_found=False) + # self.env['hr.resume.line'].create({ + # 'employee_id': emp and emp.id, + # 'name': _('Studying course: %s') % record.channel_id.name, + # 'date_start': fields.Date.today(), + # 'description': html2plaintext(record.channel_id.description), + # 'line_type_id': line_type and line_type.id, + # 'display_type': 'course', + # 'channel_id': record.channel_id.id, + # 'completed': False + # }) + # record.completed_slides_count = mapped_data.get(record.channel_id.id, dict()).get(record.partner_id.id, 0) + # record.completion = 100.0 if record.completed else round( + # 100.0 * record.completed_slides_count / (record.channel_id.total_slides or 1)) + # + # if not record.completed and record.channel_id.active and record.completed_slides_count >= record.channel_id.total_slides: + # completed_records += record + # + # if completed_records: + # # CODE GHI NHẬN HOÀN THÀNH KHÓA HỌC: + # for completed_data in completed_records: + # employee_completed_id = self.env['hr.employee'].sudo().search( + # [('user_id.partner_id', '=', completed_data.partner_id.id)]) + # resume_data = self.env['hr.resume.line'].search([('employee_id', 'in', employee_completed_id.ids), ('channel_id', '=', completed_data.channel_id.id), ('completed', '!=', True)]) + # resume_data.write({'name': _('Completed course: %s') % completed_data.channel_id.name, 'date_end': fields.Date.today(), 'completed': True}) + # + # completed_records._set_as_completed() + # completed_records._send_completed_mail() + diff --git a/Elearning/bhs_hr_skill_elearning/static/description/banner.gif b/Elearning/bhs_hr_skill_elearning/static/description/banner.gif new file mode 100644 index 0000000..3e0f32d Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/banner.gif differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/banner.png b/Elearning/bhs_hr_skill_elearning/static/description/banner.png new file mode 100644 index 0000000..179a3ff Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/banner.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/icon.png b/Elearning/bhs_hr_skill_elearning/static/description/icon.png new file mode 100644 index 0000000..373405a Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/icon.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/Customization_icon.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/Customization_icon.png new file mode 100644 index 0000000..75f003b Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/Customization_icon.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/Development_icon.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/Development_icon.png new file mode 100644 index 0000000..0c645a0 Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/Development_icon.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/Implementation_icon.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/Implementation_icon.png new file mode 100644 index 0000000..fb364d9 Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/Implementation_icon.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/Migration_icon.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/Migration_icon.png new file mode 100644 index 0000000..02328bc Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/Migration_icon.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/Support_icon.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/Support_icon.png new file mode 100644 index 0000000..fa132c1 Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/Support_icon.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/Training_icon.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/Training_icon.png new file mode 100644 index 0000000..606d527 Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/Training_icon.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/call.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/call.png new file mode 100644 index 0000000..0e2ba5a Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/call.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/call.svg b/Elearning/bhs_hr_skill_elearning/static/description/imgs/call.svg new file mode 100644 index 0000000..760aaeb --- /dev/null +++ b/Elearning/bhs_hr_skill_elearning/static/description/imgs/call.svg @@ -0,0 +1,3 @@ + + + diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/facebook_icon.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/facebook_icon.png new file mode 100644 index 0000000..5a9de22 Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/facebook_icon.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/instagram_icon.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/instagram_icon.png new file mode 100644 index 0000000..f50d6cf Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/instagram_icon.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/linkedin_icon.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/linkedin_icon.png new file mode 100644 index 0000000..2170049 Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/linkedin_icon.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/logo.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/logo.png new file mode 100644 index 0000000..5e4e0f2 Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/logo.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/mail.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/mail.png new file mode 100644 index 0000000..1f28305 Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/mail.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/mail.svg b/Elearning/bhs_hr_skill_elearning/static/description/imgs/mail.svg new file mode 100644 index 0000000..c5962a8 --- /dev/null +++ b/Elearning/bhs_hr_skill_elearning/static/description/imgs/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/mail_footer.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/mail_footer.png new file mode 100644 index 0000000..24cb5e4 Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/mail_footer.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/advance_marketing_automation.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/advance_marketing_automation.png new file mode 100644 index 0000000..a49ec79 Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/advance_marketing_automation.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/auto_create_user_from_employee.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/auto_create_user_from_employee.png new file mode 100644 index 0000000..9b114eb Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/auto_create_user_from_employee.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/aws_ses_mail_tracking.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/aws_ses_mail_tracking.png new file mode 100644 index 0000000..eafc991 Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/aws_ses_mail_tracking.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/custom_invoice_report.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/custom_invoice_report.png new file mode 100644 index 0000000..02e50dc Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/custom_invoice_report.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/customer_code.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/customer_code.png new file mode 100644 index 0000000..4ba1ce6 Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/customer_code.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/email_invoice.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/email_invoice.png new file mode 100644 index 0000000..19a3adb Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/email_invoice.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/groups_access_management.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/groups_access_management.png new file mode 100644 index 0000000..9c8cdc2 Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/groups_access_management.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/hr_attendance_management.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/hr_attendance_management.png new file mode 100644 index 0000000..b7716fa Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/hr_attendance_management.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/hr_resignation_management.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/hr_resignation_management.png new file mode 100644 index 0000000..c7d88fa Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/hr_resignation_management.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/invoice_currency_customer.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/invoice_currency_customer.png new file mode 100644 index 0000000..7a17e4a Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/invoice_currency_customer.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/project_task_check_list.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/project_task_check_list.png new file mode 100644 index 0000000..5e9f9f0 Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/other_module/project_task_check_list.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/screen/skill.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/screen/skill.png new file mode 100644 index 0000000..e48db8c Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/screen/skill.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/skype_footer.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/skype_footer.png new file mode 100644 index 0000000..eb926af Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/skype_footer.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/twitter_icon.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/twitter_icon.png new file mode 100644 index 0000000..6f88638 Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/twitter_icon.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/whatsapp_icon.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/whatsapp_icon.png new file mode 100644 index 0000000..302237d Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/whatsapp_icon.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/imgs/youtube_icon.png b/Elearning/bhs_hr_skill_elearning/static/description/imgs/youtube_icon.png new file mode 100644 index 0000000..0c14467 Binary files /dev/null and b/Elearning/bhs_hr_skill_elearning/static/description/imgs/youtube_icon.png differ diff --git a/Elearning/bhs_hr_skill_elearning/static/description/index.html b/Elearning/bhs_hr_skill_elearning/static/description/index.html new file mode 100644 index 0000000..707215d --- /dev/null +++ b/Elearning/bhs_hr_skill_elearning/static/description/index.html @@ -0,0 +1,219 @@ + +
+
+
+
+ +
+
+
+
+ TOP SOFTWARE COMPANY IN VIETNAM +
hello@bachasoftware.com
+
+
+
+
+ +
+
+
+

+ HR Skill eLearning +

+

+ A product of Bac Ha Software allows to record online courses that + each employee completed/is taking in employee information. +

+ + +
+

+ Featured Highlight +

+ +
+
+

Simple Setup

+

+ After installing module, the courses that employees are taking / completed + will be recorded on resume line without any additional configuration.

+
+
+
+ +
+

+ Key Features +

+ +
+
+ +
+
+

Elearning Recognition

+

+ By default, Odoo only records courses that employees have completed. + This module allows to record both studying and completed courses. +

+
+
+
+ +
+

+ Other Modules +

+ + +
+ +
+
+

+ Need Help? +

+

+ Need assistance with setup or have any concerns? + Contact Bac Ha Software directly for prompt and dedicated support: +

+ +
+
+ +

Drop us a message:

+

odoo@bachasoftware.com

+
+
+ +

Set up a quick call:

+

+84 88 616 0880 / +84 88 636 0880

+
+
+
+
+ +
+
+
+
+ +
+
+ + + + + +
+
+
+
+ +
bachasoftware
+
+84 88 616 0880/ +84 88 636 0880
+
+
+
+
+
Odoo Implementation
+
Odoo Customization
+
Odoo Development
+
Odoo Training
+
Odoo Migration
+
Odoo Support
+
+
+
+
+
+
+
diff --git a/Elearning/bhs_hr_skill_elearning/static/src/xml/resume_templates.xml b/Elearning/bhs_hr_skill_elearning/static/src/xml/resume_templates.xml new file mode 100644 index 0000000..06cf670 --- /dev/null +++ b/Elearning/bhs_hr_skill_elearning/static/src/xml/resume_templates.xml @@ -0,0 +1,32 @@ + + + + + + + +
+
+ +
+
+

+ +
+ +
+ + +
+
+ +
+ +
+
+
+ +
+
+
+
diff --git a/Elearning/bhs_hr_skill_elearning/views/hr_view.xml b/Elearning/bhs_hr_skill_elearning/views/hr_view.xml new file mode 100644 index 0000000..d6585b9 --- /dev/null +++ b/Elearning/bhs_hr_skill_elearning/views/hr_view.xml @@ -0,0 +1,52 @@ + + + + + hr.resume.line.form + hr.resume.line + + + + + + + + + + + + diff --git a/Elearning/elearning_download_pdf/__init__.py b/Elearning/elearning_download_pdf/__init__.py new file mode 100644 index 0000000..5305644 --- /dev/null +++ b/Elearning/elearning_download_pdf/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import models \ No newline at end of file diff --git a/Elearning/elearning_download_pdf/__manifest__.py b/Elearning/elearning_download_pdf/__manifest__.py new file mode 100644 index 0000000..92135ac --- /dev/null +++ b/Elearning/elearning_download_pdf/__manifest__.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +{ + 'name': "elearning download pdf", + + 'summary': """elearning download pdf""", + + 'description': """ + elearning download pdf + """, + + 'author': 'David Montero Crespo', + 'license': 'AGPL-3', + 'category': 'Website', + "version": "1.0", + 'website': "https://softwareescarlata.com/", + 'currency': 'EUR', + 'depends': ['base','website_slides'], + + # always loaded + 'data': [ + # 'security/ir.model.access.csv', + 'views/views.xml', + + ], + # only loaded in demonstration mode + 'demo': [ + 'demo/demo.xml', + ], +} \ No newline at end of file diff --git a/Elearning/elearning_download_pdf/models/__init__.py b/Elearning/elearning_download_pdf/models/__init__.py new file mode 100644 index 0000000..5305644 --- /dev/null +++ b/Elearning/elearning_download_pdf/models/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import models \ No newline at end of file diff --git a/Elearning/elearning_download_pdf/models/models.py b/Elearning/elearning_download_pdf/models/models.py new file mode 100644 index 0000000..c4ffa59 --- /dev/null +++ b/Elearning/elearning_download_pdf/models/models.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +from odoo import models, fields, api + + diff --git a/Elearning/elearning_download_pdf/views/templates.xml b/Elearning/elearning_download_pdf/views/templates.xml new file mode 100644 index 0000000..ba61acd --- /dev/null +++ b/Elearning/elearning_download_pdf/views/templates.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Elearning/elearning_download_pdf/views/views.xml b/Elearning/elearning_download_pdf/views/views.xml new file mode 100644 index 0000000..16fc682 --- /dev/null +++ b/Elearning/elearning_download_pdf/views/views.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/mx_elearning_plus/__init__.py b/Elearning/mx_elearning_plus/__init__.py similarity index 100% rename from mx_elearning_plus/__init__.py rename to Elearning/mx_elearning_plus/__init__.py diff --git a/mx_elearning_plus/__manifest__.py b/Elearning/mx_elearning_plus/__manifest__.py similarity index 100% rename from mx_elearning_plus/__manifest__.py rename to Elearning/mx_elearning_plus/__manifest__.py diff --git a/mx_elearning_plus/controllers/__init__.py b/Elearning/mx_elearning_plus/controllers/__init__.py similarity index 100% rename from mx_elearning_plus/controllers/__init__.py rename to Elearning/mx_elearning_plus/controllers/__init__.py diff --git a/mx_elearning_plus/controllers/main.py b/Elearning/mx_elearning_plus/controllers/main.py similarity index 100% rename from mx_elearning_plus/controllers/main.py rename to Elearning/mx_elearning_plus/controllers/main.py diff --git a/mx_elearning_plus/models/__init__.py b/Elearning/mx_elearning_plus/models/__init__.py similarity index 100% rename from mx_elearning_plus/models/__init__.py rename to Elearning/mx_elearning_plus/models/__init__.py diff --git a/mx_elearning_plus/models/slide_slide.py b/Elearning/mx_elearning_plus/models/slide_slide.py similarity index 100% rename from mx_elearning_plus/models/slide_slide.py rename to Elearning/mx_elearning_plus/models/slide_slide.py diff --git a/mx_elearning_plus/static/description/icon.png b/Elearning/mx_elearning_plus/static/description/icon.png similarity index 100% rename from mx_elearning_plus/static/description/icon.png rename to Elearning/mx_elearning_plus/static/description/icon.png diff --git a/mx_elearning_plus/static/description/images/app_banner_plus.png b/Elearning/mx_elearning_plus/static/description/images/app_banner_plus.png similarity index 100% rename from mx_elearning_plus/static/description/images/app_banner_plus.png rename to Elearning/mx_elearning_plus/static/description/images/app_banner_plus.png diff --git a/mx_elearning_plus/static/description/images/manprax.png b/Elearning/mx_elearning_plus/static/description/images/manprax.png similarity index 100% rename from mx_elearning_plus/static/description/images/manprax.png rename to Elearning/mx_elearning_plus/static/description/images/manprax.png diff --git a/mx_elearning_plus/static/description/images/screen1.png b/Elearning/mx_elearning_plus/static/description/images/screen1.png similarity index 100% rename from mx_elearning_plus/static/description/images/screen1.png rename to Elearning/mx_elearning_plus/static/description/images/screen1.png diff --git a/mx_elearning_plus/static/description/images/screen10.png b/Elearning/mx_elearning_plus/static/description/images/screen10.png similarity index 100% rename from mx_elearning_plus/static/description/images/screen10.png rename to Elearning/mx_elearning_plus/static/description/images/screen10.png diff --git a/mx_elearning_plus/static/description/images/screen11.png b/Elearning/mx_elearning_plus/static/description/images/screen11.png similarity index 100% rename from mx_elearning_plus/static/description/images/screen11.png rename to Elearning/mx_elearning_plus/static/description/images/screen11.png diff --git a/mx_elearning_plus/static/description/images/screen2.png b/Elearning/mx_elearning_plus/static/description/images/screen2.png similarity index 100% rename from mx_elearning_plus/static/description/images/screen2.png rename to Elearning/mx_elearning_plus/static/description/images/screen2.png diff --git a/mx_elearning_plus/static/description/images/screen3.png b/Elearning/mx_elearning_plus/static/description/images/screen3.png similarity index 100% rename from mx_elearning_plus/static/description/images/screen3.png rename to Elearning/mx_elearning_plus/static/description/images/screen3.png diff --git a/mx_elearning_plus/static/description/images/screen4.png b/Elearning/mx_elearning_plus/static/description/images/screen4.png similarity index 100% rename from mx_elearning_plus/static/description/images/screen4.png rename to Elearning/mx_elearning_plus/static/description/images/screen4.png diff --git a/mx_elearning_plus/static/description/images/screen5.png b/Elearning/mx_elearning_plus/static/description/images/screen5.png similarity index 100% rename from mx_elearning_plus/static/description/images/screen5.png rename to Elearning/mx_elearning_plus/static/description/images/screen5.png diff --git a/mx_elearning_plus/static/description/images/screen6.png b/Elearning/mx_elearning_plus/static/description/images/screen6.png similarity index 100% rename from mx_elearning_plus/static/description/images/screen6.png rename to Elearning/mx_elearning_plus/static/description/images/screen6.png diff --git a/mx_elearning_plus/static/description/images/screen7.png b/Elearning/mx_elearning_plus/static/description/images/screen7.png similarity index 100% rename from mx_elearning_plus/static/description/images/screen7.png rename to Elearning/mx_elearning_plus/static/description/images/screen7.png diff --git a/mx_elearning_plus/static/description/images/screen8.png b/Elearning/mx_elearning_plus/static/description/images/screen8.png similarity index 100% rename from mx_elearning_plus/static/description/images/screen8.png rename to Elearning/mx_elearning_plus/static/description/images/screen8.png diff --git a/mx_elearning_plus/static/description/images/screen9.png b/Elearning/mx_elearning_plus/static/description/images/screen9.png similarity index 100% rename from mx_elearning_plus/static/description/images/screen9.png rename to Elearning/mx_elearning_plus/static/description/images/screen9.png diff --git a/mx_elearning_plus/static/description/index.html b/Elearning/mx_elearning_plus/static/description/index.html similarity index 100% rename from mx_elearning_plus/static/description/index.html rename to Elearning/mx_elearning_plus/static/description/index.html diff --git a/mx_elearning_plus/static/src/js/slide_comment_composer_fullscreen.js b/Elearning/mx_elearning_plus/static/src/js/slide_comment_composer_fullscreen.js similarity index 100% rename from mx_elearning_plus/static/src/js/slide_comment_composer_fullscreen.js rename to Elearning/mx_elearning_plus/static/src/js/slide_comment_composer_fullscreen.js diff --git a/mx_elearning_plus/static/src/js/slides_course.js b/Elearning/mx_elearning_plus/static/src/js/slides_course.js similarity index 100% rename from mx_elearning_plus/static/src/js/slides_course.js rename to Elearning/mx_elearning_plus/static/src/js/slides_course.js diff --git a/mx_elearning_plus/static/src/js/slides_course_extend.js b/Elearning/mx_elearning_plus/static/src/js/slides_course_extend.js similarity index 100% rename from mx_elearning_plus/static/src/js/slides_course_extend.js rename to Elearning/mx_elearning_plus/static/src/js/slides_course_extend.js diff --git a/mx_elearning_plus/static/src/js/slides_course_rating_fullscreen.js b/Elearning/mx_elearning_plus/static/src/js/slides_course_rating_fullscreen.js similarity index 100% rename from mx_elearning_plus/static/src/js/slides_course_rating_fullscreen.js rename to Elearning/mx_elearning_plus/static/src/js/slides_course_rating_fullscreen.js diff --git a/mx_elearning_plus/static/src/xml/comment_button_composer_extend.xml b/Elearning/mx_elearning_plus/static/src/xml/comment_button_composer_extend.xml similarity index 100% rename from mx_elearning_plus/static/src/xml/comment_button_composer_extend.xml rename to Elearning/mx_elearning_plus/static/src/xml/comment_button_composer_extend.xml diff --git a/mx_elearning_plus/static/src/xml/comment_composer.xml b/Elearning/mx_elearning_plus/static/src/xml/comment_composer.xml similarity index 100% rename from mx_elearning_plus/static/src/xml/comment_composer.xml rename to Elearning/mx_elearning_plus/static/src/xml/comment_composer.xml diff --git a/mx_elearning_plus/views/slide_view.xml b/Elearning/mx_elearning_plus/views/slide_view.xml similarity index 100% rename from mx_elearning_plus/views/slide_view.xml rename to Elearning/mx_elearning_plus/views/slide_view.xml diff --git a/mx_elearning_plus/views/website_slides_templates_course.xml b/Elearning/mx_elearning_plus/views/website_slides_templates_course.xml similarity index 100% rename from mx_elearning_plus/views/website_slides_templates_course.xml rename to Elearning/mx_elearning_plus/views/website_slides_templates_course.xml diff --git a/website_ora_elearning/LICENSE b/Elearning/website_ora_elearning/LICENSE similarity index 100% rename from website_ora_elearning/LICENSE rename to Elearning/website_ora_elearning/LICENSE diff --git a/website_ora_elearning/__init__.py b/Elearning/website_ora_elearning/__init__.py similarity index 100% rename from website_ora_elearning/__init__.py rename to Elearning/website_ora_elearning/__init__.py diff --git a/website_ora_elearning/__manifest__.py b/Elearning/website_ora_elearning/__manifest__.py similarity index 100% rename from website_ora_elearning/__manifest__.py rename to Elearning/website_ora_elearning/__manifest__.py diff --git a/website_ora_elearning/controllers/__init__.py b/Elearning/website_ora_elearning/controllers/__init__.py similarity index 100% rename from website_ora_elearning/controllers/__init__.py rename to Elearning/website_ora_elearning/controllers/__init__.py diff --git a/website_ora_elearning/controllers/main.py b/Elearning/website_ora_elearning/controllers/main.py similarity index 100% rename from website_ora_elearning/controllers/main.py rename to Elearning/website_ora_elearning/controllers/main.py diff --git a/website_ora_elearning/data/ir_cron_data.xml b/Elearning/website_ora_elearning/data/ir_cron_data.xml similarity index 100% rename from website_ora_elearning/data/ir_cron_data.xml rename to Elearning/website_ora_elearning/data/ir_cron_data.xml diff --git a/website_ora_elearning/i18n/hi_IN.po b/Elearning/website_ora_elearning/i18n/hi_IN.po similarity index 100% rename from website_ora_elearning/i18n/hi_IN.po rename to Elearning/website_ora_elearning/i18n/hi_IN.po diff --git a/website_ora_elearning/models/__init__.py b/Elearning/website_ora_elearning/models/__init__.py similarity index 100% rename from website_ora_elearning/models/__init__.py rename to Elearning/website_ora_elearning/models/__init__.py diff --git a/website_ora_elearning/models/ir_model.py b/Elearning/website_ora_elearning/models/ir_model.py similarity index 100% rename from website_ora_elearning/models/ir_model.py rename to Elearning/website_ora_elearning/models/ir_model.py diff --git a/website_ora_elearning/models/slide_assessment.py b/Elearning/website_ora_elearning/models/slide_assessment.py similarity index 100% rename from website_ora_elearning/models/slide_assessment.py rename to Elearning/website_ora_elearning/models/slide_assessment.py diff --git a/website_ora_elearning/security/ir.model.access.csv b/Elearning/website_ora_elearning/security/ir.model.access.csv similarity index 100% rename from website_ora_elearning/security/ir.model.access.csv rename to Elearning/website_ora_elearning/security/ir.model.access.csv diff --git a/website_ora_elearning/static/description/icon.png b/Elearning/website_ora_elearning/static/description/icon.png similarity index 100% rename from website_ora_elearning/static/description/icon.png rename to Elearning/website_ora_elearning/static/description/icon.png diff --git a/website_ora_elearning/static/description/images/banner.png b/Elearning/website_ora_elearning/static/description/images/banner.png similarity index 100% rename from website_ora_elearning/static/description/images/banner.png rename to Elearning/website_ora_elearning/static/description/images/banner.png diff --git a/website_ora_elearning/static/description/images/learner_res_full.png b/Elearning/website_ora_elearning/static/description/images/learner_res_full.png similarity index 100% rename from website_ora_elearning/static/description/images/learner_res_full.png rename to Elearning/website_ora_elearning/static/description/images/learner_res_full.png diff --git a/website_ora_elearning/static/description/images/manprax.png b/Elearning/website_ora_elearning/static/description/images/manprax.png similarity index 100% rename from website_ora_elearning/static/description/images/manprax.png rename to Elearning/website_ora_elearning/static/description/images/manprax.png diff --git a/website_ora_elearning/static/description/images/rubric_full.png b/Elearning/website_ora_elearning/static/description/images/rubric_full.png similarity index 100% rename from website_ora_elearning/static/description/images/rubric_full.png rename to Elearning/website_ora_elearning/static/description/images/rubric_full.png diff --git a/website_ora_elearning/static/description/images/screen1.png b/Elearning/website_ora_elearning/static/description/images/screen1.png similarity index 100% rename from website_ora_elearning/static/description/images/screen1.png rename to Elearning/website_ora_elearning/static/description/images/screen1.png diff --git a/website_ora_elearning/static/description/images/screen10.png b/Elearning/website_ora_elearning/static/description/images/screen10.png similarity index 100% rename from website_ora_elearning/static/description/images/screen10.png rename to Elearning/website_ora_elearning/static/description/images/screen10.png diff --git a/website_ora_elearning/static/description/images/screen11.png b/Elearning/website_ora_elearning/static/description/images/screen11.png similarity index 100% rename from website_ora_elearning/static/description/images/screen11.png rename to Elearning/website_ora_elearning/static/description/images/screen11.png diff --git a/website_ora_elearning/static/description/images/screen12.png b/Elearning/website_ora_elearning/static/description/images/screen12.png similarity index 100% rename from website_ora_elearning/static/description/images/screen12.png rename to Elearning/website_ora_elearning/static/description/images/screen12.png diff --git a/website_ora_elearning/static/description/images/screen13.png b/Elearning/website_ora_elearning/static/description/images/screen13.png similarity index 100% rename from website_ora_elearning/static/description/images/screen13.png rename to Elearning/website_ora_elearning/static/description/images/screen13.png diff --git a/website_ora_elearning/static/description/images/screen2.png b/Elearning/website_ora_elearning/static/description/images/screen2.png similarity index 100% rename from website_ora_elearning/static/description/images/screen2.png rename to Elearning/website_ora_elearning/static/description/images/screen2.png diff --git a/website_ora_elearning/static/description/images/screen3.png b/Elearning/website_ora_elearning/static/description/images/screen3.png similarity index 100% rename from website_ora_elearning/static/description/images/screen3.png rename to Elearning/website_ora_elearning/static/description/images/screen3.png diff --git a/website_ora_elearning/static/description/images/screen4.png b/Elearning/website_ora_elearning/static/description/images/screen4.png similarity index 100% rename from website_ora_elearning/static/description/images/screen4.png rename to Elearning/website_ora_elearning/static/description/images/screen4.png diff --git a/website_ora_elearning/static/description/images/screen5.png b/Elearning/website_ora_elearning/static/description/images/screen5.png similarity index 100% rename from website_ora_elearning/static/description/images/screen5.png rename to Elearning/website_ora_elearning/static/description/images/screen5.png diff --git a/website_ora_elearning/static/description/images/screen6.png b/Elearning/website_ora_elearning/static/description/images/screen6.png similarity index 100% rename from website_ora_elearning/static/description/images/screen6.png rename to Elearning/website_ora_elearning/static/description/images/screen6.png diff --git a/website_ora_elearning/static/description/images/screen7.png b/Elearning/website_ora_elearning/static/description/images/screen7.png similarity index 100% rename from website_ora_elearning/static/description/images/screen7.png rename to Elearning/website_ora_elearning/static/description/images/screen7.png diff --git a/website_ora_elearning/static/description/images/screen8.png b/Elearning/website_ora_elearning/static/description/images/screen8.png similarity index 100% rename from website_ora_elearning/static/description/images/screen8.png rename to Elearning/website_ora_elearning/static/description/images/screen8.png diff --git a/website_ora_elearning/static/description/images/screen9.png b/Elearning/website_ora_elearning/static/description/images/screen9.png similarity index 100% rename from website_ora_elearning/static/description/images/screen9.png rename to Elearning/website_ora_elearning/static/description/images/screen9.png diff --git a/website_ora_elearning/static/description/index.html b/Elearning/website_ora_elearning/static/description/index.html similarity index 100% rename from website_ora_elearning/static/description/index.html rename to Elearning/website_ora_elearning/static/description/index.html diff --git a/website_ora_elearning/static/src/js/ora_fullscreen.js b/Elearning/website_ora_elearning/static/src/js/ora_fullscreen.js similarity index 100% rename from website_ora_elearning/static/src/js/ora_fullscreen.js rename to Elearning/website_ora_elearning/static/src/js/ora_fullscreen.js diff --git a/website_ora_elearning/static/src/js/website_ora.js b/Elearning/website_ora_elearning/static/src/js/website_ora.js similarity index 100% rename from website_ora_elearning/static/src/js/website_ora.js rename to Elearning/website_ora_elearning/static/src/js/website_ora.js diff --git a/website_ora_elearning/static/src/scss/website_slides.scss b/Elearning/website_ora_elearning/static/src/scss/website_slides.scss similarity index 100% rename from website_ora_elearning/static/src/scss/website_slides.scss rename to Elearning/website_ora_elearning/static/src/scss/website_slides.scss diff --git a/website_ora_elearning/static/src/xml/slide_ora.xml b/Elearning/website_ora_elearning/static/src/xml/slide_ora.xml similarity index 100% rename from website_ora_elearning/static/src/xml/slide_ora.xml rename to Elearning/website_ora_elearning/static/src/xml/slide_ora.xml diff --git a/website_ora_elearning/views/slide_assessment_view.xml b/Elearning/website_ora_elearning/views/slide_assessment_view.xml similarity index 100% rename from website_ora_elearning/views/slide_assessment_view.xml rename to Elearning/website_ora_elearning/views/slide_assessment_view.xml diff --git a/website_ora_elearning/views/slide_fullscreen_view.xml b/Elearning/website_ora_elearning/views/slide_fullscreen_view.xml similarity index 100% rename from website_ora_elearning/views/slide_fullscreen_view.xml rename to Elearning/website_ora_elearning/views/slide_fullscreen_view.xml diff --git a/website_ora_elearning/views/templates.xml b/Elearning/website_ora_elearning/views/templates.xml similarity index 100% rename from website_ora_elearning/views/templates.xml rename to Elearning/website_ora_elearning/views/templates.xml diff --git a/website_scorm_elearning/__init__.py b/Elearning/website_scorm_elearning/__init__.py similarity index 100% rename from website_scorm_elearning/__init__.py rename to Elearning/website_scorm_elearning/__init__.py diff --git a/website_scorm_elearning/__manifest__.py b/Elearning/website_scorm_elearning/__manifest__.py similarity index 100% rename from website_scorm_elearning/__manifest__.py rename to Elearning/website_scorm_elearning/__manifest__.py diff --git a/website_scorm_elearning/controllers/__init__.py b/Elearning/website_scorm_elearning/controllers/__init__.py similarity index 100% rename from website_scorm_elearning/controllers/__init__.py rename to Elearning/website_scorm_elearning/controllers/__init__.py diff --git a/website_scorm_elearning/controllers/main.py b/Elearning/website_scorm_elearning/controllers/main.py similarity index 100% rename from website_scorm_elearning/controllers/main.py rename to Elearning/website_scorm_elearning/controllers/main.py diff --git a/website_scorm_elearning/models/__init__.py b/Elearning/website_scorm_elearning/models/__init__.py similarity index 100% rename from website_scorm_elearning/models/__init__.py rename to Elearning/website_scorm_elearning/models/__init__.py diff --git a/website_scorm_elearning/models/res_config_settings.py b/Elearning/website_scorm_elearning/models/res_config_settings.py similarity index 100% rename from website_scorm_elearning/models/res_config_settings.py rename to Elearning/website_scorm_elearning/models/res_config_settings.py diff --git a/website_scorm_elearning/models/slide_slide.py b/Elearning/website_scorm_elearning/models/slide_slide.py similarity index 100% rename from website_scorm_elearning/models/slide_slide.py rename to Elearning/website_scorm_elearning/models/slide_slide.py diff --git a/website_scorm_elearning/requirements.txt b/Elearning/website_scorm_elearning/requirements.txt similarity index 100% rename from website_scorm_elearning/requirements.txt rename to Elearning/website_scorm_elearning/requirements.txt diff --git a/website_scorm_elearning/security/ir.model.access.csv b/Elearning/website_scorm_elearning/security/ir.model.access.csv similarity index 100% rename from website_scorm_elearning/security/ir.model.access.csv rename to Elearning/website_scorm_elearning/security/ir.model.access.csv diff --git a/website_scorm_elearning/static/description/icon.png b/Elearning/website_scorm_elearning/static/description/icon.png similarity index 100% rename from website_scorm_elearning/static/description/icon.png rename to Elearning/website_scorm_elearning/static/description/icon.png diff --git a/website_scorm_elearning/static/description/images/configuration.png b/Elearning/website_scorm_elearning/static/description/images/configuration.png similarity index 100% rename from website_scorm_elearning/static/description/images/configuration.png rename to Elearning/website_scorm_elearning/static/description/images/configuration.png diff --git a/website_scorm_elearning/static/description/images/manprax.png b/Elearning/website_scorm_elearning/static/description/images/manprax.png similarity index 100% rename from website_scorm_elearning/static/description/images/manprax.png rename to Elearning/website_scorm_elearning/static/description/images/manprax.png diff --git a/website_scorm_elearning/static/description/images/scorm_banner.png b/Elearning/website_scorm_elearning/static/description/images/scorm_banner.png similarity index 100% rename from website_scorm_elearning/static/description/images/scorm_banner.png rename to Elearning/website_scorm_elearning/static/description/images/scorm_banner.png diff --git a/website_scorm_elearning/static/description/images/screen1.png b/Elearning/website_scorm_elearning/static/description/images/screen1.png similarity index 100% rename from website_scorm_elearning/static/description/images/screen1.png rename to Elearning/website_scorm_elearning/static/description/images/screen1.png diff --git a/website_scorm_elearning/static/description/images/screen2.png b/Elearning/website_scorm_elearning/static/description/images/screen2.png similarity index 100% rename from website_scorm_elearning/static/description/images/screen2.png rename to Elearning/website_scorm_elearning/static/description/images/screen2.png diff --git a/website_scorm_elearning/static/description/images/screen3.png b/Elearning/website_scorm_elearning/static/description/images/screen3.png similarity index 100% rename from website_scorm_elearning/static/description/images/screen3.png rename to Elearning/website_scorm_elearning/static/description/images/screen3.png diff --git a/website_scorm_elearning/static/description/images/screen4.png b/Elearning/website_scorm_elearning/static/description/images/screen4.png similarity index 100% rename from website_scorm_elearning/static/description/images/screen4.png rename to Elearning/website_scorm_elearning/static/description/images/screen4.png diff --git a/website_scorm_elearning/static/description/index.html b/Elearning/website_scorm_elearning/static/description/index.html similarity index 100% rename from website_scorm_elearning/static/description/index.html rename to Elearning/website_scorm_elearning/static/description/index.html diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/__init__.py b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/__init__.py new file mode 100644 index 0000000..bdffbc9 --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/__init__.py @@ -0,0 +1 @@ +from . import views, models \ No newline at end of file diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/__manifest__.py b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/__manifest__.py new file mode 100644 index 0000000..16882a8 --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/__manifest__.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': 'Custom Certificate Template', + 'author': 'Bac Ha Software', + 'website': 'https://bachasoftware.com', + 'maintainer': 'Bac Ha Software', + 'version': '1.0', + 'category': 'eLearning', + 'sequence': 101, + 'summary': 'Custom eLearning Certification Template', + 'description': "A product of Bac Ha Software provides additional options for certificate templates.", + 'images': ['static/description/banner.png'], + 'depends': ['survey'], + 'data': [ + 'views/survey_report_templates.xml', + ], + 'assets': { + 'web.report_assets_common': [ + 'bhs_elearning_certification_template/static/src/scss/survey_reports.scss', + ], + }, + 'demo': [], + "external_dependencies": {}, + 'installable': True, + 'application': True, + 'auto_install': False, + 'qweb': [], + 'license': 'LGPL-3' +} diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/models/__init__.py b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/models/__init__.py new file mode 100644 index 0000000..654c556 --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/models/__init__.py @@ -0,0 +1 @@ +from . import survey_survey \ No newline at end of file diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/models/survey_survey.py b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/models/survey_survey.py new file mode 100644 index 0000000..dd101b5 --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/models/survey_survey.py @@ -0,0 +1,6 @@ +from odoo import api, exceptions, fields, models, _ + +class BHSSurvey(models.Model): + _inherit = 'survey.survey' + + certification_report_layout = fields.Selection(selection_add=[('bhs_certificate', 'BHS Certificate')]) \ No newline at end of file diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/banner.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/banner.png new file mode 100644 index 0000000..c7a1cf1 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/banner.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/icon.png new file mode 100644 index 0000000..d0dd538 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Customization_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Customization_icon.png new file mode 100644 index 0000000..75f003b Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Customization_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Development_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Development_icon.png new file mode 100644 index 0000000..0c645a0 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Development_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Implementation_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Implementation_icon.png new file mode 100644 index 0000000..fb364d9 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Implementation_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Migration_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Migration_icon.png new file mode 100644 index 0000000..02328bc Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Migration_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Support_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Support_icon.png new file mode 100644 index 0000000..fa132c1 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Support_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Training_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Training_icon.png new file mode 100644 index 0000000..606d527 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/Training_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/call.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/call.png new file mode 100644 index 0000000..0e2ba5a Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/call.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/call.svg b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/call.svg new file mode 100644 index 0000000..760aaeb --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/call.svg @@ -0,0 +1,3 @@ + + + diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/facebook_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/facebook_icon.png new file mode 100644 index 0000000..5a9de22 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/facebook_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/instagram_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/instagram_icon.png new file mode 100644 index 0000000..f50d6cf Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/instagram_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/linkedin_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/linkedin_icon.png new file mode 100644 index 0000000..2170049 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/linkedin_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/logo.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/logo.png new file mode 100644 index 0000000..5e4e0f2 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/logo.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/mail.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/mail.png new file mode 100644 index 0000000..1f28305 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/mail.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/mail.svg b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/mail.svg new file mode 100644 index 0000000..c5962a8 --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/mail_footer.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/mail_footer.png new file mode 100644 index 0000000..24cb5e4 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/mail_footer.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/advance_marketing_automation.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/advance_marketing_automation.png new file mode 100644 index 0000000..a49ec79 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/advance_marketing_automation.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/auto_create_user_from_employee.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/auto_create_user_from_employee.png new file mode 100644 index 0000000..9b114eb Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/auto_create_user_from_employee.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/aws_ses_mail_tracking.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/aws_ses_mail_tracking.png new file mode 100644 index 0000000..eafc991 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/aws_ses_mail_tracking.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/groups_access_management.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/groups_access_management.png new file mode 100644 index 0000000..9c8cdc2 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/groups_access_management.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/hr_attendance_management.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/hr_attendance_management.png new file mode 100644 index 0000000..b7716fa Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/hr_attendance_management.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/hr_resignation_management.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/hr_resignation_management.png new file mode 100644 index 0000000..c7d88fa Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/hr_resignation_management.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/project_task_check_list.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/project_task_check_list.png new file mode 100644 index 0000000..5e9f9f0 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/other_module/project_task_check_list.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/screen/template.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/screen/template.png new file mode 100644 index 0000000..d83e732 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/screen/template.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/skype_footer.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/skype_footer.png new file mode 100644 index 0000000..eb926af Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/skype_footer.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/twitter_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/twitter_icon.png new file mode 100644 index 0000000..6f88638 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/twitter_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/whatsapp_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/whatsapp_icon.png new file mode 100644 index 0000000..302237d Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/whatsapp_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/youtube_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/youtube_icon.png new file mode 100644 index 0000000..0c14467 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/imgs/youtube_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/index.html b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/index.html new file mode 100644 index 0000000..9c079eb --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/description/index.html @@ -0,0 +1,220 @@ + +
+
+
+
+ +
+
+
+
+ TOP SOFTWARE COMPANY IN VIETNAM +
hello@bachasoftware.com
+
+
+
+
+ +
+
+
+

+ Custom Certificate Template +

+

+ A product of Bac Ha Software provides additional options for certificate templates.
+ Please contact us if you are looking for a solution for customizing your certificate template. +

+ + +
+

+ Featured Highlight +

+ +
+
+

Simple Setup

+

+ Install module and option for new template will be automatically added + without any further configuration. +

+
+
+
+ +
+

+ Key Features +

+ +
+
+ +
+
+

Customize Certificate Template

+

+ Customize the certificate template according to your company's template, + making your certificate more eye-catching and professional. +

+
+
+
+ +
+

+ Other Modules +

+ + +
+ +
+
+

+ Need Help? +

+

+ Need assistance with setup or have any concerns? + Contact Bac Ha Software directly for prompt and dedicated support: +

+ +
+
+ +

Drop us a message:

+

odoo@bachasoftware.com

+
+
+ +

Set up a quick call:

+

+84 88 616 0880 / +84 88 636 0880

+
+
+
+
+ +
+
+
+
+ +
+
+ + + + + +
+
+
+
+ +
bachasoftware
+
+84 88 616 0880/ +84 88 636 0880
+
+
+
+
+
Odoo Implementation
+
Odoo Customization
+
Odoo Development
+
Odoo Training
+
Odoo Migration
+
Odoo Support
+
+
+
+
+
+
+
diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/GreatVibes-Regular.ttf b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/GreatVibes-Regular.ttf new file mode 100644 index 0000000..1509c0a Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/GreatVibes-Regular.ttf differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Lobster-Regular-ofl.txt b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Lobster-Regular-ofl.txt new file mode 100644 index 0000000..a411430 --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Lobster-Regular-ofl.txt @@ -0,0 +1,93 @@ +Copyright 2010 The Lobster Project Authors (https://github.com/impallari/The-Lobster-Font), with Reserved Font Name "Lobster". + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Lobster-Regular.ttf b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Lobster-Regular.ttf new file mode 100644 index 0000000..21c0073 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Lobster-Regular.ttf differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Merriweather-Italic.ttf b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Merriweather-Italic.ttf new file mode 100644 index 0000000..8e9d03d Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Merriweather-Italic.ttf differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Merriweather-Regular.ttf b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Merriweather-Regular.ttf new file mode 100644 index 0000000..3fecc77 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Merriweather-Regular.ttf differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Poppins-Italic.ttf b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Poppins-Italic.ttf new file mode 100644 index 0000000..12b7b3c Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Poppins-Italic.ttf differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Poppins-Regular.ttf b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Poppins-Regular.ttf new file mode 100644 index 0000000..9f0c71b Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/fonts/Poppins-Regular.ttf differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/img/certification_bg_bhs.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/img/certification_bg_bhs.png new file mode 100644 index 0000000..a57f0f4 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/img/certification_bg_bhs.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/scss/survey_reports.scss b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/scss/survey_reports.scss new file mode 100644 index 0000000..b28453b --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/static/src/scss/survey_reports.scss @@ -0,0 +1,141 @@ +@font-face { + font-family: "merriweather-italic"; + src: url("/bhs_elearning_certification_template/static/src/fonts/Merriweather-Italic.ttf"); +} + +@font-face { + font-family: "merriweather-regular"; + src: url("/bhs_elearning_certification_template/static/src/fonts/Merriweather-Regular.ttf"); +} + +@font-face { + font-family: "poppins-italic"; + src: url("/bhs_elearning_certification_template/static/src/fonts/Poppins-Italic.ttf"); +} + +@font-face { + font-family: "poppins-regular"; + src: url("/bhs_elearning_certification_template/static/src/fonts/Poppins-Regular.ttf"); + font-weight: normal; +} + +@font-face { + font-family: "greatvibes-regular"; + src: url("/bhs_elearning_certification_template/static/src/fonts/GreatVibes-Regular.ttf"); + font-weight: normal; +} +@font-face { + font-family: Lobster; + src: url("/bh_custom_certification_template/static/src/fonts/Lobster-Regular.ttf") format("truetype"); +} + + + +#o_survey_certification.certification-wrapper { + // Change font survey_name + .certification-name-rep { + font-family: Arial; + font-size: 18pt; + line-height: 1.5; + text-transform: uppercase; + color: #282f33; + } + // BHS Certificate Template + &.bhs { + .certification { + background-image: url("/bhs_elearning_certification_template/static/src/img/certification_bg_bhs.png"); + background-repeat: no-repeat; + background-size: cover; + width: 295mm; + height: 208mm; + margin: 1mm; + color: #875A7B; + padding-top: 70pt; + + .certification-top { +// padding-top: 50mm; + + h1 { + font-size: 48pt; + font-weight: bold; + color: #546F39; + font-family: "merriweather-regular"; + font-weight: bold; + } + h2 { + font-size: 24pt; + color: #D5AE3A; + font-family: "merriweather-italic"; + } + + &:before { + margin-bottom: 10mm; + } + + &:after { + -webkit-transform: scaleY(-1); + transform: scaleY(-1); + margin-bottom: 5mm; + } + } + .certification-content { + margin-bottom: 10mm; + p{ + color: #546F39; + } + .user-name { + color: #D5AE3A; + border-bottom: none; + font-size: 64pt; + font-family: "greatvibes-regular"; + } + .sub-content{ + width: 500pt; + font-size: 14pt; + display: block; + word-wrap: break-word; + text-align: justify; + margin-left: 60mm; + font-family: "poppins-italic"; + font-style: italic; + } + } + + .certification-bottom { + width: 295mm; + bottom: 20mm; + + .certification-date-wrapper { + margin-left: 40mm; + font-size: 18pt; + color: #6b6d70; + + span { + display:none; + font-size: 18pt; + } + + } + + .certification-seal { + top: 50%; + left: 50%; + -webkit-transform: translate(-50% , -50%); + transform: translate(-50% , -50%); + width: 24mm; + height: 24mm; + background: url(/survey/static/src/img/classic-seal.png) no-repeat; + } + + .certification-company { + padding-left: 10mm; + right: 35mm; + } + } + + .certification-number{ + margin-left: 50mm; + } + } + } +} \ No newline at end of file diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/views/survey_report_templates.xml b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/views/survey_report_templates.xml new file mode 100644 index 0000000..b52b6a1 --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/views/survey_report_templates.xml @@ -0,0 +1,73 @@ + + + + + + + diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/views/survey_reports.xml b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/views/survey_reports.xml new file mode 100644 index 0000000..7e9ce82 --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x2029bd71900/bhs_elearning_certification_template/views/survey_reports.xml @@ -0,0 +1,19 @@ + + + + + + + BHS-Certifications + survey.user_input + qweb-pdf + bhs_elearning_certification_template.bhs_certification_report_view + bhs_elearning_certification_template.bhs_certification_report_view + 'Certification - %s' % (object.survey_id.display_name) + 'certification.pdf' + + report + + + + diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/__init__.py b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/__init__.py new file mode 100644 index 0000000..cde864b --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import models diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/__manifest__.py b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/__manifest__.py new file mode 100644 index 0000000..5c38760 --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/__manifest__.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +{ + 'name': 'HR Skill eLearning', + 'author': 'Bac Ha Software', + 'website': 'https://bachasoftware.com', + 'maintainer': 'Bac Ha Software', + 'version': '1.0', + 'category': 'Website', + 'sequence': 101, + 'summary': 'HR Skill eLearning', + 'description': """ + A product of Bac Ha Software allows to record online courses that + each employee has/is taking in employee information. + """, + 'images': [], + 'depends': ['website_slides', 'hr_skills_slides'], + 'assets': { + 'web.assets_qweb': [ + 'bhs_hr_skill_elearning/static/src/xml/resume_templates.xml', + ], + }, + 'data': [ + 'views/hr_view.xml', + ], + 'demo': [], + "external_dependencies": {}, + 'images': ['static/description/banner.png'], + 'installable': True, + 'application': True, + 'auto_install': False, + 'qweb': [], + 'license': 'LGPL-3' +} diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/i18n/vi.po b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/i18n/vi.po new file mode 100644 index 0000000..625019c --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/i18n/vi.po @@ -0,0 +1,43 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * bhs_hr_skill_elearning +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2022-12-02 02:26+0000\n" +"PO-Revision-Date: 2022-12-02 02:26+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: bhs_hr_skill_elearning +#: model:ir.model,name:bhs_hr_skill_elearning.model_slide_channel_partner +msgid "Channel / Partners (Members)" +msgstr "Kênh / Đối tác (Thành viên)" + +#. module: bhs_hr_skill_elearning +#: model:ir.model.fields,field_description:bhs_hr_skill_elearning.field_hr_resume_line__completed +msgid "Completed" +msgstr "Đã hoàn thành" + +#. module: bhs_hr_skill_elearning +#: code:addons/bhs_hr_skill_elearning/models/slide_chanel_partner.py:0 +#, python-format +msgid "Completed course: %s" +msgstr "Hoàn thành khóa: %s" + +#. module: bhs_hr_skill_elearning +#: model:ir.model,name:bhs_hr_skill_elearning.model_hr_resume_line +msgid "Resumé line of an employee" +msgstr "Dòng sơ yếu lí lịch của nhân viên" + +#. module: bhs_hr_skill_elearning +#: code:addons/bhs_hr_skill_elearning/models/slide_chanel_partner.py:0 +#, python-format +msgid "Studying course: %s" +msgstr "Đang học khóa: %s" diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/models/__init__.py b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/models/__init__.py new file mode 100644 index 0000000..7454d4c --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/models/__init__.py @@ -0,0 +1,3 @@ +# -*- coding: utf-8 -*- + +from . import slide_chanel_partner \ No newline at end of file diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/models/slide_chanel_partner.py b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/models/slide_chanel_partner.py new file mode 100644 index 0000000..a61b640 --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/models/slide_chanel_partner.py @@ -0,0 +1,153 @@ +# -*- coding: utf-8 -*- +from odoo import models, fields, api,_ +from odoo.tools import html2plaintext + +class ResumeLine(models.Model): + _inherit = 'hr.resume.line' + + # Trạng thái + completed = fields.Boolean(string="Completed", default=True) + +class SlideChannelPartnerInherit(models.Model): + + _inherit = 'slide.channel.partner' + + def _recompute_completion(self): + # NOTE: KHI KẾ THỪA HÀM NÀY CẦN COPY LẠI GHI ĐÈ CẢ HÀM NÀY + # CODE BASE WEBSITE SLIDE:website_slides/slide_channel.py + """ This method computes the completion and member_status of attendees that are neither + 'invited' nor 'completed'. Indeed, once completed, membership should remain so. + We do not do any update on the 'invited' records. + One should first set member_status to 'joined' before recomputing those values + when enrolling an invited or archived attendee. + It takes into account the previous completion value to add or remove karma for + completing the course to the attendee (see _post_completion_update_hook) + """ + read_group_res = self.env['slide.slide.partner'].sudo()._read_group( + ['&', '&', ('channel_id', 'in', self.mapped('channel_id').ids), + ('partner_id', 'in', self.mapped('partner_id').ids), + ('completed', '=', True), + ('slide_id.is_published', '=', True), + ('slide_id.active', '=', True)], + ['channel_id', 'partner_id'], + aggregates=['__count']) + mapped_data = { + (channel.id, partner.id): count + for channel, partner, count in read_group_res + } + + completed_records = self.env['slide.channel.partner'] + uncompleted_records = self.env['slide.channel.partner'] + for record in self: + if record.member_status in ('completed', 'invited'): + continue + + # GHI NHẬN RESUME LINE + employee_id = self.env['hr.employee'].sudo().search( + [('user_id.partner_id', '=', record.partner_id.id)]) + for emp in employee_id: + # Nếu chưa ghi nhận thì tạo + check_resume_data = self.env['hr.resume.line'].search( + [('employee_id', '=', emp.id), ('channel_id', '=', record.channel_id.id)]) + if not check_resume_data: + line_type = self.env.ref('hr_skills_slides.resume_type_training', raise_if_not_found=False) + self.env['hr.resume.line'].create({ + 'employee_id': emp and emp.id, + 'name': _('Studying course: %s') % record.channel_id.name, + 'date_start': fields.Date.today(), + 'description': html2plaintext(record.channel_id.description), + 'line_type_id': line_type and line_type.id, + 'display_type': 'course', + 'channel_id': record.channel_id.id, + 'completed': False + }) + + was_finished = record.completion == 100 + record.completed_slides_count = mapped_data.get((record.channel_id.id, record.partner_id.id), 0) + record.completion = round(100.0 * record.completed_slides_count / (record.channel_id.total_slides or 1)) + + if not record.channel_id.active: + continue + elif not was_finished and record.completed_slides_count >= record.channel_id.total_slides: + completed_records += record + elif was_finished and record.completed_slides_count < record.channel_id.total_slides: + uncompleted_records += record + + if record.completion == 100: + record.member_status = 'completed' + elif record.completion == 0: + record.member_status = 'joined' + else: + record.member_status = 'ongoing' + + if completed_records: + # CODE GHI NHẬN HOÀN THÀNH KHÓA HỌC: + for completed_data in completed_records: + employee_completed_id = self.env['hr.employee'].sudo().search( + [('user_id.partner_id', '=', completed_data.partner_id.id)]) + resume_data = self.env['hr.resume.line'].search([('employee_id', 'in', employee_completed_id.ids), + ('channel_id', '=', completed_data.channel_id.id), + ('completed', '!=', True)]) + resume_data.write({'name': _('Completed course: %s') % completed_data.channel_id.name, + 'date_end': fields.Date.today(), 'completed': True}) + + completed_records._post_completion_update_hook(completed=True) + completed_records._send_completed_mail() + + if uncompleted_records: + uncompleted_records._post_completion_update_hook(completed=False) + + # def _recompute_completion(self): + # # NOTE: KHI KẾ THỪA HÀM NÀY CẦN COPY LẠI GHI ĐÈ CẢ HÀM NÀY + # # CODE BASE WEBSITE SLIDE:website_slides/slide_channel.py + # read_group_res = self.env['slide.slide.partner'].sudo().read_group( + # ['&', '&', ('channel_id', 'in', self.mapped('channel_id').ids), + # ('partner_id', 'in', self.mapped('partner_id').ids), + # ('completed', '=', True), + # ('slide_id.is_published', '=', True), + # ('slide_id.active', '=', True)], + # ['channel_id', 'partner_id'], + # groupby=['channel_id', 'partner_id'], lazy=False) + # mapped_data = dict() + # for item in read_group_res: + # mapped_data.setdefault(item['channel_id'][0], dict()) + # mapped_data[item['channel_id'][0]][item['partner_id'][0]] = item['__count'] + # + # completed_records = self.env['slide.channel.partner'] + # for record in self: + # # GHI NHẬN RESUME LINE + # employee_id = self.env['hr.employee'].sudo().search( + # [('user_id.partner_id', '=', record.partner_id.id)]) + # for emp in employee_id: + # # Nếu chưa ghi nhận thì tạo + # check_resume_data = self.env['hr.resume.line'].search([('employee_id', '=', emp.id), ('channel_id', '=', record.channel_id.id)]) + # if not check_resume_data: + # line_type = self.env.ref('hr_skills_slides.resume_type_training', raise_if_not_found=False) + # self.env['hr.resume.line'].create({ + # 'employee_id': emp and emp.id, + # 'name': _('Studying course: %s') % record.channel_id.name, + # 'date_start': fields.Date.today(), + # 'description': html2plaintext(record.channel_id.description), + # 'line_type_id': line_type and line_type.id, + # 'display_type': 'course', + # 'channel_id': record.channel_id.id, + # 'completed': False + # }) + # record.completed_slides_count = mapped_data.get(record.channel_id.id, dict()).get(record.partner_id.id, 0) + # record.completion = 100.0 if record.completed else round( + # 100.0 * record.completed_slides_count / (record.channel_id.total_slides or 1)) + # + # if not record.completed and record.channel_id.active and record.completed_slides_count >= record.channel_id.total_slides: + # completed_records += record + # + # if completed_records: + # # CODE GHI NHẬN HOÀN THÀNH KHÓA HỌC: + # for completed_data in completed_records: + # employee_completed_id = self.env['hr.employee'].sudo().search( + # [('user_id.partner_id', '=', completed_data.partner_id.id)]) + # resume_data = self.env['hr.resume.line'].search([('employee_id', 'in', employee_completed_id.ids), ('channel_id', '=', completed_data.channel_id.id), ('completed', '!=', True)]) + # resume_data.write({'name': _('Completed course: %s') % completed_data.channel_id.name, 'date_end': fields.Date.today(), 'completed': True}) + # + # completed_records._set_as_completed() + # completed_records._send_completed_mail() + diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/banner.gif b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/banner.gif new file mode 100644 index 0000000..3e0f32d Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/banner.gif differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/banner.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/banner.png new file mode 100644 index 0000000..179a3ff Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/banner.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/icon.png new file mode 100644 index 0000000..373405a Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/Customization_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/Customization_icon.png new file mode 100644 index 0000000..75f003b Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/Customization_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/Development_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/Development_icon.png new file mode 100644 index 0000000..0c645a0 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/Development_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/Implementation_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/Implementation_icon.png new file mode 100644 index 0000000..fb364d9 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/Implementation_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/Migration_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/Migration_icon.png new file mode 100644 index 0000000..02328bc Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/Migration_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/Support_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/Support_icon.png new file mode 100644 index 0000000..fa132c1 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/Support_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/Training_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/Training_icon.png new file mode 100644 index 0000000..606d527 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/Training_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/call.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/call.png new file mode 100644 index 0000000..0e2ba5a Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/call.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/call.svg b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/call.svg new file mode 100644 index 0000000..760aaeb --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/call.svg @@ -0,0 +1,3 @@ + + + diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/facebook_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/facebook_icon.png new file mode 100644 index 0000000..5a9de22 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/facebook_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/instagram_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/instagram_icon.png new file mode 100644 index 0000000..f50d6cf Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/instagram_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/linkedin_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/linkedin_icon.png new file mode 100644 index 0000000..2170049 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/linkedin_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/logo.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/logo.png new file mode 100644 index 0000000..5e4e0f2 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/logo.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/mail.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/mail.png new file mode 100644 index 0000000..1f28305 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/mail.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/mail.svg b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/mail.svg new file mode 100644 index 0000000..c5962a8 --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/mail.svg @@ -0,0 +1,3 @@ + + + diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/mail_footer.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/mail_footer.png new file mode 100644 index 0000000..24cb5e4 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/mail_footer.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/advance_marketing_automation.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/advance_marketing_automation.png new file mode 100644 index 0000000..a49ec79 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/advance_marketing_automation.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/auto_create_user_from_employee.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/auto_create_user_from_employee.png new file mode 100644 index 0000000..9b114eb Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/auto_create_user_from_employee.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/aws_ses_mail_tracking.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/aws_ses_mail_tracking.png new file mode 100644 index 0000000..eafc991 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/aws_ses_mail_tracking.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/custom_invoice_report.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/custom_invoice_report.png new file mode 100644 index 0000000..02e50dc Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/custom_invoice_report.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/customer_code.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/customer_code.png new file mode 100644 index 0000000..4ba1ce6 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/customer_code.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/email_invoice.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/email_invoice.png new file mode 100644 index 0000000..19a3adb Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/email_invoice.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/groups_access_management.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/groups_access_management.png new file mode 100644 index 0000000..9c8cdc2 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/groups_access_management.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/hr_attendance_management.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/hr_attendance_management.png new file mode 100644 index 0000000..b7716fa Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/hr_attendance_management.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/hr_resignation_management.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/hr_resignation_management.png new file mode 100644 index 0000000..c7d88fa Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/hr_resignation_management.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/invoice_currency_customer.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/invoice_currency_customer.png new file mode 100644 index 0000000..7a17e4a Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/invoice_currency_customer.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/project_task_check_list.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/project_task_check_list.png new file mode 100644 index 0000000..5e9f9f0 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/other_module/project_task_check_list.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/screen/skill.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/screen/skill.png new file mode 100644 index 0000000..e48db8c Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/screen/skill.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/skype_footer.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/skype_footer.png new file mode 100644 index 0000000..eb926af Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/skype_footer.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/twitter_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/twitter_icon.png new file mode 100644 index 0000000..6f88638 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/twitter_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/whatsapp_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/whatsapp_icon.png new file mode 100644 index 0000000..302237d Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/whatsapp_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/youtube_icon.png b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/youtube_icon.png new file mode 100644 index 0000000..0c14467 Binary files /dev/null and b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/imgs/youtube_icon.png differ diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/index.html b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/index.html new file mode 100644 index 0000000..707215d --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/description/index.html @@ -0,0 +1,219 @@ + +
+
+
+
+ +
+
+
+
+ TOP SOFTWARE COMPANY IN VIETNAM +
hello@bachasoftware.com
+
+
+
+
+ +
+
+
+

+ HR Skill eLearning +

+

+ A product of Bac Ha Software allows to record online courses that + each employee completed/is taking in employee information. +

+ + +
+

+ Featured Highlight +

+ +
+
+

Simple Setup

+

+ After installing module, the courses that employees are taking / completed + will be recorded on resume line without any additional configuration.

+
+
+
+ +
+

+ Key Features +

+ +
+
+ +
+
+

Elearning Recognition

+

+ By default, Odoo only records courses that employees have completed. + This module allows to record both studying and completed courses. +

+
+
+
+ +
+

+ Other Modules +

+ + +
+ +
+
+

+ Need Help? +

+

+ Need assistance with setup or have any concerns? + Contact Bac Ha Software directly for prompt and dedicated support: +

+ +
+
+ +

Drop us a message:

+

odoo@bachasoftware.com

+
+
+ +

Set up a quick call:

+

+84 88 616 0880 / +84 88 636 0880

+
+
+
+
+ +
+
+
+
+ +
+
+ + + + + +
+
+
+
+ +
bachasoftware
+
+84 88 616 0880/ +84 88 636 0880
+
+
+
+
+
Odoo Implementation
+
Odoo Customization
+
Odoo Development
+
Odoo Training
+
Odoo Migration
+
Odoo Support
+
+
+
+
+
+
+
diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/src/xml/resume_templates.xml b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/src/xml/resume_templates.xml new file mode 100644 index 0000000..06cf670 --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/static/src/xml/resume_templates.xml @@ -0,0 +1,32 @@ + + + + + + + +
+
+ +
+
+

+ +
+ +
+ + +
+
+ +
+ +
+
+
+ +
+
+
+
diff --git a/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/views/hr_view.xml b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/views/hr_view.xml new file mode 100644 index 0000000..bf9cbbd --- /dev/null +++ b/Elearning/website_scorm_elearning/static/media/scorm/NewId_0x205678e6140/bhs_hr_skill_elearning/views/hr_view.xml @@ -0,0 +1,52 @@ + + + + + hr.resume.line.form + hr.resume.line + + + + + + + + + + + hr.employee.view.form.inherit.resume.bh.elearning + hr.employee + + + + + + + + + + + hr.employee.public.view.form.inherit.resume + hr.employee.public + + + + + + + + + + + hr.user.preferences.form.inherit.hr.skills.bh.ele + res.users + + + + + + + + + + diff --git a/website_scorm_elearning/static/media/scorm/NewId_38/demo.docx b/Elearning/website_scorm_elearning/static/media/scorm/NewId_38/demo.docx similarity index 100% rename from website_scorm_elearning/static/media/scorm/NewId_38/demo.docx rename to Elearning/website_scorm_elearning/static/media/scorm/NewId_38/demo.docx diff --git a/website_scorm_elearning/static/src/js/slides_course.js b/Elearning/website_scorm_elearning/static/src/js/slides_course.js similarity index 100% rename from website_scorm_elearning/static/src/js/slides_course.js rename to Elearning/website_scorm_elearning/static/src/js/slides_course.js diff --git a/website_scorm_elearning/static/src/js/slides_course_fullscreen_player.js b/Elearning/website_scorm_elearning/static/src/js/slides_course_fullscreen_player.js similarity index 100% rename from website_scorm_elearning/static/src/js/slides_course_fullscreen_player.js rename to Elearning/website_scorm_elearning/static/src/js/slides_course_fullscreen_player.js diff --git a/website_scorm_elearning/static/src/scss/slide_slide.scss b/Elearning/website_scorm_elearning/static/src/scss/slide_slide.scss similarity index 100% rename from website_scorm_elearning/static/src/scss/slide_slide.scss rename to Elearning/website_scorm_elearning/static/src/scss/slide_slide.scss diff --git a/website_scorm_elearning/static/src/xml/website_slides_fullscreen.xml b/Elearning/website_scorm_elearning/static/src/xml/website_slides_fullscreen.xml similarity index 100% rename from website_scorm_elearning/static/src/xml/website_slides_fullscreen.xml rename to Elearning/website_scorm_elearning/static/src/xml/website_slides_fullscreen.xml diff --git a/website_scorm_elearning/views/res_config_settings_views.xml b/Elearning/website_scorm_elearning/views/res_config_settings_views.xml similarity index 100% rename from website_scorm_elearning/views/res_config_settings_views.xml rename to Elearning/website_scorm_elearning/views/res_config_settings_views.xml diff --git a/website_scorm_elearning/views/slide_slide_views.xml b/Elearning/website_scorm_elearning/views/slide_slide_views.xml similarity index 100% rename from website_scorm_elearning/views/slide_slide_views.xml rename to Elearning/website_scorm_elearning/views/slide_slide_views.xml diff --git a/website_scorm_elearning/views/templates.xml b/Elearning/website_scorm_elearning/views/templates.xml similarity index 100% rename from website_scorm_elearning/views/templates.xml rename to Elearning/website_scorm_elearning/views/templates.xml