def translate_untranslated_from_google(lang): if lang == "en": return if lang=='zh-cn': lang = 'zh' if lang=='zh-tw': lang = 'zh-TW' if not get_lang_name(lang): print('{0} not supported by Google Translate'.format(lang)) return count = 0 untranslated = get_untranslated(lang) l = len(untranslated) for i, d in enumerate(untranslated): source, message = d if not dataent.db.get_value('Translated Message', {"source": source, "language": lang}): t = dataent.new_doc('Translated Message') t.language = lang t.source = source t.translated = get_translation_from_google(lang, message) try: t.save() except dataent.exceptions.ValidationError: continue count += 1 dataent.db.commit() update_progress_bar("Translating {0}".format(lang), i, l) print(lang, count, 'imported')
def execute(): dataent.reload_doc('core', 'doctype', 'dynamic_link') dataent.reload_doc('contacts', 'doctype', 'contact') dataent.reload_doc('contacts', 'doctype', 'address') map_fields = (('Customer', 'customer'), ('Supplier', 'supplier'), ('Lead', 'lead'), ('Sales Partner', 'sales_partner')) for doctype in ('Contact', 'Address'): if dataent.db.has_column(doctype, 'customer'): items = dataent.get_all(doctype) for i, doc in enumerate(items): doc = dataent.get_doc(doctype, doc.name) dirty = False for field in map_fields: if doc.get(field[1]): doc.append( 'links', dict(link_doctype=field[0], link_name=doc.get(field[1]))) dirty = True if dirty: deduplicate_dynamic_links(doc) doc.update_children() update_progress_bar('Updating {0}'.format(doctype), i, len(items)) print
def execute(): dataent.cache().delete_value('doctypes_with_global_search') doctypes_with_global_search = get_doctypes_with_global_search( with_child_tables=False) for i, doctype in enumerate(doctypes_with_global_search): update_progress_bar("Updating Global Search", i, len(doctypes_with_global_search)) rebuild_for_doctype(doctype)
def copy_translations(from_lang, to_lang): translations = dataent.db.sql("""select source, translated from `tabTranslated Message` where language=%s""", (from_lang, )) l = len(translations) for i, d in enumerate(translations): source, translated = d if not dataent.db.get_value('Translated Message', {"source": source, "language": to_lang}): t = dataent.new_doc('Translated Message') t.language = to_lang t.source = source t.translated = translated try: t.save() except dataent.ValidationError: pass update_progress_bar("Copying {0} to {1}".format(from_lang, to_lang), i, l)
def import_country_and_currency(): from dataent.geo.country_info import get_all from dataent.utils import update_progress_bar data = get_all() for i, name in enumerate(data): update_progress_bar("Updating country info", i, len(data)) country = dataent._dict(data[name]) add_country_and_currency(name, country) print("") # enable frequently used currencies for currency in ("INR", "USD", "GBP", "EUR", "AED", "AUD", "JPY", "CNY", "CHF"): dataent.db.set_value("Currency", currency, "enabled", 1)
def rebuild_global_search(context): '''Setup help table in the current site (called after migrate)''' from dataent.utils.global_search import (get_doctypes_with_global_search, rebuild_for_doctype) for site in context.sites: try: dataent.init(site) dataent.connect() doctypes = get_doctypes_with_global_search() for i, doctype in enumerate(doctypes): rebuild_for_doctype(doctype) update_progress_bar('Rebuilding Global Search', i, len(doctypes)) finally: dataent.destroy()
def sync_for(app_name, force=0, sync_everything = False, verbose=False, reset_permissions=False): files = [] if app_name == "dataent": # these need to go first at time of install for d in (("core", "docfield"), ("core", "docperm"), ("core", "has_role"), ("core", "doctype"), ("core", "user"), ("core", "role"), ("custom", "custom_field"), ("custom", "property_setter"), ("website", "web_form"), ("website", "web_form_field"), ("website", "portal_menu_item"), ("data_migration", "data_migration_mapping_detail"), ("data_migration", "data_migration_mapping"), ("data_migration", "data_migration_plan_mapping"), ("data_migration", "data_migration_plan")): files.append(os.path.join(dataent.get_app_path("dataent"), d[0], "doctype", d[1], d[1] + ".json")) for module_name in dataent.local.app_modules.get(app_name) or []: folder = os.path.dirname(dataent.get_module(app_name + "." + module_name).__file__) get_doc_files(files, folder, force, sync_everything, verbose=verbose) l = len(files) if l: for i, doc_path in enumerate(files): import_file_by_path(doc_path, force=force, ignore_version=True, reset_permissions=reset_permissions, for_sync=True) #print module_name + ' | ' + doctype + ' | ' + name dataent.db.commit() # show progress bar update_progress_bar("Updating DocTypes for {0}".format(app_name), i, l) # print each progress bar on new line print()