Repository: learningequality/kolibri

Issue:
Unable to create new Learner accounts from log-in screen

### Observed behavior
Earlier today, 15 users were able to create new Learner accounts successfully. A few hours later, another group tried to do the same and nothing happened when clicking the 'Finish' button. It wasn't a problem with the connection because logging in and other features worked fine. I was not able to reproduce locally on my own installation (Mac OSX, also using Chrome and v0.11).

This was using the new INS backpack kit. Walt had experienced the same issue in testing it recently and at the time had resolved it by logging in and as admin and wiping all user accounts.


…

### Errors and logs


```
Potentially unhandled rejection [4] TypeError: Cannot use 'in' operator to search for 'id' in 



<!DOCTYPE html>
<html dir="ltr" lang="en">
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="google" content="notranslate">
  <link rel="shortcut icon" href="/static/assets/logo.ico">
  <title>Kolibri</title>
  
  
</head>
<body>
<input type='hidden' name='csrfmiddlewaretoken' value='7RFjHCMfN95idwKV0X6zP5fK7yAC981Bo8uH96BElg3JB8ao8W0yqDnkk41vv3Xc' />

<rootvue>
  <style>
    .container{
      position: fixed;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
    }

    .rel{
      position: relative;
      width: 100%;
      height: 100%;
    }

    .flapping-kolibri {
      position: absolute;
      top: 50%;
      left: 50%;
      width: 125px;
      height: 125px;
      background: url("/static/assets/loading-spinner.gif") no-repeat center;
      background-size: contain;
      transform: translate(-50%, -50%);
      animation: fadeIn;
      animation-duration: 1s;
      animation-delay: 1s;
      animation-fill-mode: both;
    }

    @keyframes fadeIn {
      from {
        opacity: 0
      }
      to {
        opacity: 1
      }
    }
  </style>

  <div class="container">
    <div class="rel">
      <div class="flapping-kolibri"></div>
    </div>
  </div>

</rootvue>


    <script>
      var languageCode = 'en';
      var languageDir = 'ltr';
      var languages = JSON.parse('{"ar": {"id": "ar", "lang_name": "\u0627\u0644\u0639\u064e\u0631\u064e\u0628\u0650\u064a\u064e\u0651\u0629\u200e\u200e", "english_name": "Arabic", "lang_direction": true}, "bg-bg": {"id": "bg-bg", "lang_name": "\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438", "english_name": "Bulgarian", "lang_direction": false}, "bn-bd": {"id": "bn-bd", "lang_name": "\u09ac\u09be\u0982\u09b2\u09be", "english_name": "Bengali", "lang_direction": false}, "en": {"id": "en", "lang_name": "English", "english_name": "English", "lang_direction": false}, "es-es": {"id": "es-es", "lang_name": "Espa\u00f1ol", "english_name": "Spanish", "lang_direction": false}, "fa": {"id": "fa", "lang_name": "\u0641\u0627\u0631\u0633\u06cc", "english_name": "Farsi", "lang_direction": true}, "fr-fr": {"id": "fr-fr", "lang_name": "Fran\u00e7ais", "english_name": "French", "lang_direction": false}, "hi-in": {"id": "hi-in", "lang_name": "\u0939\u093f\u0902\u0926\u0940 (\u092d\u093e\u0930\u0924)", "english_name": "Hindi (India)", "lang_direction": false}, "mr": {"id": "mr", "lang_name": "\u092e\u0930\u093e\u0920\u0940", "english_name": "Marathi", "lang_direction": false}, "nyn": {"id": "nyn", "lang_name": "Chinyanja", "english_name": "Chichewa, Chewa, Nyanja", "lang_direction": false}, "pt-br": {"id": "pt-br", "lang_name": "Portugu\u00eas (Brasil)", "english_name": "Portuguese (Brazil)", "lang_direction": false}, "sw-tz": {"id": "sw-tz", "lang_name": "Kiswahili", "english_name": "Swahili", "lang_direction": false}, "te": {"id": "te", "lang_name": "\u0c24\u0c46\u0c32\u0c41\u0c17\u0c41", "english_name": "Telugu", "lang_direction": false}, "ur-pk": {"id": "ur-pk", "lang_name": "\u0627\u064f\u0631\u062f\u0648 (\u067e\u0627\u06a9\u0633\u062a\u0627\u0646)\u200f", "english_name": "Urdu (Pakistan)", "lang_direction": true}, "vi": {"id": "vi", "lang_name": "Ti\u1ebfng Vi\u1ec7t", "english_name": "Vietnamese", "lang_direction": false}, "yo": {"id": "yo", "lang_name": "Yor\u00f9b\u00e1", "english_name": "Yoruba", "lang_direction": false}}');
      var useModernFontLoading = true;
    </script>
    <link type="text/css" href="/static/assets/fonts/noto-common.css?v=0.11.0" rel="stylesheet"/>
    <link type="text/css" href="/static/assets/fonts/noto-subset.en.css?v=0.11.0" rel="stylesheet"/>
    <link type="text/css" href="/static/assets/fonts/noto-full.en.modern.css?v=0.11.0" rel="stylesheet"/>
    

    <script>
      var contentCacheKey = '1543947471';
    </script>
    
<script>var coreLanguageMessages = {"DisconnectionSnackbars.disconnected":"Disconnected from server. Will try to reconnect in { remainingTime }","DisconnectionSnackbars.tryNow":"Try now","DisconnectionSnackbars.tryingToReconnect":"Trying to reconnect\u2026","DisconnectionSnackbars.successfullyReconnected":"Successfully reconnected!","AppError.defaultErrorHeader":"Sorry! Something went wrong!","AppError.defaultErrorExitPrompt":"Back to home","AppError.pageReloadPrompt":"Refresh","AppError.defaultErrorMessage":"We care about your experience on Kolibri and are working hard to fix this issue.","AppError.defaultErrorResolution":"Try refreshing this page or going back to the home page.","AppError.defaultErrorReportPrompt":"Help us by reporting this error","ContentRenderer.msgNotAvailable":"This content is not available","ContentRenderer.rendererNotAvailable":"Kolibri is unable to render this content"};</script>
<link type="text/css" href="/static/default_frontend/default_frontend0.11.0.css" rel="stylesheet"/>
<script type="text/javascript" src="/static/default_frontend/default_frontend-0.11.0.js"></script>
<script type='text/javascript'>kolibriGlobal.utils.serverClock.setServerTime("2018-12-04T18:37:23.308Z");</script>
<script>kolibriGlobal.registerLanguageAssets("user_module_user_profile_nav_side_nav", "en", {"UserProfileSideNavEntry.profile":"Profile"});</script>
<script type="text/javascript">!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/static/user_module_user_profile_nav_side_nav/",n(n.s=4)}([function(e,t){e.exports=kolibriGlobal.coreVue.vuex.constants},function(e,t){e.exports=kolibriGlobal.urls},function(e,t){e.exports=kolibriGlobal.utils.navComponents},function(e,t){e.exports=kolibriGlobal.coreVue.components.CoreMenuOption},function(e,t,n){"use strict";n.r(t);var o=n(0),r=n(3),i=n.n(r),s=n(2),l=n.n(s),u=n(1),a=n.n(u),c={name:"UserProfileSideNavEntry",components:{CoreMenuOption:i.a},$trs:{profile:"Profile"},computed:{url:function(){return a.a["kolibri:user:user"]()}},role:o.UserKinds.LEARNER,priority:10,section:o.NavComponentSections.ACCOUNT};l.a.register(c);var f=function(e,t,n,o,r,i,s,l){var u,a="function"==typeof e?e.options:e;if(t&&(a.render=t,a.staticRenderFns=n,a._compiled=!0),o&&(a.functional=!0),i&&(a._scopeId="data-v-"+i),s?(u=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(s)},a._ssrRegister=u):r&&(u=l?function(){r.call(this,this.$root.$options.shadowRoot)}:r),u)if(a.functional){a._injectStyles=u;var c=a.render;a.render=function(e,t){return u.call(t),c(e,t)}}else{var f=a.beforeCreate;a.beforeCreate=f?[].concat(f,u):[u]}return{exports:e,options:a}}(c,function(){var e=this.$createElement,t=this._self._c||e;return t("CoreMenuOption",{attrs:{label:this.$tr("profile"),link:this.url}},[t("svg",{attrs:{slot:"icon",role:"presentation",focusable:"false",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},slot:"icon"},[t("path",{attrs:{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2a7.2 7.2 0 0 1-6-3.22c.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08a7.2 7.2 0 0 1-6 3.22z"}})])])},[],!1,null,null,null);f.options.__file="UserProfileSideNavEntry.vue";t.default=f.exports}]);</script>
<script>kolibriGlobal.registerLanguageAssets("user_module_login_nav_side_nav", "en", {"LoginSideNavEntry.signIn":"Sign in"});</script>
<script type="text/javascript">!function(t){var e={};function n(o){if(e[o])return e[o].exports;var r=e[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:o})},n.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/static/user_module_login_nav_side_nav/",n(n.s=4)}([function(t,e){t.exports=kolibriGlobal.coreVue.vuex.constants},function(t,e){t.exports=kolibriGlobal.urls},function(t,e){t.exports=kolibriGlobal.utils.navComponents},function(t,e){t.exports=kolibriGlobal.coreVue.components.CoreMenuOption},function(t,e,n){"use strict";n.r(e);var o=n(0),r=n(3),i=n.n(r),s=n(2),l=n.n(s),a=n(1),u=n.n(a),c={name:"LoginSideNavEntry",components:{CoreMenuOption:i.a},$trs:{signIn:"Sign in"},computed:{url:function(){return u.a["kolibri:user:user"]()}},role:o.UserKinds.ANONYMOUS,priority:10,section:o.NavComponentSections.ACCOUNT};l.a.register(c);var p=function(t,e,n,o,r,i,s,l){var a,u="function"==typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=n,u._compiled=!0),o&&(u.functional=!0),i&&(u._scopeId="data-v-"+i),s?(a=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(s)},u._ssrRegister=a):r&&(a=l?function(){r.call(this,this.$root.$options.shadowRoot)}:r),a)if(u.functional){u._injectStyles=a;var c=u.render;u.render=function(t,e){return a.call(e),c(t,e)}}else{var p=u.beforeCreate;u.beforeCreate=p?[].concat(p,a):[a]}return{exports:t,options:u}}(c,function(){var t=this.$createElement,e=this._self._c||t;return e("CoreMenuOption",{attrs:{label:this.$tr("signIn"),link:this.url}},[e("svg",{class:{"rtl-icon":this.isRtl},attrs:{slot:"icon",role:"presentation",focusable:"false",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},slot:"icon"},[e("path",{attrs:{d:"M10.09 15.59L11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5a2 2 0 0 0-2 2v4h2V5h14v14H5v-4H3v4a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}})])])},[],!1,null,null,null);p.options.__file="LoginSideNavEntry.vue";e.default=p.exports}]);</script>
<script>kolibriGlobal.registerLanguageAssets("device_management_side_nav", "en", {"DeviceManagementSideNavEntry.device":"Device"});</script>
<script type="text/javascript">!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:o})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/static/device_management_side_nav/",n(n.s=4)}([function(e,t){e.exports=kolibriGlobal.urls},function(e,t){e.exports=kolibriGlobal.utils.navComponents},function(e,t){e.exports=kolibriGlobal.coreVue.components.CoreMenuOption},function(e,t){e.exports=kolibriGlobal.coreVue.vuex.constants},function(e,t,n){"use strict";n.r(t);var o=n(3),r=n(2),i=n.n(r),s=n(1),a=n.n(s),l=n(0),c=n.n(l),u={name:"DeviceManagementSideNavEntry",components:{CoreMenuOption:i.a},$trs:{device:"Device"},computed:{url:function(){return c.a["kolibri:devicemanagementplugin:device_management"]()}},role:o.UserKinds.CAN_MANAGE_CONTENT,priority:10};a.a.register(u);var p=function(e,t,n,o,r,i,s,a){var l,c="function"==typeof e?e.options:e;if(t&&(c.render=t,c.staticRenderFns=n,c._compiled=!0),o&&(c.functional=!0),i&&(c._scopeId="data-v-"+i),s?(l=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),r&&r.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(s)},c._ssrRegister=l):r&&(l=a?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(e,t){return l.call(t),u(e,t)}}else{var p=c.beforeCreate;c.beforeCreate=p?[].concat(p,l):[l]}return{exports:e,options:c}}(u,function(){var e=this.$createElement,t=this._self._c||e;return t("CoreMenuOption",{attrs:{label:this.$tr("device"),link:this.url}},[t("svg",{attrs:{slot:"icon",role:"presentation",focusable:"false",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},slot:"icon"},[t("path",{attrs:{d:"M18.5 0h-14A2.5 2.5 0 0 0 2 2.5v19A2.5 2.5 0 0 0 4.5 24h14a2.5 2.5 0 0 0 2.5-2.5v-19A2.5 2.5 0 0 0 18.5 0zm-7 23c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm7.5-4H4V3h15v16z"}})])])},[],!1,null,null,null);p.options.__file="DeviceManagementSideNavEntry.vue";t.default=p.exports}]);</script>
<script>kolibriGlobal.registerLanguageAssets("learn_module_side_nav", "en", {"LearnSideNavEntry.learn":"Learn"});</script>
<script type="text/javascript">!function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/static/learn_module_side_nav/",n(n.s=3)}([function(e,t){e.exports=kolibriGlobal.urls},function(e,t){e.exports=kolibriGlobal.utils.navComponents},function(e,t){e.exports=kolibriGlobal.coreVue.components.CoreMenuOption},function(e,t,n){"use strict";n.r(t);var r=n(2),o=n.n(r),i=n(1),s=n.n(i),l=n(0),a=n.n(l),u={name:"LearnSideNavEntry",components:{CoreMenuOption:o.a},$trs:{learn:"Learn"},computed:{url:function(){return a.a["kolibri:learnplugin:learn"]()}},priority:10};s.a.register(u);var c=function(e,t,n,r,o,i,s,l){var a,u="function"==typeof e?e.options:e;if(t&&(u.render=t,u.staticRenderFns=n,u._compiled=!0),r&&(u.functional=!0),i&&(u._scopeId="data-v-"+i),s?(a=function(e){(e=e||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(e=__VUE_SSR_CONTEXT__),o&&o.call(this,e),e&&e._registeredComponents&&e._registeredComponents.add(s)},u._ssrRegister=a):o&&(a=l?function(){o.call(this,this.$root.$options.shadowRoot)}:o),a)if(u.functional){u._injectStyles=a;var c=u.render;u.render=function(e,t){return a.call(t),c(e,t)}}else{var p=u.beforeCreate;u.beforeCreate=p?[].concat(p,a):[a]}return{exports:e,options:u}}(u,function(){var e=this.$createElement,t=this._self._c||e;return t("CoreMenuOption",{attrs:{label:this.$tr("learn"),link:this.url}},[t("svg",{attrs:{slot:"icon",role:"presentation",focusable:"false",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},slot:"icon"},[t("path",{attrs:{d:"M5 13.18v4L12 21l7-3.82v-4L12 17l-7-3.82zM12 3L1 9l11 6 9-4.91V17h2V9L12 3z"}})])])},[],!1,null,null,null);c.options.__file="LearnSideNavEntry.vue";t.default=c.exports}]);</script>
<script>kolibriGlobal.registerLanguageAssets("coach_side_nav", "en", {"CoachSideNavEntry.coach":"Coach"});</script>
<script type="text/javascript">!function(t){var e={};function n(o){if(e[o])return e[o].exports;var r=e[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:o})},n.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/static/coach_side_nav/",n(n.s=4)}([function(t,e){t.exports=kolibriGlobal.urls},function(t,e){t.exports=kolibriGlobal.utils.navComponents},function(t,e){t.exports=kolibriGlobal.coreVue.components.CoreMenuOption},function(t,e){t.exports=kolibriGlobal.coreVue.vuex.constants},function(t,e,n){"use strict";n.r(e);var o=n(3),r=n(2),i=n.n(r),s=n(1),c=n.n(s),a=n(0),l=n.n(a),u={name:"CoachSideNavEntry",components:{CoreMenuOption:i.a},$trs:{coach:"Coach"},computed:{url:function(){return l.a["kolibri:coach:coach"]()}},role:o.UserKinds.COACH,priority:10};c.a.register(u);var p=function(t,e,n,o,r,i,s,c){var a,l="function"==typeof t?t.options:t;if(e&&(l.render=e,l.staticRenderFns=n,l._compiled=!0),o&&(l.functional=!0),i&&(l._scopeId="data-v-"+i),s?(a=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(s)},l._ssrRegister=a):r&&(a=c?function(){r.call(this,this.$root.$options.shadowRoot)}:r),a)if(l.functional){l._injectStyles=a;var u=l.render;l.render=function(t,e){return a.call(e),u(t,e)}}else{var p=l.beforeCreate;l.beforeCreate=p?[].concat(p,a):[a]}return{exports:t,options:l}}(u,function(){var t=this.$createElement,e=this._self._c||t;return e("CoreMenuOption",{attrs:{label:this.$tr("coach"),link:this.url}},[e("svg",{attrs:{slot:"icon",role:"presentation",focusable:"false",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},slot:"icon"},[e("path",{attrs:{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z"}})])])},[],!1,null,null,null);p.options.__file="CoachSideNavEntry.vue";e.default=p.exports}]);</script>
<script>kolibriGlobal.registerLanguageAssets("facility_management_side_nav", "en", {"FacilityManagementSideNavEntry.facility":"Facility"});</script>
<script type="text/javascript">!function(t){var e={};function n(o){if(e[o])return e[o].exports;var r=e[o]={i:o,l:!1,exports:{}};return t[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=t,n.c=e,n.d=function(t,e,o){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:o})},n.r=function(t){Object.defineProperty(t,"__esModule",{value:!0})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/static/facility_management_side_nav/",n(n.s=4)}([function(t,e){t.exports=kolibriGlobal.urls},function(t,e){t.exports=kolibriGlobal.utils.navComponents},function(t,e){t.exports=kolibriGlobal.coreVue.components.CoreMenuOption},function(t,e){t.exports=kolibriGlobal.coreVue.vuex.constants},function(t,e,n){"use strict";n.r(e);var o=n(3),r=n(2),i=n.n(r),a=n(1),s=n.n(a),l=n(0),c=n.n(l),u={name:"FacilityManagementSideNavEntry",components:{CoreMenuOption:i.a},$trs:{facility:"Facility"},computed:{url:function(){return c.a["kolibri:facilitymanagementplugin:facility_management"]()}},role:o.UserKinds.ADMIN,priority:10};s.a.register(u);var f=function(t,e,n,o,r,i,a,s){var l,c="function"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=n,c._compiled=!0),o&&(c.functional=!0),i&&(c._scopeId="data-v-"+i),a?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},c._ssrRegister=l):r&&(l=s?function(){r.call(this,this.$root.$options.shadowRoot)}:r),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(t,e){return l.call(e),u(t,e)}}else{var f=c.beforeCreate;c.beforeCreate=f?[].concat(f,l):[l]}return{exports:t,options:c}}(u,function(){var t=this.$createElement,e=this._self._c||t;return e("CoreMenuOption",{attrs:{label:this.$tr("facility"),link:this.url}},[e("svg",{attrs:{slot:"icon",role:"presentation",focusable:"false",xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24"},slot:"icon"},[e("path",{attrs:{d:"M12 5c-3.87 0-7 3.13-7 7h2c0-2.76 2.24-5 5-5s5 2.24 5 5h2c0-3.87-3.13-7-7-7zm1 9.29c.88-.39 1.5-1.26 1.5-2.29a2.5 2.5 0 0 0-5 0c0 1.02.62 1.9 1.5 2.29v3.3L7.59 21 9 22.41l3-3 3 3L16.41 21 13 17.59v-3.3zM12 1C5.93 1 1 5.93 1 12h2a9 9 0 0 1 18 0h2c0-6.07-4.93-11-11-11z"}})])])},[],!1,null,null,null);f.options.__file="FacilityManagementSideNavEntry.vue";e.default=f.exports}]);</script>
<script type="text/javascript">
  
    this.kolibriUrls=(function(){var Urls={};var self={url_patterns:{}};var _get_url=function(url_pattern){return function(){var _arguments,index,url,url_arg,url_args,_i,_len,_ref,_ref_list,match_ref,provided_keys,build_kwargs;_arguments=arguments;_ref_list=self.url_patterns[url_pattern];if(arguments.length==1&&typeof(arguments[0])=="object"){var provided_keys_list=Object.keys(arguments[0]);provided_keys={};for(_i=0;_i<provided_keys_list.length;_i++)
provided_keys[provided_keys_list[_i]]=1;match_ref=function(ref)
{var _i;if(ref[1].length!=provided_keys_list.length)
return false;for(_i=0;_i<ref[1].length&&ref[1][_i]in provided_keys;_i++);return _i==ref[1].length;}
build_kwargs=function(keys){return _arguments[0];}}else{match_ref=function(ref)
{return ref[1].length==_arguments.length;}
build_kwargs=function(keys){var kwargs={};for(var i=0;i<keys.length;i++){kwargs[keys[i]]=_arguments[i];}
return kwargs;}}
for(_i=0;_i<_ref_list.length&&!match_ref(_ref_list[_i]);_i++);if(_i==_ref_list.length)
return null;_ref=_ref_list[_i];url=_ref[0],url_args=build_kwargs(_ref[1]);for(url_arg in url_args){var url_arg_value=url_args[url_arg];if(url_arg_value===undefined||url_arg_value===null){url_arg_value='';}else{url_arg_value=url_arg_value.toString();}
url=url.replace("%("+url_arg+")s",url_arg_value);}
return'/'+url;};};var name,pattern,url,url_patterns,_i,_len,_ref;url_patterns=[['buffers\u002Dlist',[['api/morango/v1/buffers/',[]]],],['certificates\u002Ddetail',[['api/morango/v1/certificates/%(pk)s/',['pk',]]],],['certificates\u002Dlist',[['api/morango/v1/certificates/',[]]],],['kolibri:coach:api\u002Droot',[['coach/api/.%(format)s',['format',],],['coach/api/',[]]],],['kolibri:coach:coach',[['coach/',[]]],],['kolibri:coach:contentreport\u002Dlist',[['coach/api/contentreport.%(format)s',['format',],],['coach/api/contentreport/',[]]],],['kolibri:coach:contentsummary\u002Ddetail',[['coach/api/contentsummary/%(pk)s.%(format)s',['pk','format',],],['coach/api/contentsummary/%(pk)s/',['pk',]]],],['kolibri:coach:contentsummary\u002Dlist',[['coach/api/contentsummary.%(format)s',['format',],],['coach/api/contentsummary/',[]]],],['kolibri:coach:lessonreport\u002Ddetail',[['coach/api/lessonreport/%(pk)s.%(format)s',['pk','format',],],['coach/api/lessonreport/%(pk)s/',['pk',]]],],['kolibri:coach:lessonreport\u002Dlist',[['coach/api/lessonreport.%(format)s',['format',],],['coach/api/lessonreport/',[]]],],['kolibri:coach:recentreport\u002Dlist',[['coach/api/recentreport.%(format)s',['format',],],['coach/api/recentreport/',[]]],],['kolibri:coach:userreport\u002Dlist',[['coach/api/userreport.%(format)s',['format',],],['coach/api/userreport/',[]]],],['kolibri:core:api\u002Droot',[['api/auth/.%(format)s',['format',],],['api/auth/',[]]],],['kolibri:core:attemptlog\u002Ddetail',[['api/logger/attemptlog/%(pk)s/',['pk',]]],],['kolibri:core:attemptlog\u002Dlist',[['api/logger/attemptlog/',[]]],],['kolibri:core:channel\u002Ddetail',[['api/content/channel/%(pk)s/',['pk',]]],],['kolibri:core:channel\u002Dlist',[['api/content/channel/',[]]],],['kolibri:core:classroom\u002Ddetail',[['api/auth/classroom/%(pk)s/',['pk',]]],],['kolibri:core:classroom\u002Dlist',[['api/auth/classroom/',[]]],],['kolibri:core:contentnode\u002Dcopies',[['api/content/contentnode/%(pk)s/copies/',['pk',]]],],['kolibri:core:contentnode\u002Dcopies\u002Dcount',[['api/content/contentnode/copies_count/',[]]],],['kolibri:core:contentnode\u002Ddescendants',[['api/content/contentnode/descendants/',[]]],],['kolibri:core:contentnode\u002Ddescendants\u002Dassessments',[['api/content/contentnode/descendants_assessments/',[]]],],['kolibri:core:contentnode\u002Ddetail',[['api/content/contentnode/%(pk)s/',['pk',]]],],['kolibri:core:contentnode\u002Dlist',[['api/content/contentnode/',[]]],],['kolibri:core:contentnode\u002Dnext\u002Dcontent',[['api/content/contentnode/%(pk)s/next_content/',['pk',]]],],['kolibri:core:contentnode\u002Dnode\u002Dassessments',[['api/content/contentnode/node_assessments/',[]]],],['kolibri:core:contentnode_granular\u002Ddetail',[['api/content/contentnode_granular/%(pk)s/',['pk',]]],],['kolibri:core:contentnode_search\u002Dancestors',[['api/content/contentnode_search/%(pk)s/ancestors/',['pk',]]],],['kolibri:core:contentnode_search\u002Ddetail',[['api/content/contentnode_search/%(pk)s/',['pk',]]],],['kolibri:core:contentnode_search\u002Dlist',[['api/content/contentnode_search/',[]]],],['kolibri:core:contentnode_search\u002Dnext\u002Dsteps',[['api/content/contentnode_search/%(pk)s/next_steps/',['pk',]]],],['kolibri:core:contentnode_search\u002Dpopular',[['api/content/contentnode_search/popular/',[]]],],['kolibri:core:contentnode_search\u002Drecommendations\u002Dfor',[['api/content/contentnode_search/%(pk)s/recommendations_for/',['pk',]]],],['kolibri:core:contentnode_search\u002Dresume',[['api/content/contentnode_search/%(pk)s/resume/',['pk',]]],],['kolibri:core:contentnode_slim\u002Dancestors',[['api/content/contentnode_slim/%(pk)s/ancestors/',['pk',]]],],['kolibri:core:contentnode_slim\u002Ddetail',[['api/content/contentnode_slim/%(pk)s/',['pk',]]],],['kolibri:core:contentnode_slim\u002Dlist',[['api/content/contentnode_slim/',[]]],],['kolibri:core:contentnode_slim\u002Dnext\u002Dsteps',[['api/content/contentnode_slim/%(pk)s/next_steps/',['pk',]]],],['kolibri:core:contentnode_slim\u002Dpopular',[['api/content/contentnode_slim/popular/',[]]],],['kolibri:core:contentnode_slim\u002Drecommendations\u002Dfor',[['api/content/contentnode_slim/%(pk)s/recommendations_for/',['pk',]]],],['kolibri:core:contentnode_slim\u002Dresume',[['api/content/contentnode_slim/%(pk)s/resume/',['pk',]]],],['kolibri:core:contentnodefilesize\u002Ddetail',[['api/content/contentnodefilesize/%(pk)s/',['pk',]]],],['kolibri:core:contentnodefilesize\u002Dlist',[['api/content/contentnodefilesize/',[]]],],['kolibri:core:contentnodeprogress\u002Ddetail',[['api/content/contentnodeprogress/%(pk)s/',['pk',]]],],['kolibri:core:contentnodeprogress\u002Dlist',[['api/content/contentnodeprogress/',[]]],],['kolibri:core:contentsessionlog\u002Ddetail',[['api/logger/contentsessionlog/%(pk)s/',['pk',]]],],['kolibri:core:contentsessionlog\u002Dlist',[['api/logger/contentsessionlog/',[]]],],['kolibri:core:contentsessionlogcsv\u002Ddetail',[['api/logger/contentsessionlogcsv/%(pk)s/',['pk',]]],],['kolibri:core:contentsessionlogcsv\u002Dlist',[['api/logger/contentsessionlogcsv/',[]]],],['kolibri:core:contentsummarylog\u002Ddetail',[['api/logger/contentsummarylog/%(pk)s/',['pk',]]],],['kolibri:core:contentsummarylog\u002Dlist',[['api/logger/contentsummarylog/',[]]],],['kolibri:core:contentsummarylogcsv\u002Ddetail',[['api/logger/contentsummarylogcsv/%(pk)s/',['pk',]]],],['kolibri:core:contentsummarylogcsv\u002Dlist',[['api/logger/contentsummarylogcsv/',[]]],],['kolibri:core:deviceinfo',[['api/device/deviceinfo/',[]]],],['kolibri:core:devicepermissions\u002Ddetail',[['api/device/devicepermissions/%(pk)s/',['pk',]]],],['kolibri:core:devicepermissions\u002Dlist',[['api/device/devicepermissions/',[]]],],['kolibri:core:deviceprovision',[['api/device/deviceprovision/',[]]],],['kolibri:core:downloadcontent',[['downloadcontent/%(filename)s/%(new_filename)s',['filename','new_filename',]]],],['kolibri:core:exam\u002Ddetail',[['api/exams/exam/%(pk)s/',['pk',]]],],['kolibri:core:exam\u002Dlist',[['api/exams/exam/',[]]],],['kolibri:core:examassignment\u002Ddetail',[['api/exams/examassignment/%(pk)s/',['pk',]]],],['kolibri:core:examassignment\u002Dlist',[['api/exams/examassignment/',[]]],],['kolibri:core:examattemptlog\u002Ddetail',[['api/logger/examattemptlog/%(pk)s/',['pk',]]],],['kolibri:core:examattemptlog\u002Dlist',[['api/logger/examattemptlog/',[]]],],['kolibri:core:examlog\u002Ddetail',[['api/logger/examlog/%(pk)s/',['pk',]]],],['kolibri:core:examlog\u002Dlist',[['api/logger/examlog/',[]]],],['kolibri:core:facility\u002Ddetail',[['api/auth/facility/%(pk)s/',['pk',]]],],['kolibri:core:facility\u002Dlist',[['api/auth/facility/',[]]],],['kolibri:core:facilitydataset\u002Ddetail',[['api/auth/facilitydataset/%(pk)s/',['pk',]]],],['kolibri:core:facilitydataset\u002Dlist',[['api/auth/facilitydataset/',[]]],],['kolibri:core:facilityuser\u002Ddetail',[['api/auth/facilityuser/%(pk)s/',['pk',]]],],['kolibri:core:facilityuser\u002Dlist',[['api/auth/facilityuser/',[]]],],['kolibri:core:facilityusername\u002Ddetail',[['api/auth/facilityusername/%(pk)s/',['pk',]]],],['kolibri:core:facilityusername\u002Dlist',[['api/auth/facilityusername/',[]]],],['kolibri:core:file\u002Ddetail',[['api/content/file/%(pk)s/',['pk',]]],],['kolibri:core:file\u002Dlist',[['api/content/file/',[]]],],['kolibri:core:freespace',[['api/device/freespace/',[]]],],['kolibri:core:get_public_channel_list',[['api/public/%(version)s/channels',['version',]]],],['kolibri:core:get_public_channel_lookup',[['api/public/%(version)s/channels/lookup/%(identifier)s',['version','identifier',]]],],['kolibri:core:guest',[['guestaccess/',[]]],],['kolibri:core:info\u002Dlist',[['api/public/info/',[]]],],['kolibri:core:learnergroup\u002Ddetail',[['api/auth/learnergroup/%(pk)s/',['pk',]]],],['kolibri:core:learnergroup\u002Dlist',[['api/auth/learnergroup/',[]]],],['kolibri:core:lesson\u002Ddetail',[['api/lessons/lesson/%(pk)s/',['pk',]]],],['kolibri:core:lesson\u002Dlist',[['api/lessons/lesson/',[]]],],['kolibri:core:logout',[['logout/',[]]],],['kolibri:core:masterylog\u002Ddetail',[['api/logger/masterylog/%(pk)s/',['pk',]]],],['kolibri:core:masterylog\u002Dlist',[['api/logger/masterylog/',[]]],],['kolibri:core:membership\u002Ddetail',[['api/auth/membership/%(pk)s.%(format)s',['pk','format',],],['api/auth/membership/%(pk)s/',['pk',]]],],['kolibri:core:membership\u002Dlist',[['api/auth/membership.%(format)s',['format',],],['api/auth/membership/',[]]],],['kolibri:core:networklocation\u002Ddetail',[['api/discovery/networklocation/%(pk)s/',['pk',]]],],['kolibri:core:networklocation\u002Dlist',[['api/discovery/networklocation/',[]]],],['kolibri:core:publicfacility\u002Ddetail',[['api/public/v1/facility/%(pk)s/',['pk',]]],],['kolibri:core:publicfacility\u002Dlist',[['api/public/v1/facility/',[]]],],['kolibri:core:redirect_user',[['redirectuser/',[]]],],['kolibri:core:remotechannel\u002Ddetail',[['api/content/remotechannel/%(pk)s/',['pk',]]],],['kolibri:core:remotechannel\u002Dkolibri\u002Dstudio\u002Dstatus',[['api/content/remotechannel/kolibri_studio_status/',[]]],],['kolibri:core:remotechannel\u002Dlist',[['api/content/remotechannel/',[]]],],['kolibri:core:role\u002Ddetail',[['api/auth/role/%(pk)s.%(format)s',['pk','format',],],['api/auth/role/%(pk)s/',['pk',]]],],['kolibri:core:role\u002Dlist',[['api/auth/role.%(format)s',['format',],],['api/auth/role/',[]]],],['kolibri:core:session\u002Ddetail',[['api/auth/session/%(pk)s/',['pk',]]],],['kolibri:core:session\u002Dlist',[['api/auth/session/',[]]],],['kolibri:core:set_language',[['i18n/setlang/',[]]],],['kolibri:core:signup\u002Dlist',[['api/auth/signup/',[]]],],['kolibri:core:task\u002Dcanceltask',[['api/tasks/tasks/canceltask/',[]]],],['kolibri:core:task\u002Dcleartasks',[['api/tasks/tasks/cleartasks/',[]]],],['kolibri:core:task\u002Ddetail',[['api/tasks/tasks/%(pk)s/',['pk',]]],],['kolibri:core:task\u002Dlist',[['api/tasks/tasks/',[]]],],['kolibri:core:task\u002Dlocaldrive',[['api/tasks/tasks/localdrive/',[]]],],['kolibri:core:task\u002Dstartdeletechannel',[['api/tasks/tasks/startdeletechannel/',[]]],],['kolibri:core:task\u002Dstartdiskchannelimport',[['api/tasks/tasks/startdiskchannelimport/',[]]],],['kolibri:core:task\u002Dstartdiskcontentimport',[['api/tasks/tasks/startdiskcontentimport/',[]]],],['kolibri:core:task\u002Dstartdiskexport',[['api/tasks/tasks/startdiskexport/',[]]],],['kolibri:core:task\u002Dstartremotechannelimport',[['api/tasks/tasks/startremotechannelimport/',[]]],],['kolibri:core:task\u002Dstartremotecontentimport',[['api/tasks/tasks/startremotecontentimport/',[]]],],['kolibri:core:userexam\u002Ddetail',[['api/exams/userexam/%(pk)s/',['pk',]]],],['kolibri:core:userexam\u002Dlist',[['api/exams/userexam/',[]]],],['kolibri:core:userprogress\u002Ddetail',[['api/logger/userprogress/%(pk)s/',['pk',]]],],['kolibri:core:userprogress\u002Dlist',[['api/logger/userprogress/',[]]],],['kolibri:core:usersessionlog\u002Ddetail',[['api/logger/usersessionlog/%(pk)s/',['pk',]]],],['kolibri:core:usersessionlog\u002Dlist',[['api/logger/usersessionlog/',[]]],],['kolibri:core:zipcontent',[['zipcontent/%(zipped_filename)s/%(embedded_filepath)s',['zipped_filename','embedded_filepath',]]],],['kolibri:devicemanagementplugin:device_channel\u002Ddetail',[['device/api/device_channel/%(pk)s/',['pk',]]],],['kolibri:devicemanagementplugin:device_channel\u002Dlist',[['device/api/device_channel/',[]]],],['kolibri:devicemanagementplugin:device_management',[['device/',[]]],],['kolibri:facilitymanagementplugin:facility_management',[['facility/',[]]],],['kolibri:learnplugin:learn',[['learn/',[]]],],['kolibri:learnplugin:learnerclassroom\u002Ddetail',[['learn/api/learnerclassroom/%(pk)s/',['pk',]]],],['kolibri:learnplugin:learnerclassroom\u002Dlist',[['learn/api/learnerclassroom/',[]]],],['kolibri:learnplugin:learnerlesson\u002Ddetail',[['learn/api/learnerlesson/%(pk)s/',['pk',]]],],['kolibri:learnplugin:learnerlesson\u002Dlist',[['learn/api/learnerlesson/',[]]],],['kolibri:setupwizardplugin:setupwizard',[['setup_wizard/',[]]],],['kolibri:styleguide:style_guide',[['style_guide',[]]],],['kolibri:user:user',[['user/',[]]],],['morangoinfo\u002Ddetail',[['api/morango/v1/morangoinfo/%(pk)s/',['pk',]]],],['nonces\u002Ddetail',[['api/morango/v1/nonces/%(pk)s/',['pk',]]],],['nonces\u002Dlist',[['api/morango/v1/nonces/',[]]],],['rest_framework:login',[['api\u002Dauth/login/',[]]],],['rest_framework:logout',[['api\u002Dauth/logout/',[]]],],['syncsessions\u002Ddetail',[['api/morango/v1/syncsessions/%(pk)s/',['pk',]]],],['syncsessions\u002Dlist',[['api/morango/v1/syncsessions/',[]]],],['transfersessions\u002Ddetail',[['api/morango/v1/transfersessions/%(pk)s/',['pk',]]],],['transfersessions\u002Dlist',[['api/morango/v1/transfersessions/',[]]]]];self.url_patterns={};for(_i=0,_len=url_patterns.length;_i<_len;_i++){_ref=url_patterns[_i],name=_ref[0],pattern=_ref[1];self.url_patterns[name]=pattern;url=_get_url(name);Urls[name]=url;Urls[name.replace(/-/g,'_')]=url;}
return Urls;})();Object.assign(kolibriGlobal.urls, this.kolibriUrls)
  
</script>
<!-- Bootstrapping the currently logged in user's session object into the page. -->
<script type='text/javascript'>var model = kolibriGlobal.resources.SessionResource.createModel(JSON.parse("{\"id\":\"current\",\"username\":\"\",\"full_name\":\"\",\"user_id\":null,\"facility_id\":\"4f434edd5c9354e19306230e1b484f7c\",\"kind\":[\"anonymous\"],\"error\":\"200\"}"));model.synced = true;</script>


<script>kolibriGlobal.registerLanguageAssets("document_epub_render_module", "en", {"BottomBar.progress":"{progress, number, percent}","BottomBar.jumpToPositionInBook":"Jump to position in book","BottomBar.preparingSlider":"Preparing slider","LoadingError.couldNotLoadThisBook":"Could not load this book","LoadingScreen.loadingBook":"Loading book","NextButton.goToNextPage":"Go to next page","PreviousButton.goToPreviousPage":"Go to previous page","SearchButton.toggleSearchSideBar":"Toggle search side bar","SearchSideBar.searchThroughBook":"Search through book","SearchSideBar.noSearchResults":"No results","SearchSideBar.loadingResults":"Loading results","SearchSideBar.overCertainNumberOfSearchResults":"Over {num, number, integer} {num, plural, one {result} other {results}}","SearchSideBar.numberOfSearchResults":"{num, number, integer} {num, plural, one {result} other {results}}","SearchSideBar.enterSearchQuery":"Enter search query","SearchSideBar.submitSearchQuery":"Submit search query","SettingsButton.toggleSettingsSideBar":"Toggle settings side bar","SettingsSideBar.textSize":"Text size","SettingsSideBar.decrease":"Decrease","SettingsSideBar.increase":"Increase","SettingsSideBar.theme":"Theme","SettingsSideBar.setWhiteTheme":"Set white theme","SettingsSideBar.setBeigeTheme":"Set beige theme","SettingsSideBar.setGreyTheme":"Set grey theme","SettingsSideBar.setBlackTheme":"Set black theme","TocButton.toggleTocSideBar":"Toggle table of contents side bar","TopBar.toggleFullscreen":"Toggle fullscreen"});</script>
<script>kolibriGlobal.registerContentRenderer("document_epub_render_module", ["/static/document_epub_render_module/document_epub_render_module0.11.0.css","/static/document_epub_render_module/document_epub_render_module-0.11.0.js","/static/document_epub_render_module/document_epub_render_module0.11.0.rtl.css"], {"kinds": [{"name": "document", "extensions": ["epub"]}]});</script>
<script>kolibriGlobal.registerLanguageAssets("document_pdf_render_module", "en", {"PdfRendererIndex.exitFullscreen":"Exit fullscreen","PdfRendererIndex.enterFullscreen":"Enter fullscreen"});</script>
<script>kolibriGlobal.registerContentRenderer("document_pdf_render_module", ["/static/document_pdf_render_module/document_pdf_render_module0.11.0.css","/static/document_pdf_render_module/document_pdf_render_module-0.11.0.js","/static/document_pdf_render_module/document_pdf_render_module0.11.0.rtl.css"], {"kinds": [{"name": "document", "extensions": ["pdf"]}]});</script>
<script>kolibriGlobal.registerLanguageAssets("media_player_module", "en", {"MediaPlayerIndex.replay":"Go back 10 seconds","MediaPlayerIndex.forward":"Go forward 10 seconds","MediaPlayerIndex.play":"Play","MediaPlayerIndex.pause":"Pause","MediaPlayerIndex.currentTime":"Current time","MediaPlayerIndex.durationTime":"Duration time","MediaPlayerIndex.loaded":"Loaded","MediaPlayerIndex.progress":"Progress","MediaPlayerIndex.progressBar":"Progress bar","MediaPlayerIndex.fullscreen":"Fullscreen","MediaPlayerIndex.nonFullscreen":"Non-fullscreen","MediaPlayerIndex.mute":"Mute","MediaPlayerIndex.unmute":"Unmute","MediaPlayerIndex.playbackRate":"Playback rate","MediaPlayerIndex.captions":"Captions","MediaPlayerIndex.captionsOff":"Captions off","MediaPlayerIndex.volumeLevel":"Volume level","MediaPlayerIndex.networkError":"A network error caused the media download to fail part-way","MediaPlayerIndex.formatError":"The media could not be loaded, either because the server or network failed or because the format is not supported","MediaPlayerIndex.corruptionOrSupportError":"The media playback was aborted due to a corruption problem or because the media used features your browser did not support","MediaPlayerIndex.sourceError":"No compatible source was found for this media","MediaPlayerIndex.encryptionError":"The media is encrypted and we do not have the keys to decrypt it"});</script>
<script>kolibriGlobal.registerContentRenderer("media_player_module", ["/static/media_player_module/media_player_module0.11.0.css","/static/media_player_module/media_player_module-0.11.0.js","/static/media_player_module/media_player_module0.11.0.rtl.css"], {"kinds": [{"name": "video", "extensions": ["mp4"]}, {"name": "audio", "extensions": ["mp3"]}]});</script>
<script>kolibriGlobal.registerLanguageAssets("exercise_perseus_render_module", "en", {"PerseusRendererIndex.showScratch":"Show scratchpad","PerseusRendererIndex.notAvailable":"The scratchpad is not available","PerseusRendererIndex.loading":"Loading","PerseusRendererIndex.hint":"Use a hint ({hintsLeft, number} left)","PerseusRendererIndex.hintExplanation":"If you use a hint, this question will not be added to your progress","PerseusRendererIndex.hintLabel":"Hint:","PerseusRendererIndex.noMoreHint":"No more hints"});</script>
<script>kolibriGlobal.registerContentRenderer("exercise_perseus_render_module", ["/static/exercise_perseus_render_module/exercise_perseus_render_module1.1.1.css","/static/exercise_perseus_render_module/exercise_perseus_render_module-1.1.1.js","/static/exercise_perseus_render_module/exercise_perseus_render_module1.1.1.rtl.css"], {"kinds": [{"name": "exercise", "extensions": ["perseus"]}]});</script>
<script>kolibriGlobal.registerLanguageAssets("html5_app_renderer_module", "en", {"Html5AppRendererIndex.exitFullscreen":"Exit fullscreen","Html5AppRendererIndex.enterFullscreen":"Enter fullscreen"});</script>
<script>kolibriGlobal.registerContentRenderer("html5_app_renderer_module", ["/static/html5_app_renderer_module/html5_app_renderer_module0.11.0.css","/static/html5_app_renderer_module/html5_app_renderer_module-0.11.0.js","/static/html5_app_renderer_module/html5_app_renderer_module0.11.0.rtl.css"], {"kinds": [{"name": "html5", "extensions": ["zip"]}]});</script>



  <script type='text/javascript'>var collection = kolibriGlobal.resources.FacilityResource.createCollection({}, JSON.parse("[{\"id\":\"4f434edd5c9354e19306230e1b484f7c\",\"name\":\"FM-TEST\",\"dataset\":{\"id\":\"db3696d5fc33a30c64d22af4be11da86\",\"learner_can_edit_username\":true,\"learner_can_edit_name\":true,\"learner_can_edit_password\":true,\"learner_can_sign_up\":true,\"learner_can_delete_account\":true,\"learner_can_login_with_no_password\":false,\"show_download_button_in_learn\":true,\"description\":\"\",\"location\":\"\",\"allow_guest_access\":false},\"default\":true}]"));collection.synced = true;</script>
  
  <script>kolibriGlobal.registerLanguageAssets("user_module", "en", {"UserProfilePageSnackbars.passwordChangeSuccessMessage":"Password changed","UserPageSnackbars.dismiss":"Dismiss","UserPageSnackbars.signedOut":"You were automatically signed out due to inactivity","ChangeUserPasswordModal.passwordChangeFormHeader":"Change Password","ChangeUserPasswordModal.newPasswordFieldLabel":"Enter new password","ChangeUserPasswordModal.confirmNewPasswordFieldLabel":"Re-enter new password","ChangeUserPasswordModal.passwordMismatchErrorMessage":"New passwords do not match","ChangeUserPasswordModal.required":"This field is required","ChangeUserPasswordModal.cancelButtonLabel":"cancel","ChangeUserPasswordModal.updateButtonLabel":"update","ProfilePage.success":"Profile details updated","ProfilePage.username":"Username","ProfilePage.name":"Full name","ProfilePage.updateProfile":"Save changes","ProfilePage.isSuperuser":"Super admin permissions ","ProfilePage.manageContent":"Manage content","ProfilePage.manageDevicePermissions":"Manage device permissions","ProfilePage.points":"Points","ProfilePage.userType":"User type","ProfilePage.devicePermissions":"Device permissions","ProfilePage.usernameNotAlphaNumUnderscore":"Username can only contain letters, numbers, and underscores","ProfilePage.required":"This field is required","ProfilePage.limitedPermissions":"Limited permissions","ProfilePage.youCan":"You can","ProfilePage.changePasswordPrompt":"Change password","ProfilePage.usernameAlreadyExists":"An account with that username already exists","ProfilePage.documentTitle":"User Profile","FacilityModal.facilitySelectionPrompt":"Which facility do you want to sign in to?","FacilityModal.submitFacilitySelectionButtonPrompt":"Select","FacilityModal.facilitySelectionModalHeader":"Select a facility","FacilityModal.close":"Close","SignInPage.kolibri":"Kolibri","SignInPage.signIn":"Sign in","SignInPage.username":"Username","SignInPage.password":"Password","SignInPage.enterPassword":"Enter password","SignInPage.createAccount":"Create an account","SignInPage.accessAsGuest":"Continue as guest","SignInPage.signInError":"Incorrect username or password","SignInPage.poweredBy":"Kolibri {version}","SignInPage.required":"This field is required","SignInPage.requiredForCoachesAdmins":"Password is required for coaches and admins","SignInPage.usernameNotAlphaNumUnderscore":"Username can only contain letters, numbers, and underscores","SignInPage.documentTitle":"User Sign In","SignInPage.privacyLink":"Usage and privacy","SignUpPage.createAccount":"Create an account","SignUpPage.name":"Full name","SignUpPage.username":"Username","SignUpPage.password":"Password","SignUpPage.reEnterPassword":"Re-enter password","SignUpPage.passwordMatchError":"Passwords do not match","SignUpPage.genericError":"Something went wrong during sign up","SignUpPage.usernameAlphaNumError":"Username can only contain letters, numbers, and underscores","SignUpPage.usernameAlreadyExistsError":"An account with that username already exists","SignUpPage.logIn":"Sign in","SignUpPage.kolibri":"Kolibri","SignUpPage.finish":"Finish","SignUpPage.facility":"Facility","SignUpPage.required":"This field is required","SignUpPage.documentTitle":"User Sign Up","SignUpPage.privacyLink":"Usage and privacy in Kolibri","UserIndex.userProfileTitle":"Profile"});</script>
<link type="text/css" href="/static/user_module/user_module0.11.0.css" rel="stylesheet"/>
<script type="text/javascript" src="/static/user_module/user_module-0.11.0.js"></script>



</body>
</html>

    at v.set (http://192.168.200.193:8080/static/default_frontend/default_frontend-0.11.0.js:1:8644)
    at http://192.168.200.193:8080/static/default_frontend/default_frontend-0.11.0.js:1:7549
    at http://192.168.200.193:8080/static/default_frontend/default_frontend-0.11.0.js:389:7292
    at I (http://192.168.200.193:8080/static/default_frontend/default_frontend-0.11.0.js:389:7333)
    at _.when (http://192.168.200.193:8080/static/default_frontend/default_frontend-0.11.0.js:389:5578)
    at g.run (http://192.168.200.193:8080/static/default_frontend/default_frontend-0.11.0.js:389:4441)
    at e._drain (http://192.168.200.193:8080/static/default_frontend/default_frontend-0.11.0.js:388:552)
    at drain (http://192.168.200.193:8080/static/default_frontend/default_frontend-0.11.0.js:388:206)
    at MutationObserver.e.observe.characterData (http://192.168.200.193:8080/static/default_frontend/default_frontend-0.11.0.js:52:532)
-->
```

