Installing edu_quality...
Updating DocTypes for edu_quality : [================= ] 42%An error occurred while installing edu_quality: Module import failed for CBSE LOC, the DocType you're trying to open might be deleted.
Error: No module named 'nextai'
Traceback with variables (most recent call last):
File "apps/frappe/frappe/commands/site.py", line 494, in install_app
_install_app(app, verbose=context.verbose, force=force)
context = {'sites': ['edu.local'], 'force': False, 'verbose': False, 'profile': False}
apps = ('edu_quality',)
force = True
_install_app = <function install_app at 0x108d1a3e0>
filelock = <function filelock at 0x1081493a0>
exit_code = 0
site = 'edu.local'
app = 'edu_quality'
err = ImportError("Module import failed for CBSE LOC, the DocType you're trying to open might be deleted.\nError: No module named 'nextai'")
File "apps/frappe/frappe/installer.py", line 318, in install_app
sync_for(name, force=force, reset_permissions=True)
name = 'edu_quality'
verbose = False
set_as_patched = True
force = True
sync_jobs = <function sync_jobs at 0x108fb2520>
sync_for = <function sync_for at 0x108fb34c0>
sync_customizations = <function sync_customizations at 0x1081b6de0>
sync_fixtures = <function sync_fixtures at 0x108fb3880>
app_hooks = {'after_install': ['edu_quality.common.install.after_install'], 'after_migrate': ['edu_quality.public.py.utils.migrate', 'edu_quality.edu_quality.server_scripts.after_migrate.after_migrate'], 'after_uninstall': ['edu_quality.common.uninstall.after_uninstall'], 'app_description': ['Edu Quality'], 'app_email': ['contact@hybrowlabs.com'], 'app_include_js': ['/assets/edu_quality/js/exportTool.js/assets/edu_quality/js/carnivalEvent.js'], 'app_license': ['AGPL-3.0'], 'app_name': ['edu_quality'], 'app_publisher': ['Hybrowlabs Technologies'], 'app_title': ['Edu Quality'], 'app_version': ['0.0.1'], 'auto_cancel_exempted_doctypes': ['Journal Entry'], 'doc_events': {'Guardian': {'before_insert': ['edu_quality.edu_quality.server_scripts.guardian.before_insert'], 'after_insert': ['edu_quality.edu_quality.server_scripts.guardian.after_insert'], 'on_update': ['edu_quality.edu_quality.server_scripts.guardian.on_update']}, 'Student Applicant': {'on_update': ['edu_quality.edu_quality.server_scripts.stud...
installed_apps = ['frappe', 'erpnext', 'education']
File "apps/frappe/frappe/model/sync.py", line 112, in sync_for
import_file_by_path(
app_name = 'edu_quality'
force = True
reset_permissions = True
files = ['apps/edu_quality/edu_quality/edu_quality/doctype/textbook/textbook.json', 'apps/edu_quality/edu_quality/edu_quality/doctype/educational_qualification/educational_qualification.json', 'apps/edu_quality/edu_quality/edu_quality/doctype/broadcast_group/broadcast_group.json', 'apps/edu_quality/edu_quality/edu_quality/doctype/assessment_group_subject_detail/assessment_group_subject_detail.json', 'apps/edu_quality/edu_quality/edu_quality/doctype/birthday_card_trait/birthday_card_trait.json', 'apps/edu_quality/edu_quality/edu_quality/doctype/student_data/student_data.json', 'apps/edu_quality/edu_quality/edu_quality/doctype/assessment_remarks_template/assessment_remarks_template.json', 'apps/edu_quality/edu_quality/ed...
module_name = 'attendance'
folder = 'apps/edu_quality/edu_quality/attendance'
l = 174
i = 74
doc_path = 'apps/edu_quality/edu_quality/edu_quality/doctype/cbse_loc/cbse_loc.json'
File "apps/frappe/frappe/modules/import_file.py", line 146, in import_file_by_path
import_doc(
path = 'apps/edu_quality/edu_quality/edu_quality/doctype/cbse_loc/cbse_loc.json'
force = True
data_import = False
pre_process = None
ignore_version = True
reset_permissions = True
docs = [{'actions': [], 'allow_rename': 1, 'autoname': 'field:student', 'creation': '2024-07-08 13:34:32.891851', 'doctype': 'DocType', 'engine': 'InnoDB', 'fields': [{'fieldname': 'student_section', 'fieldtype': 'Section Break', 'label': 'Student', 'doctype': 'DocField'}, {'fieldname': 'student', 'fieldtype': 'Link', 'in_list_view': 1, 'label': 'Student', 'options': 'Student', 'reqd': 1, 'unique': 1, 'doctype': 'DocField'}, {'fieldname': 'student_status', 'fieldtype': 'Data', 'label': 'Student Status', 'read_only': 1, 'doctype': 'DocField'}, {'fieldname': 'form_hash', 'fieldtype': 'Data', 'label': 'Form Hash', 'doctype': 'DocField'}, {'fieldname': 'column_break_onhw', 'fieldtype': 'Column Break', 'doctype': 'DocField'}, {'fieldname': 'status', 'fieldtype': 'Select', 'label': 'Status', 'options': 'Not Filled\nFilled\nApproved\nRejected', 'doctype': 'DocField'}, {'fieldname': 'form_user', 'fieldtype': 'Link', 'label': 'Form User', 'options': 'User', 'doctype': 'DocField'}, {'depends_on': 'eval...
calculated_hash = '423ea5c143a9c273fdca644d06245a80'
doc = {'actions': [], 'allow_rename': 1, 'autoname': 'field:student', 'creation': '2024-07-08 13:34:32.891851', 'doctype': 'DocType', 'engine': 'InnoDB', 'fields': [{'fieldname': 'student_section', 'fieldtype': 'Section Break', 'label': 'Student', 'doctype': 'DocField'}, {'fieldname': 'student', 'fieldtype': 'Link', 'in_list_view': 1, 'label': 'Student', 'options': 'Student', 'reqd': 1, 'unique': 1, 'doctype': 'DocField'}, {'fieldname': 'student_status', 'fieldtype': 'Data', 'label': 'Student Status', 'read_only': 1, 'doctype': 'DocField'}, {'fieldname': 'form_hash', 'fieldtype': 'Data', 'label': 'Form Hash', 'doctype': 'DocField'}, {'fieldname': 'column_break_onhw', 'fieldtype': 'Column Break', 'doctype': 'DocField'}, {'fieldname': 'status', 'fieldtype': 'Select', 'label': 'Status', 'options': 'Not Filled\nFilled\nApproved\nRejected', 'doctype': 'DocField'}, {'fieldname': 'form_user', 'fieldtype': 'Link', 'label': 'Form User', 'options': 'User', 'doctype': 'DocField'}, {'depends_on': 'eval:...
db_modified_timestamp = datetime.datetime(2026, 8, 22, 7, 28, 46, 520024)
is_db_timestamp_latest = True
File "apps/frappe/frappe/modules/import_file.py", line 239, in import_doc
doc.insert()
docdict = {'actions': [], 'allow_rename': 1, 'autoname': 'field:student', 'creation': '2024-07-08 13:34:32.891851', 'doctype': 'DocType', 'engine': 'InnoDB', 'fields': [{'fieldname': 'student_section', 'fieldtype': 'Section Break', 'label': 'Student', 'doctype': 'DocField'}, {'fieldname': 'student', 'fieldtype': 'Link', 'in_list_view': 1, 'label': 'Student', 'options': 'Student', 'reqd': 1, 'unique': 1, 'doctype': 'DocField'}, {'fieldname': 'student_status', 'fieldtype': 'Data', 'label': 'Student Status', 'read_only': 1, 'doctype': 'DocField'}, {'fieldname': 'form_hash', 'fieldtype': 'Data', 'label': 'Form Hash', 'doctype': 'DocField'}, {'fieldname': 'column_break_onhw', 'fieldtype': 'Column Break', 'doctype': 'DocField'}, {'fieldname': 'status', 'fieldtype': 'Select', 'label': 'Status', 'options': 'Not Filled\nFilled\nApproved\nRejected', 'doctype': 'DocField'}, {'fieldname': 'form_user', 'fieldtype': 'Link', 'label': 'Form User', 'options': 'User', 'doctype': 'DocField'}, {'depends_on': 'eval:...
data_import = False
pre_process = None
ignore_version = True
reset_permissions = True
path = 'apps/edu_quality/edu_quality/edu_quality/doctype/cbse_loc/cbse_loc.json'
controller = <class 'frappe.core.doctype.doctype.doctype.DocType'>
doc = <DocType: CBSE LOC>
File "apps/frappe/frappe/model/document.py", line 334, in insert
self.run_post_save_methods()
self = <DocType: CBSE LOC>
ignore_permissions = None
ignore_links = None
ignore_if_duplicate = False
ignore_mandatory = None
set_name = None
set_child_names = True
d = <DocTypeState: 8hlr42k7vj parent=CBSE LOC>
File "apps/frappe/frappe/model/document.py", line 1177, in run_post_save_methods
self.run_method("on_update")
self = <DocType: CBSE LOC>
File "apps/frappe/frappe/model/document.py", line 1011, in run_method
out = Document.hook(fn)(self, *args, **kwargs)
self = <DocType: CBSE LOC>
method = 'on_update'
args = ()
kwargs = {}
fn = <function Document.run_method..fn at 0x12a2c7ec0>
File "apps/frappe/frappe/model/document.py", line 1371, in composer
return composed(self, method, args, **kwargs)
self = <DocType: CBSE LOC>
args = ()
kwargs = {}
hooks = [<function build_domain_restriced_doctype_cache at 0x1082b2de0>, <function clear_doctype_notifications at 0x10baaf1a0>, <function process_workflow_actions at 0x10bac7ec0>, <function attach_files_to_document at 0x107a90860>, <function apply at 0x10badefc0>, <function update_due_date at 0x10badf060>, <function apply_permissions_for_non_standard_user_type at 0x10baf07c0>, <function update_doc_index at 0x10b6e2520>]
method = 'on_update'
doc_events = {'': {'on_update': ['frappe.desk.notifications.clear_doctype_notifications', 'frappe.workflow.doctype.workflow_action.workflow_action.process_workflow_actions', 'frappe.core.doctype.file.utils.attach_files_to_document', 'frappe.automation.doctype.assignment_rule.assignment_rule.apply', 'frappe.automation.doctype.assignment_rule.assignment_rule.update_due_date', 'frappe.core.doctype.user_type.user_type.apply_permissions_for_non_standard_user_type', 'frappe.search.sqlite_search.update_doc_index'], 'after_rename': ['frappe.desk.notifications.clear_doctype_notifications'], 'on_cancel': ['frappe.desk.notifications.clear_doctype_notifications', 'frappe.workflow.doctype.workflow_action.workflow_action.process_workflow_actions', 'frappe.automation.doctype.assignment_rule.assignment_rule.apply'], 'on_trash': ['frappe.desk.notifications.clear_doctype_notifications', 'frappe.workflow.doctype.workflow_action.workflow_action.process_workflow_actions', 'frappe.search.sqlite_search.delete_doc_index'...
handler = 'frappe.search.sqlite_search.update_doc_index'
composed = <function Document.hook..compose..runner at 0x12a2c6480>
compose = <function Document.hook..compose at 0x12a2c7f60>
f = <function Document.run_method..fn at 0x12a2c7ec0>
File "apps/frappe/frappe/model/document.py", line 1353, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
self = <DocType: CBSE LOC>
method = 'on_update'
args = ()
kwargs = {}
add_to_return_value = <function Document.hook..add_to_return_value at 0x12a2c47c0>
fn = <function Document.run_method..fn at 0x12a2c7ec0>
hooks = (<function build_domain_restriced_doctype_cache at 0x1082b2de0>, <function clear_doctype_notifications at 0x10baaf1a0>, <function process_workflow_actions at 0x10bac7ec0>, <function attach_files_to_document at 0x107a90860>, <function apply at 0x10badefc0>, <function update_due_date at 0x10badf060>, <function apply_permissions_for_non_standard_user_type at 0x10baf07c0>, <function update_doc_index at 0x10b6e2520>)
File "apps/frappe/frappe/model/document.py", line 1008, in fn
return method_object(*args, **kwargs)
self = <DocType: CBSE LOC>
args = ()
kwargs = {}
method_object = <bound method DocType.on_update of <DocType: CBSE LOC>>
method = 'on_update'
File "apps/frappe/frappe/core/doctype/doctype/doctype.py", line 549, in on_update
self.run_module_method("on_doctype_update")
self = <DocType: CBSE LOC>
allow_doctype_export = False
File "apps/frappe/frappe/core/doctype/doctype/doctype.py", line 647, in run_module_method
module = load_doctype_module(self.name, self.module)
self = <DocType: CBSE LOC>
method = 'on_doctype_update'
load_doctype_module = <function load_doctype_module at 0x1081b7420>
File "apps/frappe/frappe/modules/utils.py", line 286, in load_doctype_module
raise ImportError(msg) from e
doctype = 'CBSE LOC'
module = 'Edu Quality'
prefix = ''
suffix = ''
app = 'edu_quality'
key = ********
module_name = 'edu_quality.edu_quality.doctype.cbse_loc.cbse_loc'
msg = "Module import failed for CBSE LOC, the DocType you're trying to open might be deleted.\nError: No module named 'nextai'"
builtins.ImportError: Module import failed for CBSE LOC, the DocType you're trying to open might be deleted.
Error: No module named 'nextai'
Installing edu_quality...
Updating DocTypes for edu_quality : [================= ] 42%An error occurred while installing edu_quality: Module import failed for CBSE LOC, the DocType you're trying to open might be deleted.
Error: No module named 'nextai'
Traceback with variables (most recent call last):
File "apps/frappe/frappe/commands/site.py", line 494, in install_app
_install_app(app, verbose=context.verbose, force=force)
context = {'sites': ['edu.local'], 'force': False, 'verbose': False, 'profile': False}
apps = ('edu_quality',)
force = True
_install_app = <function install_app at 0x108d1a3e0>
filelock = <function filelock at 0x1081493a0>
exit_code = 0
site = 'edu.local'
app = 'edu_quality'
err = ImportError("Module import failed for CBSE LOC, the DocType you're trying to open might be deleted.\nError: No module named 'nextai'")
File "apps/frappe/frappe/installer.py", line 318, in install_app
sync_for(name, force=force, reset_permissions=True)
name = 'edu_quality'
verbose = False
set_as_patched = True
force = True
sync_jobs = <function sync_jobs at 0x108fb2520>
sync_for = <function sync_for at 0x108fb34c0>
sync_customizations = <function sync_customizations at 0x1081b6de0>
sync_fixtures = <function sync_fixtures at 0x108fb3880>
app_hooks = {'after_install': ['edu_quality.common.install.after_install'], 'after_migrate': ['edu_quality.public.py.utils.migrate', 'edu_quality.edu_quality.server_scripts.after_migrate.after_migrate'], 'after_uninstall': ['edu_quality.common.uninstall.after_uninstall'], 'app_description': ['Edu Quality'], 'app_email': ['contact@hybrowlabs.com'], 'app_include_js': ['/assets/edu_quality/js/exportTool.js/assets/edu_quality/js/carnivalEvent.js'], 'app_license': ['AGPL-3.0'], 'app_name': ['edu_quality'], 'app_publisher': ['Hybrowlabs Technologies'], 'app_title': ['Edu Quality'], 'app_version': ['0.0.1'], 'auto_cancel_exempted_doctypes': ['Journal Entry'], 'doc_events': {'Guardian': {'before_insert': ['edu_quality.edu_quality.server_scripts.guardian.before_insert'], 'after_insert': ['edu_quality.edu_quality.server_scripts.guardian.after_insert'], 'on_update': ['edu_quality.edu_quality.server_scripts.guardian.on_update']}, 'Student Applicant': {'on_update': ['edu_quality.edu_quality.server_scripts.stud...
installed_apps = ['frappe', 'erpnext', 'education']
File "apps/frappe/frappe/model/sync.py", line 112, in sync_for
import_file_by_path(
app_name = 'edu_quality'
force = True
reset_permissions = True
files = ['apps/edu_quality/edu_quality/edu_quality/doctype/textbook/textbook.json', 'apps/edu_quality/edu_quality/edu_quality/doctype/educational_qualification/educational_qualification.json', 'apps/edu_quality/edu_quality/edu_quality/doctype/broadcast_group/broadcast_group.json', 'apps/edu_quality/edu_quality/edu_quality/doctype/assessment_group_subject_detail/assessment_group_subject_detail.json', 'apps/edu_quality/edu_quality/edu_quality/doctype/birthday_card_trait/birthday_card_trait.json', 'apps/edu_quality/edu_quality/edu_quality/doctype/student_data/student_data.json', 'apps/edu_quality/edu_quality/edu_quality/doctype/assessment_remarks_template/assessment_remarks_template.json', 'apps/edu_quality/edu_quality/ed...
module_name = 'attendance'
folder = 'apps/edu_quality/edu_quality/attendance'
l = 174
i = 74
doc_path = 'apps/edu_quality/edu_quality/edu_quality/doctype/cbse_loc/cbse_loc.json'
File "apps/frappe/frappe/modules/import_file.py", line 146, in import_file_by_path
import_doc(
path = 'apps/edu_quality/edu_quality/edu_quality/doctype/cbse_loc/cbse_loc.json'
force = True
data_import = False
pre_process = None
ignore_version = True
reset_permissions = True
docs = [{'actions': [], 'allow_rename': 1, 'autoname': 'field:student', 'creation': '2024-07-08 13:34:32.891851', 'doctype': 'DocType', 'engine': 'InnoDB', 'fields': [{'fieldname': 'student_section', 'fieldtype': 'Section Break', 'label': 'Student', 'doctype': 'DocField'}, {'fieldname': 'student', 'fieldtype': 'Link', 'in_list_view': 1, 'label': 'Student', 'options': 'Student', 'reqd': 1, 'unique': 1, 'doctype': 'DocField'}, {'fieldname': 'student_status', 'fieldtype': 'Data', 'label': 'Student Status', 'read_only': 1, 'doctype': 'DocField'}, {'fieldname': 'form_hash', 'fieldtype': 'Data', 'label': 'Form Hash', 'doctype': 'DocField'}, {'fieldname': 'column_break_onhw', 'fieldtype': 'Column Break', 'doctype': 'DocField'}, {'fieldname': 'status', 'fieldtype': 'Select', 'label': 'Status', 'options': 'Not Filled\nFilled\nApproved\nRejected', 'doctype': 'DocField'}, {'fieldname': 'form_user', 'fieldtype': 'Link', 'label': 'Form User', 'options': 'User', 'doctype': 'DocField'}, {'depends_on': 'eval...
calculated_hash = '423ea5c143a9c273fdca644d06245a80'
doc = {'actions': [], 'allow_rename': 1, 'autoname': 'field:student', 'creation': '2024-07-08 13:34:32.891851', 'doctype': 'DocType', 'engine': 'InnoDB', 'fields': [{'fieldname': 'student_section', 'fieldtype': 'Section Break', 'label': 'Student', 'doctype': 'DocField'}, {'fieldname': 'student', 'fieldtype': 'Link', 'in_list_view': 1, 'label': 'Student', 'options': 'Student', 'reqd': 1, 'unique': 1, 'doctype': 'DocField'}, {'fieldname': 'student_status', 'fieldtype': 'Data', 'label': 'Student Status', 'read_only': 1, 'doctype': 'DocField'}, {'fieldname': 'form_hash', 'fieldtype': 'Data', 'label': 'Form Hash', 'doctype': 'DocField'}, {'fieldname': 'column_break_onhw', 'fieldtype': 'Column Break', 'doctype': 'DocField'}, {'fieldname': 'status', 'fieldtype': 'Select', 'label': 'Status', 'options': 'Not Filled\nFilled\nApproved\nRejected', 'doctype': 'DocField'}, {'fieldname': 'form_user', 'fieldtype': 'Link', 'label': 'Form User', 'options': 'User', 'doctype': 'DocField'}, {'depends_on': 'eval:...
db_modified_timestamp = datetime.datetime(2026, 8, 22, 7, 28, 46, 520024)
is_db_timestamp_latest = True
File "apps/frappe/frappe/modules/import_file.py", line 239, in import_doc
doc.insert()
docdict = {'actions': [], 'allow_rename': 1, 'autoname': 'field:student', 'creation': '2024-07-08 13:34:32.891851', 'doctype': 'DocType', 'engine': 'InnoDB', 'fields': [{'fieldname': 'student_section', 'fieldtype': 'Section Break', 'label': 'Student', 'doctype': 'DocField'}, {'fieldname': 'student', 'fieldtype': 'Link', 'in_list_view': 1, 'label': 'Student', 'options': 'Student', 'reqd': 1, 'unique': 1, 'doctype': 'DocField'}, {'fieldname': 'student_status', 'fieldtype': 'Data', 'label': 'Student Status', 'read_only': 1, 'doctype': 'DocField'}, {'fieldname': 'form_hash', 'fieldtype': 'Data', 'label': 'Form Hash', 'doctype': 'DocField'}, {'fieldname': 'column_break_onhw', 'fieldtype': 'Column Break', 'doctype': 'DocField'}, {'fieldname': 'status', 'fieldtype': 'Select', 'label': 'Status', 'options': 'Not Filled\nFilled\nApproved\nRejected', 'doctype': 'DocField'}, {'fieldname': 'form_user', 'fieldtype': 'Link', 'label': 'Form User', 'options': 'User', 'doctype': 'DocField'}, {'depends_on': 'eval:...
data_import = False
pre_process = None
ignore_version = True
reset_permissions = True
path = 'apps/edu_quality/edu_quality/edu_quality/doctype/cbse_loc/cbse_loc.json'
controller = <class 'frappe.core.doctype.doctype.doctype.DocType'>
doc = <DocType: CBSE LOC>
File "apps/frappe/frappe/model/document.py", line 334, in insert
self.run_post_save_methods()
self = <DocType: CBSE LOC>
ignore_permissions = None
ignore_links = None
ignore_if_duplicate = False
ignore_mandatory = None
set_name = None
set_child_names = True
d = <DocTypeState: 8hlr42k7vj parent=CBSE LOC>
File "apps/frappe/frappe/model/document.py", line 1177, in run_post_save_methods
self.run_method("on_update")
self = <DocType: CBSE LOC>
File "apps/frappe/frappe/model/document.py", line 1011, in run_method
out = Document.hook(fn)(self, *args, **kwargs)
self = <DocType: CBSE LOC>
method = 'on_update'
args = ()
kwargs = {}
fn = <function Document.run_method..fn at 0x12a2c7ec0>
File "apps/frappe/frappe/model/document.py", line 1371, in composer
return composed(self, method, args, **kwargs)
self = <DocType: CBSE LOC>
args = ()
kwargs = {}
hooks = [<function build_domain_restriced_doctype_cache at 0x1082b2de0>, <function clear_doctype_notifications at 0x10baaf1a0>, <function process_workflow_actions at 0x10bac7ec0>, <function attach_files_to_document at 0x107a90860>, <function apply at 0x10badefc0>, <function update_due_date at 0x10badf060>, <function apply_permissions_for_non_standard_user_type at 0x10baf07c0>, <function update_doc_index at 0x10b6e2520>]
method = 'on_update'
doc_events = {'': {'on_update': ['frappe.desk.notifications.clear_doctype_notifications', 'frappe.workflow.doctype.workflow_action.workflow_action.process_workflow_actions', 'frappe.core.doctype.file.utils.attach_files_to_document', 'frappe.automation.doctype.assignment_rule.assignment_rule.apply', 'frappe.automation.doctype.assignment_rule.assignment_rule.update_due_date', 'frappe.core.doctype.user_type.user_type.apply_permissions_for_non_standard_user_type', 'frappe.search.sqlite_search.update_doc_index'], 'after_rename': ['frappe.desk.notifications.clear_doctype_notifications'], 'on_cancel': ['frappe.desk.notifications.clear_doctype_notifications', 'frappe.workflow.doctype.workflow_action.workflow_action.process_workflow_actions', 'frappe.automation.doctype.assignment_rule.assignment_rule.apply'], 'on_trash': ['frappe.desk.notifications.clear_doctype_notifications', 'frappe.workflow.doctype.workflow_action.workflow_action.process_workflow_actions', 'frappe.search.sqlite_search.delete_doc_index'...
handler = 'frappe.search.sqlite_search.update_doc_index'
composed = <function Document.hook..compose..runner at 0x12a2c6480>
compose = <function Document.hook..compose at 0x12a2c7f60>
f = <function Document.run_method..fn at 0x12a2c7ec0>
File "apps/frappe/frappe/model/document.py", line 1353, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
self = <DocType: CBSE LOC>
method = 'on_update'
args = ()
kwargs = {}
add_to_return_value = <function Document.hook..add_to_return_value at 0x12a2c47c0>
fn = <function Document.run_method..fn at 0x12a2c7ec0>
hooks = (<function build_domain_restriced_doctype_cache at 0x1082b2de0>, <function clear_doctype_notifications at 0x10baaf1a0>, <function process_workflow_actions at 0x10bac7ec0>, <function attach_files_to_document at 0x107a90860>, <function apply at 0x10badefc0>, <function update_due_date at 0x10badf060>, <function apply_permissions_for_non_standard_user_type at 0x10baf07c0>, <function update_doc_index at 0x10b6e2520>)
File "apps/frappe/frappe/model/document.py", line 1008, in fn
return method_object(*args, **kwargs)
self = <DocType: CBSE LOC>
args = ()
kwargs = {}
method_object = <bound method DocType.on_update of <DocType: CBSE LOC>>
method = 'on_update'
File "apps/frappe/frappe/core/doctype/doctype/doctype.py", line 549, in on_update
self.run_module_method("on_doctype_update")
self = <DocType: CBSE LOC>
allow_doctype_export = False
File "apps/frappe/frappe/core/doctype/doctype/doctype.py", line 647, in run_module_method
module = load_doctype_module(self.name, self.module)
self = <DocType: CBSE LOC>
method = 'on_doctype_update'
load_doctype_module = <function load_doctype_module at 0x1081b7420>
File "apps/frappe/frappe/modules/utils.py", line 286, in load_doctype_module
raise ImportError(msg) from e
doctype = 'CBSE LOC'
module = 'Edu Quality'
prefix = ''
suffix = ''
app = 'edu_quality'
key = ********
module_name = 'edu_quality.edu_quality.doctype.cbse_loc.cbse_loc'
msg = "Module import failed for CBSE LOC, the DocType you're trying to open might be deleted.\nError: No module named 'nextai'"
builtins.ImportError: Module import failed for CBSE LOC, the DocType you're trying to open might be deleted.
Error: No module named 'nextai'