def apps_modules_setup(test_case): """ Additional setUp and tearDown for get_apps_modules tests """ test_case.app.add_module(Module.new_module("Module0", "en")) test_case.app.save() test_case.other_app = Application.new_app(test_case.project.name, "OtherApp") test_case.other_app.add_module(Module.new_module("Module0", "en")) test_case.other_app.save() test_case.deleted_app = Application.new_app(test_case.project.name, "DeletedApp") test_case.deleted_app.add_module(Module.new_module("Module0", "en")) test_case.deleted_app.save() test_case.deleted_app.delete_app() test_case.deleted_app.save() # delete_app() changes doc_type. This save() saves that. test_case.linked_app = create_linked_app(test_case.project.name, test_case.app.id, test_case.project.name, 'LinkedApp') try: yield finally: Application.get_db().delete_doc(test_case.linked_app.id) Application.get_db().delete_doc(test_case.deleted_app.id) Application.get_db().delete_doc(test_case.other_app.id)
def _inner(request, link_domain, data, master_domain=domain): clear_app_cache(request, link_domain) if data['toggles']: for slug in data['toggles'].split(","): set_toggle(slug, link_domain, True, namespace=toggles.NAMESPACE_DOMAIN) linked = data.get('linked') if linked: for module in app.modules: if isinstance(module, ReportModule): messages.error(request, _('This linked application uses mobile UCRs which ' 'are currently not supported. For this application to ' 'function correctly, you will need to remove those modules.')) return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[domain, app_id])) master_version = get_latest_released_app_version(app.domain, app_id) if not master_version: messages.error(request, _("Creating linked app failed." " Unable to get latest released version of your app." " Make sure you have at least one released build.")) return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[domain, app_id])) linked_app = create_linked_app(master_domain, app_id, link_domain, data['name']) try: update_linked_app(linked_app, request.couch_user.get_id) except AppLinkError as e: messages.error(request, str(e)) return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[domain, app_id])) messages.success(request, _('Application successfully copied and linked.')) return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[link_domain, linked_app.get_id])) else: extra_properties = {'name': data['name']} app_copy = import_app_util(app_id_or_source, link_domain, extra_properties) return back_to_main(request, app_copy.domain, app_id=app_copy._id)
def _create_linked_app(request, master_app, link_domain, link_app_name): master_domain = master_app.domain master_version = get_latest_released_app_version(master_domain, master_app._id) if not master_version: messages.error( request, _("Creating linked app failed." " Unable to get latest released version of your app." " Make sure you have at least one released build.")) return HttpResponseRedirect( reverse_util('app_settings', params={}, args=[master_domain, master_app._id])) linked_app = create_linked_app(master_domain, master_app._id, link_domain, link_app_name) try: update_linked_app(linked_app, request.couch_user.get_id) except AppLinkError as e: linked_app.delete() messages.error(request, str(e)) return HttpResponseRedirect( reverse_util('app_settings', params={}, args=[master_domain, master_app._id])) messages.success(request, _('Application successfully copied and linked.')) return HttpResponseRedirect( reverse_util('app_settings', params={}, args=[link_domain, linked_app.get_id]))
def _create_linked_app(request, app_id, build_id, from_domain, to_domain, link_app_name): # Linked apps can only be created from released versions error = None if from_domain == to_domain: error = _("You may not create a linked app in the same domain as its master app.") elif build_id: from_app = Application.get(build_id) if not from_app.is_released: error = _("Make sure the version you are copying from is released.") else: from_app = get_latest_released_app(from_domain, app_id) if not from_app: error = _("Unable to get latest released version of your app." " Make sure you have at least one released build.") if error: messages.error(request, _("Creating linked app failed. {}").format(error)) return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[from_domain, app_id])) linked_app = create_linked_app(from_domain, from_app.master_id, to_domain, link_app_name) try: update_linked_app(linked_app, from_app, request.couch_user.get_id) except AppLinkError as e: linked_app.delete() messages.error(request, str(e)) return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[from_domain, from_app.master_id])) messages.success(request, _('Application successfully copied and linked.')) return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[to_domain, linked_app.get_id]))
def apps_modules_setup(test_case): """ Additional setUp and tearDown for get_apps_modules tests """ test_case.app.add_module(Module.new_module("Module0", "en")) test_case.app.save() test_case.other_app = Application.new_app(test_case.project.name, "OtherApp") test_case.other_app.add_module(Module.new_module("Module0", "en")) test_case.other_app.save() test_case.deleted_app = Application.new_app(test_case.project.name, "DeletedApp") test_case.deleted_app.add_module(Module.new_module("Module0", "en")) test_case.deleted_app.save() test_case.deleted_app.delete_app() test_case.deleted_app.save() # delete_app() changes doc_type. This save() saves that. test_case.linked_app = create_linked_app(test_case.project.name, test_case.app.id, test_case.project.name, 'LinkedApp') try: yield finally: Application.get_db().delete_doc(test_case.linked_app.id) Application.get_db().delete_doc(test_case.deleted_app.id) Application.get_db().delete_doc(test_case.other_app.id)
def _inner(request, link_domain, data, master_domain=domain): clear_app_cache(request, link_domain) if data['toggles']: for slug in data['toggles'].split(","): set_toggle(slug, link_domain, True, namespace=toggles.NAMESPACE_DOMAIN) linked = data.get('linked') if linked: master_version = get_latest_released_app_version(app.domain, app_id) if not master_version: messages.error(request, _("Creating linked app failed." " Unable to get latest released version of your app." " Make sure you have at least one released build.")) return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[domain, app_id])) linked_app = create_linked_app(master_domain, app_id, link_domain, data['name']) try: update_linked_app(linked_app, request.couch_user.get_id) except AppLinkError as e: linked_app.delete() messages.error(request, str(e)) return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[domain, app_id])) messages.success(request, _('Application successfully copied and linked.')) return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[link_domain, linked_app.get_id])) else: extra_properties = {'name': data['name']} try: app_copy = import_app_util(app_id_or_source, link_domain, extra_properties) except ReportConfigurationNotFoundError: messages.error(request, _("Copying the application failed because " "your application contains a Report Module " "that references a static UCR configuration.")) return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[domain, app_id])) return back_to_main(request, app_copy.domain, app_id=app_copy._id)
def _inner(request, link_domain, data, master_domain=domain): clear_app_cache(request, link_domain) if data['toggles']: for slug in data['toggles'].split(","): set_toggle(slug, link_domain, True, namespace=toggles.NAMESPACE_DOMAIN) linked = data.get('linked') if linked: master_version = get_latest_released_app_version( app.domain, app_id) if not master_version: messages.error( request, _("Creating linked app failed." " Unable to get latest released version of your app." " Make sure you have at least one released build.")) return HttpResponseRedirect( reverse_util('app_settings', params={}, args=[domain, app_id])) linked_app = create_linked_app(master_domain, app_id, link_domain, data['name']) try: update_linked_app(linked_app, request.couch_user.get_id) except AppLinkError as e: linked_app.delete() messages.error(request, str(e)) return HttpResponseRedirect( reverse_util('app_settings', params={}, args=[domain, app_id])) messages.success( request, _('Application successfully copied and linked.')) return HttpResponseRedirect( reverse_util('app_settings', params={}, args=[link_domain, linked_app.get_id])) else: extra_properties = {'name': data['name']} try: app_copy = import_app_util(app_id_or_source, link_domain, extra_properties) except ReportConfigurationNotFoundError: messages.error( request, _("Copying the application failed because " "your application contains a Report Module " "that references a static UCR configuration.")) return HttpResponseRedirect( reverse_util('app_settings', params={}, args=[domain, app_id])) return back_to_main(request, app_copy.domain, app_id=app_copy._id)
def _create_linked_app(request, master_app, link_domain, link_app_name): master_domain = master_app.domain master_version = get_latest_released_app_version(master_domain, master_app._id) if not master_version: messages.error(request, _("Creating linked app failed." " Unable to get latest released version of your app." " Make sure you have at least one released build.")) return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[master_domain, master_app._id])) linked_app = create_linked_app(master_domain, master_app._id, link_domain, link_app_name) try: update_linked_app(linked_app, request.couch_user.get_id) except AppLinkError as e: linked_app.delete() messages.error(request, str(e)) return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[master_domain, master_app._id])) messages.success(request, _('Application successfully copied and linked.')) return HttpResponseRedirect(reverse_util('app_settings', params={}, args=[link_domain, linked_app.get_id]))