def postp(r, output): # Create a custom form form = FORM() # Prevent redirection r.next = None # Remove the false error from the form # error : "Invalid form (re-opened in another window?)" if response.error and not output["form"]["error"]: response.error = None if opt == "1": # Select modules for Translation from math import ceil from s3.s3translate import TranslateAPI, Strings if form.accepts(request.vars, session): modlist = [] # If only one module is selected if type(form.request_vars.module_list) == str: modlist.append(form.request_vars.module_list) # If multiple modules are selected else: modlist = form.request_vars.module_list # If no module is selected if modlist is None: modlist = [] # If "Select All" option is chosen all_template_flag = 0 if "all" in modlist: all_template_flag = 1 A = TranslateAPI() modlist = A.get_modules() if "core" in form.request_vars.module_list: modlist.append("core") # Obtaining the language file from the language code code = form.request_vars.new_code if code == "": code = form.request_vars.code code += ".py" # Obtaining the type of file to export to filetype = form.request_vars.filetype # Generate the file to download X = Strings() output = X.export_file(code, modlist, [], filetype, all_template_flag) return output # Create a form with checkboxes for list of modules A = TranslateAPI() # Retrieve list of active modules activemodlist = settings.modules.keys() modlist = activemodlist # Hiding core modules hidden_modules = A.core_modules for module in hidden_modules: if module in modlist: modlist.remove(module) modlist.sort() modcount = len(modlist) langlist = A.get_langcodes() langlist.sort() table = TABLE(_class="translation_module_table") table.append(BR()) # Set number of columns in the form NO_OF_COLUMNS = 3 # Display "NO_OF_COLUMNS" modules per row so as to utilize the page completely num = 0 max_rows = int(ceil(modcount / float(NO_OF_COLUMNS))) modules = settings.modules while num < max_rows: check = "yes" mod_name = modules[modlist[num]].name_nice mod_name = "%s (%s)" %(mod_name, modlist[num]) row = TR(TD(num + 1), TD(INPUT(_type="checkbox", _name="module_list", _value=modlist[num], _checked = check)), TD(mod_name), ) for c in range(1, NO_OF_COLUMNS): cmax_rows = num + (c * max_rows) if cmax_rows < modcount: mod_name = modules[modlist[cmax_rows]].name_nice mod_name = "%s (%s)" % (mod_name, modlist[cmax_rows]) row.append(TD(cmax_rows + 1)) row.append(TD(INPUT(_type="checkbox", _name="module_list", _value=modlist[cmax_rows], _checked = check))) row.append(TD(mod_name)) num += 1 table.append(row) div = DIV(table, BR(), ) row = TR(TD(INPUT(_type="checkbox", _name="module_list", _value="core", _checked="yes")), TD(T("Include core files")), ) div.append(row) div.append(BR()) row = TR(TD(INPUT(_type="checkbox", _name="module_list", _value="all")), TD(T("Select all templates (All modules included)")), ) div.append(row) div.append(BR()) # Provide option to choose export format row = TR(TD("%s:" % T("Export as")), TD(INPUT(_type="radio", _name="filetype", _value="xls", _checked="checked")), TD(".xls (Excel)"), TD(INPUT(_type="radio", _name="filetype", _value="po")), TD(".po (Pootle)"), BR(), BR(), ) div.append(row) # Drop-down for available language codes lang_dropdown = SELECT(_name = "code") for lang in langlist: lang_dropdown.append(lang) row = TR(TD("%s:" % T("Select language code")), TD(lang_dropdown), TD("%s:" % T("Or add a new language code")), TD(INPUT(_type="text", _name="new_code")), ) div.append(row) div.append(BR()) div.append(BR()) div.append(INPUT(_type="submit", _value=T("Submit"))) form.append(div) # Add the custom form to the output output["form"] = form output["title"] = T("Select the required modules") elif opt == "2": # Upload translated files form = output["form"] div = DIV(BR(), T("Note: Make sure that all the text cells are quoted in the csv file before uploading"), ) form.append(div) output["form"] = form elif opt == "3": # View Translation Percentage if form.accepts(request.vars, session): # Retrieve the translation percentage for each module from math import ceil from s3.s3translate import TranslateReportStatus code = form.request_vars.code S = TranslateReportStatus() if form.request_vars.update_master == "on": S.create_master_file() percent_dict = S.get_translation_percentages(code) modlist = [] for mod in sorted(percent_dict.keys()): if mod != "complete_file": modlist.append(mod) modcount = len(modlist) table = TABLE(_class="translation_module_table") table.append(BR()) # Set number of columns in the table NO_OF_COLUMNS = 3 # Display "NO_OF_COLUMNS" modules per row so as to utilize the page completely num = 0 max_rows = int(ceil(modcount / float(NO_OF_COLUMNS))) while num < max_rows: row = TR(TD(modlist[num]), TD(percent_dict[modlist[num]])) for c in range(1, NO_OF_COLUMNS): cmax_rows = num + (c * max_rows) if cmax_rows < modcount: row.append(TD(modlist[cmax_rows])) row.append(TD(percent_dict[modlist[cmax_rows]])) num += 1 table.append(row) # Add the table to output to display it div = DIV(table, BR(), TR(TD("Overall translation percentage of the file: "), TD(percent_dict["complete_file"])), ) form.append(div) output["form"] = form output["title"] = T("Module-wise Percentage of Translated Strings") s3.has_required = False else: # Display the form to view translated percentage from s3.s3translate import TranslateAPI A = TranslateAPI() langlist = A.get_langcodes() langlist.sort() # Drop-down for selecting language codes lang_col = TD() lang_dropdown = SELECT(_name="code") for lang in langlist: lang_dropdown.append(lang) lang_col.append(lang_dropdown) row = TR(TD("%s:" % T("Language Code")), TD(lang_col)) div = DIV(row, BR(), ) row = TR(TD(INPUT(_type="checkbox", _name="update_master")), TD(T("Update Master file"))) div.append(row) div.append(BR()) div.append(BR()) div.append(INPUT(_type="submit", _value=T("Submit"))) form.append(div) # Add the custom form to the output output["title"] = T("Select the language file") output["form"] = form elif opt == "4": # Add strings manually if form.accepts(request.vars, session): # Retrieve strings from the uploaded file from s3.s3translate import TranslateReadFiles f = request.vars.upload.file strings = [] R = TranslateReadFiles() for line in f: strings.append(line) # Update the file containing user strings R.merge_user_strings_file(strings) response.confirmation = T("File uploaded") div = DIV(T("Upload a text file containing new-line separated strings:"), INPUT(_type="file", _name="upload"), BR(), INPUT(_type="submit", _value=T("Upload")), ) form.append(div) output["form"] = form return output
def postp(r, output): # Create a custom form form = FORM() # Prevent redirection r.next = None # Remove the false error from the form # error : "Invalid form (re-opened in another window?)" if response.error and not output["form"]["error"]: response.error = None if opt == "1": # Select modules for Translation from math import ceil from s3.s3translate import TranslateAPI, Strings if form.accepts(request.vars, session): modlist = [] # If only one module is selected if type(form.request_vars.module_list) == str: modlist.append(form.request_vars.module_list) # If multiple modules are selected else: modlist = form.request_vars.module_list # If no module is selected if modlist is None: modlist = [] # If "Select All" option is chosen all_template_flag = 0 if "all" in modlist: all_template_flag = 1 A = TranslateAPI() modlist = A.get_modules() if "core" in form.request_vars.module_list: modlist.append("core") # Obtaining the language file from the language code code = form.request_vars.new_code if code == "": code = form.request_vars.code code += ".py" # Obtaining the type of file to export to filetype = form.request_vars.filetype # Generate the file to download X = Strings() output = X.export_file(code, modlist, [], filetype, all_template_flag) return output # Create a form with checkboxes for list of modules A = TranslateAPI() # Retrieve list of active modules activemodlist = settings.modules.keys() modlist = activemodlist # Hide core modules hidden_modules = ["auth", "default", "error", "appadmin"] for module in hidden_modules: if module in modlist: modlist.remove(module) modlist.sort() modcount = len(modlist) langlist = A.get_langcodes() langlist.sort() table = TABLE(_class="translation_module_table") table.append(BR()) # Set number of columns in the form NO_OF_COLUMNS = 3 # Display "NO_OF_COLUMNS" modules per row so as to utilize the page completely num = 0 max_rows = int(ceil(modcount / float(NO_OF_COLUMNS))) modules = settings.modules while num < max_rows: check = "yes" mod_name = modules[modlist[num]].name_nice mod_name = "%s (%s)" % (mod_name, modlist[num]) row = TR( TD(num + 1), TD( INPUT(_type="checkbox", _name="module_list", _value=modlist[num], _checked=check)), TD(mod_name), ) for c in range(1, NO_OF_COLUMNS): cmax_rows = num + (c * max_rows) if cmax_rows < modcount: mod_name = modules[modlist[cmax_rows]].name_nice mod_name = "%s (%s)" % (mod_name, modlist[cmax_rows]) row.append(TD(cmax_rows + 1)) row.append( TD( INPUT(_type="checkbox", _name="module_list", _value=modlist[cmax_rows], _checked=check))) row.append(TD(mod_name)) num += 1 table.append(row) div = DIV( table, BR(), ) row = TR( TD( INPUT(_type="checkbox", _name="module_list", _value="core", _checked="yes")), TD(T("Include core files")), ) div.append(row) div.append(BR()) row = TR( TD(INPUT(_type="checkbox", _name="module_list", _value="all")), TD(T("Select all templates (All modules included)")), ) div.append(row) div.append(BR()) # Provide option to choose export format row = TR( TD("%s:" % T("Export as")), TD( INPUT(_type="radio", _name="filetype", _value="xls", _checked="checked")), TD(".xls (Excel)"), TD(INPUT(_type="radio", _name="filetype", _value="po")), TD(".po (Pootle)"), BR(), BR(), ) div.append(row) # Drop-down for available language codes lang_dropdown = SELECT(_name="code") for lang in langlist: lang_dropdown.append(lang) row = TR( TD("%s:" % T("Select language code")), TD(lang_dropdown), TD("%s:" % T("Or add a new language code")), TD(INPUT(_type="text", _name="new_code")), ) div.append(row) div.append(BR()) div.append(BR()) div.append(INPUT(_type="submit", _value=T("Submit"))) form.append(div) # Add the custom form to the output output["form"] = form output["title"] = T("Select the required modules") elif opt == "2": # Upload translated files form = output["form"] div = DIV( BR(), T("Note: Make sure that all the text cells are quoted in the csv file before uploading" ), ) form.append(div) output["form"] = form elif opt == "3": # View Translation Percentage if form.accepts(request.vars, session): # Retrieve the translation percentage for each module from math import ceil from s3.s3translate import TranslateReportStatus code = form.request_vars.code S = TranslateReportStatus() if form.request_vars.update_master == "on": S.create_master_file() percent_dict = S.get_translation_percentages(code) modlist = [] for mod in sorted(percent_dict.keys()): if mod != "complete_file": modlist.append(mod) modcount = len(modlist) table = TABLE(_class="translation_module_table") table.append(BR()) # Set number of columns in the table NO_OF_COLUMNS = 3 # Display "NO_OF_COLUMNS" modules per row so as to utilize the page completely num = 0 max_rows = int(ceil(modcount / float(NO_OF_COLUMNS))) while num < max_rows: row = TR(TD(modlist[num]), TD(percent_dict[modlist[num]])) for c in range(1, NO_OF_COLUMNS): cmax_rows = num + (c * max_rows) if cmax_rows < modcount: row.append(TD(modlist[cmax_rows])) row.append(TD(percent_dict[modlist[cmax_rows]])) num += 1 table.append(row) # Add the table to output to display it div = DIV( table, BR(), TR(TD("Overall translation percentage of the file: "), TD(percent_dict["complete_file"])), ) form.append(div) output["form"] = form output["title"] = T( "Module-wise Percentage of Translated Strings") s3.has_required = False else: # Display the form to view translated percentage from s3.s3translate import TranslateAPI A = TranslateAPI() langlist = A.get_langcodes() langlist.sort() # Drop-down for selecting language codes lang_col = TD() lang_dropdown = SELECT(_name="code") for lang in langlist: lang_dropdown.append(lang) lang_col.append(lang_dropdown) row = TR(TD("%s:" % T("Language Code")), TD(lang_col)) div = DIV( row, BR(), ) row = TR(TD(INPUT(_type="checkbox", _name="update_master")), TD(T("Update Master file"))) div.append(row) div.append(BR()) div.append(BR()) div.append(INPUT(_type="submit", _value=T("Submit"))) form.append(div) # Add the custom form to the output output["title"] = T("Select the language file") output["form"] = form elif opt == "4": # Add strings manually if form.accepts(request.vars, session): # Retrieve strings from the uploaded file from s3.s3translate import TranslateReadFiles f = request.vars.upload.file strings = [] R = TranslateReadFiles() for line in f: strings.append(line) # Update the file containing user strings R.merge_user_strings_file(strings) response.confirmation = T("File uploaded") div = DIV( T("Upload a text file containing new-line separated strings:"), INPUT(_type="file", _name="upload"), BR(), INPUT(_type="submit", _value=T("Upload")), ) form.append(div) output["form"] = form return output
def postp(r, output): # Create a custom form form = FORM() # Prevent redirection r.next = None # Remove the false error from the form # error : "Invalid form (re-opened in another window?)" if response.error and not output["form"]["error"]: response.error = None opt = request.vars.opt if opt == "1": # 1st workflow is selected if form.accepts(request.vars, session): modlist = [] # If only one module is selected if type(form.request_vars.module_list)==str: modlist.append(form.request_vars.module_list) # If multiple modules are selected else: modlist = form.request_vars.module_list # If no module is selected if modlist is None: modlist = [] # If "Select All" option is chosen if "all" in modlist: A = TranslateAPI() modlist = A.get_modules() if "core" in form.request_vars.module_list: modlist.append("core") # Obtaining the language file from the language code code = form.request_vars.new_code if code == "": code = form.request_vars.code code += ".py" # Obtaining the type of file to export to filetype = form.request_vars.filetype if filetype is None: filetype = "xls" elif filetype == "on": filetype = "po" # Generating the xls file for download X = StringsToExcel() output = X.convert_to_xls(code, modlist, [], filetype) return output # Creating a form with checkboxes for list of modules A = TranslateAPI() modlist = A.get_modules() modlist.sort() modcount = len(modlist) langlist = A.get_langcodes() langlist.sort() table = TABLE(_class="translation_module_table") table.append(BR()) # Setting number of columns in the form NO_OF_COLUMNS = 3 # Displaying "NO_OF_COLUMNS" modules per row so as to utilize the page completely num = 0 max_rows = int(ceil(modcount / float(NO_OF_COLUMNS))) while num < max_rows: row = TR(TD(num + 1), TD(INPUT(_type="checkbox", _name="module_list", _value=modlist[num])), TD(modlist[num])) for c in range(1, NO_OF_COLUMNS): cmax_rows = num + c*max_rows if cmax_rows < modcount: row.append(TD(cmax_rows + 1)) row.append(TD(INPUT(_type="checkbox", _name="module_list", _value=modlist[cmax_rows]))) row.append(TD(modlist[cmax_rows])) num += 1 table.append(row) div = DIV() div.append(table) div.append(BR()) row = TR(TD(INPUT(_type="checkbox", _name="module_list", _value="core", _checked="yes")), TD(T("Include core files"))) div.append(row) div.append(BR()) row = TR(TD(INPUT(_type="checkbox", _name="module_list", _value="all")), TD(T("Select all modules"))) div.append(row) div.append(BR()) # Providing option to export strings in pootle format row = TR(TD(INPUT(_type="checkbox", _name="filetype")), TD(T("Export as Pootle (.po) file (Excel (.xls) is default)"))) row.append(BR()) row.append(BR()) div.append(row) # Drop-down for available language codes lang_col = TD() lang_dropdown = SELECT(_name = "code") for lang in langlist: lang_dropdown.append(lang) lang_col.append(lang_dropdown) row = TR(TD(T("Select language code: ")), TD(lang_col)) row.append(TD(T(" Or add a new language code:"))) row.append(TD(INPUT(_type="text", _name="new_code"))) div.append(row) div.append(BR()) div.append(BR()) div.append(INPUT(_type='submit',_value='Submit')) form.append(div) # Adding the custom form to the output output["title"] = T("Select the required modules") output["form"] = form elif opt == "2": # If 2nd workflow is selected div = DIV() div.append(BR()) div.append(T("Note: Make sure that all the text cells are quoted in the csv file before uploading")) form = output["form"] form.append(div) output["form"] = form elif opt == "3": # If 3rd workflow is selected if form.accepts(request.vars, session): # Retreiving the translation percentage for each module code = form.request_vars.code S = TranslateReportStatus() if form.request_vars.update_master == "on": S.create_master_file() percent_dict = S.get_translation_percentages(code) modlist = [] for mod in sorted(percent_dict.keys()): if mod != "complete_file": modlist.append(mod) modcount = len(modlist) table = TABLE(_class="translation_module_table") table.append(BR()) # Setting number of columns in the table NO_OF_COLUMNS = 3 # Displaying "NO_OF_COLUMNS" modules per row so as to utilize the page completely num = 0 max_rows = int(ceil(modcount/float(NO_OF_COLUMNS))) while num < max_rows: row = TR(TD(modlist[num]), TD(percent_dict[modlist[num]])) for c in range(1, NO_OF_COLUMNS): cmax_rows = num + c*max_rows if cmax_rows < modcount: row.append(TD(modlist[cmax_rows])) row.append(TD(percent_dict[modlist[cmax_rows]])) num += 1 table.append(row) # Adding the table to output to display it div = DIV() div.append(table) div.append(BR()) div.append(TR(TD("Overall translation percentage of the file: "), TD(percent_dict["complete_file"]))) form.append(div) output["title"] = T("Module-wise Percentage of Translated Strings") output["form"] = form s3.has_required = False else: # Display the form for 3rd workflow A = TranslateAPI() langlist = A.get_langcodes() langlist.sort() # Drop-down for selecting language codes lang_col = TD() lang_dropdown = SELECT(_name="code") for lang in langlist: lang_dropdown.append(lang) lang_col.append(lang_dropdown) div = DIV() row = TR(TD(T("Language code: ")), TD(lang_col)) div.append(row) div.append(BR()) row = TR(TD(INPUT(_type="checkbox", _name="update_master")), TD(T("Update Master file"))) div.append(row) div.append(BR()) div.append(BR()) div.append(INPUT(_type="submit", _value=T("Submit"))) form.append(div) # Adding the custom form to the output output["title"] = T("Select the language file") output["form"] = form elif opt == "4": # If 4th workflow is selected if form.accepts(request.vars, session): # Retreiving strings from the uploaded file f = request.vars.upload.file strings = [] R = TranslateReadFiles() for line in f: strings.append(line) # Update the file containing user strings R.merge_user_strings_file(strings) response.confirmation = T("File Uploaded") div = DIV() div.append(T("Upload a text file containing new-line separated strings:")) div.append(INPUT(_type="file", _name="upload")) div.append(BR()) div.append(INPUT(_type="submit", _value=T("Submit"))) form.append(div) output["form"] = form return output