diff --git a/freetextresponse/freetextresponse.py b/freetextresponse/freetextresponse.py index c0742e50..cb47b11c 100644 --- a/freetextresponse/freetextresponse.py +++ b/freetextresponse/freetextresponse.py @@ -213,6 +213,10 @@ def workbench_scenarios(): 'submitted_message', ) + # Decorate the view in order to support multiple devices e.g. mobile + # See: https://openedx.atlassian.net/wiki/display/MA/Course+Blocks+API + # section 'View @supports(multi_device) decorator' + @XBlock.supports('multi_device') def student_view(self, context=None): # pylint: disable=unused-argument """ diff --git a/freetextresponse/private/view.html b/freetextresponse/private/view.html index ad5dd8fb..149d11bf 100644 --- a/freetextresponse/private/view.html +++ b/freetextresponse/private/view.html @@ -5,7 +5,7 @@

{self.display_name}

{word_count_message}
- +
diff --git a/freetextresponse/private/view.less b/freetextresponse/private/view.less index 7d9ff34f..b36dd338 100644 --- a/freetextresponse/private/view.less +++ b/freetextresponse/private/view.less @@ -31,6 +31,7 @@ border-radius:3px; border:2px solid #e4e4e4; min-width:160px; + width:85%; } &.unanswered .student_answer { diff --git a/freetextresponse/public/view.html b/freetextresponse/public/view.html index dfcab702..d7a0cc9a 100644 --- a/freetextresponse/public/view.html +++ b/freetextresponse/public/view.html @@ -1 +1 @@ -

{self.display_name}

{problem_progress}

{self.prompt}

{word_count_message}
{submitted_message}
{used_attempts_feedback}
{user_alert}
\ No newline at end of file +

{self.display_name}

{problem_progress}

{self.prompt}

