From 3974de24f63de052392ede99478b1dc5cd2dc7ca Mon Sep 17 00:00:00 2001 From: fgonzalezurriola Date: Fri, 17 Jan 2025 09:55:53 -0300 Subject: [PATCH 1/2] Chore: tracked unstaged files --- cms/static/images/favicon.ico | Bin 0 -> 12206 bytes cms/static/images/studio-logo.png | Bin 0 -> 1681 bytes .../sass/partials/cms/theme/_extras.scss | 5 + .../sass/partials/cms/theme/_fonts.scss | 1 + .../partials/cms/theme/_variables-v1.scss | 30 + .../sass/partials/cms/theme/_variables.scss | 20 + env.config.jsx | 67 + lms/static/fonts/CrimsonText-Bold.ttf | Bin 0 -> 64424 bytes lms/static/fonts/CrimsonText-BoldItalic.ttf | Bin 0 -> 50132 bytes lms/static/fonts/CrimsonText-Italic.ttf | Bin 0 -> 87932 bytes lms/static/fonts/CrimsonText-Regular.ttf | Bin 0 -> 125568 bytes lms/static/fonts/CrimsonText-SemiBold.ttf | Bin 0 -> 52612 bytes .../fonts/CrimsonText-SemiBoldItalic.ttf | Bin 0 -> 50000 bytes lms/static/fonts/IBMPlexSans-Bold.ttf | Bin 0 -> 180352 bytes lms/static/fonts/IBMPlexSans-BoldItalic.ttf | Bin 0 -> 189096 bytes lms/static/fonts/IBMPlexSans-ExtraLight.ttf | Bin 0 -> 183760 bytes .../fonts/IBMPlexSans-ExtraLightItalic.ttf | Bin 0 -> 191888 bytes lms/static/fonts/IBMPlexSans-Italic.ttf | Bin 0 -> 189048 bytes lms/static/fonts/IBMPlexSans-Light.ttf | Bin 0 -> 182496 bytes lms/static/fonts/IBMPlexSans-LightItalic.ttf | Bin 0 -> 191240 bytes lms/static/fonts/IBMPlexSans-Medium.ttf | Bin 0 -> 181536 bytes lms/static/fonts/IBMPlexSans-MediumItalic.ttf | Bin 0 -> 190196 bytes lms/static/fonts/IBMPlexSans-Regular.ttf | Bin 0 -> 180372 bytes lms/static/fonts/IBMPlexSans-SemiBold.ttf | Bin 0 -> 181760 bytes .../fonts/IBMPlexSans-SemiBoldItalic.ttf | Bin 0 -> 190736 bytes lms/static/fonts/IBMPlexSans-Thin.ttf | Bin 0 -> 183484 bytes lms/static/fonts/IBMPlexSans-ThinItalic.ttf | Bin 0 -> 192604 bytes lms/static/fonts/OFL.txt | 94 ++ lms/static/images/Vector.svg | 3 + lms/static/images/about-dark.svg | 177 +++ lms/static/images/about.svg | 177 +++ lms/static/images/blog-dark.svg | 50 + lms/static/images/blog.svg | 50 + lms/static/images/contact-dark.svg | 48 + lms/static/images/contact.svg | 48 + lms/static/images/donate-dark.svg | 59 + lms/static/images/donate.svg | 59 + lms/static/images/emptystate.png | Bin 0 -> 5202 bytes lms/static/images/favicon.ico | Bin 0 -> 12206 bytes lms/static/images/help-dark.svg | 22 + lms/static/images/help.svg | 22 + lms/static/images/logo.png | Bin 0 -> 832 bytes lms/static/images/no_course_image.png | Bin 0 -> 62306 bytes lms/static/images/openedx-logo.png | Bin 0 -> 8031 bytes lms/static/images/privacy-dark.svg | 17 + lms/static/images/privacy.svg | 17 + lms/static/images/profile.svg | 27 + lms/static/images/tos-dark.svg | 19 + lms/static/images/tos.svg | 19 + lms/static/images/tutor-logo.png | Bin 0 -> 37976 bytes lms/static/images/unenroll.svg | 4 + lms/static/js/dark-theme.js | 38 + .../sass/certificates/_certificate.scss | 78 + lms/static/sass/courseware/_about.scss | 452 ++++++ lms/static/sass/courseware/_bookmarks.scss | 248 +++ lms/static/sass/courseware/_discover.scss | 529 +++++++ lms/static/sass/dashboard/_dashboard.scss | 418 +++++ lms/static/sass/extra/_footer.scss | 135 ++ lms/static/sass/extra/_header.scss | 340 +++++ lms/static/sass/home/_home.scss | 209 +++ .../sass/partials/lms/theme/_extras.scss | 1338 +++++++++++++++++ .../sass/partials/lms/theme/_fonts.scss | 48 + .../sass/partials/lms/theme/_variables.scss | 36 + lms/static/sass/programs/_programs.scss | 609 ++++++++ lms/static/sass/xblock/_xblock.scss | 274 ++++ lms/templates/course.html | 57 + lms/templates/courseware/course_about.html | 295 ++++ .../course_about_sidebar_header.html | 69 + lms/templates/courseware/courses.html | 100 ++ .../discovery/course_card.underscore | 32 + lms/templates/footer.html | 152 ++ lms/templates/header/brand.html | 37 + lms/templates/header/header.html | 110 ++ .../header/navbar-authenticated.html | 60 + lms/templates/header/navbar-logo-header.html | 61 + .../header/navbar-not-authenticated.html | 60 + lms/templates/header/theme-toggle-button.html | 14 + lms/templates/header/user_dropdown.html | 49 + lms/templates/index.html | 79 + lms/templates/index_overlay.html | 2 + .../learner_dashboard/program_card.underscore | 70 + .../learner_dashboard/programs_fragment.html | 42 + lms/templates/static_templates/about.html | 30 + lms/templates/static_templates/blog.html | 22 + lms/templates/static_templates/contact.html | 22 + lms/templates/static_templates/donate.html | 22 + lms/templates/static_templates/help.html | 22 + lms/templates/static_templates/privacy.html | 24 + lms/templates/static_templates/tos.html | 22 + tasks/init.sh | 17 + 90 files changed, 7257 insertions(+) create mode 100644 cms/static/images/favicon.ico create mode 100644 cms/static/images/studio-logo.png create mode 100644 cms/static/sass/partials/cms/theme/_extras.scss create mode 100644 cms/static/sass/partials/cms/theme/_fonts.scss create mode 100644 cms/static/sass/partials/cms/theme/_variables-v1.scss create mode 100644 cms/static/sass/partials/cms/theme/_variables.scss create mode 100644 env.config.jsx create mode 100644 lms/static/fonts/CrimsonText-Bold.ttf create mode 100644 lms/static/fonts/CrimsonText-BoldItalic.ttf create mode 100644 lms/static/fonts/CrimsonText-Italic.ttf create mode 100644 lms/static/fonts/CrimsonText-Regular.ttf create mode 100644 lms/static/fonts/CrimsonText-SemiBold.ttf create mode 100644 lms/static/fonts/CrimsonText-SemiBoldItalic.ttf create mode 100644 lms/static/fonts/IBMPlexSans-Bold.ttf create mode 100644 lms/static/fonts/IBMPlexSans-BoldItalic.ttf create mode 100644 lms/static/fonts/IBMPlexSans-ExtraLight.ttf create mode 100644 lms/static/fonts/IBMPlexSans-ExtraLightItalic.ttf create mode 100644 lms/static/fonts/IBMPlexSans-Italic.ttf create mode 100644 lms/static/fonts/IBMPlexSans-Light.ttf create mode 100644 lms/static/fonts/IBMPlexSans-LightItalic.ttf create mode 100644 lms/static/fonts/IBMPlexSans-Medium.ttf create mode 100644 lms/static/fonts/IBMPlexSans-MediumItalic.ttf create mode 100644 lms/static/fonts/IBMPlexSans-Regular.ttf create mode 100644 lms/static/fonts/IBMPlexSans-SemiBold.ttf create mode 100644 lms/static/fonts/IBMPlexSans-SemiBoldItalic.ttf create mode 100644 lms/static/fonts/IBMPlexSans-Thin.ttf create mode 100644 lms/static/fonts/IBMPlexSans-ThinItalic.ttf create mode 100644 lms/static/fonts/OFL.txt create mode 100644 lms/static/images/Vector.svg create mode 100644 lms/static/images/about-dark.svg create mode 100644 lms/static/images/about.svg create mode 100644 lms/static/images/blog-dark.svg create mode 100644 lms/static/images/blog.svg create mode 100644 lms/static/images/contact-dark.svg create mode 100644 lms/static/images/contact.svg create mode 100644 lms/static/images/donate-dark.svg create mode 100644 lms/static/images/donate.svg create mode 100644 lms/static/images/emptystate.png create mode 100644 lms/static/images/favicon.ico create mode 100644 lms/static/images/help-dark.svg create mode 100644 lms/static/images/help.svg create mode 100644 lms/static/images/logo.png create mode 100644 lms/static/images/no_course_image.png create mode 100644 lms/static/images/openedx-logo.png create mode 100644 lms/static/images/privacy-dark.svg create mode 100644 lms/static/images/privacy.svg create mode 100644 lms/static/images/profile.svg create mode 100644 lms/static/images/tos-dark.svg create mode 100644 lms/static/images/tos.svg create mode 100644 lms/static/images/tutor-logo.png create mode 100644 lms/static/images/unenroll.svg create mode 100644 lms/static/js/dark-theme.js create mode 100644 lms/static/sass/certificates/_certificate.scss create mode 100644 lms/static/sass/courseware/_about.scss create mode 100644 lms/static/sass/courseware/_bookmarks.scss create mode 100644 lms/static/sass/courseware/_discover.scss create mode 100644 lms/static/sass/dashboard/_dashboard.scss create mode 100644 lms/static/sass/extra/_footer.scss create mode 100644 lms/static/sass/extra/_header.scss create mode 100644 lms/static/sass/home/_home.scss create mode 100644 lms/static/sass/partials/lms/theme/_extras.scss create mode 100644 lms/static/sass/partials/lms/theme/_fonts.scss create mode 100644 lms/static/sass/partials/lms/theme/_variables.scss create mode 100644 lms/static/sass/programs/_programs.scss create mode 100644 lms/static/sass/xblock/_xblock.scss create mode 100644 lms/templates/course.html create mode 100644 lms/templates/courseware/course_about.html create mode 100644 lms/templates/courseware/course_about_sidebar_header.html create mode 100644 lms/templates/courseware/courses.html create mode 100644 lms/templates/discovery/course_card.underscore create mode 100644 lms/templates/footer.html create mode 100644 lms/templates/header/brand.html create mode 100644 lms/templates/header/header.html create mode 100644 lms/templates/header/navbar-authenticated.html create mode 100644 lms/templates/header/navbar-logo-header.html create mode 100644 lms/templates/header/navbar-not-authenticated.html create mode 100644 lms/templates/header/theme-toggle-button.html create mode 100644 lms/templates/header/user_dropdown.html create mode 100644 lms/templates/index.html create mode 100644 lms/templates/index_overlay.html create mode 100644 lms/templates/learner_dashboard/program_card.underscore create mode 100644 lms/templates/learner_dashboard/programs_fragment.html create mode 100644 lms/templates/static_templates/about.html create mode 100644 lms/templates/static_templates/blog.html create mode 100644 lms/templates/static_templates/contact.html create mode 100644 lms/templates/static_templates/donate.html create mode 100644 lms/templates/static_templates/help.html create mode 100644 lms/templates/static_templates/privacy.html create mode 100644 lms/templates/static_templates/tos.html create mode 100644 tasks/init.sh diff --git a/cms/static/images/favicon.ico b/cms/static/images/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..5bc7c23de6143c2fb83b76060cce2632319fe12c GIT binary patch literal 12206 zcmd6tTZmOv7{~W;7c++^;DYHTp_0(BE`!jl!oT%_g{N`htqbQIcv{3( zYn^>NCrJwYtzVV!zm$BiI!SI#lH@M19`pn0-G21VVuAW>5`@qdcT4V4j(6L&5tJW)5$Jp%~f}bUeJDZaH>AaVEv>sz?R}JUEi{Lur zr?J;%&l%McwSXctx*U2a3_mP4NWc>pZ2}FMuqE(7x=x0!u+O zCE0o(`R2*>9`>uee{{ZjhCbeE>Tkl=sb>wqkGoK31L{i0c~8rNXA$x(5PP2c7uylA1;nJuWuus21NaOmSE%N! zZWy}(pjx8x$qs1V-vqJuV^^^K2)OecGAdUdBgGV0)9py*QqF9>p?&pAwWy|PQ|dUl z5y<`$2*nHO_F}7RgX1`Dk_HdzGwpLJXNXHkr&?_+SS`i?G2U|?M}|> z9>jhYRFi5`jg@(_F>)jL6@>a1(v4x;2i&|zlW&qCdD9-090zd;aSZ8HqiS_M@Uj>A z8wlBlbfeg=8(%(m&tGbzk^llp8w>lYr!ud_MTGb!ChcZuKl*)$S>~VuoH+=%)F~c)oRy2H;?S! z3H1IT_S~uat`EVS^nkopyEw$&1FE)nfogSitCu!L>fZlta0$fraxb>72S}TmS(W-O z%;!|@*fpz~RGVt7)Lu>0>u37>Gwatz<4yhQw`z}>BiU%)_59;%udX>e#zwud=ik_C zgMFr+^#0kf4ewiA;raX|5Xo|lk6fLM-tH?a!@ zdw^bX3%uX#MjiyQam7JgX1#XnAGy*sIj8`5UdH z5r5-=>;&(CGhn(pbnp7V`vUgWN9jHX(_QNnTRD`=^}Z4A&Ga=s$Q|G;2=(AJ`fhMl zYU##0dews;LC9AzcT7IEtEK9$F2vQ4&PzYz?6Z^RZW}06`&5rPpXl1K6=c_tV)c)4 zZ5&^*soJIG#_+UrLLcK{py#wxKy^(!cXr&{%16G6p;*)Uwo)TJSIuP+><4;36~*7| zywCoT&fXH^;5|b#YA%;A7cX{|*-TEgPqk}*vTbOgPH-Gb_FPGDloN2{p#(RMVRKOuALolBD#cugTUo|wuEByr zD45LUs1$OnNYi_}!9>TCg2l18mdE9tOp2bzp0X0at1QO^uEyKym`d7RT{zsT&=IE{12Z?r`iAj literal 0 HcmV?d00001 diff --git a/cms/static/images/studio-logo.png b/cms/static/images/studio-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..dc473a8375cfe5b8821350e11f043204393a3b42 GIT binary patch literal 1681 zcmV;C25$L@P)1C!e^)mpmco@LLaP({!dhzAO zXAc1IaJaOyc#$D}N+;`sI1WDduU#hr=Zz zrQ%q5F4@Jf<;uh15`z^(EeQRNxffE;vl2oyjZ~4!_<>Q&e5zuo^dOvk;Z3 zV9F@#I3EsmM0Tr}4YF5wnQzr388@$1p09(+Z3UNFl}&jv*9Gr);*k z8>IA-D=9GLqSSkyHZXfn(0{#;?X3pgkXvlpw=5n z?7T?a%WWuXTOJdr3RhBsa{^hT43*2!Z}*3fSs-k!jM?@4xes>hz!NII zOSA$=&N98n>p#Cd#_Dtflsl;>t(yw-Oo3_uYQB}4$VhbrwggB`q@{q_Ksn&9Ztk89 z!|=ht2E2Fkav?NjkU~C-a06v;1>xn%IP$_8FGsu!{ z!rp9>$|%=n#gR%a(3B~8O8eL|bF~3;0|`+^+8S_4*=QkD8Xe`b8BOP6>z>vI_S6gp zTdP)?%mo49IUxLf-xBY8{`oO$P{X?15Uxxg1Bdvs7E@WP9nc*jd^o)ssr=RR=}TT@8RCXTotVTA;G^>w>{GHzC*$@JI(Y$Us^I>=u*LQ;@DTKyJe& z>g##{Xbsf$0?-nu>j|J0(5}}}x>-Z90yuiz+W~f;KD_#0(-!QFy;!QHnYMJj0@T>) z9EV#1KrK+W6o49_xWq*vlVG3+1~rVjB?9EO>pav|yM47q;f|S(%TQ~elAypzRIwFM zY1HGSHdh;Hv9PXJpxWhj^?8ZdA*&MQc7WZg_Y+j#OHdnVX?fU6a7{TTv8&WZt#(4Q z=3Om;S^;E(v;ryx=;1A?j@WietcP&fPTx9kdhoc|ff}i!uvE`ENcH+8RehyPcT#{V zo0I^J{Z6S@;$VHTJp&pbx#wD-MR$KlRgzNg7f@^uQWNcjZmBs1x+k)V0PvT72x(C) zH#EiMT;1ILF$}}^;4rE%qhgnMl!ymf5ZF4yqa5np$Se@%*GlrHvNke}l2R$58hQ6$ zUpT;9zmZv}L#3pamdQ;jEXdrgiNuy=euZU=f@>nNwwtw1|GAcpYp}u+5$!MxtnFZ} ziETn=Pga;Kk~nsRr|t#8l-B7H6wG0R>&cR2nc&UnY~A)waK?4RdQ(uo~souDPSsgL&`>CKLL|yFCKTh%ej$A9b;>giZ!fI zb7|9($^8A|zKU_6C5daYLT&V0!&=dT$hDKGA=8r7-9}=Y!nusC37OPCCbt!vp=}#8 z*ED8sIb|I(YosYy%LS}4Mahy`DJ4mgxlJDE$n0tcsHU}UbF=08sGC)jC6a2r&4k-0 z)pmiejab9DB6_yPjLdVj)}FEAxd1%}Y$lzw^o?Ch9ZI%+vlZJc`LiQkk+~#NYadl8 zO=$J8s5jTu{#ZhIr(HTFdJhP%+mqRgwVGL>;>;$`3Qw)N>5)E*HN95l$qE~qM^|}V z2~um{Wmw`!d@0M^?lcg{ip|n^_y+*KZ)8e4y5(&n@c`vt0QhesliJZW^GuB_|8x_T bHz)HaUU*Z|_Aqjq00000NkvXXu0mjfM92*} literal 0 HcmV?d00001 diff --git a/cms/static/sass/partials/cms/theme/_extras.scss b/cms/static/sass/partials/cms/theme/_extras.scss new file mode 100644 index 000000000..c0af3142d --- /dev/null +++ b/cms/static/sass/partials/cms/theme/_extras.scss @@ -0,0 +1,5 @@ +@import "fonts"; + +#main{ + background-color: $secondary; +} \ No newline at end of file diff --git a/cms/static/sass/partials/cms/theme/_fonts.scss b/cms/static/sass/partials/cms/theme/_fonts.scss new file mode 100644 index 000000000..1fe3648ed --- /dev/null +++ b/cms/static/sass/partials/cms/theme/_fonts.scss @@ -0,0 +1 @@ +@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap'); \ No newline at end of file diff --git a/cms/static/sass/partials/cms/theme/_variables-v1.scss b/cms/static/sass/partials/cms/theme/_variables-v1.scss new file mode 100644 index 000000000..23485ba7b --- /dev/null +++ b/cms/static/sass/partials/cms/theme/_variables-v1.scss @@ -0,0 +1,30 @@ + +@import 'cms/static/sass/partials/cms/theme/variables-v1'; + +// +Grid +// ==================== +$gw-column: ($baseline*3); +$gw-gutter: $baseline; +$fg-column: $gw-column; +$fg-gutter: $gw-gutter; +$fg-max-columns: 12; +$fg-max-width: 1280px; +$fg-min-width: 900px; + +// +Fonts +// ==================== +$f-sans-serif: 'Inter', 'Open Sans','Helvetica Neue', Helvetica, Arial, sans-serif; +$f-monospace: 'Bitstream Vera Sans Mono', Consolas, Courier, monospace; + +// +Colors - Utility +// ==================== +$transparent: rgba(0, 0, 0, 0) !default; // used when color value is needed for UI width/transitions but element is transparent + +// +Colors - UXPL new pattern library colors +// ==================== +$uxpl-blue-hover-active: #065683 !default; // wcag2a compliant +$uxpl-light-blue-base: rgb(242, 248, 251) !default; + +$uxpl-green-base: rgb(21, 55, 109) !default; // wcag2a compliant +$uxpl-green-hover-active: lighten($uxpl-green-base, 8%) !default; // wcag2a compliant +$uxpl-green-dark-hover-active: lighten($uxpl-green-base, 8%) !default; \ No newline at end of file diff --git a/cms/static/sass/partials/cms/theme/_variables.scss b/cms/static/sass/partials/cms/theme/_variables.scss new file mode 100644 index 000000000..af7460e3e --- /dev/null +++ b/cms/static/sass/partials/cms/theme/_variables.scss @@ -0,0 +1,20 @@ +$primary: #FF0000; +$secondary: #F2F7F8; + +$blue: $primary !default; +$m-blue-d1: mix(white, $primary, 5%) !default; +$m-blue-d2: mix(white, $primary, 15%) !default; +$m-blue-d3: $primary !default; +$m-blue-d4: mix(rgb(74, 137, 245), $primary, 20%) !default; +$m-blue-d5: mix(rgb(56, 148, 252), $primary, 30%) !default; +$m-blue-d6: mix(rgb(42, 134, 226), $primary, 40%) !default; + +$uxpl-blue-hover-active: lighten($primary, 7%) !default; + +$serif: 'Inter'; +$f-sans-serif: 'Inter', 'Open Sans','Helvetica Neue', Helvetica, Arial, sans-serif; +$font-family-title: 'Inter'; +$font-family-sans-serif: 'Inter', 'Open Sans','Helvetica Neue', Helvetica, Arial, sans-serif; + +// Initialize the Open edX Bootstrap theme +@import 'edx-bootstrap/sass/open-edx/theme'; \ No newline at end of file diff --git a/env.config.jsx b/env.config.jsx new file mode 100644 index 000000000..86de7fedc --- /dev/null +++ b/env.config.jsx @@ -0,0 +1,67 @@ +import React, { useEffect } from 'react'; +import Cookies from 'universal-cookie'; + +import Footer from '@edly-io/indigo-frontend-component-footer'; +import { getConfig } from '@edx/frontend-platform'; +import { DIRECT_PLUGIN, PLUGIN_OPERATIONS } from '@openedx/frontend-plugin-framework'; + +let themeCookie = 'indigo-toggle-dark'; +let themeCookieExpiry = 90; // days + +const AddDarkTheme = () => { + const cookies = new Cookies(); + const isThemeToggleEnabled = getConfig().INDIGO_ENABLE_DARK_TOGGLE; + + const getCookieExpiry = () => { + const today = new Date(); + return new Date(today.getFullYear(), today.getMonth(), today.getDate() + themeCookieExpiry); + }; + + const getCookieOptions = () => { + const serverURL = new URL(getConfig().LMS_BASE_URL); + const options = { domain: serverURL.hostname, path: '/', expires: getCookieExpiry() }; + return options; + }; + + useEffect(() => { + const theme = cookies.get(themeCookie); + if (isThemeToggleEnabled && theme === 'dark') { + document.body.classList.add('indigo-dark-theme'); + cookies.set(themeCookie, theme, getCookieOptions()); // on page load, update expiry + } + }, []); + + return (
); +}; + +const themePluginSlot = { + keepDefault: false, + plugins: [ + { + op: PLUGIN_OPERATIONS.Insert, + widget: { + id: 'default_contents', + type: DIRECT_PLUGIN, + priority: 1, + RenderWidget:
+ + +## Need to put this hidden form on the page so that the registration button works. +## Since it's no harm to display a hidden form, we display it with the most permissive conditional +## which is when the student is not registered. +%if active_reg_button or is_shib_course: +
+
+
+ ${pgettext("self","Enroll")} + + +
+
+ +
+
+
+%endif + +<%include file="../video_modal.html" /> + +<%static:require_module_async module_name="js/dateutil_factory" class_name="DateUtilFactory"> + DateUtilFactory.transform(iterationKey=".localized_datetime"); + \ No newline at end of file diff --git a/lms/templates/courseware/course_about_sidebar_header.html b/lms/templates/courseware/course_about_sidebar_header.html new file mode 100644 index 000000000..b02cc9b7f --- /dev/null +++ b/lms/templates/courseware/course_about_sidebar_header.html @@ -0,0 +1,69 @@ +<%page expression_filter="h"/> +<%namespace name='static' file='../static_content.html'/> +<%! +import six + +from django.utils.translation import gettext as _ +from django.urls import reverse +from django.conf import settings +%> + +
+ % if static.get_value('course_about_show_social_links', True): + + % endif +
\ No newline at end of file diff --git a/lms/templates/courseware/courses.html b/lms/templates/courseware/courses.html new file mode 100644 index 000000000..d18a0ea67 --- /dev/null +++ b/lms/templates/courseware/courses.html @@ -0,0 +1,100 @@ +<%page expression_filter="h"/> +<%! + import json + from django.utils.translation import gettext as _ + from openedx.core.djangolib.js_utils import js_escaped_string, dump_js_escaped_json +%> +<%inherit file="../main.html" /> +<% + course_discovery_enabled = settings.FEATURES.get('ENABLE_COURSE_DISCOVERY') +%> + +<%namespace name='static' file='../static_content.html'/> +<%block name="js_extra"> + + +% if course_discovery_enabled: +<%block name="header_extras"> + % for template_name in ["course_card", "filter_bar", "filter", "facet", "facet_option"]: + + % endfor + <%static:require_module module_name="js/discovery/discovery_factory" class_name="DiscoveryFactory"> + DiscoveryFactory( + ${course_discovery_meanings | n, dump_js_escaped_json}, + getParameterByName('search_query'), + "${user_language | n, js_escaped_string}", + "${user_timezone | n, js_escaped_string}" + ); + + +% endif + +<%block name="pagetitle">${_("Courses")} + +
+
+
+ +
+

Unlock Your Potential: Discover New Courses Today!

+

Explore a world of knowledge and enhance your skills with our diverse range of courses

+
+ + % if course_discovery_enabled: +
+ + +
+ % endif + +
+
    + %for course in courses: +
  • + <%include file="../course.html" args="course=course" /> +
  • + %endfor +
+
+
+
+
\ No newline at end of file diff --git a/lms/templates/discovery/course_card.underscore b/lms/templates/discovery/course_card.underscore new file mode 100644 index 000000000..3791faba4 --- /dev/null +++ b/lms/templates/discovery/course_card.underscore @@ -0,0 +1,32 @@ +
+
+
+ + <%- content.display_name %> <%- content.number %> +
+
+ +
+
    +
  • <%- org %>
  • +
  • <%- content.number %>
  • +
  • <%- gettext("Starts") %>
  • +
+
+
\ No newline at end of file diff --git a/lms/templates/footer.html b/lms/templates/footer.html new file mode 100644 index 000000000..affdd276c --- /dev/null +++ b/lms/templates/footer.html @@ -0,0 +1,152 @@ +## mako +<%page expression_filter="h"/> +<%! + from datetime import datetime + from django.urls import reverse + from django.utils.translation import gettext as _ + from lms.djangoapps.branding.api import get_footer + from openedx.core.djangoapps.lang_pref.api import footer_language_selector_is_enabled +%> +<% footer = get_footer(is_secure=is_secure) %> +<% icp_license_info = getattr(settings, 'ICP_LICENSE_INFO', {})%> +<%namespace name='static' file='static_content.html'/> + +% if uses_bootstrap: + +% else: + + +% endif +% if include_dependencies: + <%static:js group='base_vendor'/> + <%static:css group='style-vendor'/> + <%include file="widgets/segment-io.html" /> + <%include file="widgets/segment-io-footer.html" /> +% endif +% if footer_css_urls: + % for url in footer_css_urls: + + % endfor +% endif \ No newline at end of file diff --git a/lms/templates/header/brand.html b/lms/templates/header/brand.html new file mode 100644 index 000000000..ad02b7b98 --- /dev/null +++ b/lms/templates/header/brand.html @@ -0,0 +1,37 @@ +## mako + +<%page expression_filter="h"/> + +<%namespace name='static' file='/static_content.html'/> + +<%! +from django.urls import reverse +from django.utils.translation import gettext as _ +from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers + +# App that handles subdomain specific branding +from lms.djangoapps.branding import api as branding_api +%> + +

+ + % if course and not disable_courseware_header: +
+ ${course.display_org_with_default}: + ${course.display_number_with_default} + ${course.display_name_with_default} +
+ % endif +

+% if enable_enterprise_sidebar: +
+ <% tagline = configuration_helpers.get_value('ENTERPRISE_TAGLINE', settings.ENTERPRISE_TAGLINE) %> + % if tagline: + ${tagline} + % endif +
+% endif \ No newline at end of file diff --git a/lms/templates/header/header.html b/lms/templates/header/header.html new file mode 100644 index 000000000..764b84856 --- /dev/null +++ b/lms/templates/header/header.html @@ -0,0 +1,110 @@ +## mako + +<%page expression_filter="h" args="online_help_token, use_cookie_banner=False"/> + +<%namespace name='static' file='../static_content.html'/> +<%namespace file='../main.html' import="login_query"/> +<%! +from django.urls import reverse +from django.utils.translation import gettext as _ +import waffle + +from lms.djangoapps.ccx.overrides import get_current_ccx +from openedx.core.djangolib.markup import HTML, Text + +# App that handles subdomain specific branding +from lms.djangoapps.branding import api as branding_api +from openedx.core.djangoapps.lang_pref.api import header_language_selector_is_enabled, released_languages +from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers + +%> + +## Provide a hook for themes to inject branding on top. +<%block name="navigation_top" /> + +<% + unsupported_browser_alert_versions = configuration_helpers.get_value('UNSUPPORTED_BROWSER_ALERT_VERSIONS', settings.FEATURES.get('UNSUPPORTED_BROWSER_ALERT_VERSIONS')) +%> +% if waffle.switch_is_active('enable_unsupported_browser_alert'): + +% endif + + + +% if course: + +% endif + +% if settings.FEATURES.get('ENABLE_COOKIE_CONSENT', False): + <%include file="../widgets/cookie-consent.html" /> +% endif + +% if header_language_selector_is_enabled(): + <% languages = released_languages() %> + % if len(languages) > 1: +
+ + % if user.is_authenticated: + + % else: + + % endif + +
+ % endif +% endif \ No newline at end of file diff --git a/lms/templates/header/navbar-authenticated.html b/lms/templates/header/navbar-authenticated.html new file mode 100644 index 000000000..93eb719e9 --- /dev/null +++ b/lms/templates/header/navbar-authenticated.html @@ -0,0 +1,60 @@ +## mako + +<%page expression_filter="h" args="online_help_token"/> + +<%namespace name='static' file='../static_content.html'/> +<%namespace file='../main.html' import="login_query"/> +<%! +from django.urls import reverse +from django.utils.translation import gettext as _ +from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers +%> + +<% + show_explore_courses = settings.FEATURES.get('COURSES_ARE_BROWSABLE') + self.real_user = getattr(user, 'real_user', user) + enable_help_link = settings.FEATURES.get('ENABLE_HELP_LINK') + + support_link = configuration_helpers.get_value('SUPPORT_SITE_LINK', settings.SUPPORT_SITE_LINK) + doc_link = get_online_help_info(online_help_token)['doc_url'] + + if online_help_token == "instructor": + help_link = doc_link + elif support_link: + help_link = support_link + else: + help_link = doc_link +%> + + \ No newline at end of file diff --git a/lms/templates/header/navbar-logo-header.html b/lms/templates/header/navbar-logo-header.html new file mode 100644 index 000000000..2716cfb18 --- /dev/null +++ b/lms/templates/header/navbar-logo-header.html @@ -0,0 +1,61 @@ +## mako + +<%page expression_filter="h" args="online_help_token"/> + +<%namespace name='static' file='../static_content.html'/> +<%! +from django.urls import reverse +from django.utils.translation import gettext as _ +from lms.djangoapps.ccx.overrides import get_current_ccx +from openedx.core.djangoapps.site_configuration import helpers as configuration_helpers +from openedx.features.enterprise_support.utils import get_enterprise_learner_generic_name, get_enterprise_learner_portal + +# App that handles subdomain specific branding +from lms.djangoapps.branding import api as branding_api +%> + +<% +enterprise_customer_link = get_enterprise_learner_portal(request) +%> + +

+ % if enterprise_customer_link: + + + % if settings.LOGO_IMAGE_EXTRA_TEXT == 'edge': + | EDGE + % endif + + % else: + + <%block name="navigation_logo"> + + + % if settings.LOGO_IMAGE_EXTRA_TEXT == 'edge': + | EDGE + % endif + + % endif + % if course: +
+ ${course.display_org_with_default}: + ${course.display_number_with_default} + <% + display_name = course.display_name_with_default + if settings.FEATURES.get('CUSTOM_COURSES_EDX', False): + ccx = get_current_ccx(course.id) + if ccx: + display_name = ccx.display_name + %> + ${display_name} +
+ % endif +

+% if enable_enterprise_sidebar: +
+ <% tagline = configuration_helpers.get_value('ENTERPRISE_TAGLINE', settings.ENTERPRISE_TAGLINE) %> + % if tagline: + ${tagline} + % endif +
+% endif \ No newline at end of file diff --git a/lms/templates/header/navbar-not-authenticated.html b/lms/templates/header/navbar-not-authenticated.html new file mode 100644 index 000000000..de5be7099 --- /dev/null +++ b/lms/templates/header/navbar-not-authenticated.html @@ -0,0 +1,60 @@ +## mako + +<%page expression_filter="h"/> + +<%namespace name='static' file='../static_content.html'/> +<%namespace file='../main.html' import="login_query"/> + +<%! +from django.conf import settings +from django.urls import reverse +from django.utils.translation import gettext as _ +%> + +<% + mktg_site_enabled = static.get_value('ENABLE_MKTG_SITE', settings.FEATURES.get('ENABLE_MKTG_SITE', False)) + courses_are_browsable = settings.FEATURES.get('COURSES_ARE_BROWSABLE') + allows_login = not settings.FEATURES['DISABLE_LOGIN_BUTTON'] and not combined_login_and_register + can_discover_courses = settings.FEATURES.get('ENABLE_COURSE_DISCOVERY') + allow_public_account_creation = static.get_value('ALLOW_PUBLIC_ACCOUNT_CREATION', settings.FEATURES.get('ALLOW_PUBLIC_ACCOUNT_CREATION')) and settings.FEATURES.get('SHOW_REGISTRATION_LINKS', True) +%> + + \ No newline at end of file diff --git a/lms/templates/header/theme-toggle-button.html b/lms/templates/header/theme-toggle-button.html new file mode 100644 index 000000000..3baebb264 --- /dev/null +++ b/lms/templates/header/theme-toggle-button.html @@ -0,0 +1,14 @@ +
+
+ +
+
+ +
+
+ +
+
\ No newline at end of file diff --git a/lms/templates/header/user_dropdown.html b/lms/templates/header/user_dropdown.html new file mode 100644 index 000000000..5ab968294 --- /dev/null +++ b/lms/templates/header/user_dropdown.html @@ -0,0 +1,49 @@ +## mako +<%page expression_filter="h"/> +<%namespace name='static' file='../static_content.html'/> + +<%! +import json + +from django.conf import settings +from django.urls import reverse +from django.utils.translation import gettext as _ + +from openedx.core.djangoapps.user_api.accounts.image_helpers import get_profile_image_urls_for_user +from openedx.core.djangoapps.user_api.accounts.toggles import should_redirect_to_order_history_microfrontend +from openedx.features.enterprise_support.utils import get_enterprise_learner_generic_name, get_enterprise_learner_portal +%> + +<% +## This template should not use the target student's details when masquerading, see TNL-4895 +self.real_user = getattr(user, 'real_user', user) +profile_image_url = get_profile_image_urls_for_user(self.real_user)['medium'] +username = self.real_user.username +displayname = get_enterprise_learner_generic_name(request) or username +enterprise_customer_portal = get_enterprise_learner_portal(request) +## Enterprises with the learner portal enabled should not show order history, as it does +## not apply to the learner's method of purchasing content. +should_show_order_history = should_redirect_to_order_history_microfrontend() and not enterprise_customer_portal +%> + + + + \ No newline at end of file diff --git a/lms/templates/index.html b/lms/templates/index.html new file mode 100644 index 000000000..2211723ce --- /dev/null +++ b/lms/templates/index.html @@ -0,0 +1,79 @@ +<%page expression_filter="h"/> +<%inherit file="main.html" /> +<%namespace name='static' file='static_content.html'/> +<%! +from django.utils.translation import gettext as _ +from django.urls import reverse + +from openedx.core.djangolib.markup import HTML, Text +%> + +
+
+
+
+
+
+ % if homepage_overlay_html: + ${homepage_overlay_html | n, decode.utf8} + % else: + <%include file="index_overlay.html" /> + % endif +
+ % if settings.FEATURES.get('ENABLE_COURSE_DISCOVERY'): + + % endif + +
+ + <%include file="index_promo_video.html" /> +
+ +
+ <%include file="${courses_list}" /> + +
+
+ +% if show_homepage_promo_video: + +% endif + +<%block name="js_extra"> + + + +% if show_signup_immediately is not UNDEFINED: + ## NOTE: This won't work in production, because anonymous views are cached, so it will + ## show either with or without this extra js for 3 minutes at a time. + +% endif \ No newline at end of file diff --git a/lms/templates/index_overlay.html b/lms/templates/index_overlay.html new file mode 100644 index 000000000..d86035277 --- /dev/null +++ b/lms/templates/index_overlay.html @@ -0,0 +1,2 @@ +

${settings.PLATFORM_NAME}

+

Mensaje desde Indigo

\ No newline at end of file diff --git a/lms/templates/learner_dashboard/program_card.underscore b/lms/templates/learner_dashboard/program_card.underscore new file mode 100644 index 000000000..eaaaf6034 --- /dev/null +++ b/lms/templates/learner_dashboard/program_card.underscore @@ -0,0 +1,70 @@ +
+

<%- gettext(title) %>

+
+
<%- orgList %>
+
+ <%- gettext(type) %> + +
+
+
+<% if (progress) { %> +
+
+
<%- progress.completed %>
+ + <%- ngettext('Course', 'Courses', progress.completed) %> + + <%- gettext('Completed') %> +
+ +
+
<%- progress.in_progress %>
+ + <%- ngettext('Course', 'Courses', progress.in_progress) %> + + <%- gettext('In Progress') %> +
+ +
+
<%- progress.not_started %>
+ + <%- ngettext('Course', 'Courses', progress.not_started) %> + + <%- gettext('Remaining') %> +
+
+<% } %> +<% if (progress) { %> +
+
+ <% _.times(progress.completed, function() { %> +
+ <% }) %> + <% _.times(progress.in_progress, function() { %> +
+ <% }) %> + <% _.times(progress.not_started, function() { %> +
+ <% }) %> +
+
+<% } %> + + + +<% if (isSubscribed) { %> +
+ <%- gettext('Subscribed') %> +
+<% } %> \ No newline at end of file diff --git a/lms/templates/learner_dashboard/programs_fragment.html b/lms/templates/learner_dashboard/programs_fragment.html new file mode 100644 index 000000000..b4d71ec55 --- /dev/null +++ b/lms/templates/learner_dashboard/programs_fragment.html @@ -0,0 +1,42 @@ +## mako + +<%page expression_filter="h"/> + +<%namespace name='static' file='../static_content.html'/> +<%! +from openedx.core.djangolib.js_utils import ( + dump_js_escaped_json, js_escaped_string +) +%> + +% if mobile_only: +
+
+
+
+ +
+% else: +
+
+
+
+
+ +
+% endif + +<%block name="js_extra"> +<%static:webpack entry="ProgramListFactory"> +ProgramListFactory({ + marketingUrl: '${marketing_url | n, js_escaped_string}', + programsData: ${programs | n, dump_js_escaped_json}, + programsSubscriptionData: ${programs_subscription_data | n, dump_js_escaped_json}, + subscriptionUpsellData: ${subscription_upsell_data | n, dump_js_escaped_json}, + userProgress: ${progress | n, dump_js_escaped_json}, + userPreferences: ${user_preferences | n, dump_js_escaped_json}, + isUserB2CSubscriptionsEnabled: ${is_user_b2c_subscriptions_enabled | n, dump_js_escaped_json}, + mobileOnly: ${mobile_only | n, dump_js_escaped_json} +}); + + \ No newline at end of file diff --git a/lms/templates/static_templates/about.html b/lms/templates/static_templates/about.html new file mode 100644 index 000000000..d02a9ebf8 --- /dev/null +++ b/lms/templates/static_templates/about.html @@ -0,0 +1,30 @@ +<%namespace name='static' file='../static_content.html'/> +<%page expression_filter="h"/> +<%! from django.utils.translation import gettext as _ %> +<%inherit file="../main.html" /> + +<%block name="pagetitle">${_("About")} + +
+ TEXTO + TEXTO + TEXTO + TEXTO + TEXTO + TEXTO + TEXTO + TEXTO +
+

+ <%block name="pageheader">${page_header or _("About")} +

+

+ <%block name="pagecontent">${page_content or _("This page left intentionally blank. Feel free to add your own content.")} +

+ +
+ Runs on Tutor + Runs on Tutor +
+
+
\ No newline at end of file diff --git a/lms/templates/static_templates/blog.html b/lms/templates/static_templates/blog.html new file mode 100644 index 000000000..bb00b193f --- /dev/null +++ b/lms/templates/static_templates/blog.html @@ -0,0 +1,22 @@ +<%namespace name='static' file='../static_content.html'/> +<%page expression_filter="h"/> +<%! from django.utils.translation import gettext as _ %> +<%inherit file="../main.html" /> + +<%block name="pagetitle">${_("Blog")} + +
+
+

+ <%block name="pageheader">${page_header or _("Blog")} +

+

+ <%block name="pagecontent">${page_content or _("This page left intentionally blank. Feel free to add your own content.")} +

+ +
+ Runs on Tutor + Runs on Tutor +
+
+
\ No newline at end of file diff --git a/lms/templates/static_templates/contact.html b/lms/templates/static_templates/contact.html new file mode 100644 index 000000000..0c2928c02 --- /dev/null +++ b/lms/templates/static_templates/contact.html @@ -0,0 +1,22 @@ +<%namespace name='static' file='../static_content.html'/> +<%page expression_filter="h"/> +<%! from django.utils.translation import gettext as _ %> +<%inherit file="../main.html" /> + +<%block name="pagetitle">${_("Contact Us")} + +
+
+

+ <%block name="pageheader">${page_header or _("Contact")} +

+

+ <%block name="pagecontent">${page_content or _("This page left intentionally blank. Feel free to add your own content.")} +

+ +
+ Runs on Tutor + Runs on Tutor +
+
+
\ No newline at end of file diff --git a/lms/templates/static_templates/donate.html b/lms/templates/static_templates/donate.html new file mode 100644 index 000000000..eaf111bb3 --- /dev/null +++ b/lms/templates/static_templates/donate.html @@ -0,0 +1,22 @@ +<%namespace name='static' file='../static_content.html'/> +<%page expression_filter="h"/> +<%! from django.utils.translation import gettext as _ %> +<%inherit file="../main.html" /> + +<%block name="pagetitle">${_("Donate")} + +
+
+

+ <%block name="pageheader">${page_header or _("Donate")} +

+

+ <%block name="pagecontent">${page_content or _("This page left intentionally blank. Feel free to add your own content.")} +

+ +
+ Runs on Tutor + Runs on Tutor +
+
+
\ No newline at end of file diff --git a/lms/templates/static_templates/help.html b/lms/templates/static_templates/help.html new file mode 100644 index 000000000..1bbe045ae --- /dev/null +++ b/lms/templates/static_templates/help.html @@ -0,0 +1,22 @@ +<%namespace name='static' file='../static_content.html'/> +<%page expression_filter="h"/> +<%! from django.utils.translation import gettext as _ %> +<%inherit file="../main.html" /> + +<%block name="pagetitle">${_("Help")} + +
+
+

+ <%block name="pageheader">${page_header or _("Help")} +

+

+ <%block name="pagecontent">${page_content or _("This page left intentionally blank. Feel free to add your own content.")} +

+ +
+ Runs on Tutor + Runs on Tutor +
+
+
\ No newline at end of file diff --git a/lms/templates/static_templates/privacy.html b/lms/templates/static_templates/privacy.html new file mode 100644 index 000000000..f31fb9a74 --- /dev/null +++ b/lms/templates/static_templates/privacy.html @@ -0,0 +1,24 @@ +<%namespace name='static' file='../static_content.html'/> +<%page expression_filter="h"/> +<%! from django.utils.translation import gettext as _ %> + + +<%inherit file="../main.html" /> + +<%block name="pagetitle">${_("Privacy Policy")} + +
+
+

+ <%block name="pageheader">${page_header or _("Privacy Policy")} +

+

+ <%block name="pagecontent">${page_content or _("This page left intentionally blank. Feel free to add your own content.")} +

+ +
+ Runs on Tutor + Runs on Tutor +
+
+
\ No newline at end of file diff --git a/lms/templates/static_templates/tos.html b/lms/templates/static_templates/tos.html new file mode 100644 index 000000000..f78c98b5e --- /dev/null +++ b/lms/templates/static_templates/tos.html @@ -0,0 +1,22 @@ +<%namespace name='static' file='../static_content.html'/> +<%page expression_filter="h"/> +<%! from django.utils.translation import gettext as _ %> +<%inherit file="../main.html" /> + +<%block name="pagetitle">${_("Terms of Service")} + +
+
+

+ <%block name="pageheader">${page_header or _("Terms of Service")} +

+

+ <%block name="pagecontent">${page_content or _("This page left intentionally blank. Feel free to add your own content.")} +

+ +
+ Runs on Tutor + Runs on Tutor +
+
+
\ No newline at end of file diff --git a/tasks/init.sh b/tasks/init.sh new file mode 100644 index 000000000..0a12909ab --- /dev/null +++ b/tasks/init.sh @@ -0,0 +1,17 @@ +# Assign themes only if no other theme exists yet +./manage.py lms shell -c " +import sys +from django.contrib.sites.models import Site +def assign_theme(domain): + site, _ = Site.objects.get_or_create(domain=domain) + if not site.themes.exists(): + site.themes.create(theme_dir_name='indigo') + +assign_theme('local.edly.io') +assign_theme('local.edly.io') +assign_theme('local.edly.io:8000') +assign_theme('studio.local.edly.io') +assign_theme('studio.local.edly.io:8001') +assign_theme('preview.local.edly.io') +assign_theme('preview.local.edly.io:8000') +" \ No newline at end of file From a0480094751c53d29e9a69a27dedfedfc0fe7de9 Mon Sep 17 00:00:00 2001 From: fgonzalezurriola Date: Fri, 17 Jan 2025 10:52:07 -0300 Subject: [PATCH 2/2] Test: added some random

to test --- .../templates/indigo/lms/templates/static_templates/about.html | 1 + 1 file changed, 1 insertion(+) diff --git a/tutorindigo/templates/indigo/lms/templates/static_templates/about.html b/tutorindigo/templates/indigo/lms/templates/static_templates/about.html index 2120fbcc0..302d38836 100644 --- a/tutorindigo/templates/indigo/lms/templates/static_templates/about.html +++ b/tutorindigo/templates/indigo/lms/templates/static_templates/about.html @@ -6,6 +6,7 @@ <%block name="pagetitle">${_("About")}
+

Cambios cambios cambios cambios

<%block name="pageheader">${page_header or _("About")}