def set_toggle(request, toggle_slug): static_toggle = find_static_toggle(toggle_slug) if not static_toggle: raise Http404() item = request.POST['item'] enabled = request.POST['enabled'] == 'true' namespace = request.POST['namespace'] _set_toggle(request.user.username, static_toggle, item, namespace, enabled) return HttpResponse(json.dumps({'success': True}), content_type="application/json")
def handle(self, add_on_name, *args, **options): add_to_toggle = options.get('add_to_toggle') if add_to_toggle: add_to_toggle = find_static_toggle(add_to_toggle) if not add_to_toggle: raise CommandError('Toggle %s not found.' % add_to_toggle) with open("apps_with_feature_%s.csv" % add_on_name, "w", encoding='utf-8') as csvfile: writer = csv.DictWriter(csvfile, fieldnames=[ 'domain', 'application_id', 'app_name', 'all_add_ons_enabled', 'status' ]) writer.writeheader() for domain_obj in self._iter_domains(options): application_ids = get_app_ids_in_domain(domain_obj.name) for application_id in application_ids: application = Application.get(application_id) if not application.is_remote_app(): all_add_ons_enabled = toggles.ENABLE_ALL_ADD_ONS.enabled( domain_obj.name) if add_on_name in application.add_ons or all_add_ons_enabled: try: writer.writerow({ 'domain': domain_obj.name.encode('utf-8'), 'application_id': application.get_id, 'app_name': application.name.encode('utf-8'), 'all_add_ons_enabled': all_add_ons_enabled, 'status': application.add_ons.get(add_on_name) }) if add_to_toggle: add_to_toggle.set(domain_obj.name, True, NAMESPACE_DOMAIN) except UnicodeEncodeError: print('encode error') print({ 'domain': domain_obj.name, 'application_id': application.get_id, 'app_name': application.name, 'all_add_ons_enabled': all_add_ons_enabled, 'status': application.add_ons.get(add_on_name) })
def set_toggle(request, toggle_slug): static_toggle = find_static_toggle(toggle_slug) if not static_toggle: raise Http404() item = request.POST['item'] enabled = request.POST['enabled'] == 'true' namespace = request.POST['namespace'] static_toggle.set(item=item, enabled=enabled, namespace=namespace) if enabled: _notify_on_change(static_toggle, [item], request.user.username) return HttpResponse(json.dumps({'success': True}), content_type="application/json")
def set_toggle(request, toggle_slug): static_toggle = find_static_toggle(toggle_slug) if not static_toggle: raise Http404() item = request.POST['item'] enabled = request.POST['enabled'] == 'true' namespace = request.POST['namespace'] static_toggle.set(item=item, enabled=enabled, namespace=namespace) if enabled: _notify_on_change(static_toggle, [item], request.user.username) return HttpResponse(json.dumps({'success': True}), content_type="application/json")
def set_toggle(request, toggle_slug): static_toggle = find_static_toggle(toggle_slug) if not static_toggle: raise Http404() item = request.POST['item'] enabled = request.POST['enabled'] == 'true' namespace = request.POST['namespace'] if static_toggle.set(item=item, enabled=enabled, namespace=namespace): action = ToggleAudit.ACTION_ADD if enabled else ToggleAudit.ACTION_REMOVE ToggleAudit.objects.log_toggle_action( toggle_slug, request.user.username, [namespaced_item(item, namespace)], action ) if enabled: _notify_on_change(static_toggle, [item], request.user.username) return HttpResponse(json.dumps({'success': True}), content_type="application/json")
def toggle_app_manager_v2(request): slug = "app_manager_v2" on_or_off = request.POST.get('on_or_off', 'on') try: toggle = Toggle.get(slug) except ResourceNotFound: toggle = Toggle(slug=slug) enable = on_or_off == "on" enabled = request.user.username in toggle.enabled_users if enable != enabled: changed_entries = [request.user.username] if enable: toggle.enabled_users.append(request.user.username) else: toggle.enabled_users.remove(request.user.username) toggle.save() _call_save_fn_and_clear_cache(slug, changed_entries, toggle.enabled_users, find_static_toggle(slug)) return HttpResponse(json.dumps({'success': True}), content_type="application/json")
def handle(self, add_on_name, *args, **options): add_to_toggle = options.get('add_to_toggle') if add_to_toggle: add_to_toggle = find_static_toggle(add_to_toggle) if not add_to_toggle: raise CommandError('Toggle %s not found.' % add_to_toggle) with open("apps_with_feature_%s.csv" % add_on_name, "w", encoding='utf-8') as csvfile: writer = csv.DictWriter(csvfile, fieldnames=[ 'domain', 'application_id', 'app_name', 'all_add_ons_enabled', 'status' ]) writer.writeheader() for domain_obj in self._iter_domains(options): application_ids = get_app_ids_in_domain(domain_obj.name) for application_id in application_ids: application = Application.get(application_id) if not application.is_remote_app(): all_add_ons_enabled = toggles.ENABLE_ALL_ADD_ONS.enabled(domain_obj.name) if add_on_name in application.add_ons or all_add_ons_enabled: try: writer.writerow({ 'domain': domain_obj.name.encode('utf-8'), 'application_id': application.get_id, 'app_name': application.name.encode('utf-8'), 'all_add_ons_enabled': all_add_ons_enabled, 'status': application.add_ons.get(add_on_name) }) if add_to_toggle: add_to_toggle.set(domain_obj.name, True, NAMESPACE_DOMAIN) except UnicodeEncodeError: print('encode error') print({ 'domain': domain_obj.name, 'application_id': application.get_id, 'app_name': application.name, 'all_add_ons_enabled': all_add_ons_enabled, 'status': application.add_ons.get(add_on_name) })
def toggle_app_manager_v2(request): slug = "app_manager_v2" on_or_off = request.POST.get('on_or_off', 'on') try: toggle = Toggle.get(slug) except ResourceNotFound: toggle = Toggle(slug=slug) enable = on_or_off == "on" enabled = request.user.username in toggle.enabled_users if enable != enabled: changed_entries = [request.user.username] if enable: toggle.enabled_users.append(request.user.username) else: toggle.enabled_users.remove(request.user.username) toggle.save() _call_save_fn_and_clear_cache(slug, changed_entries, toggle.enabled_users, find_static_toggle(slug)) return HttpResponse(json.dumps({'success': True}), content_type="application/json")
def static_toggle(self): """ Returns the corresponding toggle definition from corehq/toggles.py """ return find_static_toggle(self.toggle_slug)
def static_toggle(self): """ Returns the corresponding toggle definition from corehq/toggles.py """ return find_static_toggle(self.toggle_slug)
def _all_domains_have_toggle_enabled(domains, toggle_slug): toggle = find_static_toggle(toggle_slug) toggle_enabled = {toggle.enabled(domain) for domain in domains} return len(toggle_enabled) == 1 and True in toggle_enabled
def _get_domains_with_toggle_enabled(domains, toggle_slug): toggle = find_static_toggle(toggle_slug) return list(filter(toggle.enabled, domains))