def test_get_practice_mode_apps(self): self.assertEqual( {app.get_id for app in get_practice_mode_configured_apps(self.domain)}, {self.app2.get_id, self.app3.get_id} ) self.assertEqual( {app.get_id for app in get_practice_mode_configured_apps(self.domain, 'user2')}, {self.app3.get_id} )
def test_get_practice_mode_apps(self): self.assertEqual( {app.get_id for app in get_practice_mode_configured_apps(self.domain)}, {self.app2.get_id, self.app3.get_id} ) self.assertEqual( {app.get_id for app in get_practice_mode_configured_apps(self.domain, 'user2')}, {self.app3.get_id} )
def toggle_demo_mode(request, domain, user_id): user = CommCareUser.get_by_user_id(user_id, domain) demo_mode = request.POST.get('demo_mode', 'no') demo_mode = True if demo_mode == 'yes' else False edit_user_url = reverse(EditCommCareUserView.urlname, args=[domain, user_id]) # handle bad POST param if user.is_demo_user == demo_mode: warning = _("User is already in Demo mode!") if user.is_demo_user else _("User is not in Demo mode!") messages.warning(request, warning) return HttpResponseRedirect(edit_user_url) if demo_mode: download = DownloadBase() res = turn_on_demo_mode_task.delay(user.get_id, domain) download.set_task(res) return HttpResponseRedirect( reverse( DemoRestoreStatusView.urlname, args=[domain, download.download_id, user_id] ) ) else: from corehq.apps.app_manager.views.utils import unset_practice_mode_configured_apps, \ get_practice_mode_configured_apps # if the user is being used as practice user on any apps, check/ask for confirmation apps = get_practice_mode_configured_apps(domain) confirm_turn_off = True if (request.POST.get('confirm_turn_off', 'no')) == 'yes' else False if apps and not confirm_turn_off: return HttpResponseRedirect(reverse(ConfirmTurnOffDemoModeView.urlname, args=[domain, user_id])) turn_off_demo_mode(user) unset_practice_mode_configured_apps(domain, user.get_id) messages.success(request, _("Successfully turned off demo mode!")) return HttpResponseRedirect(edit_user_url)
def toggle_demo_mode(request, domain, user_id): user = CommCareUser.get_by_user_id(user_id, domain) demo_mode = request.POST.get('demo_mode', 'no') demo_mode = True if demo_mode == 'yes' else False edit_user_url = reverse(EditCommCareUserView.urlname, args=[domain, user_id]) # handle bad POST param if user.is_demo_user == demo_mode: warning = _("User is already in Demo mode!") if user.is_demo_user else _("User is not in Demo mode!") messages.warning(request, warning) return HttpResponseRedirect(edit_user_url) if demo_mode: download = DownloadBase() res = turn_on_demo_mode_task.delay(user.get_id, domain) download.set_task(res) return HttpResponseRedirect( reverse( DemoRestoreStatusView.urlname, args=[domain, download.download_id, user_id] ) ) else: from corehq.apps.app_manager.views.utils import unset_practice_mode_configured_apps, \ get_practice_mode_configured_apps # if the user is being used as practice user on any apps, check/ask for confirmation apps = get_practice_mode_configured_apps(domain) confirm_turn_off = True if (request.POST.get('confirm_turn_off', 'no')) == 'yes' else False if apps and not confirm_turn_off: return HttpResponseRedirect(reverse(ConfirmTurnOffDemoModeView.urlname, args=[domain, user_id])) turn_off_demo_mode(user) unset_practice_mode_configured_apps(domain, user.get_id) messages.success(request, _("Successfully turned off demo mode!")) return HttpResponseRedirect(edit_user_url)
def page_context(self): from corehq.apps.app_manager.views.utils import get_practice_mode_configured_apps user_id = self.kwargs.pop('couch_user_id') user = CommCareUser.get_by_user_id(user_id, self.domain) practice_apps = get_practice_mode_configured_apps(self.domain, user_id) return { 'commcare_user': user, 'practice_apps': practice_apps, }
def page_context(self): from corehq.apps.app_manager.views.utils import get_practice_mode_configured_apps user_id = self.kwargs.pop('couch_user_id') user = CommCareUser.get_by_user_id(user_id, self.domain) practice_apps = get_practice_mode_configured_apps(self.domain, user_id) return { 'commcare_user': user, 'practice_apps': practice_apps, }
def response_practice_mobile_workers(project, new_plan_version): from corehq.apps.app_manager.views.utils import get_practice_mode_configured_apps apps = get_practice_mode_configured_apps(project.name) return _fmt_alert( ungettext( "You have %(num_apps)d application that has a practice mobile worker " "configured, it will be unset on downgrade.", "You have %(num_apps)d applications that has a practice mobile worker " "configured, it will be unset on downgrade.", len(apps)) % { 'num_apps': len(apps), }, [ mark_safe('<a href="%(url)s">%(title)s</a>') % { 'title': app['name'], 'url': reverse('view_app', args=[project.name, app['_id']]) } for app in apps ], )
def response_practice_mobile_workers(project, new_plan_version): from corehq.apps.app_manager.views.utils import get_practice_mode_configured_apps apps = get_practice_mode_configured_apps(project.name) if not apps: return None return _fmt_alert( ungettext( "You have %(num_apps)d application that has a practice mobile worker " "configured, it will be unset on downgrade.", "You have %(num_apps)d applications that has a practice mobile worker " "configured, it will be unset on downgrade.", len(apps) ) % { 'num_apps': len(apps), }, [mark_safe('<a href="%(url)s">%(title)s</a>') % { 'title': app['name'], 'url': reverse('view_app', args=[project.name, app['_id']]) } for app in apps], )
def response_practice_mobile_workers(project, new_plan_version): from corehq.apps.app_manager.views.utils import ( get_practice_mode_configured_apps, ) apps = get_practice_mode_configured_apps(project.name) if not apps: return None return _fmt_alert( ngettext( "You have %(num_apps)d application that has a practice mobile worker " "configured, it will be unset on downgrade.", "You have %(num_apps)d applications that has a practice mobile worker " "configured, it will be unset on downgrade.", len(apps)) % { 'num_apps': len(apps), }, [ format_html( '<a href="{}">{}</a>', reverse('view_app', args=[project.name, app['_id']]), app['name']) for app in apps ], )