diff --git a/custom_addons/encoach_adaptive/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_adaptive/__pycache__/__init__.cpython-312.pyc index 36d80de1..5d9f30a9 100644 Binary files a/custom_addons/encoach_adaptive/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_adaptive/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_adaptive/controllers/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_adaptive/controllers/__pycache__/__init__.cpython-312.pyc index 427f9727..754c202f 100644 Binary files a/custom_addons/encoach_adaptive/controllers/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_adaptive/controllers/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_adaptive/controllers/__pycache__/adaptive.cpython-312.pyc b/custom_addons/encoach_adaptive/controllers/__pycache__/adaptive.cpython-312.pyc index c635214f..e77d7704 100644 Binary files a/custom_addons/encoach_adaptive/controllers/__pycache__/adaptive.cpython-312.pyc and b/custom_addons/encoach_adaptive/controllers/__pycache__/adaptive.cpython-312.pyc differ diff --git a/custom_addons/encoach_adaptive/models/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_adaptive/models/__pycache__/__init__.cpython-312.pyc index 09915cee..76ca1361 100644 Binary files a/custom_addons/encoach_adaptive/models/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_adaptive/models/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_adaptive/models/__pycache__/adaptive_event.cpython-312.pyc b/custom_addons/encoach_adaptive/models/__pycache__/adaptive_event.cpython-312.pyc index 3e181ac6..e32b41c6 100644 Binary files a/custom_addons/encoach_adaptive/models/__pycache__/adaptive_event.cpython-312.pyc and b/custom_addons/encoach_adaptive/models/__pycache__/adaptive_event.cpython-312.pyc differ diff --git a/custom_addons/encoach_adaptive/models/__pycache__/adaptive_path.cpython-312.pyc b/custom_addons/encoach_adaptive/models/__pycache__/adaptive_path.cpython-312.pyc index ac5b845b..08b3e55e 100644 Binary files a/custom_addons/encoach_adaptive/models/__pycache__/adaptive_path.cpython-312.pyc and b/custom_addons/encoach_adaptive/models/__pycache__/adaptive_path.cpython-312.pyc differ diff --git a/custom_addons/encoach_adaptive/models/__pycache__/adaptive_settings.cpython-312.pyc b/custom_addons/encoach_adaptive/models/__pycache__/adaptive_settings.cpython-312.pyc index 8c4b34db..e682088d 100644 Binary files a/custom_addons/encoach_adaptive/models/__pycache__/adaptive_settings.cpython-312.pyc and b/custom_addons/encoach_adaptive/models/__pycache__/adaptive_settings.cpython-312.pyc differ diff --git a/custom_addons/encoach_adaptive/services/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_adaptive/services/__pycache__/__init__.cpython-312.pyc index ce456d38..ae9539a1 100644 Binary files a/custom_addons/encoach_adaptive/services/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_adaptive/services/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_adaptive/services/__pycache__/adaptive_engine.cpython-312.pyc b/custom_addons/encoach_adaptive/services/__pycache__/adaptive_engine.cpython-312.pyc index 4b4c0fc6..183ebe53 100644 Binary files a/custom_addons/encoach_adaptive/services/__pycache__/adaptive_engine.cpython-312.pyc and b/custom_addons/encoach_adaptive/services/__pycache__/adaptive_engine.cpython-312.pyc differ diff --git a/custom_addons/encoach_adaptive/services/__pycache__/alert_service.cpython-312.pyc b/custom_addons/encoach_adaptive/services/__pycache__/alert_service.cpython-312.pyc index 698c75ae..0197a45c 100644 Binary files a/custom_addons/encoach_adaptive/services/__pycache__/alert_service.cpython-312.pyc and b/custom_addons/encoach_adaptive/services/__pycache__/alert_service.cpython-312.pyc differ diff --git a/custom_addons/encoach_adaptive/services/__pycache__/style_matcher.cpython-312.pyc b/custom_addons/encoach_adaptive/services/__pycache__/style_matcher.cpython-312.pyc index 7e93ce73..ae9220fd 100644 Binary files a/custom_addons/encoach_adaptive/services/__pycache__/style_matcher.cpython-312.pyc and b/custom_addons/encoach_adaptive/services/__pycache__/style_matcher.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_ai/__pycache__/__init__.cpython-312.pyc index d3678e69..70c5028d 100644 Binary files a/custom_addons/encoach_ai/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_ai/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai/controllers/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_ai/controllers/__pycache__/__init__.cpython-312.pyc index 6f97ccef..57a3d7af 100644 Binary files a/custom_addons/encoach_ai/controllers/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_ai/controllers/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai/controllers/__pycache__/ai_controller.cpython-312.pyc b/custom_addons/encoach_ai/controllers/__pycache__/ai_controller.cpython-312.pyc index c8a0af46..b9271a17 100644 Binary files a/custom_addons/encoach_ai/controllers/__pycache__/ai_controller.cpython-312.pyc and b/custom_addons/encoach_ai/controllers/__pycache__/ai_controller.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai/controllers/__pycache__/coach_controller.cpython-312.pyc b/custom_addons/encoach_ai/controllers/__pycache__/coach_controller.cpython-312.pyc index a70bd2c0..40b4e54a 100644 Binary files a/custom_addons/encoach_ai/controllers/__pycache__/coach_controller.cpython-312.pyc and b/custom_addons/encoach_ai/controllers/__pycache__/coach_controller.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai/controllers/__pycache__/media_controller.cpython-312.pyc b/custom_addons/encoach_ai/controllers/__pycache__/media_controller.cpython-312.pyc index 1b7a5d79..ef3a23f4 100644 Binary files a/custom_addons/encoach_ai/controllers/__pycache__/media_controller.cpython-312.pyc and b/custom_addons/encoach_ai/controllers/__pycache__/media_controller.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai/models/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_ai/models/__pycache__/__init__.cpython-312.pyc index 4664ced0..baa2bf0b 100644 Binary files a/custom_addons/encoach_ai/models/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_ai/models/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai/models/__pycache__/ai_log.cpython-312.pyc b/custom_addons/encoach_ai/models/__pycache__/ai_log.cpython-312.pyc index 5b634c65..91deee24 100644 Binary files a/custom_addons/encoach_ai/models/__pycache__/ai_log.cpython-312.pyc and b/custom_addons/encoach_ai/models/__pycache__/ai_log.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai/models/__pycache__/ai_settings.cpython-312.pyc b/custom_addons/encoach_ai/models/__pycache__/ai_settings.cpython-312.pyc index 409a5e14..5e7e4cdb 100644 Binary files a/custom_addons/encoach_ai/models/__pycache__/ai_settings.cpython-312.pyc and b/custom_addons/encoach_ai/models/__pycache__/ai_settings.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai/services/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_ai/services/__pycache__/__init__.cpython-312.pyc index 463c1c4c..b46445b6 100644 Binary files a/custom_addons/encoach_ai/services/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_ai/services/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai/services/__pycache__/coach_service.cpython-312.pyc b/custom_addons/encoach_ai/services/__pycache__/coach_service.cpython-312.pyc index 9013520f..adec3b6c 100644 Binary files a/custom_addons/encoach_ai/services/__pycache__/coach_service.cpython-312.pyc and b/custom_addons/encoach_ai/services/__pycache__/coach_service.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai/services/__pycache__/elai_service.cpython-312.pyc b/custom_addons/encoach_ai/services/__pycache__/elai_service.cpython-312.pyc index 5630477d..01837d98 100644 Binary files a/custom_addons/encoach_ai/services/__pycache__/elai_service.cpython-312.pyc and b/custom_addons/encoach_ai/services/__pycache__/elai_service.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai/services/__pycache__/elevenlabs_service.cpython-312.pyc b/custom_addons/encoach_ai/services/__pycache__/elevenlabs_service.cpython-312.pyc index a6b05bd8..79ea3bf7 100644 Binary files a/custom_addons/encoach_ai/services/__pycache__/elevenlabs_service.cpython-312.pyc and b/custom_addons/encoach_ai/services/__pycache__/elevenlabs_service.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai/services/__pycache__/gptzero_service.cpython-312.pyc b/custom_addons/encoach_ai/services/__pycache__/gptzero_service.cpython-312.pyc index 9de34fae..755f4565 100644 Binary files a/custom_addons/encoach_ai/services/__pycache__/gptzero_service.cpython-312.pyc and b/custom_addons/encoach_ai/services/__pycache__/gptzero_service.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai/services/__pycache__/openai_service.cpython-312.pyc b/custom_addons/encoach_ai/services/__pycache__/openai_service.cpython-312.pyc index d060a965..47be1a69 100644 Binary files a/custom_addons/encoach_ai/services/__pycache__/openai_service.cpython-312.pyc and b/custom_addons/encoach_ai/services/__pycache__/openai_service.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai/services/__pycache__/polly_service.cpython-312.pyc b/custom_addons/encoach_ai/services/__pycache__/polly_service.cpython-312.pyc index 27f98d1f..800af51f 100644 Binary files a/custom_addons/encoach_ai/services/__pycache__/polly_service.cpython-312.pyc and b/custom_addons/encoach_ai/services/__pycache__/polly_service.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai/services/__pycache__/whisper_service.cpython-312.pyc b/custom_addons/encoach_ai/services/__pycache__/whisper_service.cpython-312.pyc index 31a17369..3f3da18c 100644 Binary files a/custom_addons/encoach_ai/services/__pycache__/whisper_service.cpython-312.pyc and b/custom_addons/encoach_ai/services/__pycache__/whisper_service.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai/services/elai_service.py b/custom_addons/encoach_ai/services/elai_service.py index bba973d1..2a6c1bfa 100644 --- a/custom_addons/encoach_ai/services/elai_service.py +++ b/custom_addons/encoach_ai/services/elai_service.py @@ -12,6 +12,14 @@ except ImportError: ELAI_BASE = "https://apis.elai.io/api/v1" +AVATAR_PRESETS = { + "vadim": {"code": "vadim.casual", "gender": "male", "voice": "en-GB-RyanNeural"}, + "gia": {"code": "gia.casual", "gender": "female", "voice": "en-US-AriaNeural"}, + "zara": {"code": "zara.regular", "gender": "female", "voice": "en-US-JennyNeural"}, + "mason": {"code": "mason.casual", "gender": "male", "voice": "en-US-GuyNeural"}, + "default": {"code": "gia.casual", "gender": "female", "voice": "en-US-AriaNeural"}, +} + class ElaiService: """Generate avatar videos for listening exercises and instructional content.""" @@ -33,6 +41,7 @@ class ElaiService: return { "Authorization": f"Bearer {self._get_token()}", "Content-Type": "application/json", + "Accept": "application/json", } def _log(self, action, latency, status="success", error=None): @@ -47,6 +56,14 @@ class ElaiService: except Exception: pass + def _resolve_avatar(self, avatar_id): + if not avatar_id or avatar_id == "default": + return AVATAR_PRESETS["default"] + key = avatar_id.split(".")[0].lower() if "." in avatar_id else avatar_id.lower() + if key in AVATAR_PRESETS: + return AVATAR_PRESETS[key] + return {"code": avatar_id, "gender": "female", "voice": "en-US-AriaNeural"} + def list_avatars(self): """List available ELAI avatars.""" if not _requests: @@ -63,15 +80,45 @@ class ElaiService: """ if not _requests: raise RuntimeError("requests package not installed") + + avatar_preset = self._resolve_avatar(avatar_id) + avatar_code = avatar_preset["code"] + avatar_src = f"https://elai-avatars.s3.us-east-2.amazonaws.com/common/{avatar_code.replace('.', '/')}/{avatar_code.replace('.', '_')}.png" + payload = { "name": title, "slides": [ { + "id": 1, "speech": script, - "avatar": avatar_id or "default", - "language": language, + "language": "English", + "voice": avatar_preset["voice"], + "voiceType": "text", + "voiceProvider": "azure", + "avatar": { + "code": avatar_code, + "gender": avatar_preset["gender"], + }, + "canvas": { + "version": "4.4.0", + "background": "#ffffff", + "objects": [ + { + "type": "avatar", + "left": 151.5, + "top": 36, + "fill": "#4868FF", + "scaleX": 0.3, + "scaleY": 0.3, + "height": 1080, + "width": 1080, + "src": avatar_src, + } + ], + }, } ], + "tags": ["encoach"], } t0 = time.time() try: @@ -85,6 +132,15 @@ class ElaiService: data = resp.json() self._log("create_video", int((time.time() - t0) * 1000)) return {"video_id": data.get("_id", data.get("id")), "status": data.get("status", "pending")} + except _requests.exceptions.HTTPError as exc: + body = "" + try: + body = exc.response.text[:500] + except Exception: + pass + _logger.error("ELAI create_video failed: %s — %s", exc, body) + self._log("create_video", int((time.time() - t0) * 1000), "error", f"{exc} | {body}") + raise RuntimeError(f"ELAI API error: {exc.response.status_code} — {body}") from exc except Exception as exc: self._log("create_video", int((time.time() - t0) * 1000), "error", str(exc)) raise diff --git a/custom_addons/encoach_ai_course/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_ai_course/__pycache__/__init__.cpython-312.pyc index 6ba89960..9ba8752f 100644 Binary files a/custom_addons/encoach_ai_course/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_ai_course/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai_course/controllers/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_ai_course/controllers/__pycache__/__init__.cpython-312.pyc index 065e24cf..8df85892 100644 Binary files a/custom_addons/encoach_ai_course/controllers/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_ai_course/controllers/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai_course/controllers/__pycache__/ai_course.cpython-312.pyc b/custom_addons/encoach_ai_course/controllers/__pycache__/ai_course.cpython-312.pyc index 0a384740..ed937d04 100644 Binary files a/custom_addons/encoach_ai_course/controllers/__pycache__/ai_course.cpython-312.pyc and b/custom_addons/encoach_ai_course/controllers/__pycache__/ai_course.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai_course/models/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_ai_course/models/__pycache__/__init__.cpython-312.pyc index eab880a6..df6dc7e0 100644 Binary files a/custom_addons/encoach_ai_course/models/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_ai_course/models/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai_course/models/__pycache__/ai_generation_log.cpython-312.pyc b/custom_addons/encoach_ai_course/models/__pycache__/ai_generation_log.cpython-312.pyc index 0cc580c4..67922e6f 100644 Binary files a/custom_addons/encoach_ai_course/models/__pycache__/ai_generation_log.cpython-312.pyc and b/custom_addons/encoach_ai_course/models/__pycache__/ai_generation_log.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai_course/models/__pycache__/ai_ielts_generation_log.cpython-312.pyc b/custom_addons/encoach_ai_course/models/__pycache__/ai_ielts_generation_log.cpython-312.pyc index f1ff610e..8a76cedc 100644 Binary files a/custom_addons/encoach_ai_course/models/__pycache__/ai_ielts_generation_log.cpython-312.pyc and b/custom_addons/encoach_ai_course/models/__pycache__/ai_ielts_generation_log.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai_course/services/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_ai_course/services/__pycache__/__init__.cpython-312.pyc index 86fa689f..f6852300 100644 Binary files a/custom_addons/encoach_ai_course/services/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_ai_course/services/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai_course/services/__pycache__/english_pipeline.cpython-312.pyc b/custom_addons/encoach_ai_course/services/__pycache__/english_pipeline.cpython-312.pyc index bfe76af3..95d0cc5a 100644 Binary files a/custom_addons/encoach_ai_course/services/__pycache__/english_pipeline.cpython-312.pyc and b/custom_addons/encoach_ai_course/services/__pycache__/english_pipeline.cpython-312.pyc differ diff --git a/custom_addons/encoach_ai_course/services/__pycache__/ielts_pipeline.cpython-312.pyc b/custom_addons/encoach_ai_course/services/__pycache__/ielts_pipeline.cpython-312.pyc index 35874d0d..84250a42 100644 Binary files a/custom_addons/encoach_ai_course/services/__pycache__/ielts_pipeline.cpython-312.pyc and b/custom_addons/encoach_ai_course/services/__pycache__/ielts_pipeline.cpython-312.pyc differ diff --git a/custom_addons/encoach_api/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_api/__pycache__/__init__.cpython-312.pyc index a15491bd..07779332 100644 Binary files a/custom_addons/encoach_api/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_api/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_api/controllers/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_api/controllers/__pycache__/__init__.cpython-312.pyc index 6056dc00..a2e407a4 100644 Binary files a/custom_addons/encoach_api/controllers/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_api/controllers/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_api/controllers/__pycache__/auth.cpython-312.pyc b/custom_addons/encoach_api/controllers/__pycache__/auth.cpython-312.pyc index 9c047dc6..bf954564 100644 Binary files a/custom_addons/encoach_api/controllers/__pycache__/auth.cpython-312.pyc and b/custom_addons/encoach_api/controllers/__pycache__/auth.cpython-312.pyc differ diff --git a/custom_addons/encoach_api/controllers/__pycache__/base.cpython-312.pyc b/custom_addons/encoach_api/controllers/__pycache__/base.cpython-312.pyc index b84fd07e..2ae40704 100644 Binary files a/custom_addons/encoach_api/controllers/__pycache__/base.cpython-312.pyc and b/custom_addons/encoach_api/controllers/__pycache__/base.cpython-312.pyc differ diff --git a/custom_addons/encoach_branding/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_branding/__pycache__/__init__.cpython-312.pyc index 970fb799..260e54e0 100644 Binary files a/custom_addons/encoach_branding/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_branding/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_branding/controllers/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_branding/controllers/__pycache__/__init__.cpython-312.pyc index 10c5264a..24b2f10b 100644 Binary files a/custom_addons/encoach_branding/controllers/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_branding/controllers/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_branding/controllers/__pycache__/branding.cpython-312.pyc b/custom_addons/encoach_branding/controllers/__pycache__/branding.cpython-312.pyc index 2d40721c..89855500 100644 Binary files a/custom_addons/encoach_branding/controllers/__pycache__/branding.cpython-312.pyc and b/custom_addons/encoach_branding/controllers/__pycache__/branding.cpython-312.pyc differ diff --git a/custom_addons/encoach_branding/models/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_branding/models/__pycache__/__init__.cpython-312.pyc index 67e50448..a00b83c9 100644 Binary files a/custom_addons/encoach_branding/models/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_branding/models/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_branding/models/__pycache__/branding.cpython-312.pyc b/custom_addons/encoach_branding/models/__pycache__/branding.cpython-312.pyc index 83af282a..6a260939 100644 Binary files a/custom_addons/encoach_branding/models/__pycache__/branding.cpython-312.pyc and b/custom_addons/encoach_branding/models/__pycache__/branding.cpython-312.pyc differ diff --git a/custom_addons/encoach_core/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_core/__pycache__/__init__.cpython-312.pyc index 35acb5d4..3cd359b3 100644 Binary files a/custom_addons/encoach_core/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_core/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_core/models/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_core/models/__pycache__/__init__.cpython-312.pyc index 9fce35a0..bacbb9f0 100644 Binary files a/custom_addons/encoach_core/models/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_core/models/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_core/models/__pycache__/code.cpython-312.pyc b/custom_addons/encoach_core/models/__pycache__/code.cpython-312.pyc index 00b10015..ab1577bc 100644 Binary files a/custom_addons/encoach_core/models/__pycache__/code.cpython-312.pyc and b/custom_addons/encoach_core/models/__pycache__/code.cpython-312.pyc differ diff --git a/custom_addons/encoach_core/models/__pycache__/encoach_entity.cpython-312.pyc b/custom_addons/encoach_core/models/__pycache__/encoach_entity.cpython-312.pyc index a246b098..4fbc6f21 100644 Binary files a/custom_addons/encoach_core/models/__pycache__/encoach_entity.cpython-312.pyc and b/custom_addons/encoach_core/models/__pycache__/encoach_entity.cpython-312.pyc differ diff --git a/custom_addons/encoach_core/models/__pycache__/encoach_user.cpython-312.pyc b/custom_addons/encoach_core/models/__pycache__/encoach_user.cpython-312.pyc index 9f0e13e6..00c4931c 100644 Binary files a/custom_addons/encoach_core/models/__pycache__/encoach_user.cpython-312.pyc and b/custom_addons/encoach_core/models/__pycache__/encoach_user.cpython-312.pyc differ diff --git a/custom_addons/encoach_core/models/__pycache__/entity_level_mapping.cpython-312.pyc b/custom_addons/encoach_core/models/__pycache__/entity_level_mapping.cpython-312.pyc index 171e3861..f241efc8 100644 Binary files a/custom_addons/encoach_core/models/__pycache__/entity_level_mapping.cpython-312.pyc and b/custom_addons/encoach_core/models/__pycache__/entity_level_mapping.cpython-312.pyc differ diff --git a/custom_addons/encoach_core/models/__pycache__/invite.cpython-312.pyc b/custom_addons/encoach_core/models/__pycache__/invite.cpython-312.pyc index 99216aaa..8bc60a91 100644 Binary files a/custom_addons/encoach_core/models/__pycache__/invite.cpython-312.pyc and b/custom_addons/encoach_core/models/__pycache__/invite.cpython-312.pyc differ diff --git a/custom_addons/encoach_core/models/__pycache__/permission.cpython-312.pyc b/custom_addons/encoach_core/models/__pycache__/permission.cpython-312.pyc index 04faf1e6..002bc777 100644 Binary files a/custom_addons/encoach_core/models/__pycache__/permission.cpython-312.pyc and b/custom_addons/encoach_core/models/__pycache__/permission.cpython-312.pyc differ diff --git a/custom_addons/encoach_core/models/__pycache__/role.cpython-312.pyc b/custom_addons/encoach_core/models/__pycache__/role.cpython-312.pyc index 0b8d51fd..5b1311e1 100644 Binary files a/custom_addons/encoach_core/models/__pycache__/role.cpython-312.pyc and b/custom_addons/encoach_core/models/__pycache__/role.cpython-312.pyc differ diff --git a/custom_addons/encoach_core/models/__pycache__/user_entity_rel.cpython-312.pyc b/custom_addons/encoach_core/models/__pycache__/user_entity_rel.cpython-312.pyc index 38f20051..434ad224 100644 Binary files a/custom_addons/encoach_core/models/__pycache__/user_entity_rel.cpython-312.pyc and b/custom_addons/encoach_core/models/__pycache__/user_entity_rel.cpython-312.pyc differ diff --git a/custom_addons/encoach_course_gen/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_course_gen/__pycache__/__init__.cpython-312.pyc index 072db1d1..c33d262b 100644 Binary files a/custom_addons/encoach_course_gen/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_course_gen/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_course_gen/controllers/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_course_gen/controllers/__pycache__/__init__.cpython-312.pyc index 8aac14f9..64698d43 100644 Binary files a/custom_addons/encoach_course_gen/controllers/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_course_gen/controllers/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_course_gen/controllers/__pycache__/course.cpython-312.pyc b/custom_addons/encoach_course_gen/controllers/__pycache__/course.cpython-312.pyc index d2baf7ba..7e925889 100644 Binary files a/custom_addons/encoach_course_gen/controllers/__pycache__/course.cpython-312.pyc and b/custom_addons/encoach_course_gen/controllers/__pycache__/course.cpython-312.pyc differ diff --git a/custom_addons/encoach_course_gen/models/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_course_gen/models/__pycache__/__init__.cpython-312.pyc index 14d439a0..dc099a79 100644 Binary files a/custom_addons/encoach_course_gen/models/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_course_gen/models/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_course_gen/models/__pycache__/course_extension.cpython-312.pyc b/custom_addons/encoach_course_gen/models/__pycache__/course_extension.cpython-312.pyc index 286ebcd9..66b431b3 100644 Binary files a/custom_addons/encoach_course_gen/models/__pycache__/course_extension.cpython-312.pyc and b/custom_addons/encoach_course_gen/models/__pycache__/course_extension.cpython-312.pyc differ diff --git a/custom_addons/encoach_course_gen/models/__pycache__/course_module.cpython-312.pyc b/custom_addons/encoach_course_gen/models/__pycache__/course_module.cpython-312.pyc index 9af5bd4d..93fd8726 100644 Binary files a/custom_addons/encoach_course_gen/models/__pycache__/course_module.cpython-312.pyc and b/custom_addons/encoach_course_gen/models/__pycache__/course_module.cpython-312.pyc differ diff --git a/custom_addons/encoach_course_gen/models/__pycache__/course_section.cpython-312.pyc b/custom_addons/encoach_course_gen/models/__pycache__/course_section.cpython-312.pyc index a2356227..ffa11564 100644 Binary files a/custom_addons/encoach_course_gen/models/__pycache__/course_section.cpython-312.pyc and b/custom_addons/encoach_course_gen/models/__pycache__/course_section.cpython-312.pyc differ diff --git a/custom_addons/encoach_course_gen/models/__pycache__/gap_profile.cpython-312.pyc b/custom_addons/encoach_course_gen/models/__pycache__/gap_profile.cpython-312.pyc index ab9b300f..76a95986 100644 Binary files a/custom_addons/encoach_course_gen/models/__pycache__/gap_profile.cpython-312.pyc and b/custom_addons/encoach_course_gen/models/__pycache__/gap_profile.cpython-312.pyc differ diff --git a/custom_addons/encoach_exam_template/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_exam_template/__pycache__/__init__.cpython-312.pyc index 0f5d194e..ce34504a 100644 Binary files a/custom_addons/encoach_exam_template/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_exam_template/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_exam_template/controllers/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_exam_template/controllers/__pycache__/__init__.cpython-312.pyc index b9b76159..a8186e1b 100644 Binary files a/custom_addons/encoach_exam_template/controllers/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_exam_template/controllers/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_exam_template/controllers/__pycache__/custom_exam.cpython-312.pyc b/custom_addons/encoach_exam_template/controllers/__pycache__/custom_exam.cpython-312.pyc index 670cba11..bb455e78 100644 Binary files a/custom_addons/encoach_exam_template/controllers/__pycache__/custom_exam.cpython-312.pyc and b/custom_addons/encoach_exam_template/controllers/__pycache__/custom_exam.cpython-312.pyc differ diff --git a/custom_addons/encoach_exam_template/controllers/__pycache__/exam_structures.cpython-312.pyc b/custom_addons/encoach_exam_template/controllers/__pycache__/exam_structures.cpython-312.pyc index 92b4cae4..89e389c3 100644 Binary files a/custom_addons/encoach_exam_template/controllers/__pycache__/exam_structures.cpython-312.pyc and b/custom_addons/encoach_exam_template/controllers/__pycache__/exam_structures.cpython-312.pyc differ diff --git a/custom_addons/encoach_exam_template/controllers/__pycache__/ielts_exam.cpython-312.pyc b/custom_addons/encoach_exam_template/controllers/__pycache__/ielts_exam.cpython-312.pyc index 7bed2f22..e270b40f 100644 Binary files a/custom_addons/encoach_exam_template/controllers/__pycache__/ielts_exam.cpython-312.pyc and b/custom_addons/encoach_exam_template/controllers/__pycache__/ielts_exam.cpython-312.pyc differ diff --git a/custom_addons/encoach_exam_template/controllers/__pycache__/templates.cpython-312.pyc b/custom_addons/encoach_exam_template/controllers/__pycache__/templates.cpython-312.pyc index f38f2f7b..a44fdfa2 100644 Binary files a/custom_addons/encoach_exam_template/controllers/__pycache__/templates.cpython-312.pyc and b/custom_addons/encoach_exam_template/controllers/__pycache__/templates.cpython-312.pyc differ diff --git a/custom_addons/encoach_exam_template/models/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_exam_template/models/__pycache__/__init__.cpython-312.pyc index 4e68ed99..02cb9072 100644 Binary files a/custom_addons/encoach_exam_template/models/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_exam_template/models/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_exam_template/models/__pycache__/audio_file.cpython-312.pyc b/custom_addons/encoach_exam_template/models/__pycache__/audio_file.cpython-312.pyc index bdcb34f8..0ac707c2 100644 Binary files a/custom_addons/encoach_exam_template/models/__pycache__/audio_file.cpython-312.pyc and b/custom_addons/encoach_exam_template/models/__pycache__/audio_file.cpython-312.pyc differ diff --git a/custom_addons/encoach_exam_template/models/__pycache__/exam_assignment.cpython-312.pyc b/custom_addons/encoach_exam_template/models/__pycache__/exam_assignment.cpython-312.pyc index 510137f6..1e01ec4b 100644 Binary files a/custom_addons/encoach_exam_template/models/__pycache__/exam_assignment.cpython-312.pyc and b/custom_addons/encoach_exam_template/models/__pycache__/exam_assignment.cpython-312.pyc differ diff --git a/custom_addons/encoach_exam_template/models/__pycache__/exam_custom.cpython-312.pyc b/custom_addons/encoach_exam_template/models/__pycache__/exam_custom.cpython-312.pyc index 9be64d32..fac0861b 100644 Binary files a/custom_addons/encoach_exam_template/models/__pycache__/exam_custom.cpython-312.pyc and b/custom_addons/encoach_exam_template/models/__pycache__/exam_custom.cpython-312.pyc differ diff --git a/custom_addons/encoach_exam_template/models/__pycache__/exam_custom_section.cpython-312.pyc b/custom_addons/encoach_exam_template/models/__pycache__/exam_custom_section.cpython-312.pyc index e9815b20..a562faaf 100644 Binary files a/custom_addons/encoach_exam_template/models/__pycache__/exam_custom_section.cpython-312.pyc and b/custom_addons/encoach_exam_template/models/__pycache__/exam_custom_section.cpython-312.pyc differ diff --git a/custom_addons/encoach_exam_template/models/__pycache__/exam_structure.cpython-312.pyc b/custom_addons/encoach_exam_template/models/__pycache__/exam_structure.cpython-312.pyc index 95c8ef16..b5995ccb 100644 Binary files a/custom_addons/encoach_exam_template/models/__pycache__/exam_structure.cpython-312.pyc and b/custom_addons/encoach_exam_template/models/__pycache__/exam_structure.cpython-312.pyc differ diff --git a/custom_addons/encoach_exam_template/models/__pycache__/exam_template.cpython-312.pyc b/custom_addons/encoach_exam_template/models/__pycache__/exam_template.cpython-312.pyc index f92e04cc..0ad152bd 100644 Binary files a/custom_addons/encoach_exam_template/models/__pycache__/exam_template.cpython-312.pyc and b/custom_addons/encoach_exam_template/models/__pycache__/exam_template.cpython-312.pyc differ diff --git a/custom_addons/encoach_exam_template/models/__pycache__/passage.cpython-312.pyc b/custom_addons/encoach_exam_template/models/__pycache__/passage.cpython-312.pyc index fcbdbe77..90c1d91a 100644 Binary files a/custom_addons/encoach_exam_template/models/__pycache__/passage.cpython-312.pyc and b/custom_addons/encoach_exam_template/models/__pycache__/passage.cpython-312.pyc differ diff --git a/custom_addons/encoach_exam_template/models/__pycache__/question.cpython-312.pyc b/custom_addons/encoach_exam_template/models/__pycache__/question.cpython-312.pyc index 0ad38fa4..06b26e4b 100644 Binary files a/custom_addons/encoach_exam_template/models/__pycache__/question.cpython-312.pyc and b/custom_addons/encoach_exam_template/models/__pycache__/question.cpython-312.pyc differ diff --git a/custom_addons/encoach_exam_template/models/__pycache__/rubric.cpython-312.pyc b/custom_addons/encoach_exam_template/models/__pycache__/rubric.cpython-312.pyc index 2a448d7c..e4efe2bb 100644 Binary files a/custom_addons/encoach_exam_template/models/__pycache__/rubric.cpython-312.pyc and b/custom_addons/encoach_exam_template/models/__pycache__/rubric.cpython-312.pyc differ diff --git a/custom_addons/encoach_exam_template/models/__pycache__/speaking_card.cpython-312.pyc b/custom_addons/encoach_exam_template/models/__pycache__/speaking_card.cpython-312.pyc index 419a6048..c97b062c 100644 Binary files a/custom_addons/encoach_exam_template/models/__pycache__/speaking_card.cpython-312.pyc and b/custom_addons/encoach_exam_template/models/__pycache__/speaking_card.cpython-312.pyc differ diff --git a/custom_addons/encoach_exam_template/models/__pycache__/writing_prompt.cpython-312.pyc b/custom_addons/encoach_exam_template/models/__pycache__/writing_prompt.cpython-312.pyc index ee4a61bf..b3b9e4d8 100644 Binary files a/custom_addons/encoach_exam_template/models/__pycache__/writing_prompt.cpython-312.pyc and b/custom_addons/encoach_exam_template/models/__pycache__/writing_prompt.cpython-312.pyc differ diff --git a/custom_addons/encoach_quality_gate/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_quality_gate/__pycache__/__init__.cpython-312.pyc index 6e506758..4ac8c77f 100644 Binary files a/custom_addons/encoach_quality_gate/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_quality_gate/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_quality_gate/models/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_quality_gate/models/__pycache__/__init__.cpython-312.pyc index a2478ca3..997da9b5 100644 Binary files a/custom_addons/encoach_quality_gate/models/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_quality_gate/models/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_quality_gate/models/__pycache__/ielts_standards_check.cpython-312.pyc b/custom_addons/encoach_quality_gate/models/__pycache__/ielts_standards_check.cpython-312.pyc index 5f395429..e1d04854 100644 Binary files a/custom_addons/encoach_quality_gate/models/__pycache__/ielts_standards_check.cpython-312.pyc and b/custom_addons/encoach_quality_gate/models/__pycache__/ielts_standards_check.cpython-312.pyc differ diff --git a/custom_addons/encoach_quality_gate/services/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_quality_gate/services/__pycache__/__init__.cpython-312.pyc index e9f77ca4..748746da 100644 Binary files a/custom_addons/encoach_quality_gate/services/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_quality_gate/services/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_quality_gate/services/__pycache__/content_gate.cpython-312.pyc b/custom_addons/encoach_quality_gate/services/__pycache__/content_gate.cpython-312.pyc index de18c28a..c42914ee 100644 Binary files a/custom_addons/encoach_quality_gate/services/__pycache__/content_gate.cpython-312.pyc and b/custom_addons/encoach_quality_gate/services/__pycache__/content_gate.cpython-312.pyc differ diff --git a/custom_addons/encoach_quality_gate/services/__pycache__/quality_checker.cpython-312.pyc b/custom_addons/encoach_quality_gate/services/__pycache__/quality_checker.cpython-312.pyc index 86a5458a..4b6220fc 100644 Binary files a/custom_addons/encoach_quality_gate/services/__pycache__/quality_checker.cpython-312.pyc and b/custom_addons/encoach_quality_gate/services/__pycache__/quality_checker.cpython-312.pyc differ diff --git a/custom_addons/encoach_resources/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_resources/__pycache__/__init__.cpython-312.pyc index 78503b81..925c649d 100644 Binary files a/custom_addons/encoach_resources/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_resources/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_resources/models/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_resources/models/__pycache__/__init__.cpython-312.pyc index c0793c6c..e15d7626 100644 Binary files a/custom_addons/encoach_resources/models/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_resources/models/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_resources/models/__pycache__/resource.cpython-312.pyc b/custom_addons/encoach_resources/models/__pycache__/resource.cpython-312.pyc index 5e491e17..516a4b2a 100644 Binary files a/custom_addons/encoach_resources/models/__pycache__/resource.cpython-312.pyc and b/custom_addons/encoach_resources/models/__pycache__/resource.cpython-312.pyc differ diff --git a/custom_addons/encoach_scoring/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_scoring/__pycache__/__init__.cpython-312.pyc index 44b96489..fb61fdcb 100644 Binary files a/custom_addons/encoach_scoring/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_scoring/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_scoring/controllers/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_scoring/controllers/__pycache__/__init__.cpython-312.pyc index d0e4b583..f45d734c 100644 Binary files a/custom_addons/encoach_scoring/controllers/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_scoring/controllers/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_scoring/controllers/__pycache__/exam_session.cpython-312.pyc b/custom_addons/encoach_scoring/controllers/__pycache__/exam_session.cpython-312.pyc index cc14c149..4db2e872 100644 Binary files a/custom_addons/encoach_scoring/controllers/__pycache__/exam_session.cpython-312.pyc and b/custom_addons/encoach_scoring/controllers/__pycache__/exam_session.cpython-312.pyc differ diff --git a/custom_addons/encoach_scoring/controllers/__pycache__/grading.cpython-312.pyc b/custom_addons/encoach_scoring/controllers/__pycache__/grading.cpython-312.pyc index 9e4f1a1e..55904406 100644 Binary files a/custom_addons/encoach_scoring/controllers/__pycache__/grading.cpython-312.pyc and b/custom_addons/encoach_scoring/controllers/__pycache__/grading.cpython-312.pyc differ diff --git a/custom_addons/encoach_scoring/controllers/__pycache__/score_release.cpython-312.pyc b/custom_addons/encoach_scoring/controllers/__pycache__/score_release.cpython-312.pyc index edfd648b..0fde2c4a 100644 Binary files a/custom_addons/encoach_scoring/controllers/__pycache__/score_release.cpython-312.pyc and b/custom_addons/encoach_scoring/controllers/__pycache__/score_release.cpython-312.pyc differ diff --git a/custom_addons/encoach_scoring/models/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_scoring/models/__pycache__/__init__.cpython-312.pyc index cedb307c..adaa370a 100644 Binary files a/custom_addons/encoach_scoring/models/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_scoring/models/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_scoring/models/__pycache__/feedback.cpython-312.pyc b/custom_addons/encoach_scoring/models/__pycache__/feedback.cpython-312.pyc index c9684a91..1415bb1f 100644 Binary files a/custom_addons/encoach_scoring/models/__pycache__/feedback.cpython-312.pyc and b/custom_addons/encoach_scoring/models/__pycache__/feedback.cpython-312.pyc differ diff --git a/custom_addons/encoach_scoring/models/__pycache__/score.cpython-312.pyc b/custom_addons/encoach_scoring/models/__pycache__/score.cpython-312.pyc index 82867230..44e0549e 100644 Binary files a/custom_addons/encoach_scoring/models/__pycache__/score.cpython-312.pyc and b/custom_addons/encoach_scoring/models/__pycache__/score.cpython-312.pyc differ diff --git a/custom_addons/encoach_scoring/models/__pycache__/student_answer.cpython-312.pyc b/custom_addons/encoach_scoring/models/__pycache__/student_answer.cpython-312.pyc index 2ce33a1f..56ce5469 100644 Binary files a/custom_addons/encoach_scoring/models/__pycache__/student_answer.cpython-312.pyc and b/custom_addons/encoach_scoring/models/__pycache__/student_answer.cpython-312.pyc differ diff --git a/custom_addons/encoach_scoring/models/__pycache__/student_attempt.cpython-312.pyc b/custom_addons/encoach_scoring/models/__pycache__/student_attempt.cpython-312.pyc index b5c4c3e9..e0298d68 100644 Binary files a/custom_addons/encoach_scoring/models/__pycache__/student_attempt.cpython-312.pyc and b/custom_addons/encoach_scoring/models/__pycache__/student_attempt.cpython-312.pyc differ diff --git a/custom_addons/encoach_scoring/models/__pycache__/student_progress.cpython-312.pyc b/custom_addons/encoach_scoring/models/__pycache__/student_progress.cpython-312.pyc index a8e01667..eacef8d3 100644 Binary files a/custom_addons/encoach_scoring/models/__pycache__/student_progress.cpython-312.pyc and b/custom_addons/encoach_scoring/models/__pycache__/student_progress.cpython-312.pyc differ diff --git a/custom_addons/encoach_scoring/services/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_scoring/services/__pycache__/__init__.cpython-312.pyc index 4ba9cfa1..401d93d0 100644 Binary files a/custom_addons/encoach_scoring/services/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_scoring/services/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_scoring/services/__pycache__/speaking_evaluator.cpython-312.pyc b/custom_addons/encoach_scoring/services/__pycache__/speaking_evaluator.cpython-312.pyc index 7fb72403..8e557b46 100644 Binary files a/custom_addons/encoach_scoring/services/__pycache__/speaking_evaluator.cpython-312.pyc and b/custom_addons/encoach_scoring/services/__pycache__/speaking_evaluator.cpython-312.pyc differ diff --git a/custom_addons/encoach_taxonomy/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_taxonomy/__pycache__/__init__.cpython-312.pyc index 62689f41..624e7185 100644 Binary files a/custom_addons/encoach_taxonomy/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_taxonomy/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_taxonomy/controllers/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_taxonomy/controllers/__pycache__/__init__.cpython-312.pyc index ef0f0761..f1276289 100644 Binary files a/custom_addons/encoach_taxonomy/controllers/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_taxonomy/controllers/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_taxonomy/controllers/__pycache__/taxonomy.cpython-312.pyc b/custom_addons/encoach_taxonomy/controllers/__pycache__/taxonomy.cpython-312.pyc index 0c28578d..27bc20bb 100644 Binary files a/custom_addons/encoach_taxonomy/controllers/__pycache__/taxonomy.cpython-312.pyc and b/custom_addons/encoach_taxonomy/controllers/__pycache__/taxonomy.cpython-312.pyc differ diff --git a/custom_addons/encoach_taxonomy/models/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_taxonomy/models/__pycache__/__init__.cpython-312.pyc index be44a61c..cebc2bb2 100644 Binary files a/custom_addons/encoach_taxonomy/models/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_taxonomy/models/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_taxonomy/models/__pycache__/domain.cpython-312.pyc b/custom_addons/encoach_taxonomy/models/__pycache__/domain.cpython-312.pyc index 65826f19..5296548f 100644 Binary files a/custom_addons/encoach_taxonomy/models/__pycache__/domain.cpython-312.pyc and b/custom_addons/encoach_taxonomy/models/__pycache__/domain.cpython-312.pyc differ diff --git a/custom_addons/encoach_taxonomy/models/__pycache__/learning_objective.cpython-312.pyc b/custom_addons/encoach_taxonomy/models/__pycache__/learning_objective.cpython-312.pyc index cbc81cac..7c583ab2 100644 Binary files a/custom_addons/encoach_taxonomy/models/__pycache__/learning_objective.cpython-312.pyc and b/custom_addons/encoach_taxonomy/models/__pycache__/learning_objective.cpython-312.pyc differ diff --git a/custom_addons/encoach_taxonomy/models/__pycache__/subject.cpython-312.pyc b/custom_addons/encoach_taxonomy/models/__pycache__/subject.cpython-312.pyc index ff6b79dd..479ae020 100644 Binary files a/custom_addons/encoach_taxonomy/models/__pycache__/subject.cpython-312.pyc and b/custom_addons/encoach_taxonomy/models/__pycache__/subject.cpython-312.pyc differ diff --git a/custom_addons/encoach_taxonomy/models/__pycache__/topic.cpython-312.pyc b/custom_addons/encoach_taxonomy/models/__pycache__/topic.cpython-312.pyc index 689e6856..e451a8ca 100644 Binary files a/custom_addons/encoach_taxonomy/models/__pycache__/topic.cpython-312.pyc and b/custom_addons/encoach_taxonomy/models/__pycache__/topic.cpython-312.pyc differ diff --git a/custom_addons/encoach_vector/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_vector/__pycache__/__init__.cpython-312.pyc index bd937586..371180c0 100644 Binary files a/custom_addons/encoach_vector/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_vector/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_vector/models/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_vector/models/__pycache__/__init__.cpython-312.pyc index 3bfb7339..1291db7d 100644 Binary files a/custom_addons/encoach_vector/models/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_vector/models/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_vector/models/__pycache__/embedding.cpython-312.pyc b/custom_addons/encoach_vector/models/__pycache__/embedding.cpython-312.pyc index 54e2521d..19079ce4 100644 Binary files a/custom_addons/encoach_vector/models/__pycache__/embedding.cpython-312.pyc and b/custom_addons/encoach_vector/models/__pycache__/embedding.cpython-312.pyc differ diff --git a/custom_addons/encoach_vector/services/__pycache__/__init__.cpython-312.pyc b/custom_addons/encoach_vector/services/__pycache__/__init__.cpython-312.pyc index b8144575..c3930a84 100644 Binary files a/custom_addons/encoach_vector/services/__pycache__/__init__.cpython-312.pyc and b/custom_addons/encoach_vector/services/__pycache__/__init__.cpython-312.pyc differ diff --git a/custom_addons/encoach_vector/services/__pycache__/embedding_service.cpython-312.pyc b/custom_addons/encoach_vector/services/__pycache__/embedding_service.cpython-312.pyc index a127a5da..be060280 100644 Binary files a/custom_addons/encoach_vector/services/__pycache__/embedding_service.cpython-312.pyc and b/custom_addons/encoach_vector/services/__pycache__/embedding_service.cpython-312.pyc differ diff --git a/custom_addons/encoach_vector/services/__pycache__/indexer.cpython-312.pyc b/custom_addons/encoach_vector/services/__pycache__/indexer.cpython-312.pyc index 1fa885d6..93178459 100644 Binary files a/custom_addons/encoach_vector/services/__pycache__/indexer.cpython-312.pyc and b/custom_addons/encoach_vector/services/__pycache__/indexer.cpython-312.pyc differ