### Context

Tell us about your environment, including:
 * Kolibri version - 0.11
 * Operating system - Ubuntu
 * Browser - Chrome


…



Discussion:
Is it possible to get a copy of a database where this is happening? (That hasn't had accounts deleted)
Yes I can ask for a copy!
Just wanted to confirm:

> Earlier today, 15 users were able to create new Learner accounts successfully. A few hours later, another group tried to do the same and nothing happened when clicking the 'Finish' button
> 
> ...
> 
> * Operating system - Ubuntu
> * Browser - Chrome

Were all the students using chrome on ubuntu, or were they using android tablets?
Confirming on the above, they were using Chrome on the INS tablets. I e-mailed a copy of the database to @jamalex last week.
@jamalex can you send me the copy of the database?
@jredrejo I just shared it with you via DropBox
@lauradanforth could you also please share it with me? Thank you!!
We have same issue in two server scenarios

First server was in service for a few months, then upgraded to v.11 via apt-get.  Before upgrade new Learners were able to Create an account from login screen successfully.  After upgrade a new Learner was unable to get past filling out the Create an account form and pressing Finish (nothing happened)

Second server is brand new install on VM in ProxmoxVE with VM running Ubuntu 18.04.1 and Kolibri v.11
Server works fine with Learners added manually by admin.  But same issue of not getting past Finish on Create an account screen for new Learner sign up.

Contacted LE support and was advised to use Console in Chrome to expose the error which appeared after hitting the Finish button on Create an account screen.  Copy of Console error report attached 
[afterclearafterfinish.log](https://github.com/learningequality/kolibri/files/2725795/afterclearafterfinish.log)

Copy of kolibri.log from new install
[newinstall.log](https://github.com/learningequality/kolibri/files/2725798/newinstall.log)

If more information is needed, please advise

Switching this to 0.11.1 as this seems to be an active blocker for many users.
Looking at the frontend tracebacks, what appears to be happening there is that the HTML for the `/user` route is being returned in response to the sign up request. Having trouble thinking through why that might happen so far though!

Resolving patch:
diff --git a/kolibri/core/auth/api.py b/kolibri/core/auth/api.py
--- a/kolibri/core/auth/api.py
+++ b/kolibri/core/auth/api.py
@@ -165,6 +165,7 @@ def perform_create(self, serializer):
         self.set_password_if_needed(instance, serializer)
 
 
+@method_decorator(signin_redirect_exempt, name='dispatch')
 class FacilityUsernameViewSet(viewsets.ReadOnlyModelViewSet):
     filter_backends = (DjangoFilterBackend, filters.SearchFilter, )
     serializer_class = FacilityUsernameSerializer
@@ -231,6 +232,7 @@ def get_queryset(self, prefetch=True):
         return queryset
 
 
+@method_decorator(signin_redirect_exempt, name='dispatch')
 class PublicFacilityViewSet(viewsets.ReadOnlyModelViewSet):
     permission_classes = (KolibriAuthPermissions,)
     filter_backends = (KolibriAuthPermissionsFilter,)
@@ -281,6 +283,7 @@ class LearnerGroupViewSet(viewsets.ModelViewSet):
     filter_fields = ('parent',)
 
 
+@method_decorator(signin_redirect_exempt, name='dispatch')
 class SignUpViewSet(viewsets.ViewSet):
 
     serializer_class = FacilityUserSignupSerializer


Test patch:
diff --git a/kolibri/core/auth/test/test_api.py b/kolibri/core/auth/test/test_api.py
--- a/kolibri/core/auth/test/test_api.py
+++ b/kolibri/core/auth/test/test_api.py
@@ -374,6 +374,13 @@ def test_sign_up_also_logs_in_user(self):
         self.client.post(reverse('kolibri:core:signup-list'), data={"username": "user", "password": DUMMY_PASSWORD})
         self.assertNotEqual(session_key, self.client.session.session_key)
 
+    def test_sign_up_able_no_guest_access(self):
+        self.facility.dataset.allow_guest_access = False
+        self.facility.dataset.save()
+        response = self.client.post(reverse('kolibri:core:signup-list'), data={"username": "user", "password": DUMMY_PASSWORD})
+        self.assertEqual(response.status_code, status.HTTP_201_CREATED)
+        self.assertTrue(models.FacilityUser.objects.all())
+
 
 class FacilityDatasetAPITestCase(APITestCase):