{word_count_message}
{submitted_message}
{used_attempts_feedback}
{user_alert}
\ No newline at end of file diff --git a/freetextresponse/public/view.less b/freetextresponse/public/view.less index bc9d8924..b36dd338 100644 --- a/freetextresponse/public/view.less +++ b/freetextresponse/public/view.less @@ -1,6 +1,5 @@ .freetextresponse { - .user_input { .status { @@ -32,6 +31,7 @@ border-radius:3px; border:2px solid #e4e4e4; min-width:160px; + width:85%; } &.unanswered .student_answer { diff --git a/freetextresponse/public/view.less.min.css b/freetextresponse/public/view.less.min.css index 5d61c453..7935a545 100644 --- a/freetextresponse/public/view.less.min.css +++ b/freetextresponse/public/view.less.min.css @@ -1 +1 @@ -.freetextresponse .user_input .status{margin-left:10px;display:inline-block}.freetextresponse .user_input.unanswered .status{width:14px;height:14px;background:url(images/unanswered-icon.png) center center no-repeat}.freetextresponse .user_input.correct .status{width:25px;height:20px;background:url(images/correct-icon.png) center center no-repeat}.freetextresponse .user_input.incorrect .status{width:20px;height:20px;background:url(images/incorrect-icon.png) center center no-repeat}.freetextresponse .user_input .student_answer{height:150px;box-sizing:border-box;border-radius:3px;border:2px solid #e4e4e4;min-width:160px}.freetextresponse .user_input.unanswered .student_answer{border:2px solid #e4e4e4}.freetextresponse .user_input.correct .student_answer{border:2px solid #1e9348}.freetextresponse .user_input.incorrect .student_answer{border:2px solid #b20610}.freetextresponse .action{margin-top:20px}.freetextresponse .action .save{height:40px;vertical-align:middle;font-weight:600}.freetextresponse .action .check{height:40px;vertical-align:middle;font-weight:600}.freetextresponse .action .used-attempts-feedback{display:inline-block;margin-top:8px;margin-left:10px;color:#666;font-style:italic}.freetextresponse .action .nodisplay{display:none}.freetextresponse .problem-progress{display:inline-block;padding-left:5px;color:#666;font-weight:100;font-size:1em}.freetextresponse .word-count-message{display:inline-block;padding-left:5px;color:#666;font-weight:100;font-size:1em}.freetextresponse .hidden{visibility:hidden}.freetextresponse .problem-header{display:inline-block}.freetextresponse .capa_alert{margin-top:10px;padding:8px 12px;border:1px solid #ebe8bf;border-radius:3px;background:#fffcdd;font-size:.9em}.freetextresponse div:empty{display:none} \ No newline at end of file +.freetextresponse .user_input .status{margin-left:10px;display:inline-block}.freetextresponse .user_input.unanswered .status{width:14px;height:14px;background:url(images/unanswered-icon.png) center center no-repeat}.freetextresponse .user_input.correct .status{width:25px;height:20px;background:url(images/correct-icon.png) center center no-repeat}.freetextresponse .user_input.incorrect .status{width:20px;height:20px;background:url(images/incorrect-icon.png) center center no-repeat}.freetextresponse .user_input .student_answer{height:150px;box-sizing:border-box;border-radius:3px;border:2px solid #e4e4e4;min-width:160px;width:85%}.freetextresponse .user_input.unanswered .student_answer{border:2px solid #e4e4e4}.freetextresponse .user_input.correct .student_answer{border:2px solid #1e9348}.freetextresponse .user_input.incorrect .student_answer{border:2px solid #b20610}.freetextresponse .action{margin-top:20px}.freetextresponse .action .save{height:40px;vertical-align:middle;font-weight:600}.freetextresponse .action .check{height:40px;vertical-align:middle;font-weight:600}.freetextresponse .action .used-attempts-feedback{display:inline-block;margin-top:8px;margin-left:10px;color:#666;font-style:italic}.freetextresponse .action .nodisplay{display:none}.freetextresponse .problem-progress{display:inline-block;padding-left:5px;color:#666;font-weight:100;font-size:1em}.freetextresponse .word-count-message{display:inline-block;padding-left:5px;color:#666;font-weight:100;font-size:1em}.freetextresponse .hidden{visibility:hidden}.freetextresponse .problem-header{display:inline-block}.freetextresponse .capa_alert{margin-top:10px;padding:8px 12px;border:1px solid #ebe8bf;border-radius:3px;background:#fffcdd;font-size:.9em}.freetextresponse div:empty{display:none} \ No newline at end of file diff --git a/freetextresponse/public/view.less.min.css.map b/freetextresponse/public/view.less.min.css.map index 8891cb3c..1b5091e8 100644 --- a/freetextresponse/public/view.less.min.css.map +++ b/freetextresponse/public/view.less.min.css.map @@ -1 +1 @@ -{"version":3,"sources":["./freetextresponse/public/view.less"],"names":[],"mappings":"AAAA,iBAGE,YAEE,SACE,gBAAA,CACA,qBAGF,iBAPF,YAOG,WAAY,SACX,UAAA,CACA,WAAA,CACA,eAAgB,sDAGlB,iBAbF,YAaG,QAAS,SACR,UAAA,CACA,WAAA,CACA,eAAgB,mDAGlB,iBAnBF,YAmBG,UAAW,SACV,UAAA,CACA,WAAA,CACA,eAAgB,qDAzBtB,iBAGE,YAyBE,iBACE,YAAA,CACA,qBAAA,CACA,iBAAA,CACA,wBAAA,CACA,gBAGF,iBAjCF,YAiCG,WAAY,iBACX,yBAGF,iBArCF,YAqCG,QAAS,iBACR,yBAGF,iBAzCF,YAyCG,UAAW,iBACV,yBA7CN,iBAoDE,SACE,gBArDJ,iBAoDE,QAGE,OACE,WAAA,CACA,qBAAA,CACA,gBA1DN,iBAoDE,QASE,QACE,WAAA,CACA,qBAAA,CACA,gBAhEN,iBAoDE,QAeE,yBACE,oBAAA,CACA,cAAA,CACA,gBAAA,CACA,UAAA,CACA,kBAxEN,iBAoDE,QAuBE,YACE,aA5EN,iBAgFE,mBACE,oBAAA,CACA,gBAAA,CACA,UAAA,CACA,eAAA,CACA,cArFJ,iBAwFE,qBACE,oBAAA,CACA,gBAAA,CACA,UAAA,CACA,eAAA,CACA,cA7FJ,iBAgGE,SACE,kBAjGJ,iBAoGE,iBACE,qBArGJ,iBAwGE,aACE,eAAA,CACA,gBAAA,CACA,wBAAA,CACA,iBAAA,CACA,kBAAA,CACA,gBA9GJ,iBAiHE,IAAG,OAAS","sourcesContent":[".freetextresponse {\n\n\n .user_input {\n\n .status {\n margin-left: 10px;\n display: inline-block;\n }\n\n &.unanswered .status {\n width: 14px;\n height: 14px;\n background: url(\"images/unanswered-icon.png\") center center no-repeat;\n }\n\n &.correct .status {\n width: 25px;\n height: 20px;\n background: url(\"images/correct-icon.png\") center center no-repeat;\n }\n\n &.incorrect .status {\n width: 20px;\n height: 20px;\n background: url(\"images/incorrect-icon.png\") center center no-repeat;\n }\n\n .student_answer {\n height:150px;\n box-sizing:border-box;\n border-radius:3px;\n border:2px solid #e4e4e4;\n min-width:160px;\n }\n\n &.unanswered .student_answer {\n border:2px solid #e4e4e4;\n }\n\n &.correct .student_answer {\n border:2px solid #1e9348;\n }\n\n &.incorrect .student_answer {\n border:2px solid #b20610;\n }\n\n }\n\n @dark_grey: #666;\n\n .action {\n margin-top: 20px;\n\n .save {\n height: 40px;\n vertical-align: middle;\n font-weight: 600;\n }\n\n .check {\n height: 40px;\n vertical-align: middle;\n font-weight: 600;\n }\n\n .used-attempts-feedback {\n display: inline-block;\n margin-top: 8px;\n margin-left: 10px;\n color: @dark_grey;\n font-style: italic;\n }\n\n .nodisplay{\n display: none;\n }\n }\n\n .problem-progress {\n display: inline-block;\n padding-left: 5px;\n color: @dark_grey;\n font-weight: 100;\n font-size: 1em;\n }\n\n .word-count-message {\n display: inline-block;\n padding-left: 5px;\n color: @dark_grey;\n font-weight: 100;\n font-size: 1em;\n }\n\n .hidden{\n visibility: hidden;\n }\n\n .problem-header {\n display: inline-block;\n }\n\n .capa_alert {\n margin-top: 10px;\n padding: 8px 12px;\n border: 1px solid #ebe8bf;\n border-radius: 3px;\n background: #fffcdd;\n font-size: 0.9em;\n }\n\n div:empty { display: none }\n}\n"]} \ No newline at end of file +{"version":3,"sources":["./freetextresponse/public/view.less"],"names":[],"mappings":"AAAA,iBAEE,YAEE,SACE,gBAAA,CACA,qBAGF,iBAPF,YAOG,WAAY,SACX,UAAA,CACA,WAAA,CACA,eAAgB,sDAGlB,iBAbF,YAaG,QAAS,SACR,UAAA,CACA,WAAA,CACA,eAAgB,mDAGlB,iBAnBF,YAmBG,UAAW,SACV,UAAA,CACA,WAAA,CACA,eAAgB,qDAxBtB,iBAEE,YAyBE,iBACE,YAAA,CACA,qBAAA,CACA,iBAAA,CACA,wBAAA,CACA,eAAA,CACA,UAGF,iBAlCF,YAkCG,WAAY,iBACX,yBAGF,iBAtCF,YAsCG,QAAS,iBACR,yBAGF,iBA1CF,YA0CG,UAAW,iBACV,yBA7CN,iBAoDE,SACE,gBArDJ,iBAoDE,QAGE,OACE,WAAA,CACA,qBAAA,CACA,gBA1DN,iBAoDE,QASE,QACE,WAAA,CACA,qBAAA,CACA,gBAhEN,iBAoDE,QAeE,yBACE,oBAAA,CACA,cAAA,CACA,gBAAA,CACA,UAAA,CACA,kBAxEN,iBAoDE,QAuBE,YACE,aA5EN,iBAgFE,mBACE,oBAAA,CACA,gBAAA,CACA,UAAA,CACA,eAAA,CACA,cArFJ,iBAwFE,qBACE,oBAAA,CACA,gBAAA,CACA,UAAA,CACA,eAAA,CACA,cA7FJ,iBAgGE,SACE,kBAjGJ,iBAoGE,iBACE,qBArGJ,iBAwGE,aACE,eAAA,CACA,gBAAA,CACA,wBAAA,CACA,iBAAA,CACA,kBAAA,CACA,gBA9GJ,iBAiHE,IAAG,OAAS","sourcesContent":[".freetextresponse {\n\n .user_input {\n\n .status {\n margin-left: 10px;\n display: inline-block;\n }\n\n &.unanswered .status {\n width: 14px;\n height: 14px;\n background: url(\"images/unanswered-icon.png\") center center no-repeat;\n }\n\n &.correct .status {\n width: 25px;\n height: 20px;\n background: url(\"images/correct-icon.png\") center center no-repeat;\n }\n\n &.incorrect .status {\n width: 20px;\n height: 20px;\n background: url(\"images/incorrect-icon.png\") center center no-repeat;\n }\n\n .student_answer {\n height:150px;\n box-sizing:border-box;\n border-radius:3px;\n border:2px solid #e4e4e4;\n min-width:160px;\n width:85%;\n }\n\n &.unanswered .student_answer {\n border:2px solid #e4e4e4;\n }\n\n &.correct .student_answer {\n border:2px solid #1e9348;\n }\n\n &.incorrect .student_answer {\n border:2px solid #b20610;\n }\n\n }\n\n @dark_grey: #666;\n\n .action {\n margin-top: 20px;\n\n .save {\n height: 40px;\n vertical-align: middle;\n font-weight: 600;\n }\n\n .check {\n height: 40px;\n vertical-align: middle;\n font-weight: 600;\n }\n\n .used-attempts-feedback {\n display: inline-block;\n margin-top: 8px;\n margin-left: 10px;\n color: @dark_grey;\n font-style: italic;\n }\n\n .nodisplay{\n display: none;\n }\n }\n\n .problem-progress {\n display: inline-block;\n padding-left: 5px;\n color: @dark_grey;\n font-weight: 100;\n font-size: 1em;\n }\n\n .word-count-message {\n display: inline-block;\n padding-left: 5px;\n color: @dark_grey;\n font-weight: 100;\n font-size: 1em;\n }\n\n .hidden{\n visibility: hidden;\n }\n\n .problem-header {\n display: inline-block;\n }\n\n .capa_alert {\n margin-top: 10px;\n padding: 8px 12px;\n border: 1px solid #ebe8bf;\n border-radius: 3px;\n background: #fffcdd;\n font-size: 0.9em;\n }\n\n div:empty { display: none }\n}\n"]} \ No newline at end of file