Files
Yamen Ahmad 3e83d8d7d5 feat: add complete EnCoach backend — Odoo 19 + all addons
Includes:
- Odoo 19 framework (odoo/)
- 27 custom EnCoach addons (new_project/custom_addons/)
  - encoach_core, encoach_api, encoach_lms_api, encoach_adaptive_api
  - encoach_exam, encoach_taxonomy, encoach_adaptive, encoach_assignment
  - encoach_ai, encoach_ai_grading, encoach_ai_generation, encoach_ai_media
  - encoach_courseware, encoach_communication, encoach_subscription
  - encoach_notification, encoach_approval, encoach_branding
  - encoach_classroom, encoach_registration, encoach_stats
  - encoach_faq, encoach_ticket, encoach_training, encoach_resources
  - encoach_adaptive_ai, encoach_sis
- 21 OpenEduCat Enterprise modules (new_project/enterprise-19/)
- 14 OpenEduCat Community modules (new_project/openeducat_erp-19.0/)
- Configuration: odoo.conf, requirements.txt, scripts
- 200+ REST API endpoints with JWT authentication
- SRS and test documentation

Made-with: Cursor
2026-04-01 17:10:04 +04:00

103 lines
4.4 KiB
SCSS

// ------------------------------------------------------------------
// Lato
// ------------------------------------------------------------------
$lato-font-path: './lato';
@mixin lato-font($type, $weight, $style) {
// Cyrillic: U+0400-04FF, U+0500-052F
@font-face {
font-family: 'Odoo Unicode Support Noto';
src: url('https://fonts.odoocdn.com/fonts/noto/NotoSans-#{$type}.woff2') format('woff2'),
url('https://fonts.odoocdn.com/fonts/noto/NotoSans-#{$type}.woff') format('woff'),
url('https://fonts.odoocdn.com/fonts/noto/NotoSans-#{$type}.ttf') format('truetype');
font-weight: $weight;
font-style: $style;
unicode-range: U+0400-04FF, U+0500-052F;
}
// Hebrew: U+0590-05FF, U+FB1D-FB4F
@font-face {
font-family: 'Odoo Unicode Support Noto';
src: url('https://fonts.odoocdn.com/fonts/noto/NotoSansHebrew-#{$type}.woff2') format('woff2'),
url('https://fonts.odoocdn.com/fonts/noto/NotoSansHebrew-#{$type}.woff') format('woff'),
url('https://fonts.odoocdn.com/fonts/noto/NotoSansHebrew-#{$type}.ttf') format('truetype');
font-weight: $weight;
font-style: $style;
unicode-range: U+0590-05FF, U+FB1D-FB4F;
}
// Arabic: U+0600-06FF, U+0750-077F
@font-face {
font-family: 'Odoo Unicode Support Noto';
src: url('https://fonts.odoocdn.com/fonts/noto/NotoSansArabic-#{$type}.woff2') format('woff2'),
url('https://fonts.odoocdn.com/fonts/noto/NotoSansArabic-#{$type}.woff') format('woff'),
url('https://fonts.odoocdn.com/fonts/noto/NotoSansArabic-#{$type}.ttf') format('truetype');
font-weight: $weight;
font-style: $style;
unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF;
}
// Telugu: U+0C00-0C7F
@font-face {
font-family: 'Odoo Unicode Support Noto';
src: url('https://fonts.odoocdn.com/fonts/noto/NotoSansTelugu-#{$type}.woff2') format('woff2'),
url('https://fonts.odoocdn.com/fonts/noto/NotoSansTelugu-#{$type}.woff') format('woff'),
url('https://fonts.odoocdn.com/fonts/noto/NotoSansTelugu-#{$type}.ttf') format('truetype');
font-weight: $weight;
font-style: $style;
unicode-range: U+0C00-0C7F;
}
@font-face {
font-family: 'Lato';
src: url('#{$lato-font-path}/Lato-#{$type}-webfont.eot');
src: url('#{$lato-font-path}/Lato-#{$type}-webfont.eot?#iefix') format('embedded-opentype'),
url('#{$lato-font-path}/Lato-#{$type}-webfont.woff') format('woff'),
url('#{$lato-font-path}/Lato-#{$type}-webfont.ttf') format('truetype'),
url('#{$lato-font-path}/Lato-#{$type}-webfont.svg#Lato') format('svg');
font-weight: $weight;
font-style: $style;
}
@font-face {
font-family: 'Lato-#{$type}';
src: url('#{$lato-font-path}/Lato-#{$type}-webfont.eot');
src: url('#{$lato-font-path}/Lato-#{$type}-webfont.eot?#iefix') format('embedded-opentype'),
url('#{$lato-font-path}/Lato-#{$type}-webfont.woff') format('woff'),
url('#{$lato-font-path}/Lato-#{$type}-webfont.ttf') format('truetype'),
url('#{$lato-font-path}/Lato-#{$type}-webfont.svg#Roboto') format('svg');
}
}
@mixin lato-font-pair($type, $weight) {
@include lato-font('#{$type}', $weight, normal);
@include lato-font('#{$type}Ita', $weight, italic);
}
@include lato-font-pair('Hai', 100);
@include lato-font-pair('Lig', 300);
@include lato-font-pair('Reg', 400);
@include lato-font-pair('Bol', 700);
@include lato-font-pair('Bla', 900);
// ------------------------------------------------------------------
// Google fonts
// ------------------------------------------------------------------
$google-font-path: './google';
@mixin google-font($family, $type, $weight, $style) {
@font-face {
font-family: $family;
src: url('#{$google-font-path}/#{$family}/#{$family}-#{$type}.ttf') format('truetype');
font-weight: $weight;
font-style: $style;
}
}
@mixin google-font-pair($family) {
@include google-font('#{$family}', 'Regular', 400, normal);
}
@include google-font-pair('Montserrat');
@include google-font-pair('Open_Sans');
@include google-font-pair('Oswald');
@include google-font-pair('Raleway');
@include google-font-pair('Roboto');
@include google-font-pair('Tajawal');
@include google-font-pair('Fira_Mono');