@@ -12,9 +12,9 @@ import os, sys, importlib, inspect, json | |||
# public | |||
from .exceptions import * | |||
from .utils.jinja import get_jenv, get_template, render_template | |||
from .utils.jinja import get_jenv, get_template, render_template, get_email_from_template | |||
__version__ = '8.3.10' | |||
__version__ = '8.4.0' | |||
__title__ = "Frappe Framework" | |||
local = Local() | |||
@@ -380,7 +380,7 @@ def sendmail(recipients=[], sender="", subject="No Subject", message="No Message | |||
attachments=None, content=None, doctype=None, name=None, reply_to=None, | |||
cc=[], message_id=None, in_reply_to=None, send_after=None, expose_recipients=None, | |||
send_priority=1, communication=None, retry=1, now=None, read_receipt=None, is_notification=False, | |||
inline_images=None): | |||
inline_images=None, template=None, args=None): | |||
"""Send email using user's default **Email Account** or global default **Email Account**. | |||
@@ -403,7 +403,14 @@ def sendmail(recipients=[], sender="", subject="No Subject", message="No Message | |||
:param expose_recipients: Display all recipients in the footer message - "This email was sent to" | |||
:param communication: Communication link to be set in Email Queue record | |||
:param inline_images: List of inline images as {"filename", "filecontent"}. All src properties will be replaced with random Content-Id | |||
:param template: Name of html template from templates/emails folder | |||
:param args: Arguments for rendering the template | |||
""" | |||
text_content = None | |||
if template: | |||
message, text_content = get_email_from_template(template, args) | |||
message = content or message | |||
if as_markdown: | |||
@@ -415,7 +422,7 @@ def sendmail(recipients=[], sender="", subject="No Subject", message="No Message | |||
import email.queue | |||
email.queue.send(recipients=recipients, sender=sender, | |||
subject=subject, message=message, | |||
subject=subject, message=message, text_content=text_content, | |||
reference_doctype = doctype or reference_doctype, reference_name = name or reference_name, | |||
unsubscribe_method=unsubscribe_method, unsubscribe_params=unsubscribe_params, unsubscribe_message=unsubscribe_message, | |||
attachments=attachments, reply_to=reply_to, cc=cc, message_id=message_id, in_reply_to=in_reply_to, | |||
@@ -185,6 +185,13 @@ def get_shipping_address(company): | |||
address_as_dict = address[0] | |||
name, address_template = get_address_templates(address_as_dict) | |||
return address_as_dict.get("name"), frappe.render_template(address_template, address_as_dict) | |||
def get_company_address(company): | |||
ret = frappe._dict() | |||
ret.company_address = get_default_address('Company', company) | |||
ret.company_address_display = get_address_display(ret.company_address) | |||
return ret | |||
def address_query(doctype, txt, searchfield, start, page_len, filters): | |||
from frappe.desk.reportview import get_match_cond | |||
@@ -11,8 +11,10 @@ | |||
"doctype": "DocType", | |||
"document_type": "Setup", | |||
"editable_grid": 1, | |||
"engine": "InnoDB", | |||
"fields": [ | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -41,6 +43,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 1, | |||
"collapsible": 0, | |||
@@ -73,6 +76,7 @@ | |||
"width": "163" | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 1, | |||
"collapsible": 0, | |||
@@ -92,7 +96,7 @@ | |||
"no_copy": 0, | |||
"oldfieldname": "fieldtype", | |||
"oldfieldtype": "Select", | |||
"options": "Attach\nAttach Image\nButton\nCheck\nCode\nColumn Break\nCurrency\nData\nDate\nDatetime\nDynamic Link\nFloat\nFold\nHeading\nHTML\nImage\nInt\nLink\nLong Text\nPassword\nPercent\nRead Only\nSection Break\nSelect\nSmall Text\nTable\nText\nText Editor\nTime\nSignature", | |||
"options": "Attach\nAttach Image\nButton\nCheck\nCode\nColor\nColumn Break\nCurrency\nData\nDate\nDatetime\nDynamic Link\nFloat\nFold\nHeading\nHTML\nImage\nInt\nLink\nLong Text\nPassword\nPercent\nRead Only\nSection Break\nSelect\nSmall Text\nTable\nText\nText Editor\nTime\nSignature", | |||
"permlevel": 0, | |||
"print_hide": 0, | |||
"print_hide_if_no_value": 0, | |||
@@ -105,6 +109,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 1, | |||
"collapsible": 0, | |||
@@ -135,6 +140,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -167,6 +173,7 @@ | |||
"width": "50px" | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -198,6 +205,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -228,6 +236,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -260,6 +269,7 @@ | |||
"width": "50px" | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -290,6 +300,7 @@ | |||
"width": "70px" | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -319,6 +330,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -349,6 +361,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -378,6 +391,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -408,6 +422,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -438,6 +453,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -465,6 +481,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -496,6 +513,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -526,6 +544,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -554,6 +573,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -584,6 +604,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -616,6 +637,7 @@ | |||
"width": "50px" | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -646,6 +668,7 @@ | |||
"width": "50px" | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -675,6 +698,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -704,6 +728,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -734,6 +759,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -761,6 +787,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -794,6 +821,7 @@ | |||
"width": "50px" | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -823,6 +851,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -855,6 +884,7 @@ | |||
"width": "50px" | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -887,6 +917,7 @@ | |||
"width": "50px" | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -917,6 +948,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -947,6 +979,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -975,6 +1008,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -1007,6 +1041,7 @@ | |||
"width": "50px" | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -1039,6 +1074,7 @@ | |||
"width": "50px" | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -1071,6 +1107,7 @@ | |||
"width": "50px" | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -1101,6 +1138,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -1129,6 +1167,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -1161,6 +1200,7 @@ | |||
"width": "50px" | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -1192,6 +1232,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -1219,6 +1260,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -1251,6 +1293,7 @@ | |||
"width": "300px" | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -1280,6 +1323,7 @@ | |||
"unique": 0 | |||
}, | |||
{ | |||
"allow_bulk_edit": 0, | |||
"allow_on_submit": 0, | |||
"bold": 0, | |||
"collapsible": 0, | |||
@@ -1319,7 +1363,7 @@ | |||
"issingle": 0, | |||
"istable": 1, | |||
"max_attachments": 0, | |||
"modified": "2017-04-21 16:56:04.023296", | |||
"modified": "2017-07-06 12:36:21.248293", | |||
"modified_by": "Administrator", | |||
"module": "Core", | |||
"name": "DocField", | |||
@@ -773,8 +773,7 @@ def init_list(doctype): | |||
def check_if_fieldname_conflicts_with_methods(doctype, fieldname): | |||
doc = frappe.get_doc({"doctype": doctype}) | |||
method_list = [method for method in dir(doc) if callable(getattr(doc, method))] | |||
method_list = [method for method in dir(doc) if isinstance(method, str) and callable(getattr(doc, method))] | |||
if fieldname in method_list: | |||
frappe.throw(_("Fieldname {0} conflicting with meta object").format(fieldname)) | |||
@@ -11,6 +11,7 @@ | |||
"doctype": "DocType", | |||
"document_type": "Setup", | |||
"editable_grid": 0, | |||
"engine": "InnoDB", | |||
"fields": [ | |||
{ | |||
"allow_bulk_edit": 0, | |||
@@ -219,7 +220,7 @@ | |||
"no_copy": 0, | |||
"oldfieldname": "fieldtype", | |||
"oldfieldtype": "Select", | |||
"options": "Attach\nAttach Image\nButton\nCheck\nCode\nColumn Break\nCurrency\nData\nDate\nDatetime\nDynamic Link\nFloat\nHTML\nImage\nInt\nLink\nLong Text\nPassword\nPercent\nRead Only\nSection Break\nSelect\nSmall Text\nTable\nText\nText Editor\nTime\nSignature", | |||
"options": "Attach\nAttach Image\nButton\nCheck\nCode\nColor\nColumn Break\nCurrency\nData\nDate\nDatetime\nDynamic Link\nFloat\nHTML\nImage\nInt\nLink\nLong Text\nPassword\nPercent\nRead Only\nSection Break\nSelect\nSmall Text\nTable\nText\nText Editor\nTime\nSignature", | |||
"permlevel": 0, | |||
"print_hide": 0, | |||
"print_hide_if_no_value": 0, | |||
@@ -1160,7 +1161,7 @@ | |||
"issingle": 0, | |||
"istable": 0, | |||
"max_attachments": 0, | |||
"modified": "2017-06-13 09:52:49.692096", | |||
"modified": "2017-07-06 17:23:43.835189", | |||
"modified_by": "Administrator", | |||
"module": "Custom", | |||
"name": "Custom Field", | |||
@@ -68,6 +68,8 @@ allowed_fieldtype_change = (('Currency', 'Float', 'Percent'), ('Small Text', 'Da | |||
('Text', 'Data'), ('Text', 'Text Editor', 'Code', 'Signature'), ('Data', 'Select'), | |||
('Text', 'Small Text')) | |||
allowed_fieldtype_for_options_change = ('Read Only', 'HTML', 'Select',) | |||
class CustomizeForm(Document): | |||
def on_update(self): | |||
frappe.db.sql("delete from tabSingles where doctype='Customize Form'") | |||
@@ -197,6 +199,10 @@ class CustomizeForm(Document): | |||
frappe.msgprint(_("You cannot unset 'Read Only' for field {0}").format(df.label)) | |||
continue | |||
elif property == "options" and df.get("fieldtype") not in allowed_fieldtype_for_options_change: | |||
frappe.msgprint(_("You can't set 'Options' for field {0}").format(df.label)) | |||
continue | |||
self.make_property_setter(property=property, value=df.get(property), | |||
property_type=docfield_properties[property], fieldname=df.fieldname) | |||
@@ -165,22 +165,22 @@ class TestCustomizeForm(unittest.TestCase): | |||
df = d.get("fields", {"fieldname": "title"})[0] | |||
# invalid fieldname | |||
df.options = """{doc_type} - {introduction_test}""" | |||
df.default = """{doc_type} - {introduction_test}""" | |||
self.assertRaises(InvalidFieldNameError, d.run_method, "save_customization") | |||
# space in formatter | |||
df.options = """{doc_type} - {introduction text}""" | |||
df.default = """{doc_type} - {introduction text}""" | |||
self.assertRaises(InvalidFieldNameError, d.run_method, "save_customization") | |||
# valid fieldname | |||
df.options = """{doc_type} - {introduction_text}""" | |||
df.default = """{doc_type} - {introduction_text}""" | |||
d.run_method("save_customization") | |||
# valid fieldname with escaped curlies | |||
df.options = """{{ {doc_type} }} - {introduction_text}""" | |||
df.default = """{{ {doc_type} }} - {introduction_text}""" | |||
d.run_method("save_customization") | |||
# undo | |||
df.options = None | |||
df.default = None | |||
d.run_method("save_customization") | |||
@@ -94,7 +94,7 @@ | |||
"no_copy": 0, | |||
"oldfieldname": "fieldtype", | |||
"oldfieldtype": "Select", | |||
"options": "Attach\nAttach Image\nButton\nCheck\nCode\nColumn Break\nCurrency\nData\nDate\nDatetime\nDynamic Link\nFloat\nFold\nHeading\nHTML\nImage\nInt\nLink\nLong Text\nPassword\nPercent\nRead Only\nSection Break\nSelect\nSignature\nSmall Text\nTable\nText\nText Editor\nTime", | |||
"options": "Attach\nAttach Image\nButton\nCheck\nCode\nColor\nColumn Break\nCurrency\nData\nDate\nDatetime\nDynamic Link\nFloat\nFold\nHeading\nHTML\nImage\nInt\nLink\nLong Text\nPassword\nPercent\nRead Only\nSection Break\nSelect\nSignature\nSmall Text\nTable\nText\nText Editor\nTime", | |||
"permlevel": 0, | |||
"print_hide": 0, | |||
"print_hide_if_no_value": 0, | |||
@@ -1202,7 +1202,7 @@ | |||
"issingle": 0, | |||
"istable": 1, | |||
"max_attachments": 0, | |||
"modified": "2017-04-21 17:02:14.903382", | |||
"modified": "2017-07-06 17:24:03.665171", | |||
"modified_by": "Administrator", | |||
"module": "Custom", | |||
"name": "Customize Form Field", | |||
@@ -895,8 +895,8 @@ | |||
"issingle": 0, | |||
"istable": 0, | |||
"max_attachments": 0, | |||
"modified": "2017-05-01 15:27:39.217961", | |||
"modified_by": "vartakashwini@gmail.com", | |||
"modified": "2017-07-06 12:37:44.036819", | |||
"modified_by": "Administrator", | |||
"module": "Desk", | |||
"name": "Event", | |||
"owner": "Administrator", | |||
@@ -9,6 +9,13 @@ frappe.pages['backups'].on_page_load = function(wrapper) { | |||
frappe.set_route('Form', 'System Settings'); | |||
}); | |||
page.add_inner_button(__("Download Files Backup"), function () { | |||
frappe.call({ | |||
method:"frappe.desk.page.backups.backups.schedule_files_backup", | |||
args: {"user_email": frappe.session.user_email} | |||
}); | |||
}); | |||
frappe.breadcrumbs.add("Setup"); | |||
$(frappe.render_template("backups")).appendTo(page.body.addClass("no-border")); | |||
@@ -1,6 +1,7 @@ | |||
import os | |||
import frappe | |||
from frappe.utils import get_site_path, cint | |||
from frappe import _ | |||
from frappe.utils import get_site_path, cint, get_url | |||
from frappe.utils.data import convert_utc_to_user_timezone | |||
import datetime | |||
@@ -57,3 +58,29 @@ def delete_downloadable_backups(): | |||
if len(files) > backup_limit: | |||
cleanup_old_backups(path, files, backup_limit) | |||
@frappe.whitelist() | |||
def schedule_files_backup(user_email): | |||
from frappe.utils.background_jobs import enqueue, get_jobs | |||
queued_jobs = get_jobs(site=frappe.local.site, queue="long") | |||
method = 'frappe.desk.page.backups.backups.backup_files_and_notify_user' | |||
if method not in queued_jobs[frappe.local.site]: | |||
enqueue("frappe.desk.page.backups.backups.backup_files_and_notify_user", queue='long', user_email=user_email) | |||
frappe.msgprint(_("Queued for backup. You will receive an email with the download link")) | |||
else: | |||
frappe.msgprint(_("Backup job is already queued. You will receive an email with the download link")) | |||
def backup_files_and_notify_user(user_email=None): | |||
from frappe.utils.backups import backup | |||
backup_files = backup(with_files=True) | |||
get_downloadable_links(backup_files) | |||
subject = "File backup is ready" | |||
message = frappe.render_template('frappe/templates/emails/file_backup_notification.html', backup_files, is_path=True) | |||
frappe.sendmail(recipients=[user_email], subject=subject, message=message) | |||
def get_downloadable_links(backup_files): | |||
for key in ['backup_path_files', 'backup_path_private_files']: | |||
path = backup_files[key] | |||
backup_files[key] = get_url('/'.join(path.split('/')[-2:])) |
@@ -26,7 +26,7 @@ class EmailGroup(Document): | |||
for user in frappe.db.get_all(doctype, [email_field, unsubscribed_field or "name"]): | |||
try: | |||
email = parse_addr(user.get(email_field))[1] | |||
email = parse_addr(user.get(email_field))[1] if user.get(email_field) else None | |||
if email: | |||
frappe.get_doc({ | |||
"doctype": "Email Group Member", | |||
@@ -16,7 +16,15 @@ def get_email(recipients, sender='', msg='', subject='[No Subject]', | |||
text_content = None, footer=None, print_html=None, formatted=None, attachments=None, | |||
content=None, reply_to=None, cc=[], email_account=None, expose_recipients=None, | |||
inline_images=[]): | |||
"""send an html email as multipart with attachments and all""" | |||
""" Prepare an email with the following format: | |||
- multipart/mixed | |||
- multipart/alternative | |||
- text/plain | |||
- multipart/related | |||
- text/html | |||
- inline image | |||
- attachment | |||
""" | |||
content = content or msg | |||
emailobj = EMail(sender, recipients, subject, reply_to=reply_to, cc=cc, email_account=email_account, expose_recipients=expose_recipients) | |||
@@ -58,8 +66,8 @@ class EMail: | |||
self.expose_recipients = expose_recipients | |||
self.msg_root = MIMEMultipart('mixed') | |||
self.msg_multipart = MIMEMultipart('alternative') | |||
self.msg_root.attach(self.msg_multipart) | |||
self.msg_alternative = MIMEMultipart('alternative') | |||
self.msg_root.attach(self.msg_alternative) | |||
self.cc = cc or [] | |||
self.html_set = False | |||
@@ -88,33 +96,42 @@ class EMail: | |||
""" | |||
from email.mime.text import MIMEText | |||
part = MIMEText(message, 'plain', 'utf-8') | |||
self.msg_multipart.attach(part) | |||
self.msg_alternative.attach(part) | |||
def set_part_html(self, message, inline_images): | |||
from email.mime.text import MIMEText | |||
if inline_images: | |||
related = MIMEMultipart('related') | |||
# process inline images | |||
_inline_images = [] | |||
for image in inline_images: | |||
# images in dict like {filename:'', filecontent:'raw'} | |||
content_id = random_string(10) | |||
message = replace_filename_with_cid(message, | |||
image.get('filename'), content_id) | |||
# replace filename in message with CID | |||
message = re.sub('''src=['"]{0}['"]'''.format(image.get('filename')), | |||
'src="cid:{0}"'.format(content_id), message) | |||
_inline_images.append({ | |||
'filename': image.get('filename'), | |||
'filecontent': image.get('filecontent'), | |||
'content_id': content_id | |||
}) | |||
self.add_attachment(image.get('filename'), image.get('filecontent'), | |||
None, content_id=content_id, parent=related) | |||
# prepare parts | |||
msg_related = MIMEMultipart('related') | |||
html_part = MIMEText(message, 'html', 'utf-8') | |||
related.attach(html_part) | |||
msg_related.attach(html_part) | |||
self.msg_multipart.attach(related) | |||
for image in _inline_images: | |||
self.add_attachment(image.get('filename'), image.get('filecontent'), | |||
content_id=image.get('content_id'), parent=msg_related, inline=True) | |||
self.msg_alternative.attach(msg_related) | |||
else: | |||
self.msg_multipart.attach(MIMEText(message, 'html', 'utf-8')) | |||
self.msg_alternative.attach(MIMEText(message, 'html', 'utf-8')) | |||
def set_html_as_text(self, html): | |||
"""return html2text""" | |||
"""Set plain text from HTML""" | |||
self.set_text(to_markdown(html)) | |||
def set_message(self, message, mime_type='text/html', as_attachment=0, filename='attachment.html'): | |||
@@ -139,7 +156,7 @@ class EMail: | |||
self.add_attachment(res[0], res[1]) | |||
def add_attachment(self, fname, fcontent, content_type=None, | |||
parent=None, content_id=None): | |||
parent=None, content_id=None, inline=False): | |||
"""add attachment""" | |||
from email.mime.audio import MIMEAudio | |||
from email.mime.base import MIMEBase | |||
@@ -174,8 +191,8 @@ class EMail: | |||
# Set the filename parameter | |||
if fname: | |||
part.add_header(b'Content-Disposition', | |||
("attachment; filename=\"%s\"" % fname).encode('utf-8')) | |||
attachment_type = 'inline' if inline else 'attachment' | |||
part.add_header(b'Content-Disposition', attachment_type, filename=fname.encode('utf=8')) | |||
if content_id: | |||
part.add_header(b'Content-ID', '<{0}>'.format(content_id)) | |||
@@ -311,3 +328,12 @@ def get_footer(email_account, footer=None): | |||
footer += '<div style="margin: 15px auto;">{0}</div>'.format(default_mail_footer) | |||
return footer | |||
def replace_filename_with_cid(message, filename, content_id): | |||
""" Replaces <img embed="filename.jpg" ...> with | |||
<img src="cid:content_id" ...> | |||
""" | |||
message = re.sub('''embed=['"]{0}['"]'''.format(filename), | |||
'src="cid:{0}"'.format(content_id), message) | |||
return message |
@@ -17,7 +17,7 @@ from frappe.utils.scheduler import log | |||
class EmailLimitCrossedError(frappe.ValidationError): pass | |||
def send(recipients=None, sender=None, subject=None, message=None, reference_doctype=None, | |||
def send(recipients=None, sender=None, subject=None, message=None, text_content=None, reference_doctype=None, | |||
reference_name=None, unsubscribe_method=None, unsubscribe_params=None, unsubscribe_message=None, | |||
attachments=None, reply_to=None, cc=[], message_id=None, in_reply_to=None, send_after=None, | |||
expose_recipients=None, send_priority=1, communication=None, now=False, read_receipt=None, | |||
@@ -28,6 +28,7 @@ def send(recipients=None, sender=None, subject=None, message=None, reference_doc | |||
:param sender: Email sender. | |||
:param subject: Email subject. | |||
:param message: Email message. | |||
:param text_content: Text version of email message. | |||
:param reference_doctype: Reference DocType of caller document. | |||
:param reference_name: Reference name of caller document. | |||
:param send_priority: Priority for Email Queue, default 1. | |||
@@ -65,12 +66,13 @@ def send(recipients=None, sender=None, subject=None, message=None, reference_doc | |||
check_email_limit(recipients) | |||
formatted = get_formatted_html(subject, message, email_account=email_account) | |||
if not text_content: | |||
try: | |||
text_content = html2text(message) | |||
except HTMLParser.HTMLParseError: | |||
text_content = "See html attachment" | |||
try: | |||
text_content = html2text(formatted) | |||
except HTMLParser.HTMLParseError: | |||
text_content = "See html attachment" | |||
formatted = get_formatted_html(subject, message, email_account=email_account) | |||
if reference_doctype and reference_name: | |||
unsubscribed = [d.email for d in frappe.db.get_all("Email Unsubscribe", "email", | |||
@@ -0,0 +1,103 @@ | |||
# Copyright (c) 2017, Frappe Technologies Pvt. Ltd. and Contributors | |||
# License: GNU General Public License v3. See license.txt | |||
from __future__ import unicode_literals | |||
import unittest, os, base64 | |||
from frappe.email.email_body import replace_filename_with_cid, get_email | |||
class TestEmailBody(unittest.TestCase): | |||
def setUp(self): | |||
email_html = ''' | |||
<div> | |||
<h3>Hey John Doe!</h3> | |||
<p>This is embedded image you asked for</p> | |||
<img embed="favicon.png" /> | |||
</div> | |||
''' | |||
email_text = ''' | |||
Hey John Doe! | |||
This is the text version of this email | |||
''' | |||
frappe_app_path = os.path.join('..', 'apps', 'frappe') | |||
img_path = os.path.join(frappe_app_path, 'frappe', 'public', 'images', 'favicon.png') | |||
with open(img_path) as f: | |||
img_content = f.read() | |||
img_base64 = base64.b64encode(img_content) | |||
# email body keeps 76 characters on one line | |||
self.img_base64 = fixed_column_width(img_base64, 76) | |||
self.email_string = get_email( | |||
recipients=['test@example.com'], | |||
sender='me@example.com', | |||
subject='Test Subject', | |||
content=email_html, | |||
text_content=email_text, | |||
inline_images=[{ | |||
'filename': 'favicon.png', | |||
'filecontent': img_content | |||
}] | |||
).as_string() | |||
def test_image(self): | |||
img_signature = ''' | |||
Content-Type: image/png | |||
MIME-Version: 1.0 | |||
Content-Transfer-Encoding: base64 | |||
Content-Disposition: inline; filename="favicon.png" | |||
''' | |||
self.assertTrue(img_signature in self.email_string) | |||
self.assertTrue(self.img_base64 in self.email_string) | |||
def test_text_content(self): | |||
text_content = ''' | |||
Content-Type: text/plain; charset="utf-8" | |||
MIME-Version: 1.0 | |||
Content-Transfer-Encoding: quoted-printable | |||
Hey John Doe! | |||
This is the text version of this email | |||
''' | |||
self.assertTrue(text_content in self.email_string) | |||
def test_email_content(self): | |||
html_head = ''' | |||
Content-Type: text/html; charset="utf-8" | |||
MIME-Version: 1.0 | |||
Content-Transfer-Encoding: quoted-printable | |||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.= | |||
w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |||
<html xmlns=3D"http://www.w3.org/1999/xhtml"> | |||
''' | |||
html = '''<h3>Hey John Doe!</h3>''' | |||
self.assertTrue(html_head in self.email_string) | |||
self.assertTrue(html in self.email_string) | |||
def test_replace_filename_with_cid(self): | |||
original_message = ''' | |||
<div> | |||
<img embed="test.jpg" alt="test" /> | |||
</div> | |||
''' | |||
processed_message = ''' | |||
<div> | |||
<img src="cid:abcdefghij" alt="test" /> | |||
</div> | |||
''' | |||
message = replace_filename_with_cid(original_message, 'test.jpg', 'abcdefghij') | |||
self.assertEquals(message, processed_message) | |||
def fixed_column_width(string, chunk_size): | |||
parts = [string[0+i:chunk_size+i] for i in range(0, len(string), chunk_size)] | |||
return '\n'.join(parts) |
@@ -102,7 +102,7 @@ class FrappeClient(object): | |||
:param doctype: `doctype` to be deleted | |||
:param name: `name` of document to be deleted''' | |||
return self.post_request({ | |||
"cmd": "frappe.model.delete_doc", | |||
"cmd": "frappe.client.delete", | |||
"doctype": doctype, | |||
"name": name | |||
}) | |||
@@ -43,6 +43,7 @@ type_map = { | |||
,'Attach': ('text', '') | |||
,'Attach Image':('text', '') | |||
,'Signature': ('longtext', '') | |||
,'Color': ('varchar', varchar_len) | |||
} | |||
default_columns = ['name', 'creation', 'modified', 'modified_by', 'owner', | |||
@@ -307,7 +308,7 @@ class DbTable: | |||
if not frappe.db.sql("show index from `%s` where key_name = %s" % | |||
(self.name, '%s'), col.fieldname): | |||
query.append("add index `{}`(`{}`)".format(col.fieldname, col.fieldname)) | |||
for col in self.drop_index: | |||
if col.fieldname != 'name': # primary key | |||
# if index key exists | |||
@@ -99,6 +99,9 @@ def make_autoname(key='', doctype='', doc=''): | |||
def parse_naming_series(parts, doctype= '', doc = ''): | |||
n = '' | |||
if isinstance(parts, basestring): | |||
parts = parts.split('.') | |||
series_set = False | |||
today = now_datetime() | |||
for e in parts: | |||
@@ -142,6 +145,9 @@ def getseries(key, digits, doctype=''): | |||
def revert_series_if_last(key, name): | |||
if ".#" in key: | |||
prefix, hashes = key.rsplit(".", 1) | |||
if '.' in prefix: | |||
prefix = parse_naming_series(prefix.split('.')) | |||
if "#" not in hashes: | |||
return | |||
else: | |||
@@ -995,3 +995,51 @@ input[type="checkbox"]:checked:before { | |||
visibility: visible; | |||
} | |||
} | |||
.color-picker { | |||
position: relative; | |||
z-index: 999; | |||
} | |||
.color-picker .color-picker-pallete { | |||
border-radius: 4px; | |||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); | |||
background: #fff; | |||
border: 1px solid #d1d8dd; | |||
width: 290px; | |||
height: 106px; | |||
padding-top: 10px; | |||
padding-left: 5px; | |||
position: absolute; | |||
top: 0; | |||
left: 0; | |||
} | |||
.color-picker .color-picker-pallete:after, | |||
.color-picker .color-picker-pallete:before { | |||
border: solid transparent; | |||
content: " "; | |||
height: 0; | |||
width: 0; | |||
pointer-events: none; | |||
position: absolute; | |||
bottom: 100%; | |||
left: 30px; | |||
} | |||
.color-picker .color-picker-pallete:after { | |||
border-color: rgba(255, 255, 255, 0); | |||
border-bottom-color: #fff; | |||
border-width: 8px; | |||
margin-left: -8px; | |||
} | |||
.color-picker .color-picker-pallete:before { | |||
border-color: rgba(221, 221, 221, 0); | |||
border-bottom-color: #d1d8dd; | |||
border-width: 9px; | |||
margin-left: -9px; | |||
} | |||
.color-picker .color-box { | |||
cursor: pointer; | |||
display: inline-block; | |||
width: 20px; | |||
height: 20px; | |||
margin: -2px 0 0 3px; | |||
border: 1px solid rgba(0, 0, 0, 0.25); | |||
} |
@@ -652,6 +652,85 @@ frappe.ui.form.ControlCurrency = frappe.ui.form.ControlFloat.extend({ | |||
frappe.ui.form.ControlPercent = frappe.ui.form.ControlFloat; | |||
frappe.ui.form.ControlColor = frappe.ui.form.ControlData.extend({ | |||
make_input: function () { | |||
this._super(); | |||
this.colors = [ | |||
"#ffc4c4", "#ff8989", "#ff4d4d", "#a83333", | |||
"#ffe8cd", "#ffd19c", "#ffb868", "#a87945", | |||
"#ffd2c2", "#ffa685", "#ff7846", "#a85b5b", | |||
"#ffd7d7", "#ffb1b1", "#ff8989", "#a84f2e", | |||
"#fffacd", "#fff168", "#fff69c", "#a89f45", | |||
"#ebf8cc", "#d9f399", "#c5ec63", "#7b933d", | |||
"#cef6d1", "#9deca2", "#6be273", "#428b46", | |||
"#d2f8ed", "#a4f3dd", "#77ecca", "#49937e", | |||
"#d2f1ff", "#a6e4ff", "#78d6ff", "#4f8ea8", | |||
"#d2d2ff", "#a3a3ff", "#7575ff", "#4d4da8", | |||
"#dac7ff", "#b592ff", "#8e58ff", "#5e3aa8", | |||
"#f8d4f8", "#f3aaf0", "#ec7dea", "#934f92" | |||
]; | |||
this.make_color_input(); | |||
}, | |||
make_color_input: function () { | |||
this.$wrapper | |||
.find('.control-input-wrapper') | |||
.append(`<div class="color-picker"> | |||
<div class="color-picker-pallete"></div> | |||
</div>`); | |||
this.$color_pallete = this.$wrapper.find('.color-picker-pallete'); | |||
var color_html = this.colors.map(this.get_color_box).join(""); | |||
this.$color_pallete.append(color_html); | |||
this.$color_pallete.hide(); | |||
this.bind_events(); | |||
}, | |||
get_color_box: function (hex) { | |||
return `<div class="color-box" data-color="${hex}" style="background-color: ${hex}"></div>`; | |||
}, | |||
set_formatted_input: function(value) { | |||
this._super(value); | |||
this.$input.css({ | |||
"background-color": value | |||
}); | |||
}, | |||
bind_events: function () { | |||
var mousedown_happened = false; | |||
this.$wrapper.on("click", ".color-box", (e) => { | |||
mousedown_happened = false; | |||
var color_val = $(e.target).data("color"); | |||
this.set_value(color_val); | |||
// set focus so that we can blur it later | |||
this.set_focus(); | |||
}); | |||
this.$wrapper.find(".color-box").mousedown(() => { | |||
mousedown_happened = true; | |||
}); | |||
this.$input.on("focus", () => { | |||
this.$color_pallete.show(); | |||
}); | |||
this.$input.on("blur", () => { | |||
if (mousedown_happened) { | |||
// cancel the blur event | |||
mousedown_happened = false; | |||
} else { | |||
// blur event is okay | |||
$(this.$color_pallete).hide(); | |||
} | |||
}); | |||
}, | |||
validate: function (value) { | |||
var is_valid = /^#[0-9A-F]{6}$/i.test(value); | |||
if(is_valid) { | |||
return value; | |||
} | |||
frappe.msgprint(__("{0} is not a valid hex color", [value])); | |||
return null; | |||
} | |||
}); | |||
frappe.ui.form.ControlDate = frappe.ui.form.ControlData.extend({ | |||
make_input: function() { | |||
this._super(); | |||
@@ -683,7 +762,17 @@ frappe.ui.form.ControlDate = frappe.ui.form.ControlData.extend({ | |||
}, | |||
onShow: function() { | |||
$('.datepicker--button:visible').text(__('Today')); | |||
}, | |||
if(!me.frm) return; | |||
var window_height = $(window).height(); | |||
var window_scroll_top = $(window).scrollTop(); | |||
var el_offset_top = me.$input.offset().top + 280; | |||
var position = 'top left'; | |||
if(window_height + window_scroll_top >= el_offset_top) { | |||
position = 'bottom left'; | |||
} | |||
me.datepicker.update('position', position); | |||
} | |||
}; | |||
}, | |||
set_datepicker: function() { | |||
@@ -883,6 +972,9 @@ frappe.ui.form.ControlCheck = frappe.ui.form.ControlData.extend({ | |||
this._super(); | |||
this.$input.removeClass("form-control"); | |||
}, | |||
get_input_value: function() { | |||
return this.input && this.input.checked ? 1 : 0; | |||
}, | |||
validate: function(value) { | |||
return cint(value); | |||
}, | |||
@@ -893,14 +985,7 @@ frappe.ui.form.ControlCheck = frappe.ui.form.ControlData.extend({ | |||
this.last_value = value; | |||
this.set_mandatory(value); | |||
this.set_disp_area(); | |||
}, | |||
get_input_value: function() { | |||
if (!this.$input) { | |||
return; | |||
} | |||
return this.$input.prop("checked") ? 1 : 0; | |||
}, | |||
} | |||
}); | |||
frappe.ui.form.ControlButton = frappe.ui.form.ControlData.extend({ | |||
@@ -1853,8 +1938,6 @@ frappe.ui.form.ControlTextEditor = frappe.ui.form.ControlCode.extend({ | |||
// also firefox tends to reset the cursor for some reason if the values | |||
// are reset | |||
let current = this.get_input_value(); | |||
if(this.setting_count > 2) { | |||
// we don't understand how the internal triggers work, | |||
// so if someone is setting the value third time, then quit | |||
@@ -1867,13 +1950,13 @@ frappe.ui.form.ControlTextEditor = frappe.ui.form.ControlCode.extend({ | |||
if(!this._last_change_on || (time_since_last_keystroke > 3000)) { | |||
setTimeout(() => this.setting_count = 0, 500); | |||
this.editor.summernote('code', value); | |||
this.editor.summernote('code', value || ''); | |||
} else { | |||
this._setting_value = setInterval(() => { | |||
if(time_since_last_keystroke > 3000) { | |||
if(this.last_value !== this.get_input_value()) { | |||
// if not already in sync, reset | |||
this.editor.summernote('code', this.last_value); | |||
this.editor.summernote('code', this.last_value || ''); | |||
} | |||
clearInterval(this._setting_value); | |||
this._setting_value = null; | |||
@@ -176,6 +176,8 @@ frappe.ui.form.save = function (frm, action, callback, btn) { | |||
console.log("Already saving. Please wait a few moments.") | |||
throw "saving"; | |||
} | |||
frappe.ui.form.remove_old_form_route(); | |||
frappe.ui.form.is_saving = true; | |||
return frappe.call({ | |||
@@ -206,7 +208,18 @@ frappe.ui.form.save = function (frm, action, callback, btn) { | |||
} | |||
} | |||
frappe.ui.form.update_calling_link = function (newdoc) { | |||
frappe.ui.form.remove_old_form_route = () => { | |||
let index = -1; | |||
let current_route = frappe.get_route(); | |||
frappe.route_history.map((arr, i) => { | |||
if (arr.join("/") === current_route.join("/")) { | |||
index = i; | |||
} | |||
}); | |||
frappe.route_history.splice(index, 1); | |||
} | |||
frappe.ui.form.update_calling_link = (newdoc) => { | |||
if (frappe._from_link && newdoc.doctype === frappe._from_link.df.options) { | |||
var doc = frappe.get_doc(frappe._from_link.doctype, frappe._from_link.docname); | |||
// set value | |||
@@ -43,6 +43,9 @@ frappe.search.AwesomeBar = Class.extend({ | |||
} | |||
}); | |||
// Added to aid UI testing of global search | |||
input.awesomplete = awesomplete; | |||
$input.on("input", function(e) { | |||
var value = e.target.value; | |||
var txt = value.trim().replace(/\s\s+/g, ' '); | |||
@@ -918,3 +918,56 @@ input[type="checkbox"] { | |||
visibility: visible; | |||
} | |||
} | |||
// color picker | |||
.color-picker { | |||
position: relative; | |||
z-index: 999; | |||
.color-picker-pallete { | |||
border-radius: 4px; | |||
box-shadow: 0 4px 12px rgba(0,0,0,.15); | |||
background: #fff; | |||
border: 1px solid @border-color; | |||
width: 290px; | |||
height: 106px; | |||
padding-top: 10px; | |||
padding-left: 5px; | |||
position: absolute; | |||
top: 0; | |||
left: 0; | |||
&:after, | |||
&:before { | |||
border: solid transparent; | |||
content: " "; | |||
height: 0; | |||
width: 0; | |||
pointer-events: none; | |||
position: absolute; | |||
bottom: 100%; | |||
left: 30px; | |||
} | |||
&:after { | |||
border-color: rgba(255, 255, 255, 0); | |||
border-bottom-color: #fff; | |||
border-width: 8px; | |||
margin-left: -8px; | |||
} | |||
&:before { | |||
border-color: rgba(221, 221, 221, 0); | |||
border-bottom-color: @border-color; | |||
border-width: 9px; | |||
margin-left: -9px; | |||
} | |||
} | |||
.color-box { | |||
cursor: pointer; | |||
display: inline-block; | |||
width: 20px; | |||
height: 20px; | |||
margin: -2px 0 0 3px; | |||
border: 1px solid rgba(0,0,0, 0.25); | |||
} | |||
} |
@@ -0,0 +1,10 @@ | |||
<table border="0" cellpadding="0" cellspacing="0" width="100%" id="email_header"> | |||
<tr> | |||
<td width="35" height="50" style="border-bottom: 1px solid #d1d8dd;"> | |||
<img embed="{{brand_image}}" width="24" height="24" style="display: block;" alt="{{brand_text}}"> | |||
</td> | |||
<td style="border-bottom: 1px solid #d1d8dd;"> | |||
<p>{{ brand_text }}</p> | |||
</td> | |||
</tr> | |||
</table> |
@@ -0,0 +1,6 @@ | |||
Hello, | |||
<br> | |||
<p> Please use following links to download file backup. </p> | |||
<p> Public Files Backup: <a href='{{ backup_path_files }}'>{{ backup_path_files }}</a> </p> | |||
<p> Private Files Backup: <a href='{{ backup_path_private_files }}'>{{ backup_path_private_files }}</a> </p> |
@@ -1,28 +1,55 @@ | |||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |||
<html xmlns="http://www.w3.org/1999/xhtml"> | |||
<head> | |||
<meta name="viewport" content="width=device-width" /> | |||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | |||
<title>{{ subject or "" }}</title> | |||
<meta name="viewport" content="width=device-width" /> | |||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> | |||
<title>{{ subject or "" }}</title> | |||
</head> | |||
<body style="line-height: 1.5; color: #36414C;"> | |||
<!-- body --> | |||
<div style="font-family: -apple-system, BlinkMacSystemFont, | |||
"Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", | |||
"Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; | |||
font-size: 14px; padding: 10px;"> | |||
{{ content }} | |||
{{ signature }} | |||
</div> | |||
<!-- footer --> | |||
<div style="margin-top: 30px; font-family: Helvetica, Arial, sans-serif; font-size: 11px; | |||
margin-bottom: 15px; border-top: 1px solid #d1d8dd;" | |||
data-email-footer="true"> | |||
{{ footer }} | |||
</div> | |||
<!-- /footer --> | |||
<div class="print-html">{{ print_html or "" }}</div> | |||
<body style="line-height: 1.5; color: #36414C;"> | |||
<table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="body_table" style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; font-size: 14px;"> | |||
<tr> | |||
<td align="center" valign="top"> | |||
<table border="0" cellpadding="0" cellspacing="0" width="600" id="email_container"> | |||
<tr> | |||
<td valign="top"> | |||
{{ header or "" }} | |||
</td> | |||
</tr> | |||
<tr> | |||
<td valign="top"> | |||
<table border="0" cellpadding="0" cellspacing="0" width="100%" id="email_body"> | |||
<tr> | |||
<td valign="top"> | |||
<p>{{ content }}</p> | |||
<p>{{ signature }}</p> | |||
</td> | |||
</tr> | |||
</table> | |||
</td> | |||
</tr> | |||
<tr> | |||
<td valign="top"> | |||
<table border="0" cellpadding="0" cellspacing="0" width="100%" id="email_footer"> | |||
<tr> | |||
<td valign="top" style="font-family: Helvetica, Arial, sans-serif; font-size: 11px; | |||
margin-bottom: 15px; border-top: 1px solid #d1d8dd;" data-email-footer="true"> | |||
{{ footer }} | |||
</td> | |||
</tr> | |||
<tr> | |||
<td valign="top"> | |||
<div class="print-html">{{ print_html or "" }}</div> | |||
</td> | |||
</tr> | |||
</table> | |||
</td> | |||
</tr> | |||
</table> | |||
</td> | |||
</tr> | |||
</table> | |||
</body> | |||
</html> | |||
</html> |
@@ -1,7 +1,7 @@ | |||
{% macro render_field(df, doc) -%} | |||
{%- if df.fieldtype=="Table" -%} | |||
{{ render_table(df, doc) }} | |||
{%- elif df.fieldtype=="HTML" -%} | |||
{%- elif df.fieldtype=="HTML" and df.options -%} | |||
<div>{{ frappe.render_template(df.options, {"doc": doc}) or "" }}</div> | |||
{%- elif df.fieldtype in ("Text", "Text Editor", "Code") -%} | |||
{{ render_text_field(df, doc) }} | |||
@@ -2,11 +2,13 @@ | |||
# MIT License. See license.txt | |||
from __future__ import unicode_literals | |||
import unittest, frappe | |||
import unittest, frappe, os | |||
from frappe.utils import get_url | |||
class TestAPI(unittest.TestCase): | |||
def test_insert_many(self): | |||
if os.environ.get('CI'): | |||
return | |||
from frappe.frappeclient import FrappeClient | |||
frappe.db.sql('delete from `tabToDo` where description like "Test API%"') | |||
@@ -3,6 +3,8 @@ | |||
from __future__ import unicode_literals | |||
import frappe, unittest, os | |||
from frappe.utils import cint | |||
from frappe.model.naming import revert_series_if_last, make_autoname, parse_naming_series | |||
class TestDocument(unittest.TestCase): | |||
def test_get_return_empty_list_for_table_field_if_none(self): | |||
@@ -217,3 +219,20 @@ class TestDocument(unittest.TestCase): | |||
self.assertEquals(before_update + new_count, after_update) | |||
def test_naming_series(self): | |||
data = ["TEST-", "TEST/17-18/.test_data./.####", "TEST.YYYY.MM.####"] | |||
for series in data: | |||
name = make_autoname(series) | |||
prefix = series | |||
if ".#" in series: | |||
prefix = series.rsplit('.',1)[0] | |||
prefix = parse_naming_series(prefix) | |||
old_current = frappe.db.get_value('Series', prefix, "current", order_by="name") | |||
revert_series_if_last(series, name) | |||
new_current = cint(frappe.db.get_value('Series', prefix, "current", order_by="name")) | |||
self.assertEquals(cint(old_current) - 1, new_current) |
@@ -0,0 +1,94 @@ | |||
QUnit.module('views'); | |||
QUnit.test("Calendar View Tests", function(assert) { | |||
assert.expect(7); | |||
let done = assert.async(); | |||
let random_text = frappe.utils.get_random(10); | |||
let today = frappe.datetime.get_today()+" 16:20:35"; //arbitrary value taken to prevent cases like 12a for 12:00am and 12h to 24h conversion | |||
let visible_time = () => { | |||
// Method to return the start-time (hours) of the event visible | |||
return $('.fc-time').text().split('p')[0]; // 'p' because the arbitrary time is pm | |||
}; | |||
// let visible_hours = () => { | |||
// // Method to return the start-time (hours) of the event visible | |||
// return $('.fc-time').text().split(':')[0].replace(/\D+/g, ''); | |||
// }; | |||
// let visible_minutes = () => { | |||
// // Method to return the start-time (minutes) of the event visible | |||
// return $('.fc-time').text().split(':')[1].replace(/\D+/g, ''); | |||
// }; | |||
let event_title_text = () => { | |||
// Method to return the title of the event visible | |||
return $('.fc-title:visible').text(); | |||
}; | |||
frappe.run_serially([ | |||
// Create an event using the frappe API | |||
() => frappe.tests.make("Event", [ | |||
{subject: random_text}, | |||
{starts_on: today}, | |||
{event_type: 'Private'} | |||
]), | |||
// Goto Calendar view | |||
() => frappe.set_route(["List", "Event", "Calendar"]), | |||
// Check if event is created | |||
() => { | |||
// Check if the event exists and if its title matches with the one created | |||
assert.equal(event_title_text(), random_text); | |||
// Check if time of event created is correct | |||
// assert.equal(visible_hours(), 4); | |||
// assert.equal(visible_minutes(), 20); | |||
assert.equal(visible_time(), "4:20"); | |||
}, | |||
// Delete event | |||
// Goto Calendar view | |||
() => frappe.set_route(["List", "Event", "Calendar"]), | |||
() => frappe.timeout(0.3), | |||
// Open the event to be deleted | |||
() => frappe.tests.click_generic_text(random_text), | |||
() => frappe.tests.click_page_head_item('Menu'), | |||
() => frappe.tests.click_dropdown_item('Delete'), | |||
() => frappe.tests.click_page_head_item('Yes'), | |||
() => frappe.timeout(4), | |||
// Goto Calendar View | |||
() => frappe.set_route(["List", "Event", "Calendar"]), | |||
() => frappe.timeout(0.3), | |||
// Check if all menu items redirect to correct locations | |||
// Check if clicking on 'Import' redirects you to ["data-import-tool"] | |||
() => frappe.tests.click_page_head_item('Menu'), | |||
() => frappe.tests.click_dropdown_item('Import'), | |||
() => assert.deepEqual(["data-import-tool"], frappe.get_route()), | |||
() => window.history.back(), | |||
() => frappe.timeout(0.5), | |||
// Check if clicking on 'User Permissions Manager' redirects you to ["user-permissions"] | |||
() => frappe.tests.click_page_head_item('Menu'), | |||
() => frappe.tests.click_dropdown_item('User Permissions Manager'), | |||
() => assert.deepEqual(["user-permissions"], frappe.get_route()), | |||
() => window.history.back(), | |||
() => frappe.timeout(0.5), | |||
// Check if clicking on 'Role Permissions Manager' redirects you to ["permission-manager"] | |||
() => frappe.tests.click_page_head_item('Menu'), | |||
() => frappe.tests.click_dropdown_item('Role Permissions Manager'), | |||
() => assert.deepEqual(["permission-manager"], frappe.get_route()), | |||
() => window.history.back(), | |||
() => frappe.timeout(0.5), | |||
// Check if clicking on 'Customize' redirects you to ["Form", "Customize Form"] | |||
() => frappe.tests.click_page_head_item('Menu'), | |||
() => frappe.tests.click_dropdown_item('Customize'), | |||
() => assert.deepEqual(["Form", "Customize Form"], frappe.get_route()), | |||
() => window.history.back(), | |||
() => frappe.timeout(0.5), | |||
// Check if event is deleted | |||
() => assert.equal(event_title_text(), ""), | |||
() => done() | |||
]); | |||
}); |
@@ -0,0 +1,64 @@ | |||
QUnit.module('views'); | |||
QUnit.test("Verification of navbar menu links", function(assert) { | |||
assert.expect(14); | |||
let done = assert.async(); | |||
let navbar_user_items = ['Set Desktop Icons', 'My Settings', 'Reload', 'View Website', 'Background Jobs', 'Logout']; | |||
let modal_and_heading = ['Documentation', 'About']; | |||
frappe.run_serially([ | |||
// Goto Desk using button click to check if its working | |||
() => frappe.tests.click_navbar_item('Home'), | |||
() => assert.deepEqual([""], frappe.get_route()), | |||
// Click username on the navbar (Adminisrator) and verify visibility of all elements | |||
() => frappe.tests.click_navbar_item('navbar_user'), | |||
() => navbar_user_items.forEach(function(navbar_user_item) { | |||
assert.ok(frappe.tests.is_visible(navbar_user_item)); | |||
}), | |||
// Click Help and verify visibility of all elements | |||
() => frappe.tests.click_navbar_item('Help'), | |||
() => modal_and_heading.forEach(function(modal) { | |||
assert.ok(frappe.tests.is_visible(modal)); | |||
}), | |||
// Goto Desk | |||
() => frappe.tests.click_navbar_item('Home'), | |||
() => frappe.timeout(0.3), | |||
// Click navbar-username and verify links of all menu items | |||
// Check if clicking on 'Set Desktop Icons' redirects you to the correct page | |||
() => frappe.tests.click_navbar_item('navbar_user'), | |||
() => frappe.tests.click_dropdown_item('Set Desktop Icons'), | |||
() => assert.deepEqual(["modules_setup"], frappe.get_route()), | |||
() => frappe.tests.click_navbar_item('Home'), | |||
// Check if clicking on 'My Settings' redirects you to the correct page | |||
() => frappe.tests.click_navbar_item('navbar_user'), | |||
() => frappe.tests.click_dropdown_item('My Settings'), | |||
() => assert.deepEqual(["Form", "User", "Administrator"], frappe.get_route()), | |||
() => frappe.tests.click_navbar_item('Home'), | |||
// Check if clicking on 'Background Jobs' redirects you to the correct page | |||
() => frappe.tests.click_navbar_item('navbar_user'), | |||
() => frappe.tests.click_dropdown_item('Background Jobs'), | |||
() => assert.deepEqual(["background_jobs"], frappe.get_route()), | |||
() => frappe.tests.click_navbar_item('Home'), | |||
// Click Help and check both modals | |||
// Check if clicking 'Documentation' opens the right modal | |||
() => frappe.tests.click_navbar_item('Help'), | |||
() => frappe.tests.click_dropdown_item('Documentation'), | |||
() => assert.ok(frappe.tests.is_visible('Documentation', 'span')), | |||
() => frappe.tests.click_generic_text('Close', 'button'), | |||
// Check if clicking 'About' opens the right modal | |||
() => frappe.tests.click_navbar_item('Help'), | |||
() => frappe.tests.click_dropdown_item('About'), | |||
() => assert.ok(frappe.tests.is_visible('Frappe Framework', 'div')), | |||
() => frappe.tests.click_generic_text('Close', 'button'), | |||
() => done() | |||
]); | |||
}); |
@@ -0,0 +1,53 @@ | |||
QUnit.module('views'); | |||
QUnit.test("Gantt View Tests", function(assert) { | |||
assert.expect(2); | |||
let done = assert.async(); | |||
let random_text = frappe.utils.get_random(10); | |||
let start_date = frappe.datetime.get_today()+" 16:20:35"; // arbitrary value taken to prevent cases like 12a for 12:00am and 12h to 24h conversion | |||
let end_date = frappe.datetime.get_today()+" 18:30:45"; //arbitrary value taken to prevent cases like 12a for 12:00am and 12h to 24h conversion | |||
let event_id = () => { | |||
// Method to acquire the ID of the event created. This is needed to redirect to the event page | |||
let event_label = $('.bar-label').text(); | |||
let init = event_label.indexOf('('); | |||
let fin = event_label.indexOf(')'); | |||
return (event_label.substr(init+1,fin-init-1)); | |||
}; | |||
let event_title_text = (text) => { | |||
// Method to check the name of the event created. This is needed to verify the creation and deletion of the event | |||
return $('#bar > g > g.bar-group > text:visible').text().includes(text); | |||
}; | |||
frappe.run_serially([ | |||
// Create an event using the Frapee API | |||
() => { | |||
return frappe.tests.make("Event", [ | |||
{subject: random_text}, | |||
{starts_on: start_date}, | |||
{ends_on: end_date}, | |||
{event_type: 'Private'} | |||
]); | |||
}, | |||
// Check if event is created | |||
() => frappe.set_route(["List", "Event", "Gantt"]), | |||
() => assert.ok( event_title_text(random_text) ), | |||
// Delete event | |||
() => frappe.set_route(["List", "Event", "Gantt"]), | |||
() => frappe.timeout(0.3), | |||
// Redirect to the event page to delete the event | |||
() => frappe.set_route(["Form", "Event", event_id()]), | |||
() => frappe.tests.click_page_head_item('Menu'), | |||
() => frappe.tests.click_dropdown_item('Delete'), | |||
() => frappe.tests.click_page_head_item('Yes'), | |||
() => frappe.timeout(0.3), | |||
() => frappe.set_route(["List", "Event", "Gantt"]), | |||
() => frappe.timeout(0.3), | |||
// Check if event is deleted | |||
() => assert.ok( event_title_text("") ), | |||
() => done() | |||
]); | |||
}); |
@@ -90,6 +90,70 @@ frappe.tests = { | |||
return frappe.run_serially(tasks); | |||
}); | |||
}, | |||
click_page_head_item: (text) => { | |||
// Method to items present on the page header like New, Save, Delete etc. | |||
let possible_texts = ["New", "Delete", "Save", "Yes"]; | |||
return frappe.run_serially([ | |||
() => { | |||
if (text == "Menu"){ | |||
$("span.menu-btn-group-label:contains('Menu'):visible").click(); | |||
} else if (text == "Refresh") { | |||
$(".btn-secondary:contains('Refresh'):visible").click(); | |||
} else if (possible_texts.includes(text)) { | |||
$(".btn-primary:contains("+text+"):visible").click(); | |||
} | |||
}, | |||
() => frappe.timeout(0.3) | |||
]); | |||
}, | |||
click_dropdown_item: (text) => { | |||
// Method to click dropdown elements | |||
return frappe.run_serially([ | |||
() => { | |||
let li = $(".dropdown-menu li:contains("+text+"):visible").get(0); | |||
$(li).find('a')[0].click(); | |||
}, | |||
() => frappe.timeout(0.3) | |||
]); | |||
}, | |||
click_navbar_item: (text) => { | |||
// Method to click an elements present on the navbar | |||
return frappe.run_serially([ | |||
() => { | |||
if (text == "Help"){ | |||
$(".dropdown-help .dropdown-toggle:visible").click(); | |||
} | |||
else if (text == "navbar_user"){ | |||
$(".dropdown-navbar-user .dropdown-toggle:visible").click(); | |||
} | |||
else if (text == "Notification"){ | |||
$(".navbar-new-comments").click(); | |||
} | |||
else if (text == "Home"){ | |||
$(".navbar-home:contains('Home'):visible")[0].click(); | |||
} | |||
}, | |||
() => frappe.timeout(0.3) | |||
]); | |||
}, | |||
click_generic_text: (text, tag='a') => { | |||
// Method to click an element by its name | |||
return frappe.run_serially([ | |||
() => $(tag+":contains("+text+"):visible")[0].click(), | |||
() => frappe.timeout(0.3) | |||
]); | |||
}, | |||
click_desktop_icon: (text) => { | |||
// Method to click the desktop icons on the Desk, by their name | |||
return frappe.run_serially([ | |||
() => $("#icon-grid > div > div.app-icon[title="+text+"]").click(), | |||
() => frappe.timeout(0.3) | |||
]); | |||
}, | |||
is_visible: (text, tag='a') => { | |||
// Method to check the visibility of an element | |||
return $(tag+":contains("+text+")").is(':visible'); | |||
}, | |||
click_button: function(text) { | |||
$(`.btn:contains("${text}"):visible`).click(); | |||
return frappe.timeout(0.3); | |||
@@ -98,4 +162,4 @@ frappe.tests = { | |||
$(`a:contains("${text}"):visible`).click(); | |||
return frappe.timeout(0.3); | |||
} | |||
}; | |||
}; |
@@ -1,27 +1,31 @@ | |||
QUnit.module('views'); | |||
QUnit.test("test quick entry", function(assert) { | |||
QUnit.test("Test quick entry", function(assert) { | |||
assert.expect(2); | |||
let done = assert.async(); | |||
let random = frappe.utils.get_random(10); | |||
let random_text = frappe.utils.get_random(10); | |||
frappe.run_serially([ | |||
() => frappe.set_route('List', 'ToDo'), | |||
() => frappe.new_doc('ToDo'), | |||
() => frappe.quick_entry.dialog.set_value('description', random), | |||
() => frappe.quick_entry.dialog.set_value('description', random_text), | |||
() => frappe.quick_entry.insert(), | |||
(doc) => { | |||
assert.ok(doc && !doc.__islocal); | |||
return frappe.set_route('Form', 'ToDo', doc.name); | |||
}, | |||
() => { | |||
assert.ok(cur_frm.doc.description.includes(random)); | |||
return done(); | |||
} | |||
() => assert.ok(cur_frm.doc.description.includes(random_text)), | |||
// Delete the created ToDo | |||
() => frappe.tests.click_page_head_item('Menu'), | |||
() => frappe.tests.click_dropdown_item('Delete'), | |||
() => frappe.tests.click_page_head_item('Yes'), | |||
() => done() | |||
]); | |||
}); | |||
QUnit.test("test list values", function(assert) { | |||
QUnit.test("Test list values", function(assert) { | |||
assert.expect(2); | |||
let done = assert.async(); | |||
frappe.set_route('List', 'DocType') | |||
@@ -30,4 +34,4 @@ QUnit.test("test list values", function(assert) { | |||
assert.ok($('.list-item:visible').length > 10); | |||
done(); | |||
}); | |||
}); | |||
}); |
@@ -1,3 +1,3 @@ | |||
DocType: Communication,Comment Type,Tipo de Comentario | |||
apps/frappe/frappe/public/js/frappe/form/control.js +1028,Clear Attachment,Limpiar Adjunto | |||
apps/frappe/frappe/public/js/frappe/form/control.js +1002,Clear Attachment,Limpiar Adjunto | |||
DocType: Communication,Communication,Comunicacion |
@@ -28,7 +28,7 @@ DocType: Communication,Link DocType,Enlace DocType | |||
apps/frappe/frappe/desk/doctype/kanban_board/kanban_board.py +20,Column Name cannot be empty,El Nombre de la Columna no puede estar vacía | |||
,Feedback Ratings,Ratings de Feedback | |||
apps/frappe/frappe/email/queue.py +210,Cannot send this email. You have crossed the sending limit of {0} emails for this month.,No se puede enviar este correo electrónico. Usted ha cruzado el límite de envío de {0} mensajes de correo electrónico para este mes. | |||
apps/frappe/frappe/model/db_query.py +508,Cannot use sub-query in order by,No se puede utilizar una sub-consulta en order by | |||
apps/frappe/frappe/model/db_query.py +513,Cannot use sub-query in order by,No se puede utilizar una sub-consulta en order by | |||
apps/frappe/frappe/custom/doctype/customize_form/customize_form.js +227,Permissions can be managed via Setup > Role Permissions Manager,Los permisos se pueden gestionar a través de Configuración > Administrador de permisos | |||
DocType: LDAP Settings,LDAP First Name Field,Campo de Primer Nombre LDAP | |||
apps/frappe/frappe/core/page/modules_setup/modules_setup.html +32,Global Settings: Users will only be able to choose checked icons,Configuraciones Globales: Los usuarios sólo podrán elegir los iconos marcados | |||
@@ -1,5 +1,5 @@ | |||
DocType: Web Form,Accept Payment,Aceptar Pago | |||
DocType: Auto Email Report,Based on Permissions For User,Base sobre Permiso de Usuario | |||
apps/frappe/frappe/model/base_document.py +580,"{0}: '{1}' ({3}) will get truncated, as max characters allowed is {2}","{0}: '{1}' ({3}) resultarán truncadas, como caracteres máximo permitido es {2}" | |||
apps/frappe/frappe/model/base_document.py +579,"{0}: '{1}' ({3}) will get truncated, as max characters allowed is {2}","{0}: '{1}' ({3}) resultarán truncadas, como caracteres máximo permitido es {2}" | |||
DocType: System Settings,Backups,Respaldos | |||
apps/frappe/frappe/utils/password_strength.py +58,Better add a few more letters or another word,Mejor añadir algunas letras extras u otra palabra |
@@ -1,4 +1,4 @@ | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +725,{0}: Cannot set import as {1} is not importable,{0}: no se puede definir 'De Importación' como {1} porque no es importable | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +729,{0}: Cannot set import as {1} is not importable,{0}: no se puede definir 'De Importación' como {1} porque no es importable | |||
DocType: DocField,Heading,Título | |||
apps/frappe/frappe/public/js/frappe/model/model.js +106,Unable to load: {0},No se puede cargar : {0} | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +26,Permissions at higher levels are Field Level permissions. All Fields have a Permission Level set against them and the rules defined at that permissions apply to the field. This is useful in case you want to hide or make certain field read-only for certain Roles.,Permisos en los niveles más altos son los permisos de nivel de campo. Todos los campos tienen un conjunto Nivel de permiso en su contra y las reglas definidas en el que los permisos se aplican al campo. Esto es útil en caso de que quiera ocultar o hacer cierto campo de sólo lectura para ciertas funciones. | |||
@@ -14,11 +14,11 @@ apps/frappe/frappe/public/js/frappe/views/reports/grid_report.js +852,With Ledge | |||
DocType: Report,Ref DocType,Referencia Tipo de Documento | |||
DocType: Print Settings,Print Style Preview,Vista previa de Estilo de impresión | |||
DocType: Customize Form,Enter Form Type,Introduzca Tipo de Formulario | |||
apps/frappe/frappe/public/js/frappe/form/control.js +1026,Select from existing attachments,Seleccione de archivos adjuntos existentes | |||
apps/frappe/frappe/public/js/frappe/form/control.js +1000,Select from existing attachments,Seleccione de archivos adjuntos existentes | |||
DocType: Email Alert Recipient,Email By Document Field,Email Por Campo Documento | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js +483,Saved!,Guardado! | |||
apps/frappe/frappe/public/js/frappe/ui/messages.js +66,Enter Value,Introducir valor | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +694,"{0}: Cannot set Submit, Cancel, Amend without Write","{0}: no se puede Presentar, Cancelar y Corregir sin Guardar" | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +698,"{0}: Cannot set Submit, Cancel, Amend without Write","{0}: no se puede Presentar, Cancelar y Corregir sin Guardar" | |||
DocType: Web Page,Insert Style,Inserte Estilo | |||
DocType: Workflow State,th-large,-ésimo gran | |||
DocType: User,Email Settings,Configuración del correo electrónico | |||
@@ -45,7 +45,7 @@ apps/frappe/frappe/model/document.py +577,Cannot edit cancelled document,No se p | |||
DocType: Social Login Keys,Facebook Client ID,Facebook Client ID | |||
apps/frappe/frappe/config/setup.py +107,Set numbering series for transactions.,Establecer series de numeración para las transacciones. | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +39,Submit an Issue,Presentar un problema | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +64,Send As Email,Enviar como correo electrónico | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +63,Send As Email,Enviar como correo electrónico | |||
DocType: Currency,Symbol,Símbolo | |||
DocType: Workflow Document State,Update Field,Actualizar Campos | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +17,"You can change Submitted documents by cancelling them and then, amending them.","Puede cambiar los documentos Enviados cancelándolos y luego, haciendo los cambios pertinentes." | |||
@@ -55,7 +55,7 @@ DocType: Website Script,Script to attach to all web pages.,Guión para unir a to | |||
apps/frappe/frappe/core/page/data_import_tool/data_import_main.html +5,Select Type of Document to Download,Seleccionar tipo de documento para descargar | |||
apps/frappe/frappe/core/page/data_import_tool/importer.py +56,Only allowed {0} rows in one import,Soló esta filas {0} permitidas para una importación | |||
DocType: Property Setter,Set Value,Valor seleccionado | |||
apps/frappe/frappe/public/js/frappe/form/layout.js +98,Show more details,Mostrar más detalles | |||
apps/frappe/frappe/public/js/frappe/form/layout.js +125,Show more details,Mostrar más detalles | |||
apps/frappe/frappe/custom/doctype/custom_field/custom_field.js +66,Fieldname which will be the DocType for this link field.,Nombre de campo el cual será el DocType para enlazar el campo. | |||
DocType: Workflow,DocType on which this Workflow is applicable.,El DocType en el presente del flujo de trabajo es aplicable. | |||
DocType: Workflow,"If checked, all other workflows become inactive.","Si se selecciona, todos los otros flujos de trabajo se vuelven inactivos ." | |||
@@ -70,7 +70,7 @@ apps/frappe/frappe/public/js/frappe/form/print.js +169,Warning: This Print Forma | |||
apps/frappe/frappe/core/page/data_import_tool/exporter.py +65,"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.","Si va a cargar nuevos registros, ""Secuencias"" se convierte en obligatoria, si está presente." | |||
DocType: Report,Letter Head,Membretes | |||
DocType: Custom DocPerm,Role,Función | |||
apps/frappe/frappe/model/base_document.py +466,Options not set for link field {0},Las opciones no establecen para campo de enlace {0} | |||
apps/frappe/frappe/model/base_document.py +465,Options not set for link field {0},Las opciones no establecen para campo de enlace {0} | |||
DocType: Web Page,Style,Estilo | |||
apps/frappe/frappe/model/rename_doc.py +130,{0} not allowed to be renamed,{0} no es permitido ser renombrado | |||
DocType: Property Setter,Field Name,Nombre del campo | |||
@@ -78,7 +78,7 @@ DocType: Custom Script,Adds a custom script (client or server) to a DocType,Aña | |||
DocType: Report,Report Type,Tipo de informe | |||
DocType: User Email,Enable Outgoing,Habilitar saliente | |||
DocType: Email Account,Ignore attachments over this size,Ignorar los adjuntos mayores a este tamaño | |||
apps/frappe/frappe/public/js/frappe/form/control.js +739,Date must be in format: {0},La fecha debe estar en formato : {0} | |||
apps/frappe/frappe/public/js/frappe/form/control.js +721,Date must be in format: {0},La fecha debe estar en formato : {0} | |||
DocType: Print Settings,In points. Default is 9.,En puntos. El valor predeterminado es 9. | |||
apps/frappe/frappe/config/website.py +18,User editable form on Website.,Forma editable Usuario en el Sitio Web. | |||
apps/frappe/frappe/core/page/user_permissions/user_permissions.js +140,Upload and Sync,Carga y Sincronización | |||
@@ -88,7 +88,7 @@ DocType: Workflow State,thumbs-down,pulgar hacia abajo | |||
DocType: Address Template,This format is used if country specific format is not found,Este formato se utiliza si no se encuentra un formato específico del país | |||
apps/frappe/frappe/public/js/frappe/views/treeview.js +65,{0} Tree,{0} Árbol | |||
DocType: Communication,Email,Correo electrónico | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +124,Help on Search,Ayuda en la búsqueda | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +127,Help on Search,Ayuda en la búsqueda | |||
DocType: Web Page,Left,Izquierda | |||
apps/frappe/frappe/core/doctype/user/user.py +174,Sorry! Sharing with Website User is prohibited.,¡Lo siento! Compartir con los del Sitio Web está prohibido. | |||
DocType: Custom Script,Script,Guión | |||
@@ -96,7 +96,7 @@ apps/frappe/frappe/custom/doctype/customize_form/customize_form.js +71,Refresh F | |||
apps/frappe/frappe/templates/emails/new_user.html +3,A new account has been created for you at {0},Una nueva cuenta ha sido creada para ti en {0} | |||
DocType: Website Script,Website Script,Guión del Sitio Web | |||
apps/frappe/frappe/core/doctype/communication/communication.js +100,Reference DocType,Referencia DocType | |||
apps/frappe/frappe/__init__.py +1063,Thank you,Gracias | |||
apps/frappe/frappe/__init__.py +1062,Thank you,Gracias | |||
DocType: Address,Shipping,Envío | |||
DocType: Standard Reply,Standard Reply,Respuestas automáticas | |||
DocType: Currency,"How should this currency be formatted? If not set, will use system defaults","¿Cómo se debe formatear esta moneda ? Si no se establece, utilizará valores predeterminados del sistema" | |||
@@ -119,7 +119,7 @@ apps/frappe/frappe/desk/form/assign_to.py +143,"The task {0}, that you assigned | |||
DocType: Workflow State,star-empty,- estrella vacía | |||
apps/frappe/frappe/templates/emails/auto_reply.html +1,Thank you for your email,Gracias por tu email | |||
DocType: Social Login Keys,Social Login Keys,Credenciales sociales | |||
apps/frappe/frappe/public/js/legacy/form.js +63,"Allowing DocType, DocType. Be careful!","Permitir DocType , tipo de documento . ¡Ten cuidado!" | |||
apps/frappe/frappe/public/js/legacy/form.js +62,"Allowing DocType, DocType. Be careful!","Permitir DocType , tipo de documento . ¡Ten cuidado!" | |||
apps/frappe/frappe/core/doctype/docshare/docshare.py +40,"You need to have ""Share"" permission","Usted necesita tener el permiso ""Compartir""" | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +9,The system provides many pre-defined roles. You can add new roles to set finer permissions.,El sistema ofrece muchas funciones predefinidas . Usted puede agregar nuevos roles para establecer permisos más finos. | |||
apps/frappe/frappe/utils/nestedset.py +235,{0} {1} cannot be a leaf node as it has children,"{0} {1} no puede ser un nodo de hoja , ya que tiene los niños" | |||
@@ -127,18 +127,18 @@ DocType: Footer Item,Company,Compañía(s) | |||
DocType: Email Alert,Send alert if date matches this field's value,Envíe la alarma si la fecha coincide con el valor de este campo | |||
apps/frappe/frappe/config/setup.py +156,Setup Email Alert based on various criteria.,Configuración de Alerta de E-mail basado en varios criterios. | |||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder.js +697,You can add dynamic properties from the document by using Jinja templating.,Puede añadir propiedades dinámicas del documento mediante el uso de plantillas Jinja. | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +455,Default for {0} must be an option,Predeterminado para {0} debe ser una opción | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +422,Options must be a valid DocType for field {0} in row {1},Las opciones deben ser validas para el DocType en el campo {0} de la linea {1} | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +459,Default for {0} must be an option,Predeterminado para {0} debe ser una opción | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +426,Options must be a valid DocType for field {0} in row {1},Las opciones deben ser validas para el DocType en el campo {0} de la linea {1} | |||
apps/frappe/frappe/templates/emails/auto_reply.html +5,This is an automatically generated reply,Esta es una respuesta generada automáticamente | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js +434,Set,conjunto | |||
DocType: Workflow State,Workflow State,Estados de los flujos de trabajo | |||
DocType: Communication,Submitted,Enviado | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +655,{0}: No basic permissions set,{0}: No se han asignado permisos básicos | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +659,{0}: No basic permissions set,{0}: No se han asignado permisos básicos | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/toolbar.js +234,"Your download is being built, this may take a few moments...","Se está generando su descarga, esto puede tardar unos minutos..." | |||
apps/frappe/frappe/core/page/user_permissions/user_permissions.js +127,Upload User Permissions,Sube Permisos de Usuario | |||
apps/frappe/frappe/core/page/data_import_tool/data_import_main.html +43,Download with data,Descarga de datos | |||
DocType: DocType,Hide Heading,Ocultar Rubro | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +721,{0}: Cannot set Assign Amend if not Submittable,{0}: no se puede 'Asignar Correción' si no se puede presentar | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +725,{0}: Cannot set Assign Amend if not Submittable,{0}: no se puede 'Asignar Correción' si no se puede presentar | |||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder.js +411,Remove Section,Retire la Sección | |||
apps/frappe/frappe/core/doctype/file/file.py +221,No permission to write / remove.,No tiene permiso para escribir/eliminar. | |||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +158,No Report Loaded. Please use query-report/[Report Name] to run a report.,No se cargo el reporte. Utilice Consultar Informes/[Report Name]] para ejecutar un reporte. | |||
@@ -146,11 +146,11 @@ apps/frappe/frappe/config/setup.py +199,Define workflows for forms.,Definir los | |||
DocType: Workflow State,font,Fuente | |||
apps/frappe/frappe/public/js/frappe/model/model.js +31,Parent,Padre | |||
DocType: Communication,Workflow,Flujo de Trabajo | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +133,Search in a document type,Buscar en un tipo de documento | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +136,Search in a document type,Buscar en un tipo de documento | |||
DocType: Print Format,Server,Servidor | |||
DocType: Custom DocPerm,Apply User Permissions,Aplicar permisos de usuario | |||
DocType: Website Settings,Set Banner from Image,Establecer Banner de imagen | |||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +489,Sr No,No. | |||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +488,Sr No,No. | |||
DocType: DocType,Is Single,Es Individual | |||
apps/frappe/frappe/templates/includes/list/filters.html +19,clear,claro | |||
DocType: Email Alert,Send alert if this field's value changes,Enviar alerta si cambia el valor de este campo | |||
@@ -161,16 +161,16 @@ apps/frappe/frappe/core/page/data_import_tool/exporter.py +62,Please do not chan | |||
DocType: Email Alert,Days Before or After,Días Anteriores o Posteriores | |||
DocType: File,Content Hash,Hash contenido | |||
DocType: Workflow State,align-left,alinear -izquierda | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +698,{0}: Cannot set Import without Create,{0}: no se puede establecer 'De importación' sin crearlo primero | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +702,{0}: Cannot set Import without Create,{0}: no se puede establecer 'De importación' sin crearlo primero | |||
apps/frappe/frappe/custom/doctype/customize_form/customize_form.js +255,Hide field in Report Builder,Ocultar campo en el Generador de Informes | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +433,Max width for type Currency is 100px in row {0},El ancho máximo para la moneda es 100px en la linea {0} | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +437,Max width for type Currency is 100px in row {0},El ancho máximo para la moneda es 100px en la linea {0} | |||
apps/frappe/frappe/public/js/frappe/form/link_selector.js +143,{0} added,{0} agregado(s) | |||
DocType: Integration Request,Reference DocName,Referencia DocNombre | |||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder.js +790,Saved,Guardado | |||
DocType: System Settings,Security,Seguridad | |||
DocType: Custom DocPerm,Read,Lectura | |||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +216,use % as wildcard,Use% como comodín | |||
apps/frappe/frappe/model/delete_doc.py +161,User not allowed to delete {0}: {1},El usuario no puede eliminar {0}: {1} | |||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +229,use % as wildcard,Use% como comodín | |||
apps/frappe/frappe/model/delete_doc.py +162,User not allowed to delete {0}: {1},El usuario no puede eliminar {0}: {1} | |||
apps/frappe/frappe/desk/query_report.py +87,Query must be a SELECT,Debe seleccionar la Consulta | |||
DocType: DocShare,Document Name,Nombre del documento | |||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder.js +162,Start new Format,Comenzar una nueva Formato | |||
@@ -185,13 +185,13 @@ apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +34 | |||
apps/frappe/frappe/website/doctype/website_theme/website_theme.py +30,You are not allowed to delete a standard Website Theme,No se le permite eliminar un tema Sitio web estándar | |||
apps/frappe/frappe/custom/doctype/customize_form/customize_form.js +227,Permissions can be managed via Setup > Role Permissions Manager,Los permisos se pueden gestionar a través de Configuración > Administrador de Funciones | |||
apps/frappe/frappe/core/page/data_import_tool/data_import_main.html +34,Download Blank Template,Descargar la plantilla en blanco | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +684,{0}: Permission at level 0 must be set before higher levels are set,{0} : Permiso en el nivel 0 se debe establecer antes de fijar niveles más altos | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +688,{0}: Permission at level 0 must be set before higher levels are set,{0} : Permiso en el nivel 0 se debe establecer antes de fijar niveles más altos | |||
DocType: System Settings,dd-mm-yyyy,dd- mm- aaaa | |||
apps/frappe/frappe/config/desk.py +54,"Newsletters to contacts, leads.","Boletines para contactos, clientes potenciales ." | |||
DocType: Email Alert,Message Examples,Ejemplos de Mensajes | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +11,"As a best practice, do not assign the same set of permission rule to different Roles. Instead, set multiple Roles to the same User.","Como práctica recomendada , no asigne el mismo conjunto de permisos para diferentes funciones. En su lugar, establecer varias funciones al mismo usuario ." | |||
DocType: Website Theme,Top Bar Color,Inicio Barra Color | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +498,There can be only one Fold in a form,Sólo puede haber un doblez en forma | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +502,There can be only one Fold in a form,Sólo puede haber un doblez en forma | |||
DocType: Address,Shop,Tienda | |||
apps/frappe/frappe/public/js/frappe/views/treeview.js +161,Add Child,Agregar subcuenta | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +7,Roles can be set for users from their User page.,Las funciones se pueden configurar para los usuarios de su página de usuario . | |||
@@ -210,8 +210,8 @@ DocType: Contact,Open,Abrir | |||
DocType: DocType,Hide Copy,Copia Oculta | |||
apps/frappe/frappe/printing/doctype/print_format/print_format.py +19,Standard Print Format cannot be updated,Formato de impresión estándar no se puede actualizar | |||
apps/frappe/frappe/core/page/data_import_tool/data_import_main.html +7,Select Type,Seleccione el tipo de | |||
apps/frappe/frappe/model/rename_doc.py +377,** Failed: {0} to {1}: {2},** Fallo: {0} a {1}: {2} | |||
apps/frappe/frappe/public/js/frappe/form/layout.js +33,This form does not have any input,Esta forma no tiene ninguna entrada | |||
apps/frappe/frappe/model/rename_doc.py +378,** Failed: {0} to {1}: {2},** Fallo: {0} a {1}: {2} | |||
apps/frappe/frappe/public/js/frappe/form/layout.js +35,This form does not have any input,Esta forma no tiene ninguna entrada | |||
apps/frappe/frappe/model/naming.py +44,{0} is required,{0} es necesario | |||
DocType: Website Settings,Select an image of approx width 150px with a transparent background for best results.,Seleccione una imagen de ancho aprox 150px con fondo transparente para obtener mejores resultados . | |||
DocType: Workflow State,Tag,Etiqueta | |||
@@ -229,7 +229,7 @@ DocType: DocType,Single Types have only one record no tables associated. Values | |||
apps/frappe/frappe/public/js/frappe/form/multi_select_dialog.js +58,Make a new,Hacer una nueva | |||
apps/frappe/frappe/core/page/user_permissions/user_permissions.js +222,Select User or DocType to start.,Seleccionar usuario o tipo de documento para empezar. | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +35,"Once you have set this, the users will only be able access documents (eg. Blog Post) where the link exists (eg. Blogger).","Una vez que haya establecido esto, los usuarios sólo tendrán acceso a los documentos que puedan (por ejemplo, Entrada de blog ) donde se encuentra la relación (por ejemplo, Blogger ) ." | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +437,'In List View' not allowed for type {0} in row {1},No está permitido para el tipo {0} en la linea {1} | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +441,'In List View' not allowed for type {0} in row {1},No está permitido para el tipo {0} en la linea {1} | |||
apps/frappe/frappe/custom/doctype/customize_form/customize_form.js +216,"Change type of field. (Currently, Type change is \ | |||
allowed among 'Currency and Float')","Cambiar el tipo de campo. (Actual, Tipo de cambio, Cantidad permitida, Moneda, Flotante, etc)" | |||
DocType: Footer Item,"Select target = ""_blank"" to open in a new page.","Select target = "" _blank"" para abrir en una nueva página." | |||
@@ -254,7 +254,7 @@ apps/frappe/frappe/sessions.py +156,Redis cache server not running. Please conta | |||
DocType: Workflow Document State,Only Allow Edit For,Sólo Permitir Editar Para | |||
DocType: Website Slideshow,This goes above the slideshow.,Esto va por encima de la presentación de diapositivas. | |||
DocType: Website Settings,Footer Items,Elementos del Pie de Página | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +696,{0}: Cannot set Amend without Cancel,{0}: no se puede 'Corregir' sin antes cancelar | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +700,{0}: Cannot set Amend without Cancel,{0}: no se puede 'Corregir' sin antes cancelar | |||
apps/frappe/frappe/templates/emails/new_user.html +4,Your login id is,Su nombre de usuario es | |||
DocType: DocField,Currency,Divisa | |||
apps/frappe/frappe/core/report/permitted_documents_for_user/permitted_documents_for_user.py +36,Please specify doctype,"Por favor, especifique el doctype" | |||
@@ -262,12 +262,12 @@ DocType: System Settings,Session Expiry Mobile,Vencimiento de sesión en disposi | |||
DocType: Web Form,Text to be displayed for Link to Web Page if this form has a web page. Link route will be automatically generated based on `page_name` and `parent_website_route`,El texto que se muestra para enlazar a la página Web si esta forma dispone de una página web. Ruta Enlace automáticamente se genera en base a `page_name` y` parent_website_route` | |||
,Setup Wizard,Asistente de configuración | |||
DocType: Print Settings,Send Email Print Attachments as PDF (Recommended),Enviar Emails con adjuntos en formato PDF (recomendado) | |||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +269,Field {0} is not selectable.,El campo {0} no se puede seleccionar . | |||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +286,Field {0} is not selectable.,El campo {0} no se puede seleccionar . | |||
apps/frappe/frappe/public/js/frappe/views/reports/grid_report.js +850,Select To Download:,Seleccione la descarga : | |||
apps/frappe/frappe/public/js/frappe/upload.js +223,Please attach a file or set a URL,"Por favor, adjuntar un archivo o defina una URL" | |||
DocType: Contact,Is Primary Contact,Es Contacto principal | |||
,Permitted Documents For User,Documentos permitidos para los usuarios | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +129,Make a new record,Hacer un Nuevo Registro | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +132,Make a new record,Hacer un Nuevo Registro | |||
DocType: Report,Script Report,Informe de secuencias de comandos | |||
apps/frappe/frappe/custom/doctype/custom_field/custom_field.py +19,Label is mandatory,Etiqueta es obligatoria | |||
DocType: Currency,**Currency** Master,**Moneda** Principal | |||
@@ -288,7 +288,7 @@ DocType: Workflow State,"Style represents the button color: Success - Green, Dan | |||
DocType: User,Facebook Username,Facebook Nombre de usuario | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js +301,Users with role {0}:,Los usuarios con función {0}: | |||
apps/frappe/frappe/core/doctype/file/file.py +151,Same file has already been attached to the record,El mismo archivo ya se ha adjuntado al registro | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +691,{0}: Cannot set Cancel without Submit,{0}: no se puede 'Cancelar' sin presentarlo | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +695,{0}: Cannot set Cancel without Submit,{0}: no se puede 'Cancelar' sin presentarlo | |||
DocType: Address,Address Title,Dirección Título | |||
apps/frappe/frappe/custom/doctype/customize_form/customize_form.js +239,Mark the field as Mandatory,Marque el campo como obligatorio | |||
DocType: Workflow State,resize-full,cambiar a tamaño completo | |||
@@ -300,7 +300,7 @@ DocType: Contact,Sales Master Manager,Gerente de Ventas | |||
apps/frappe/frappe/public/js/frappe/form/link_selector.js +26,You can use wildcard %,Puede utilizar caracteres comodín% | |||
apps/frappe/frappe/public/js/frappe/views/reports/reportview.js +771,Report was not saved (there were errors),Informe no se guardó ( hubo errores ) | |||
apps/frappe/frappe/public/js/frappe/upload.js +296,Uploading...,Subiendo ... | |||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +826,You are not allowed to export this report,No se le permite exportar este reporte | |||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +825,You are not allowed to export this report,No se le permite exportar este reporte | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +24,"Permissions at level 0 are Document Level permissions, i.e. they are primary for access to the document.","Los permisos del nivel 0 son los permisos a nivel de documentos, es decir, que tienen permiso especial para los documentos." | |||
apps/frappe/frappe/config/setup.py +220,"Change field properties (hide, readonly, permission etc.)","Cambiar las propiedades de campo (ocultar, sólo lectura, permisos, etc)" | |||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder.js +108,Select a DocType to make a new format,Seleccione un tipo de documento para hacer un nuevo formato | |||
@@ -312,7 +312,7 @@ apps/frappe/frappe/email/receive.py +65,Cannot connect: {0},No puede conectarse: | |||
apps/frappe/frappe/core/doctype/report/report.py +33,Only Administrator can save a standard report. Please rename and save.,"Sólo el administrador puede guardar un informe estándar. Por favor, cambie el nombre y guardar." | |||
apps/frappe/frappe/core/page/user_permissions/user_permissions.js +154,Permissions Updated,Actualización de permisos | |||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder.js +126,Both DocType and Name required,Tanto DocType y Nombre son obligatorios | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +672,"{0}: Only one rule allowed with the same Role, Level and {1}","{0}: Sólo una regla es permitida con el mismo rol, Nivel y {1}" | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +676,"{0}: Only one rule allowed with the same Role, Level and {1}","{0}: Sólo una regla es permitida con el mismo rol, Nivel y {1}" | |||
DocType: Customize Form,"Customize Label, Print Hide, Default etc.","Personaliza etiquetas, impresión Hide , Default , etc" | |||
apps/frappe/frappe/public/js/frappe/views/reports/reportview.js +661,Sort By,Ordenado por | |||
apps/frappe/frappe/desk/form/utils.py +91,No further records,No hay registros adicionales | |||
@@ -340,7 +340,7 @@ apps/frappe/frappe/printing/page/print_format_builder/print_format_builder_layou | |||
DocType: Currency,"Sub-currency. For e.g. ""Cent""","Sub-moneda, por ejemplo, ""Centavo""" | |||
DocType: Workflow State,exclamation-sign,signo de exclamación | |||
DocType: Desktop Icon,List,Vista de árbol | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +509,There were errors while sending email. Please try again.,"Hubo errores al enviar el correo electrónico. Por favor, inténtelo de nuevo." | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +520,There were errors while sending email. Please try again.,"Hubo errores al enviar el correo electrónico. Por favor, inténtelo de nuevo." | |||
apps/frappe/frappe/core/doctype/system_settings/system_settings.py +26,Session Expiry must be in format {0},Vencimiento de sesión debe estar en formato {0} | |||
DocType: User,Stores the JSON of last known versions of various installed apps. It is used to show release notes.,Almacena el JSON de las últimas versiones conocidas de diferentes aplicaciones instaladas. Se utiliza para mostrar notas de la versión. | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +14,"Meaning of Submit, Cancel, Amend","Significado de Enviar, Cancelar, Corregir" | |||
@@ -370,7 +370,7 @@ apps/frappe/frappe/public/js/frappe/form/link_selector.js +106,Make a new {0},Cr | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js +140,Select Document Type or Role to start.,Seleccione el Tipo de Documento o Función para empezar. | |||
DocType: Workflow Transition,Defines actions on states and the next step and allowed roles.,Define las acciones de los estados y el siguiente paso y funciones permitidas. | |||
DocType: DocType,Show Print First,Mostrar Imprimir Primera | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +705,Report cannot be set for Single types,Reportar no se puede configurar para los tipos individuales | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +709,Report cannot be set for Single types,Reportar no se puede configurar para los tipos individuales | |||
apps/frappe/frappe/core/doctype/report/report.js +37,Disable Report,Desactivar Informe | |||
DocType: Workflow State,resize-small,cambiar el tamaño pequeño | |||
DocType: Workflow State,question-sign,Consultar Firma | |||
@@ -378,14 +378,14 @@ apps/frappe/frappe/utils/nestedset.py +229,Multiple root nodes not allowed.,Nodo | |||
DocType: Event,Saturday,Sábado | |||
DocType: Address,Maintenance User,Mantenimiento por el Usuario | |||
apps/frappe/frappe/email/doctype/newsletter/newsletter.py +30,Scheduled to send to {0},Programado para enviar a {0} | |||
apps/frappe/frappe/model/base_document.py +470,{0} must be set first,debe establecerse primero: {0} | |||
apps/frappe/frappe/model/base_document.py +469,{0} must be set first,debe establecerse primero: {0} | |||
apps/frappe/frappe/core/page/data_import_tool/exporter.py +67,"For updating, you can update only selective columns.","Para la actualización, usted lo puede hacer solo en algunas columnas." | |||
DocType: Custom DocPerm,Export,Exportación | |||
DocType: Workflow State,Search,Búsqueda | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +16,"Certain documents, like an Invoice, should not be changed once final. The final state for such documents is called Submitted. You can restrict which roles can Submit.","Algunos documentos como facturas, no se deben cambiar una vez guardados. El estado final de dichos documentos se llama 'Presentado'. Puede restringir qué roles/usuarios pueden presentar documentos" | |||
apps/frappe/frappe/public/js/frappe/views/pageview.js +104,Sorry! I could not find what you were looking for.,¡Lo siento! No pude encontrar lo que estabas buscando. | |||
DocType: Workflow State,remove-sign,Eliminar el efecto de signo | |||
apps/frappe/frappe/public/js/frappe/form/control.js +1284,Please attach a file first.,Adjunte un archivo primero . | |||
apps/frappe/frappe/public/js/frappe/form/control.js +1250,Please attach a file first.,Adjunte un archivo primero . | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js +252,Show User Permissions,Permisos Mostrar usuario | |||
apps/frappe/frappe/public/js/frappe/request.js +347,Report this issue,Reportar Incidencia | |||
apps/frappe/frappe/public/js/frappe/views/treeview.js +212,New {0},Nuevo {0} | |||
@@ -394,23 +394,23 @@ DocType: Custom Script,Script Type,Guión Tipo | |||
DocType: Workflow State,text-width,texto de ancho | |||
DocType: Custom DocPerm,This role update User Permissions for a user,Este función actualiza los Permisos de Usuario para un usuario | |||
DocType: Workflow State,resize-horizontal,cambiar el tamaño horizontal | |||
apps/frappe/frappe/model/delete_doc.py +165,{0} {1}: Submitted Record cannot be deleted.,{0} {1}: registro presentado no se puede eliminar. | |||
apps/frappe/frappe/model/delete_doc.py +166,{0} {1}: Submitted Record cannot be deleted.,{0} {1}: registro presentado no se puede eliminar. | |||
apps/frappe/frappe/public/js/frappe/form/save.js +141,Mandatory fields required in {0},Campos obligatorios requeridos en {0} | |||
apps/frappe/frappe/model/rename_doc.py +364,Maximum {0} rows allowed,Máximo {0} filas permitidos | |||
apps/frappe/frappe/model/rename_doc.py +365,Maximum {0} rows allowed,Máximo {0} filas permitidos | |||
DocType: Custom DocPerm,Import,Importación | |||
apps/frappe/frappe/model/naming.py +168,"There were some errors setting the name, please contact the administrator","Había algunos errores de configuración el nombre, por favor póngase en contacto con el administrador" | |||
apps/frappe/frappe/website/doctype/web_form/web_form.py +37,You need to be in developer mode to edit a Standard Web Form,Se requiere estar en modo desarrollador para editar un formulario web estándar. | |||
DocType: Website Theme,Google Font (Heading),Google Font (Título) | |||
apps/frappe/frappe/core/page/user_permissions/user_permissions.js +31,A user can be permitted to multiple records of the same DocType.,Un usuario se puede permitir que varios registros de un mismo tipo de documento . | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +449,Options 'Dynamic Link' type of field must point to another Link Field with options as 'DocType',"Las opciones de campo de tipo 'Vinculo Dinámico' debe apuntar a otro campo con propiedades ""Tipo de Documento""" | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +453,Options 'Dynamic Link' type of field must point to another Link Field with options as 'DocType',"Las opciones de campo de tipo 'Vinculo Dinámico' debe apuntar a otro campo con propiedades ""Tipo de Documento""" | |||
apps/frappe/frappe/public/js/frappe/ui/tree.js +130,Collapse,Plegar/Desplegar | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +719,{0}: Cannot set Assign Submit if not Submittable,{0}: no se puede 'Asignar Enviar' si no se puede presentar | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +723,{0}: Cannot set Assign Submit if not Submittable,{0}: no se puede 'Asignar Enviar' si no se puede presentar | |||
DocType: Workflow State,step-forward,paso hacia adelante | |||
DocType: Workflow State,align-justify,alinear - justificar | |||
apps/frappe/frappe/core/page/data_import_tool/importer.py +249,Not allowed to Import,No tiene permisos para importar | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +135,Open a module or tool,Abra un Módulo o Herramienta | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +138,Open a module or tool,Abra un Módulo o Herramienta | |||
apps/frappe/frappe/core/page/user_permissions/user_permissions.js +132,Upload CSV file containing all user permissions in the same format as Download.,Subir archivo CSV que contiene todos los permisos de usuario en el mismo formato que en Descargar. | |||
apps/frappe/frappe/public/js/legacy/form.js +139,Please save before attaching.,"Por favor, guarde los cambios antes de conectar" | |||
apps/frappe/frappe/public/js/legacy/form.js +137,Please save before attaching.,"Por favor, guarde los cambios antes de conectar" | |||
apps/frappe/frappe/core/page/data_import_tool/data_import_tool.py +15,Parent Table,Tabla de Padres | |||
DocType: Dropbox Settings,Dropbox Access Key,Clave de Acceso de Dropbox | |||
apps/frappe/frappe/public/js/frappe/ui/field_group.js +82,Missing Values Required,Valores perdidos requeridos | |||
@@ -433,7 +433,7 @@ apps/frappe/frappe/model/naming.py +66,Naming Series mandatory,Las secuencias so | |||
DocType: Event,Ref Type,Tipo Ref | |||
DocType: DocType,Sort Order,Orden de Clasificación | |||
apps/frappe/frappe/desk/page/setup_wizard/setup_wizard.js +131,Sit tight while your system is being setup. This may take a few moments.,Tome asiento mientras el sistema está siendo configurado. Esto puede tomar un momento. | |||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +663,"Unable to display this tree report, due to missing data. Most likely, it is being filtered out due to permissions.","No se puede mostrar este informe árbol, debido a los datos faltantes. Lo más probable es que se está filtrando a cabo debido a los permisos." | |||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +662,"Unable to display this tree report, due to missing data. Most likely, it is being filtered out due to permissions.","No se puede mostrar este informe árbol, debido a los datos faltantes. Lo más probable es que se está filtrando a cabo debido a los permisos." | |||
apps/frappe/frappe/custom/doctype/customize_form/customize_form.js +247,Hide field in form,Ocultar campo en forma | |||
DocType: Newsletter,Email Sent?,Enviar Email ? | |||
apps/frappe/frappe/custom/doctype/customize_form/customize_form.js +272,Show a description below the field,Mostrar una descripción debajo del campo | |||
@@ -452,7 +452,7 @@ DocType: Custom Field,Field Description,Descripción del Campo | |||
apps/frappe/frappe/utils/nestedset.py +194,Root {0} cannot be deleted,Raíz {0} no se puede eliminar | |||
DocType: Website Settings,Banner is above the Top Menu Bar.,El Banner está por sobre la barra de menú superior. | |||
apps/frappe/frappe/templates/includes/comments/comments.py +50,View it in your browser,Véalo en su navegador | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +523,Title field must be a valid fieldname,Campo Título debe ser un nombre de campo válido | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +527,Title field must be a valid fieldname,Campo Título debe ser un nombre de campo válido | |||
apps/frappe/frappe/client.py +86,Cannot edit standard fields,No se puede editar campos estándar | |||
apps/frappe/frappe/config/website.py +78,Settings for Contact Us Page.,Ajustes para la página de contacto. | |||
apps/frappe/frappe/public/js/frappe/misc/pretty_date.js +48,1 hour ago,Hace 1 hora | |||
@@ -483,14 +483,14 @@ apps/frappe/frappe/core/doctype/user/user.py +172,Sorry! User should have comple | |||
apps/frappe/frappe/core/page/user_permissions/user_permissions.js +14,Edit Role Permissions,Editar permisos de rol | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +287,DocType can not be merged,El DocType no se puede fusionar | |||
DocType: DocField,Allow on Submit,Permitir en Enviar | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +78,Select Print Format,Seleccionar el formato de impresión | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +77,Select Print Format,Seleccionar el formato de impresión | |||
DocType: DocField,"For Links, enter the DocType as range. | |||
For Select, enter list of Options, each on a new line.","Para enlaces, introduzca el DocType como rango. para seleccionar, ingrese lista de opciones, cada uno en una nueva línea." | |||
DocType: Workflow State,eye-open,- ojo abierto | |||
apps/frappe/frappe/core/page/data_import_tool/data_import_main.html +87,Submit after importing.,Revisar después de importar. | |||
DocType: Email Account,Email Account Name,Correo electrónico Nombre de cuenta | |||
apps/frappe/frappe/public/js/frappe/list/list_renderer.js +554,No {0} found,{0} no encontrado | |||
apps/frappe/frappe/website/doctype/blog_post/blog_post.py +102,Posts by {0},Publicaciones por {0} | |||
apps/frappe/frappe/website/doctype/blog_post/blog_post.py +106,Posts by {0},Publicaciones por {0} | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +198,Series {0} already used in {1},Serie {0} ya se utiliza en {1} | |||
DocType: Report,Report Manager,Administrador de informes | |||
DocType: Custom DocPerm,Report,Informe | |||
@@ -509,16 +509,16 @@ apps/frappe/frappe/www/list.html +3,{0} List,Listado: {0} | |||
DocType: DocType,Is Submittable,Es presentable-- | |||
DocType: System Settings,Disable Standard Email Footer,Desactivar pie de página estandar en Email | |||
DocType: Blog Post,"Description for listing page, in plain text, only a couple of lines. (max 140 characters)","Descripción de la página perfil, en texto plano, sólo un par de líneas. (máx. 140 caracteres)" | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +715,{0} cannot be set for Single types,{0} no se puede establecer para los tipos individuales | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +719,{0} cannot be set for Single types,{0} no se puede establecer para los tipos individuales | |||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder.js +600,Select Table Columns for {0},Seleccionar columnas de tabla para {0} | |||
DocType: Workflow State,cog,diente | |||
DocType: Custom Field,Select the label after which you want to insert new field.,Seleccione la etiqueta después de la cual desea insertar el nuevo campo . | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +132,"document type..., e.g. customer","Tipo de documento ..., por ejemplo, al cliente" | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +135,"document type..., e.g. customer","Tipo de documento ..., por ejemplo, al cliente" | |||
apps/frappe/frappe/public/js/frappe/form/link_selector.js +22,Select {0},Seleccione {0} | |||
DocType: Property Setter,Property Setter,Establecer prioridad-- | |||
DocType: Website Settings,"Show title in browser window as ""Prefix - title""",Mostrar título en la ventana del navegador como "Prefijo - título" | |||
DocType: File,Attached To DocType,Asociado A DocType | |||
apps/frappe/frappe/model/base_document.py +535,Row #{0}:,Fila # {0}: | |||
apps/frappe/frappe/model/base_document.py +534,Row #{0}:,Fila # {0}: | |||
apps/frappe/frappe/utils/response.py +134,You need to be logged in and have System Manager Role to be able to access backups.,"Necesitas estar conectado y tener la función de Administrador del Sistema, para poder tener acceso a las copias de seguridad ." | |||
DocType: Website Settings,Title Prefix,Prefijo del Título | |||
DocType: DocField,Section Break,Salto de sección | |||
@@ -527,7 +527,7 @@ DocType: Print Settings,PDF Settings,Configuración de PDF | |||
apps/frappe/frappe/templates/includes/login/login.js +193,Oops! Something went wrong,Oups! Algo salió mal | |||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +54,For ranges,Por rangos | |||
DocType: Web Form,Select DocType,Seleccione tipo de documento | |||
apps/frappe/frappe/public/js/legacy/form.js +776,Permanently Submit {0}?,Presentar permanentemente {0}? | |||
apps/frappe/frappe/public/js/legacy/form.js +751,Permanently Submit {0}?,Presentar permanentemente {0}? | |||
DocType: Email Account,"e.g. ""Support"", ""Sales"", ""Jerry Yang""","por ejemplo ""Soporte "","" Ventas "","" Jerry Yang """ | |||
apps/frappe/frappe/config/setup.py +209,"Actions for workflow (e.g. Approve, Cancel).","Acciones para los flujos de trabajo (por ejemplo: Aprobar, Cancelar)." | |||
DocType: Communication,Feedback,Comentarios | |||
@@ -8,7 +8,7 @@ DocType: Workflow State,pause,pausar | |||
DocType: User,Facebook Username,Usuário do Facebook | |||
DocType: System Settings,Note: Multiple sessions will be allowed in case of mobile device,Observação: Serão permitidas múltiplas sessões no caso de dispositivo móvel | |||
apps/frappe/frappe/email/queue.py +210,Cannot send this email. You have crossed the sending limit of {0} emails for this month.,Não é possível enviar este email. Você excedeu o limite de envio de {0} emails para este mês. | |||
apps/frappe/frappe/public/js/legacy/form.js +776,Permanently Submit {0}?,Confirmar Permanentemente {0} ? | |||
apps/frappe/frappe/public/js/legacy/form.js +751,Permanently Submit {0}?,Confirmar Permanentemente {0} ? | |||
DocType: Workflow,If Checked workflow status will not override status in list view,Uma vez selecionado o status do fluxo de trabalho não sobrescreverá o status do documentos na visualização da lista | |||
apps/frappe/frappe/client.py +280,Invalid file path: {0},Caminho de arquivo inválido: {0} | |||
DocType: Workflow State,eye-open,olho aberto | |||
@@ -24,7 +24,7 @@ apps/frappe/frappe/config/core.py +42,Logs,Logs | |||
DocType: Custom DocPerm,This role update User Permissions for a user,Este papel arualiza Permissões do Usuário para um usuário | |||
apps/frappe/frappe/public/js/frappe/model/model.js +507,Rename {0},Mudar o nome {0} | |||
DocType: Workflow State,zoom-out,diminuir zoom | |||
apps/frappe/frappe/public/js/legacy/form.js +67,Cannot open {0} when its instance is open,Não é possível abrir {0} quando sua instância está aberta | |||
apps/frappe/frappe/public/js/legacy/form.js +66,Cannot open {0} when its instance is open,Não é possível abrir {0} quando sua instância está aberta | |||
apps/frappe/frappe/model/document.py +930,Table {0} cannot be empty,Tabela {0} não pode ser vazio | |||
apps/frappe/frappe/public/js/frappe/views/reports/grid_report.js +852,With Ledgers,Com Razões | |||
apps/frappe/frappe/public/js/frappe/views/image/image_view.js +15,Images,Imagens | |||
@@ -34,19 +34,19 @@ apps/frappe/frappe/model/document.py +904,Beginning with,Começando com | |||
apps/frappe/frappe/core/page/data_import_tool/exporter.py +52,Data Import Template,Modelo de importação de dados | |||
apps/frappe/frappe/public/js/frappe/model/model.js +31,Parent,Parente | |||
DocType: About Us Settings,"""Team Members"" or ""Management""","Membros da Equipe" ou "Gerenciamento" | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +453,Default for 'Check' type of field must be either '0' or '1',"Padrão para ""Verificar"" o tipo de campo deve ser '0' ou '1'" | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +457,Default for 'Check' type of field must be either '0' or '1',"Padrão para ""Verificar"" o tipo de campo deve ser '0' ou '1'" | |||
DocType: Email Account,Enable Incoming,Ativar Entrada | |||
apps/frappe/frappe/www/login.html +22,Email Address,Endereço de Email | |||
DocType: Communication,Unread Notification Sent,Notificação de mensagem não lida enviada | |||
apps/frappe/frappe/public/js/frappe/misc/tools.js +8,Export not allowed. You need {0} role to export.,Exportação não é permitido . Você precisa da função {0} para exportar . | |||
DocType: Email Group,Email Group,Grupo de Emails | |||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +460,Not Like,Não Parecido | |||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +479,Not Like,Não Parecido | |||
apps/frappe/frappe/config/setup.py +220,"Change field properties (hide, readonly, permission etc.)","Alterar as propriedades do campo (esconder , readonly , permissão etc )" | |||
DocType: Workflow State,lock,trancar | |||
apps/frappe/frappe/config/website.py +78,Settings for Contact Us Page.,Configurações da Página Fale Conosco. | |||
apps/frappe/frappe/core/doctype/user/user.py +877,Administrator Logged In,Administrador logou-se | |||
DocType: Contact Us Settings,"Contact options, like ""Sales Query, Support Query"" etc each on a new line or separated by commas.","Opções de contato, como ""Perguntas sobre Vendas, Perguntas de suporte"", etc cada uma em uma nova linha ou separadas por vírgulas." | |||
apps/frappe/frappe/public/js/frappe/form/control.js +1895,Insert,Insert | |||
apps/frappe/frappe/public/js/frappe/form/control.js +1896,Insert,Insert | |||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +54,For ranges,Para faixas | |||
DocType: Workflow State,indent-right,indentar à direita | |||
apps/frappe/frappe/public/js/frappe/misc/pretty_date.js +46,1 minute ago,1 minuto atrás | |||
@@ -83,11 +83,11 @@ DocType: OAuth Bearer Token,Refresh Token,Token de Atualização | |||
apps/frappe/frappe/email/doctype/newsletter/newsletter.py +35,Newsletter has already been sent,O Boletim Informativo já foi enviado | |||
apps/frappe/frappe/core/report/permitted_documents_for_user/permitted_documents_for_user.py +33,Please specify user,"Por favor, especifique usuário" | |||
DocType: Email Unsubscribe,Email Unsubscribe,Cancelar inscrição de email | |||
apps/frappe/frappe/desk/page/setup_wizard/setup_wizard.js +504,The first user will become the System Manager (you can change this later).,O primeiro usuário será o System Manager (você pode mudar isso mais tarde). | |||
apps/frappe/frappe/desk/page/setup_wizard/setup_wizard.js +516,The first user will become the System Manager (you can change this later).,O primeiro usuário será o System Manager (você pode mudar isso mais tarde). | |||
,App Installer,Instalador de Aplicativos | |||
apps/frappe/frappe/public/js/frappe/upload.js +296,Uploading...,Carregando... | |||
DocType: Email Domain,Email Domain,Domínio de Email | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +698,{0}: Cannot set Import without Create,{0}: Não é possível definir Importação sem Criar | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +702,{0}: Cannot set Import without Create,{0}: Não é possível definir Importação sem Criar | |||
apps/frappe/frappe/public/js/frappe/views/reports/reportview.js +861,Drag to sort columns,Arraste para classificar colunas | |||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder_column_selector.html +2,Widths can be set in px or %.,Larguras podem ser definidas em px ou %. | |||
apps/frappe/frappe/public/js/frappe/form/print.js +101,Start,Iniciar | |||
@@ -96,7 +96,7 @@ DocType: Portal Settings,Standard Sidebar Menu,Menu Lateral Padrão | |||
apps/frappe/frappe/core/doctype/file/file.py +167,Cannot delete Home and Attachments folders,Não é possível excluir pastas Inicial e Anexos | |||
apps/frappe/frappe/config/desk.py +19,Files,Arquivos | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +6,Permissions get applied on Users based on what Roles they are assigned.,As permissões são aplicadas em usuários com base nas funções que lhe são atribuídas. | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +459,You are not allowed to send emails related to this document,Você não tem permissão para enviar emails relacionados a este documento | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +460,You are not allowed to send emails related to this document,Você não tem permissão para enviar emails relacionados a este documento | |||
apps/frappe/frappe/custom/doctype/customize_form/customize_form.js +238,Reqd,Solicitado | |||
apps/frappe/frappe/core/doctype/communication/email.py +263,Unable to find attachment {0},Incapaz de encontrar o anexo {0} | |||
apps/frappe/frappe/custom/doctype/customize_form/customize_form.js +226,Assign a permission level to the field.,Atribuir um nível de permissão para o campo. | |||
@@ -121,7 +121,6 @@ DocType: Workflow State,headphones,fones de ouvido | |||
DocType: Email Account,e.g. replies@yourcomany.com. All replies will come to this inbox.,eg replies@yourcomany.com. Todas as respostas virão a esta caixa de entrada. | |||
apps/frappe/frappe/templates/includes/login/login.js +36,Valid email and name required,É necessário email válido e nome | |||
DocType: DocType,Hide Heading,Ocultar Título | |||
apps/frappe/frappe/public/js/frappe/form/templates/form_links.html +2,Related Documents,Documentos Relacionados | |||
DocType: Workflow State,remove-circle,remove-círculo | |||
DocType: Contact,Is Primary Contact,É o contato principal | |||
apps/frappe/frappe/config/website.py +68,Javascript to append to the head section of the page.,Javascript para acrescentar ao cabeçalho da página. | |||
@@ -132,7 +131,7 @@ apps/frappe/frappe/model/db_schema.py +563,Fieldname {0} cannot have special cha | |||
apps/frappe/frappe/config/setup.py +121,Update many values at one time.,Atualizar muitas informações de uma só vez. | |||
apps/frappe/frappe/model/document.py +538,Error: Document has been modified after you have opened it,Erro: O documento foi modificado depois de aberto | |||
apps/frappe/frappe/core/doctype/communication/feed.py +63,{0} logged out: {1},{0} deslogado: {1} | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +719,{0}: Cannot set Assign Submit if not Submittable,{0}: Não é possível definir atributo Enviar se não pode ser enviado | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +723,{0}: Cannot set Assign Submit if not Submittable,{0}: Não é possível definir atributo Enviar se não pode ser enviado | |||
apps/frappe/frappe/desk/page/chat/chat.js +54,Message from {0},Mensagem do {0} | |||
DocType: Newsletter,Newsletter,Boletim Informativo | |||
DocType: Web Form,Button Help,Botão de Ajuda | |||
@@ -142,7 +141,7 @@ DocType: Address Template,System Manager,Administrador do Sistema | |||
DocType: Dropbox Settings,Allow Dropbox Access,Permitir Acesso Dropbox | |||
DocType: Workflow State,plus-sign,sinal de mais | |||
apps/frappe/frappe/desk/page/setup_wizard/setup_wizard.py +24,Setup already complete,Configuração já está concluída | |||
apps/frappe/frappe/__init__.py +890,App {0} is not installed,App {0} não está instalado | |||
apps/frappe/frappe/__init__.py +889,App {0} is not installed,App {0} não está instalado | |||
DocType: Workflow State,Refresh,Atualizar | |||
apps/frappe/frappe/public/js/frappe/ui/base_list.js +76,Nothing to show,Nada para mostrar | |||
apps/frappe/frappe/public/js/frappe/model/model.js +24,Liked By,Gostou por | |||
@@ -158,14 +157,14 @@ apps/frappe/frappe/printing/page/print_format_builder/print_format_builder_start | |||
DocType: Customize Form,Is Table,É Tabela | |||
DocType: Website Settings,Set Banner from Image,Definir imagem como banner | |||
apps/frappe/frappe/templates/emails/new_user.html +3,A new account has been created for you at {0},Uma nova conta foi criada para você em {0} | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +448,Enter Email Recipient(s),Digite email do Destinatário(s) | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +449,Enter Email Recipient(s),Digite email do Destinatário(s) | |||
apps/frappe/frappe/utils/bot.py +83,Can't identify open {0}. Try something else.,Não é possível identificar aberto {0}. Tente outra coisa. | |||
apps/frappe/frappe/website/doctype/web_form/templates/web_form.html +355,Your information has been submitted,Suas informações foram enviadas | |||
apps/frappe/frappe/core/doctype/user/user.py +292,User {0} cannot be deleted,O usuário {0} não pode ser excluído | |||
apps/frappe/frappe/public/js/frappe/request.js +113,Another transaction is blocking this one. Please try again in a few seconds.,"Outra transação está bloqueando essa. Por favor, tente novamente em alguns segundos." | |||
DocType: DocType,App,Aplicativo | |||
DocType: Communication,Attachment,Anexos | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +136,module name...,nome do módulo ... | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +139,module name...,nome do módulo ... | |||
DocType: Custom Field,Fieldname,Nome do Campo | |||
DocType: User,Tile,Telha | |||
apps/frappe/frappe/templates/includes/login/login.js +106,Verifying...,Verificando... | |||
@@ -193,12 +192,12 @@ apps/frappe/frappe/public/js/frappe/form/footer/timeline.js +431,{0} from {1} to | |||
DocType: Web Form,Amount Based On Field,Total Baseado no Campo | |||
apps/frappe/frappe/core/doctype/docshare/docshare.py +34,User is mandatory for Share,Usuário é obrigatória para Partilhar | |||
DocType: Web Form,Allow Incomplete Forms,Permitir Formulários Incompletos | |||
apps/frappe/frappe/model/base_document.py +470,{0} must be set first,{0} deve ser definida primeiro | |||
apps/frappe/frappe/model/base_document.py +469,{0} must be set first,{0} deve ser definida primeiro | |||
apps/frappe/frappe/utils/password_strength.py +31,"Use a few words, avoid common phrases.","Use algumas palavras, evite frases comuns." | |||
apps/frappe/frappe/core/page/data_import_tool/exporter.py +65,"If you are uploading new records, ""Naming Series"" becomes mandatory, if present.","Se você estiver fazendo upload de novos registros, a coluna ""Naming Series"" torna-se obrigatória, se presente." | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +280,DocType can only be renamed by Administrator,DocType só pode ser renomeado pelo Administrador | |||
apps/frappe/frappe/public/js/frappe/form/footer/timeline.js +442,changed value of {0},mudou o valor de {0} | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +505,Fold can not be at the end of the form,Fold não pode ser no final da forma | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +509,Fold can not be at the end of the form,Fold não pode ser no final da forma | |||
DocType: Communication,Bounced,Bounced | |||
DocType: Deleted Document,Deleted Name,Nome Excluído | |||
apps/frappe/frappe/config/setup.py +14,System and Website Users,Usuários do sistema e do site | |||
@@ -209,7 +208,7 @@ apps/frappe/frappe/public/js/frappe/ui/toolbar/toolbar.js +234,"Your download is | |||
apps/frappe/frappe/www/feedback.html +23,Your rating: ,Seu rating: | |||
DocType: Print Settings,"Always add ""Draft"" Heading for printing draft documents","Sempre adicionar ""Rascunho"" no cabeçalho para impressão de documentos não enviados" | |||
DocType: About Us Settings,Website Manager,Administrador do Site | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +429,Field {0} in row {1} cannot be hidden and mandatory without default,"O campo {0} na linha {1} não pode ser escondido e obrigatória , sem padrão" | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +433,Field {0} in row {1} cannot be hidden and mandatory without default,"O campo {0} na linha {1} não pode ser escondido e obrigatória , sem padrão" | |||
DocType: Print Settings,Send document web view link in email,Enviar link no email para visualizar o documento online | |||
DocType: Currency,"Sub-currency. For e.g. ""Cent""",Sub-moeda. Por exemplo "Centavo" | |||
DocType: Letter Head,Check this to make this the default letter head in all prints,Marque esta opção para tornar este o cabeçalho padrão em todas as impressões | |||
@@ -219,18 +218,18 @@ DocType: Version,Version,Versão | |||
DocType: User,Fill Screen,Preencher Tela | |||
apps/frappe/frappe/core/page/data_import_tool/data_import_main.html +67,1. Select File,1. Selecionar arquivo | |||
apps/frappe/frappe/public/js/frappe/form/grid.js +599,Edit via Upload,Editar via Upload | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +132,"document type..., e.g. customer","Tipo de documento ..., por exemplo: cliente" | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +135,"document type..., e.g. customer","Tipo de documento ..., por exemplo: cliente" | |||
DocType: Workflow State,barcode,Código de barras | |||
apps/frappe/frappe/config/setup.py +232,Add your own translations,Adicione suas próprias traduções | |||
DocType: About Us Team Member,About Us Team Member,Sobre Nós - Membros da Equipe | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +5,"Permissions are set on Roles and Document Types (called DocTypes) by setting rights like Read, Write, Create, Delete, Submit, Cancel, Amend, Report, Import, Export, Print, Email and Set User Permissions.","As permissões são definidas em Funções e Tipos de Documentos (chamados Doctypes ) , definindo direitos como Ler, Escrever, Criar, Deletar, Enviar, Cancelar, Corrigir, Reportar, Importar, Exportar, Imprimir, Email e Definir Permissões de Usuário." | |||
apps/frappe/frappe/core/page/user_permissions/user_permissions.js +19,"Apart from Role based Permission Rules, you can apply User Permissions based on DocTypes.","Além de função com base em regras de permissão, você pode aplicar permissões de usuário baseado em doctypes ." | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +550,Image field must be a valid fieldname,Campo de imagem deve ser um nome de campo válido | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +554,Image field must be a valid fieldname,Campo de imagem deve ser um nome de campo válido | |||
DocType: Property Setter,ID (name) of the entity whose property is to be set,ID (nome) da entidade cuja propriedade é para ser definida | |||
DocType: Website Settings,Website Theme Image Link,Link da Imagem do Tema do Site | |||
DocType: Web Form,Sidebar Items,Itens da barra lateral | |||
apps/frappe/frappe/core/report/permitted_documents_for_user/permitted_documents_for_user.js +30,Show Permissions,Mostrar Permissões | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +570,Timeline field must be a Link or Dynamic Link,Campo Timeline deve ser um link ou link dinâmico | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +574,Timeline field must be a Link or Dynamic Link,Campo Timeline deve ser um link ou link dinâmico | |||
apps/frappe/frappe/public/js/frappe/form/multi_select_dialog.js +53,Date Range,Intervalo entre datas | |||
DocType: About Us Settings,Introduce your company to the website visitor.,Apresente sua empresa para o visitante do site. | |||
apps/frappe/frappe/public/js/frappe/form/workflow.js +116,To,Para | |||
@@ -248,11 +247,11 @@ DocType: Print Format,Style Settings,Configurações de Estilo | |||
DocType: Contact,Sales Manager,Gerente de Vendas | |||
apps/frappe/frappe/public/js/frappe/model/model.js +513,Rename,Renomear | |||
DocType: Print Format,Format Data,Formato de dados | |||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +460,Like,Parecido | |||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +479,Like,Parecido | |||
apps/frappe/frappe/core/page/user_permissions/user_permissions.js +251,Allow User,Permitir que o usuário | |||
apps/frappe/frappe/config/setup.py +59,Check which Documents are readable by a User,Confira quais os documentos são lidos por um Usuário | |||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +216,use % as wildcard,usar % como coringa | |||
apps/frappe/frappe/email/doctype/email_account/email_account.js +150,"Email Domain not configured for this account, Create one?","Domínio de email não configurado para esta conta, criar um?" | |||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +229,use % as wildcard,usar % como coringa | |||
apps/frappe/frappe/email/doctype/email_account/email_account.js +151,"Email Domain not configured for this account, Create one?","Domínio de email não configurado para esta conta, criar um?" | |||
DocType: User,Reset Password Key,Redefinição de senha chave | |||
DocType: Email Account,Enable Auto Reply,Ativar resposta automática | |||
DocType: Workflow State,zoom-in,aumentar zoom | |||
@@ -280,7 +279,7 @@ DocType: Property Setter,Property Setter overrides a standard DocType or Field p | |||
apps/frappe/frappe/core/doctype/user/user.py +689,Cannot Update: Incorrect / Expired Link.,Não é possível atualizar : Link incorreto / expirado. | |||
apps/frappe/frappe/utils/password_strength.py +58,Better add a few more letters or another word,Recomenda-se adicionar mais algumas letras ou colocar uma palavra adicional | |||
apps/frappe/frappe/core/doctype/user/user.py +405,Username {0} already exists,O nome de usuário {0} já existe | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +725,{0}: Cannot set import as {1} is not importable,{0}: Não é possível definir importação como {1} se não é importável | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +729,{0}: Cannot set import as {1} is not importable,{0}: Não é possível definir importação como {1} se não é importável | |||
apps/frappe/frappe/contacts/doctype/address/address.py +110,There is an error in your Address Template {0},Há um erro no seu modelo de endereço {0} | |||
DocType: Workflow State,hdd,hdd | |||
DocType: ToDo,High,Alta | |||
@@ -302,11 +301,11 @@ DocType: Website Theme,Google Font (Text),Google Font (Texto) | |||
apps/frappe/frappe/email/doctype/email_unsubscribe/email_unsubscribe.py +31,{0} already unsubscribed for {1} {2},{0} já teve sua sua inscrição cancelada para {1} {2} | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js +327,Did not remove,Não removido | |||
apps/frappe/frappe/desk/like.py +89,Liked,Gostou | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +437,'In List View' not allowed for type {0} in row {1},'Visualização em Lista' não pode ser utilizado para o tipo {0} na linha {1} | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +441,'In List View' not allowed for type {0} in row {1},'Visualização em Lista' não pode ser utilizado para o tipo {0} na linha {1} | |||
DocType: Custom Field,Select the label after which you want to insert new field.,Selecione a etiqueta após a qual você deseja inserir um novo campo. | |||
,Document Share Report,Relatório de Documentos Compartilhados | |||
DocType: User,Last Login,Último Login | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +597,Fieldname is required in row {0},Nome do campo é necessário na linha {0} | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +600,Fieldname is required in row {0},Nome do campo é necessário na linha {0} | |||
DocType: Custom Field,Adds a custom field to a DocType,Adiciona um campo personalizado para um Tipo de Documento (DocType) | |||
DocType: File,Is Home Folder,É Home Folder | |||
apps/frappe/frappe/core/page/user_permissions/user_permissions.js +140,Upload and Sync,Upload e Sincronizar | |||
@@ -318,13 +317,13 @@ apps/frappe/frappe/config/setup.py +89,Log of error during requests.,Log de erro | |||
apps/frappe/frappe/email/doctype/newsletter/newsletter.py +193,{0} has been successfully added to the Email Group.,"{0} foi adicionado com sucesso ao grupo de emails," | |||
apps/frappe/frappe/public/js/frappe/upload.js +364,Make file(s) private or public?,Tornar o(s) arquivo(s) privados ou públicos? | |||
DocType: DocShare,Everyone,Todos | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +672,"{0}: Only one rule allowed with the same Role, Level and {1}","{0}: Apenas uma regra de permissão com a mesma função, nível e {1}" | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +676,"{0}: Only one rule allowed with the same Role, Level and {1}","{0}: Apenas uma regra de permissão com a mesma função, nível e {1}" | |||
DocType: Email Queue,Add Unsubscribe Link,Adicionar link para cancelar inscrição | |||
DocType: Custom DocPerm,Filter records based on User Permissions defined for a user,Filtrar registros com base em permissões de usuário definidos para um usuário | |||
DocType: PayPal Settings,API Password,Senha da API | |||
apps/frappe/frappe/custom/doctype/custom_field/custom_field.py +40,Fieldname not set for Custom Field,Fieldname não definida para campo personalizado | |||
apps/frappe/frappe/public/js/frappe/model/model.js +22,Last Updated By,Última atualização por | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +509,There were errors while sending email. Please try again.,"Ocorreram erros durante o envio de email. Por favor, tente novamente." | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +520,There were errors while sending email. Please try again.,"Ocorreram erros durante o envio de email. Por favor, tente novamente." | |||
DocType: Portal Settings,Portal Settings,Configurações do Portal | |||
apps/frappe/frappe/core/doctype/communication/communication.js +117,Are you sure you want to relink this communication to {0}?,Você tem certeza que deseja relinkar a comunicação para {0}? | |||
DocType: Email Group Member,Email Group Member,Membro do Grupo de Emails | |||
@@ -339,32 +338,32 @@ DocType: Workflow State,play,jogar | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js +408,Did not add,Não adicionado | |||
DocType: Contact Us Settings,Contact Us Settings,Configurações do Fale Conosco | |||
DocType: Workflow State,text-width,largura de texto | |||
apps/frappe/frappe/public/js/legacy/form.js +144,Maximum Attachment Limit for this record reached.,Limite máximo de anexo para este recorde atingido. | |||
apps/frappe/frappe/public/js/legacy/form.js +142,Maximum Attachment Limit for this record reached.,Limite máximo de anexo para este recorde atingido. | |||
DocType: Email Alert,View Properties (via Customize Form),Exibir Propriedades (via Personalizar Formulário) | |||
DocType: Note Seen By,Note Seen By,Nota Vista por | |||
DocType: Feedback Trigger,Check Communication,Checar Comunicação | |||
apps/frappe/frappe/core/doctype/report/report.js +5,Report Builder reports are managed directly by the report builder. Nothing to do.,Os relatórios são gerenciados diretamente pelo sistema. Nada a fazer. | |||
apps/frappe/frappe/email/doctype/newsletter/newsletter.py +163,Please verify your Email Address,"Por favor, verifique seu endereço de email" | |||
apps/frappe/frappe/model/document.py +903,none of,nenhum | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +66,Send Me A Copy,Envie-me uma Cópia | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +65,Send Me A Copy,Envie-me uma Cópia | |||
apps/frappe/frappe/core/page/user_permissions/user_permissions.js +127,Upload User Permissions,Publique as permissões de usuário | |||
apps/frappe/frappe/config/website.py +7,Web Site,Web Site | |||
apps/frappe/frappe/core/page/desktop/all_applications_dialog.html +8,Checked items will be shown on desktop,Itens marcados serão mostrado na área de trabalho | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +715,{0} cannot be set for Single types,{0} não pode ser ajustada para os modelos únicos | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +719,{0} cannot be set for Single types,{0} não pode ser ajustada para os modelos únicos | |||
apps/frappe/frappe/public/js/frappe/views/kanban/kanban_board.js +858,Kanban Board {0} does not exist.,Painel Kanban {0} não existe. | |||
apps/frappe/frappe/public/js/frappe/form/form_viewers.js +48,{0} are currently viewing this document,{0} está vendo atualmente este documento | |||
apps/frappe/frappe/custom/doctype/customize_form/customize_form.py +151,{0} updated,{0} atualizado(a) | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +705,Report cannot be set for Single types,Relatório não pode ser ajustada para os modelos únicos | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +709,Report cannot be set for Single types,Relatório não pode ser ajustada para os modelos únicos | |||
DocType: Email Account,Awaiting Password,Aguardando Senha | |||
DocType: Address,Address Line 1,Endereço | |||
apps/frappe/frappe/utils/data.py +441,Cent,Centavo | |||
apps/frappe/frappe/config/setup.py +204,"States for workflow (e.g. Draft, Approved, Cancelled).","Status para o fluxo de trabalho (por exemplo, rascunho, aprovado, cancelado)." | |||
DocType: Print Settings,Allow Print for Draft,Permitir impressão para rascunho | |||
apps/frappe/frappe/public/js/legacy/form.js +357,Submit this document to confirm,Enviar este documento para confirmar | |||
apps/frappe/frappe/public/js/legacy/form.js +338,Submit this document to confirm,Enviar este documento para confirmar | |||
DocType: Contact,Unsubscribed,Inscrição Cancelada | |||
apps/frappe/frappe/public/js/frappe/misc/rating_icons.html +2,Rating: ,Rating: | |||
apps/frappe/frappe/website/js/web_form.js +259,Uploading files please wait for a few seconds.,"Fazendo upload de arquivos, por favor aguarde alguns segundos." | |||
apps/frappe/frappe/desk/page/setup_wizard/setup_wizard.js +497,Attach Your Picture,Anexe sua Imagem | |||
apps/frappe/frappe/desk/page/setup_wizard/setup_wizard.js +509,Attach Your Picture,Anexe sua Imagem | |||
apps/frappe/frappe/core/doctype/version/version_view.html +69,Row Values Changed,Valores das Linhas Mudaram | |||
DocType: Workflow State,Stop,Parar | |||
DocType: Footer Item,Link to the page you want to open. Leave blank if you want to make it a group parent.,Link para a página que você deseja abrir. Deixe em branco se você quiser torná-lo um pai grupo. | |||
@@ -373,7 +372,7 @@ DocType: Blogger,User ID of a Blogger,ID do usuário de um Blogger | |||
apps/frappe/frappe/core/doctype/user/user.py +287,There should remain at least one System Manager,Não deve permanecer pelo menos um gestor de sistema | |||
DocType: Print Format,Align Labels to the Left,Alinhar etiquetas à esquerda | |||
DocType: Workflow State,circle-arrow-right,círculo de seta à direita | |||
apps/frappe/frappe/public/js/legacy/form.js +73,Cannot open instance when its {0} is open,"Não é possível abrir instância , quando o seu {0} é aberto" | |||
apps/frappe/frappe/public/js/legacy/form.js +72,Cannot open instance when its {0} is open,"Não é possível abrir instância , quando o seu {0} é aberto" | |||
apps/frappe/frappe/desk/page/applications/applications.py +79,Queued for install,Na fila para instalação | |||
DocType: Newsletter,Send Unsubscribe Link,Enviar link para cancelar inscrição | |||
DocType: Report,Script Report,Relatório Script | |||
@@ -433,7 +432,7 @@ apps/frappe/frappe/core/page/data_import_tool/data_import_tool.js +213,Import Fa | |||
DocType: Email Account,Auto Reply Message,Resposta Automática | |||
DocType: Contact,User ID,ID de Usuário | |||
DocType: File,Lft,LFT | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +135,Open a module or tool,Abra um módulo ou ferramenta | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +138,Open a module or tool,Abra um módulo ou ferramenta | |||
DocType: Communication,Delivery Status,Status da Entrega | |||
DocType: Module Def,App Name,Nome do App | |||
DocType: Workflow,"Field that represents the Workflow State of the transaction (if field is not present, a new hidden Custom Field will be created)","Campo que representa o status da transação no fluxo de trabalho (se o campo não estiver presente, um novo campo oculto personalizado será criado)" | |||
@@ -441,7 +440,7 @@ apps/frappe/frappe/utils/oauth.py +194,Email not verified with {1},Email não ve | |||
DocType: Help Article,Knowledge Base Contributor,Colaborador da Base de Conhecimento | |||
DocType: Communication,Sent Read Receipt,Enviar Confirmação de Leitura | |||
DocType: Email Queue,Unsubscribe Method,Método de Cancelamento de Inscrição | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +80,Select Languages,Selecionar Idiomas | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +79,Select Languages,Selecionar Idiomas | |||
apps/frappe/frappe/integrations/doctype/razorpay_settings/razorpay_settings.py +78,Seems API Key or API Secret is wrong !!!,Parece que a chave API ou o segredo da API estão errados !!! | |||
DocType: File,Attached To Name,Anexado Para Nome | |||
apps/frappe/frappe/email/receive.py +95,Invalid User Name or Support Password. Please rectify and try again.,"Nome de usuário ou senha inválidos. Por favor, corrigir e tentar novamente." | |||
@@ -454,7 +453,7 @@ DocType: Customize Form,Enter Form Type,Digite o Tipo de Formulário | |||
apps/frappe/frappe/public/js/frappe/list/list_sidebar_stat.html +5,No records tagged.,Não há registros marcados. | |||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder.js +466,Remove Field,Remover Campo | |||
DocType: User,Send Password Update Notification,Enviar notificação de alteração de senha | |||
apps/frappe/frappe/public/js/legacy/form.js +63,"Allowing DocType, DocType. Be careful!","Permitindo DocType , DocType . Tenha cuidado !" | |||
apps/frappe/frappe/public/js/legacy/form.js +62,"Allowing DocType, DocType. Be careful!","Permitindo DocType , DocType . Tenha cuidado !" | |||
apps/frappe/frappe/config/core.py +32,"Customized Formats for Printing, Email","Formatos personalizados para impressão, Email" | |||
apps/frappe/frappe/public/js/frappe/desk.js +460,Updated To New Version,Atualizado para uma Nova Versão | |||
DocType: Custom Field,Depends On,Depende de | |||
@@ -532,7 +531,7 @@ apps/frappe/frappe/desk/page/applications/applications.py +112,Downloading App { | |||
DocType: Communication,Feedback Request,Solicitação de Feedback | |||
apps/frappe/frappe/www/login.html +30,Sign in,Entrar | |||
DocType: System Settings,Backups,Backups | |||
apps/frappe/frappe/public/js/frappe/form/layout.js +106,Hide Details,Ocultar Detalhes | |||
apps/frappe/frappe/public/js/frappe/form/layout.js +133,Hide Details,Ocultar Detalhes | |||
DocType: Workflow State,Tasks,Tarefas | |||
DocType: Blog Settings,Blog Settings,Configurações do Blog | |||
DocType: Workflow State,bullhorn,megafone | |||
@@ -545,9 +544,8 @@ DocType: Website Settings,Hide Footer Signup,Esconder Link de Inscrição do Rod | |||
apps/frappe/frappe/public/js/frappe/form/footer/timeline.js +421,cancelled this document,cancelou este documento | |||
apps/frappe/frappe/core/doctype/report/report.js +16,Write a Python file in the same folder where this is saved and return column and result.,Gravar um arquivo Python na mesma pasta onde este é guardado e coluna de retorno e resultado. | |||
DocType: DocType,Sort Field,Ordenar por campo | |||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +424,Edit Filter,Edit Filter | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +411,Field {0} of type {1} cannot be mandatory,O campo {0} do tipo {1} não pode ser obrigatória | |||
DocType: System Settings,"eg. If Apply User Permissions is checked for Report DocType but no User Permissions are defined for Report for a User, then all Reports are shown to that User","por exemplo. Se aplicar permissões do usuário está marcada para o relatório DocType mas não permissões de usuário são definidos para o relatório para um usuário, em seguida, todos os relatórios são mostrados para que o Usuário" | |||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +445,Edit Filter,Edit Filter | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +415,Field {0} of type {1} cannot be mandatory,O campo {0} do tipo {1} não pode ser obrigatória | |||
DocType: System Settings,Session Expiry Mobile,Duração da Sessão Móvel | |||
apps/frappe/frappe/templates/includes/search_box.html +19,Search results for,Pesquisar resultados para | |||
apps/frappe/frappe/public/js/frappe/views/reports/grid_report.js +850,Select To Download:,Selecione para Download: | |||
@@ -591,7 +589,7 @@ apps/frappe/frappe/website/doctype/contact_us_settings/contact_us_settings.js +3 | |||
DocType: User,Block Modules,Módulos de blocos | |||
apps/frappe/frappe/model/db_schema.py +141,Reverting length to {0} for '{1}' in '{2}'; Setting the length as {3} will cause truncation of data.,Revertendo comprimento para {0} para '{1}' em '{2}'; Definir o comprimento como {3} irá causar truncamento de dados. | |||
DocType: Print Format,Custom CSS,CSS Personalizado | |||
apps/frappe/frappe/model/rename_doc.py +375,Ignored: {0} to {1},Ignorados: {0} para {1} | |||
apps/frappe/frappe/model/rename_doc.py +376,Ignored: {0} to {1},Ignorados: {0} para {1} | |||
apps/frappe/frappe/config/setup.py +84,Log of error on automated events (scheduler).,Log de erro sobre eventos automatizados ( programador ) . | |||
apps/frappe/frappe/utils/csvutils.py +75,Not a valid Comma Separated Value (CSV File),Não é um valor CSV válido (arquivo CSV) | |||
DocType: Email Account,Default Incoming,Padrão de Entrada | |||
@@ -628,26 +626,27 @@ apps/frappe/frappe/core/page/user_permissions/user_permissions.js +251,If Docume | |||
apps/frappe/frappe/email/doctype/auto_email_report/auto_email_report.py +48,"%s is not a valid report format. Report format should \ | |||
one of the following %s",%s não é um formato válido de relatório. O formato do relatório deve ser um dos seguintes %s | |||
DocType: Communication,Chat,Conversa ou Chat | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +407,Fieldname {0} appears multiple times in rows {1},Fieldname {0} aparece várias vezes em linhas {1} | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +408,Fieldname {0} appears multiple times in rows {1},Fieldname {0} aparece várias vezes em linhas {1} | |||
apps/frappe/frappe/public/js/frappe/form/footer/timeline.js +460,{0} from {1} to {2} in row #{3},{0} de {1} para {2} na linha #{3} | |||
DocType: Customize Form Field,Number of columns for a field in a Grid (Total Columns in a grid should be less than 11),O número de colunas para um campo numa Grelha (O Total de Colunas em um grid deve ser inferior a 11) | |||
apps/frappe/frappe/www/login.html +93,Have an account? Login,Possui cadastro? Entre | |||
apps/frappe/frappe/public/js/legacy/print_format.js +148,Unknown Print Format: {0},Formato de Impressão desconhecido: {0} | |||
DocType: Workflow State,arrow-down,seta para baixo | |||
apps/frappe/frappe/public/js/frappe/ui/tree.js +130,Collapse,Recolher | |||
apps/frappe/frappe/model/delete_doc.py +161,User not allowed to delete {0}: {1},Usuário não tem permissão para excluir {0}: {1} | |||
apps/frappe/frappe/model/delete_doc.py +162,User not allowed to delete {0}: {1},Usuário não tem permissão para excluir {0}: {1} | |||
apps/frappe/frappe/public/js/frappe/model/model.js +21,Last Updated On,Última atualização em | |||
DocType: Help Article,Likes,Likes | |||
DocType: Website Settings,Top Bar,Barra superior | |||
apps/frappe/frappe/core/page/modules_setup/modules_setup.html +32,Global Settings: Users will only be able to choose checked icons,Configurações Globais: Os Usuários serão capazes de escolher apenas ícones selecionados | |||
apps/frappe/frappe/core/doctype/file/test_file.py +57,Home/Test Folder 2,Início / Teste pasta 2 | |||
DocType: System Settings,Ignore User Permissions If Missing,Ignorar permissões de usuário se ausente | |||
apps/frappe/frappe/public/js/frappe/form/control.js +1016,Please save the document before uploading.,"Por favor, salve o documento antes de fazer upload." | |||
apps/frappe/frappe/public/js/frappe/form/control.js +990,Please save the document before uploading.,"Por favor, salve o documento antes de fazer upload." | |||
apps/frappe/frappe/public/js/frappe/ui/messages.js +214,Enter your password,Digite sua senha | |||
DocType: Dropbox Settings,Dropbox Access Secret,Segredo de Acesso Dropbox | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +503,Fold must come before a Section Break,Dobre deve vir antes de uma quebra de secção | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +507,Fold must come before a Section Break,Dobre deve vir antes de uma quebra de secção | |||
apps/frappe/frappe/public/js/frappe/model/meta.js +190,Last Modified By,Última Alteração por | |||
DocType: Workflow State,hand-down,mão abaixo | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +691,{0}: Cannot set Cancel without Submit,{0}: Não é possível definir Cancelar sem Submeter | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +695,{0}: Cannot set Cancel without Submit,{0}: Não é possível definir Cancelar sem Submeter | |||
apps/frappe/frappe/desk/page/setup_wizard/setup_wizard.js +162,There were errors.,Ocorreram erros. | |||
DocType: DocType,Is Submittable,Pode ser Enviado | |||
apps/frappe/frappe/core/page/data_import_tool/exporter.py +265,Column Labels:,Rótulos de coluna: | |||
@@ -658,7 +657,7 @@ DocType: Custom Script,Script,Script | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/navbar.html +28,My Settings,Minhas Configurações | |||
DocType: Desktop Icon,Force Show,Forçar Exibição | |||
apps/frappe/frappe/auth.py +78,Invalid Request,Requisição Inválida | |||
apps/frappe/frappe/public/js/frappe/form/layout.js +33,This form does not have any input,Este formulário não tem nenhum campo a ser preenchido | |||
apps/frappe/frappe/public/js/frappe/form/layout.js +35,This form does not have any input,Este formulário não tem nenhum campo a ser preenchido | |||
DocType: Footer Item,"Select target = ""_blank"" to open in a new page.","Select target = "" _blank"" para abrir em uma nova página." | |||
apps/frappe/frappe/public/js/frappe/model/model.js +487,Permanently delete {0}?,Excluir Permanentemente {0} ? | |||
apps/frappe/frappe/desk/page/applications/applications.js +45,Not Set,Não Definido | |||
@@ -667,7 +666,7 @@ apps/frappe/frappe/desk/page/setup_wizard/setup_wizard.js +131,Sit tight while y | |||
DocType: Email Queue,Email Queue,Fila de Emails | |||
apps/frappe/frappe/core/page/desktop/desktop.py +12,Add Employees to Manage Them,Adicione colaboradores para gerí-los | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +7,Roles can be set for users from their User page.,As funções podem ser definidas para os usuários através de sua página de Usuário. | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +655,{0}: No basic permissions set,{0}: Nenhum conjunto de permissões básico | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +659,{0}: No basic permissions set,{0}: Nenhum conjunto de permissões básico | |||
apps/frappe/frappe/utils/backups.py +159,Download link for your backup will be emailed on the following email address: {0},Link de download para o seu backup será enviado por email no seguinte endereço de email: {0} | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +14,"Meaning of Submit, Cancel, Amend","Significado de Enviar, Cancelar, Corrigir" | |||
apps/frappe/frappe/desk/doctype/todo/todo_list.js +7,To Do,Atribuições | |||
@@ -676,7 +675,7 @@ DocType: File,Preview HTML,Pré-visualização de HTML | |||
apps/frappe/frappe/desk/doctype/todo/todo.py +20,Assigned to {0}: {1},Atribuído para {0}: {1} | |||
apps/frappe/frappe/public/js/frappe/views/kanban/kanban_board.js +129,Filters saved,Filtros salvos | |||
DocType: DocField,Percent,Por cento | |||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +436,Please set filters,"Por favor, defina filtros" | |||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +435,Please set filters,"Por favor, defina filtros" | |||
apps/frappe/frappe/public/js/frappe/form/linked_with.js +29,Linked With,Relacionado com | |||
DocType: Website Settings,Landing Page,Página de chegada | |||
apps/frappe/frappe/public/js/frappe/form/quick_entry.js +77,{0} Name,{0} Nome | |||
@@ -691,10 +690,10 @@ apps/frappe/frappe/desk/page/applications/applications.js +175,Remove {0} and de | |||
apps/frappe/frappe/desk/page/activity/activity_row.html +34,{0} {1} to {2},{0} {1} para {2} | |||
DocType: User,Login After,Login após | |||
DocType: Print Format,Monospace,Monospace | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +459,Precision should be between 1 and 6,Precisão deve estar entre 1 e 6 | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +463,Precision should be between 1 and 6,Precisão deve estar entre 1 e 6 | |||
apps/frappe/frappe/patches/v6_19/comment_feed_communication.py +131,Assignment,Tarefa | |||
DocType: Workflow State,step-backward,voltar | |||
apps/frappe/frappe/utils/boilerplate.py +262,{app_title},{app_title} | |||
apps/frappe/frappe/utils/boilerplate.py +263,{app_title},{app_title} | |||
apps/frappe/frappe/integrations/doctype/dropbox_settings/dropbox_settings.py +200,Please set Dropbox access keys in your site config,Defina teclas de acesso Dropbox em sua configuração local | |||
apps/frappe/frappe/email/doctype/email_unsubscribe/email_unsubscribe.py +16,Delete this record to allow sending to this email address,Excluir este registro para permitir o envio para esse endereço de email | |||
apps/frappe/frappe/core/page/data_import_tool/exporter.py +66,Only mandatory fields are necessary for new records. You can delete non-mandatory columns if you wish.,"Somente os campos obrigatórios são necessários para novos registros. Você pode excluir colunas não-obrigatórias, se desejar." | |||
@@ -710,7 +709,7 @@ DocType: Custom DocPerm,Amend,Corrigir | |||
DocType: File,Is Attachments Folder,É Pasta de Anexos | |||
apps/frappe/frappe/templates/includes/login/login.js +49,Valid Login id required.,É necessário um usuário válido. | |||
apps/frappe/frappe/desk/doctype/todo/todo.js +30,Re-open,Abrir Novamente | |||
apps/frappe/frappe/model/rename_doc.py +359,Please select a valid csv file with data,"Por favor, selecione um arquivo csv com dados válidos" | |||
apps/frappe/frappe/model/rename_doc.py +360,Please select a valid csv file with data,"Por favor, selecione um arquivo csv com dados válidos" | |||
apps/frappe/frappe/core/doctype/docshare/docshare.py +56,{0} un-shared this document with {1},{0} descompartilhou este documento com {1} | |||
apps/frappe/frappe/public/js/frappe/form/workflow.js +118,Document Status transition from {0} to {1} is not allowed,Transição Status do Documento de {0} para {1} não é permitido | |||
DocType: DocType,"Make ""name"" searchable in Global Search","Tornar ""nome"" pesquisável na Busca Global" | |||
@@ -720,7 +719,6 @@ apps/frappe/frappe/model/document.py +526,Record does not exist,Registro não ex | |||
apps/frappe/frappe/core/doctype/version/version_view.html +13,Original Value,Valor Original | |||
apps/frappe/frappe/utils/oauth.py +288,User {0} is disabled,Usuário {0} está desativado | |||
apps/frappe/frappe/www/404.html +8,Page missing or moved,Página ausente ou mudou | |||
apps/frappe/frappe/public/js/legacy/form.js +192,Edit {0} properties,Editar propriedades de {0} | |||
apps/frappe/frappe/desk/form/load.py +46,Did not load,Não carregue | |||
DocType: Tag Category,Doctypes,Doctypes | |||
apps/frappe/frappe/desk/query_report.py +87,Query must be a SELECT,Consulta deve ser um SELECT | |||
@@ -746,7 +744,7 @@ apps/frappe/frappe/integrations/doctype/ldap_settings/ldap_settings.py +32,Incor | |||
apps/frappe/frappe/email/doctype/email_account/email_account_list.js +6,Default Sending and Inbox,Padrão para Envio e Recebimento | |||
apps/frappe/frappe/core/doctype/file/file_list.js +84,Import .zip,Importar .zip | |||
apps/frappe/frappe/core/report/feedback_ratings/feedback_ratings.js +21,Document ID,ID do Documento | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +552,Image field must be of type Attach Image,Campo de imagem deve ser do tipo Anexar Imagem | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +556,Image field must be of type Attach Image,Campo de imagem deve ser do tipo Anexar Imagem | |||
apps/frappe/frappe/public/js/frappe/form/save.js +141,Mandatory fields required in {0},Os campos obrigatórios exigidos no {0} | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js +95,Reset Permissions for {0}?,Repor permissões para {0} ? | |||
apps/frappe/frappe/core/doctype/version/version_view.html +32,Rows Removed,Linhas Excluídas | |||
@@ -773,7 +771,7 @@ DocType: Customize Form,"Fields separated by comma (,) will be included in the " | |||
apps/frappe/frappe/website/doctype/website_theme/website_theme.py +35,Please Duplicate this Website Theme to customize.,Por favor Duplicar este site Tema para personalizar. | |||
apps/frappe/frappe/config/website.py +73,Settings for About Us Page.,Configurações para a Página Sobre Nós. | |||
DocType: Error Snapshot,Error Snapshot,Snapshot de Erro | |||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +460,In,em | |||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +479,In,em | |||
DocType: Email Alert,Value Change,Mudança de Valor | |||
DocType: Standard Reply,Standard Reply,Resposta Padrão | |||
apps/frappe/frappe/custom/doctype/customize_form/customize_form.js +233,Width of the input box,Largura de entrada da caixa | |||
@@ -784,9 +782,9 @@ apps/frappe/frappe/desk/doctype/bulk_update/bulk_update.js +8,"Field ""value"" i | |||
DocType: Customize Form,Use this fieldname to generate title,Utilize este campo para gerar o título | |||
apps/frappe/frappe/email/doctype/email_group/email_group.js +13,Import Email From,Importar Email do | |||
apps/frappe/frappe/contacts/doctype/contact/contact.js +20,Invite as User,Convidar como Usuário | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +83,Select Attachments,Selecione os Anexos | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +82,Select Attachments,Selecione os Anexos | |||
apps/frappe/frappe/website/js/web_form.js +293,There were errors. Please report this.,"Houveram erros. Por favor, reporte isso." | |||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +380,Loading Report,Carregando Relatório | |||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +379,Loading Report,Carregando Relatório | |||
apps/frappe/frappe/public/js/frappe/form/templates/form_sidebar.html +46,Attach File,Anexar Arquivo | |||
apps/frappe/frappe/templates/emails/password_update.html +1,Password Update Notification,Notificação de Atualização de Senha | |||
apps/frappe/frappe/public/js/frappe/form/footer/assign_to.js +59,Assignment Complete,Atribuição Concluída | |||
@@ -800,7 +798,7 @@ DocType: Custom Field,Default Value,Valor padrão | |||
DocType: Workflow Document State,Update Field,Atualizar Campo | |||
apps/frappe/frappe/desk/page/applications/applications.js +50,Regional Extensions,Extensões regionais | |||
apps/frappe/frappe/core/doctype/communication/email.py +143,Leave this conversation,Deixar essa conversa | |||
apps/frappe/frappe/model/base_document.py +466,Options not set for link field {0},Opções não definida para o campo link {0} | |||
apps/frappe/frappe/model/base_document.py +465,Options not set for link field {0},Opções não definida para o campo link {0} | |||
apps/frappe/frappe/core/page/data_import_tool/data_import_main.html +25,Unselect All,Desmarcar Todos | |||
apps/frappe/frappe/custom/doctype/customize_form/customize_form.py +197,You cannot unset 'Read Only' for field {0},"Você não pode desabilitar ""Somente leitura"" para o campo {0}" | |||
apps/frappe/frappe/core/page/data_import_tool/exporter.py +62,Please do not change the template headings.,"Por favor, não alterar as posições do modelo." | |||
@@ -824,7 +822,7 @@ DocType: Authentication Log,Logout,Sair | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +26,Permissions at higher levels are Field Level permissions. All Fields have a Permission Level set against them and the rules defined at that permissions apply to the field. This is useful in case you want to hide or make certain field read-only for certain Roles.,As permissões em níveis mais elevados são permissões igualdade. Todos os campos têm um conjunto Nível de Permissão contra eles e as regras definidas em que as permissões se aplicam ao campo. Isso é útil no caso de você querer esconder ou fazer determinado campo somente leitura para certas funções. | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +38,"If these instructions where not helpful, please add in your suggestions on GitHub Issues.","Se estas instruções não forem úteis, dê sua sugestão no GitHub." | |||
apps/frappe/frappe/core/doctype/error_snapshot/error_snapshot.html +32,Error Report,Reportar erro | |||
apps/frappe/frappe/model/base_document.py +535,Row #{0}:,Linha # {0}: | |||
apps/frappe/frappe/model/base_document.py +534,Row #{0}:,Linha # {0}: | |||
apps/frappe/frappe/auth.py +245,Login not allowed at this time,Entrada não permitida neste momento | |||
DocType: Async Task,Runtime,Runtime | |||
DocType: DocType,Permissions Settings,Configurações de Permissões | |||
@@ -840,7 +838,7 @@ DocType: DocField,Text,Texto | |||
apps/frappe/frappe/config/setup.py +161,Standard replies to common queries.,Repostas padrões para perguntas comuns. | |||
apps/frappe/frappe/email/doctype/email_account/email_account_list.js +14,Default Sending,Padrão Envio | |||
DocType: Workflow State,volume-off,mudo | |||
apps/frappe/frappe/public/js/frappe/form/footer/timeline_item.html +160,Liked by {0},Aprovado por {0} | |||
apps/frappe/frappe/public/js/frappe/form/footer/timeline_item.html +161,Liked by {0},Aprovado por {0} | |||
,Download Backups,Download de Backups | |||
apps/frappe/frappe/core/doctype/file/test_file.py +43,Home/Test Folder 1,Início / Teste pasta 1 | |||
apps/frappe/frappe/core/page/data_import_tool/data_import_main.html +75,"Do not update, but insert new records.","Não atualizar, mas inserir novos registros." | |||
@@ -895,11 +893,11 @@ apps/frappe/frappe/core/doctype/doctype/doctype.py +377,"DocType's name should s | |||
DocType: Address,Accounts User,Usuário de Contas | |||
DocType: Web Page,HTML for header section. Optional,HTML para a seção de cabeçalho. opcional | |||
apps/frappe/frappe/public/js/frappe/form/templates/form_sidebar.html +13,This feature is brand new and still experimental,Esta funcionalidade é nova e ainda está em fase experimental | |||
apps/frappe/frappe/model/rename_doc.py +364,Maximum {0} rows allowed,Máximo de {0} linhas permitido | |||
apps/frappe/frappe/model/rename_doc.py +365,Maximum {0} rows allowed,Máximo de {0} linhas permitido | |||
DocType: Email Unsubscribe,Global Unsubscribe,Mundial Unsubscribe | |||
apps/frappe/frappe/utils/password_strength.py +157,This is a very common password.,Essa é uma senha muito comum. | |||
apps/frappe/frappe/email/doctype/email_group/email_group.js +9,View,Ver | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +78,Select Print Format,Selecione o Formato de Impressão | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +77,Select Print Format,Selecione o Formato de Impressão | |||
DocType: Portal Settings,Portal Menu,Portal menu | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/search.js +356,Search for anything,Procurar por qualquer coisa | |||
DocType: DocField,Print Hide,Ocultar Impressão | |||
@@ -928,11 +926,11 @@ DocType: Error Snapshot,Snapshot View,Ver Snapshot | |||
apps/frappe/frappe/email/doctype/newsletter/newsletter.py +100,Please save the Newsletter before sending,"Por favor, salve o Boletim Informativo antes de enviar" | |||
DocType: Patch Log,List of patches executed,Lista de correções executado | |||
apps/frappe/frappe/email/doctype/email_unsubscribe/email_unsubscribe.py +21,{0} already unsubscribed,{0} já teve sua inscrição removida | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +70,Communication Medium,Meio de comunicação | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +69,Communication Medium,Meio de comunicação | |||
DocType: Website Settings,Banner HTML,Faixa HTML | |||
apps/frappe/frappe/integrations/doctype/dropbox_settings/dropbox_settings.py +29,Queued for backup. It may take a few minutes to an hour.,Na fila para backup em até uma hora. | |||
apps/frappe/frappe/config/integrations.py +53,Register OAuth Client App,Registrar App OAuth Cliente | |||
apps/frappe/frappe/model/base_document.py +539,"{0} {1} cannot be ""{2}"". It should be one of ""{3}""","{0} {1} não pode ser ""{2}"". Deve pertencer a ""{3}""" | |||
apps/frappe/frappe/model/base_document.py +538,"{0} {1} cannot be ""{2}"". It should be one of ""{3}""","{0} {1} não pode ser ""{2}"". Deve pertencer a ""{3}""" | |||
apps/frappe/frappe/core/page/modules_setup/modules_setup.js +4,Show or Hide Desktop Icons,Mostrar ou ocultar ícones no desktop | |||
apps/frappe/frappe/core/doctype/user/user.py +231,Password Update,Atualização de Senha | |||
DocType: Workflow State,trash,lixo | |||
@@ -966,11 +964,11 @@ apps/frappe/frappe/core/page/user_permissions/user_permissions.py +106,Please up | |||
apps/frappe/frappe/modules/utils.py +202,App not found,App não encontrado | |||
apps/frappe/frappe/core/doctype/communication/communication.py +52,Cannot create a {0} against a child document: {1},Não é possível criar um {0} contra um documento filho: {1} | |||
apps/frappe/frappe/config/desk.py +32,Chat messages and other notifications.,Mensagens do chat e outras notificações. | |||
apps/frappe/frappe/custom/doctype/custom_field/custom_field.py +72,Insert After cannot be set as {0},Depois de inserir não pode ser definido como {0} | |||
apps/frappe/frappe/custom/doctype/custom_field/custom_field.py +76,Insert After cannot be set as {0},Depois de inserir não pode ser definido como {0} | |||
apps/frappe/frappe/public/js/frappe/desk.js +134,Email Account setup please enter your password for: ,"Configuração de email, por favor informe sua senha para:" | |||
DocType: Workflow State,hand-up,mão acima | |||
DocType: Blog Settings,Writers Introduction,Introdução dos Escritores | |||
apps/frappe/frappe/email/doctype/email_alert/email_alert.py +239,Error while evaluating Email Alert {0}. Please fix your template.,Erro ao avaliar Email de Alerta {0}. Corrija seu modelo. | |||
apps/frappe/frappe/email/doctype/email_alert/email_alert.py +244,Error while evaluating Email Alert {0}. Please fix your template.,Erro ao avaliar Email de Alerta {0}. Corrija seu modelo. | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js +140,Select Document Type or Role to start.,Selecione o Tipo de Documento ou Função para começar. | |||
DocType: Contact,Passive,Sem movimento | |||
DocType: Contact,Accounts Manager,Gerente de Contas | |||
@@ -1002,7 +1000,7 @@ DocType: Currency,"How should this currency be formatted? If not set, will use s | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js +252,Show User Permissions,Mostrar Permissões de Usuário | |||
apps/frappe/frappe/utils/response.py +134,You need to be logged in and have System Manager Role to be able to access backups.,Você precisa estar conectado e ter permissão para ser capaz de acessar backups. | |||
apps/frappe/frappe/core/page/usage_info/usage_info.html +22,Remaining,Remanescente | |||
apps/frappe/frappe/public/js/legacy/form.js +139,Please save before attaching.,"Por favor, salve antes de anexar." | |||
apps/frappe/frappe/public/js/legacy/form.js +137,Please save before attaching.,"Por favor, salve antes de anexar." | |||
apps/frappe/frappe/custom/doctype/customize_form/customize_form.py +319,Fieldtype cannot be changed from {0} to {1} in row {2},FieldType não pode ser alterado a partir de {0} a {1} em linha {2} | |||
apps/frappe/frappe/public/js/frappe/form/workflow.js +41,Workflow will start after saving.,Fluxo de trabalho será iníciado após salvar. | |||
apps/frappe/frappe/public/js/frappe/form/templates/set_sharing.html +7,Can Share,Pode Compartilhar | |||
@@ -1011,7 +1009,7 @@ DocType: Workflow State,step-forward,prosseguir | |||
apps/frappe/frappe/core/doctype/user/user.js +42,Refreshing...,Atualizando... | |||
DocType: System Settings,System Settings,Configurações do Sistema | |||
apps/frappe/frappe/email/queue.py +454,This email was sent to {0} and copied to {1},Este email foi enviado para {0} e copiados para {1} | |||
apps/frappe/frappe/public/js/frappe/form/control.js +1470,Create a new {0},Criar um(a) novo(a) {0} | |||
apps/frappe/frappe/public/js/frappe/form/control.js +1432,Create a new {0},Criar um(a) novo(a) {0} | |||
DocType: Workflow State,ok-sign,ok-sinal | |||
DocType: Newsletter,Create and Send Newsletters,Criar e enviar email marketing | |||
apps/frappe/frappe/public/js/frappe/views/reports/grid_report.js +309,From Date must be before To Date,A data inicial deve ser anterior a data final | |||
@@ -1043,13 +1041,13 @@ DocType: Feedback Trigger,Email Field,Campo do Email | |||
apps/frappe/frappe/core/doctype/docshare/docshare.py +49,{0} shared this document with {1},{0} compartilhou este documento com {1} | |||
DocType: Website Settings,Brand Image,Imagem da Marca | |||
apps/frappe/frappe/config/website.py +58,"Setup of top navigation bar, footer and logo.","Configuração de barra de navegação do topo, rodapé, e logotipo." | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +651,For {0} at level {1} in {2} in row {3},Por {0} a nível {1} em {2} na linha {3} | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +655,For {0} at level {1} in {2} in row {3},Por {0} a nível {1} em {2} na linha {3} | |||
DocType: Address,Sales User,Usuário de Vendas | |||
apps/frappe/frappe/config/setup.py +178,Drag and Drop tool to build and customize Print Formats.,Ferramenta de segure e arraste para construir e personalizar formatos de impressão. | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js +434,Set,Conjunto | |||
DocType: Workflow State,align-right,Alinhar à direita | |||
apps/frappe/frappe/core/doctype/file/file.py +211,Folder {0} is not empty,Pasta {0} não está vazio | |||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +269,Field {0} is not selectable.,O campo {0} não é selecionável. | |||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +286,Field {0} is not selectable.,O campo {0} não é selecionável. | |||
DocType: System Settings,Session Expiry,Duração da Sessão | |||
DocType: Bulk Update,Desk,Mesa | |||
apps/frappe/frappe/core/doctype/report/report.js +8,Write a SELECT query. Note result is not paged (all data is sent in one go).,Escreva uma consulta SELECT. Resultado nota não é paginada (todos os dados são enviados de uma só vez). | |||
@@ -1057,7 +1055,7 @@ apps/frappe/frappe/public/js/frappe/views/reports/reportview.js +131,Setup Auto | |||
apps/frappe/frappe/public/js/frappe/form/templates/grid_form.html +25,Ctrl + Down,Ctrl + Seta para baixo | |||
apps/frappe/frappe/utils/password_strength.py +153,This is a top-10 common password.,Essa é uma das 10 senhas mais comuns.. | |||
DocType: Workflow State,chevron-down,divisa-abaixo | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +494,Email not sent to {0} (unsubscribed / disabled),Email não enviado para {0} (inscrição cancelada / desativado) | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +495,Email not sent to {0} (unsubscribed / disabled),Email não enviado para {0} (inscrição cancelada / desativado) | |||
DocType: Currency,Smallest Currency Fraction Value,Menor valor fracionado de moeda | |||
apps/frappe/frappe/public/js/frappe/form/footer/assign_to.js +137,Assign To,Atribuir a | |||
DocType: Web Page,Enable Comments,Ativação de comentários | |||
@@ -1065,18 +1063,18 @@ DocType: User,Restrict user from this IP address only. Multiple IP addresses can | |||
DocType: Website Theme,Google Font (Heading),Fonte do Google (cabeçalho) | |||
apps/frappe/frappe/public/js/frappe/views/treeview.js +204,Select a group node first.,Selecione um nó de grupo primeiro. | |||
DocType: Email Account,"Append as communication against this DocType (must have fields, ""Status"", ""Subject"")","Anexar como a comunicação contra este DocType (deve ter campos, ""status"", ""Assunto"")" | |||
apps/frappe/frappe/model/base_document.py +602,Not allowed to change {0} after submission,Não é permitido alterar {0} após a apresentação | |||
apps/frappe/frappe/model/base_document.py +601,Not allowed to change {0} after submission,Não é permitido alterar {0} após a apresentação | |||
apps/frappe/frappe/core/page/usage_info/usage_info.html +10,Users,Usuários | |||
DocType: Communication,Timeline field Name,Nome do campo da timeline | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager.js +136,Loading,Carregando | |||
apps/frappe/frappe/config/integrations.py +43,"Enter keys to enable login via Facebook, Google, GitHub.","Enter para ativar o login via Facebook , Google, GitHub ." | |||
apps/frappe/frappe/public/js/frappe/ui/tags.js +20,Add a tag,Inclua uma etiqueta | |||
apps/frappe/frappe/public/js/frappe/form/control.js +1284,Please attach a file first.,"Por favor, anexar um arquivo primeiro" | |||
apps/frappe/frappe/public/js/frappe/form/control.js +1250,Please attach a file first.,"Por favor, anexar um arquivo primeiro" | |||
DocType: Website Slideshow Item,Website Slideshow Item,Item do Slideshow do Site | |||
DocType: Portal Settings,Default Role at Time of Signup,Função padrão no momento da inscrição | |||
DocType: DocType,Title Case,Caixa do Título | |||
DocType: Blog Post,Email Sent,Email enviado | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +64,Send As Email,Enviar como email | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +63,Send As Email,Enviar como email | |||
DocType: Website Theme,Link Color,Cor do link | |||
apps/frappe/frappe/core/doctype/user/user.py +99,User {0} cannot be disabled,O usuário {0} não pode ser desativado | |||
apps/frappe/frappe/core/doctype/user/user.py +866,"Dear System Manager,","Caro Administrador de Sistemas," | |||
@@ -1090,7 +1088,7 @@ DocType: Workflow State,file,arquivo | |||
apps/frappe/frappe/www/login.html +108,Back to Login,Voltar para Login | |||
DocType: File,File Size,Tamanho do arquivo | |||
apps/frappe/frappe/website/doctype/web_form/web_form.py +399,You must login to submit this form,Você precisa estar logado para enviar este formulário | |||
apps/frappe/frappe/desk/page/setup_wizard/setup_wizard.js +463,"Select your Country, Time Zone and Currency","Escolha o seu País, Fuso Horário e Moeda" | |||
apps/frappe/frappe/desk/page/setup_wizard/setup_wizard.js +475,"Select your Country, Time Zone and Currency","Escolha o seu País, Fuso Horário e Moeda" | |||
DocType: Async Task,Queued,Enfileiradas | |||
apps/frappe/frappe/public/js/frappe/views/reports/grid_report.js +204,Invalid Filter: {0},Filtro inválido: {0} | |||
DocType: OAuth Bearer Token,Access Token,Token de Acesso | |||
@@ -1115,7 +1113,7 @@ DocType: Contact,Maintenance Manager,Gerente de Manutenção | |||
DocType: Website Theme,Top Bar Text Color,Cor do texto da barra superior | |||
apps/frappe/frappe/core/doctype/file/file.py +370,File '{0}' not found,Arquivo '{0}' não encontrado | |||
DocType: User,Change Password,Alterar a senha | |||
apps/frappe/frappe/public/js/frappe/form/control.js +509,Invalid Email: {0},Email inválido: {0} | |||
apps/frappe/frappe/public/js/frappe/form/control.js +498,Invalid Email: {0},Email inválido: {0} | |||
apps/frappe/frappe/desk/doctype/event/event.py +23,Event end must be after start,Evento final deve ser após o início | |||
apps/frappe/frappe/desk/query_report.py +23,You don't have permission to get a report on: {0},Você não tem permissão para acessar um relatório sobre: {0} | |||
DocType: Blog Post,Blog Post,Mensagem do Blog | |||
@@ -1131,7 +1129,7 @@ apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +18 | |||
DocType: Workflow State,circle-arrow-left,círculo de seta para a esquerda | |||
apps/frappe/frappe/sessions.py +156,Redis cache server not running. Please contact Administrator / Tech support,Servidor de cache Redis não está funcionando. Entre em contato com o Administrador de apoio / Tecnologia | |||
apps/frappe/frappe/contacts/report/addresses_and_contacts/addresses_and_contacts.js +23,Party Name,Nome do Sujeito | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +129,Make a new record,Criar um novo registro | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +132,Make a new record,Criar um novo registro | |||
DocType: LDAP Settings,LDAP First Name Field,Campo Primeiro Nome do LDAP | |||
DocType: Custom Field,Field Description,Descrição do Campo | |||
apps/frappe/frappe/model/naming.py +53,Name not set via Prompt,Nome não definido através Prompt | |||
@@ -1162,7 +1160,7 @@ apps/frappe/frappe/www/update-password.html +111,Please enter the password,Por f | |||
apps/frappe/frappe/www/printview.py +83,Not allowed to print cancelled documents,Não permitido para imprimir documentos cancelados | |||
apps/frappe/frappe/core/page/data_import_tool/exporter.py +269,Info:,Info: | |||
DocType: User,Send Notifications for Transactions I Follow,Enviar notificações para transações seguidas por mim | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +694,"{0}: Cannot set Submit, Cancel, Amend without Write","{0}: Não é possível definir Enviar, Cancelar, Alterar sem Salvar" | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +698,"{0}: Cannot set Submit, Cancel, Amend without Write","{0}: Não é possível definir Enviar, Cancelar, Alterar sem Salvar" | |||
apps/frappe/frappe/public/js/frappe/form/footer/attachments.js +83,Are you sure you want to delete the attachment?,Tem certeza de que deseja excluir o anexo? | |||
apps/frappe/frappe/public/js/frappe/form/save.js +11,Saving,Salvando | |||
DocType: Print Settings,Print Style Preview,Estilo de visualização de impressão | |||
@@ -1171,7 +1169,7 @@ DocType: Website Settings,Website Theme,Tema do Site | |||
DocType: DocField,In List View,Mostrar na Visualização da Lista | |||
apps/frappe/frappe/email/smtp.py +24,Invalid login or password,Login ou senha inválidos | |||
apps/frappe/frappe/config/setup.py +237,Add custom javascript to forms.,Adicionar javascript personalizado aos formulários. | |||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +489,Sr No,Nº de série | |||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +488,Sr No,Nº de série | |||
,Role Permissions Manager,Gestor de Permissões por Função | |||
,User Permissions Manager,Gestor de Permissões de Usuário | |||
DocType: Email Alert,Days Before or After,Dias Antes ou Após | |||
@@ -1187,14 +1185,14 @@ apps/frappe/frappe/core/doctype/error_log/error_log_list.js +12,Clear Error Logs | |||
DocType: Email Account,Notify if unreplied for (in mins),Informar se não for respondido em (minutos) | |||
apps/frappe/frappe/public/js/frappe/list/list_renderer.js +497,2 days ago,Há 2 dias | |||
apps/frappe/frappe/config/website.py +47,Categorize blog posts.,Categorizar posts. | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +535,{{{0}}} is not a valid fieldname pattern. It should be {{field_name}}.,{{{0}}} não é padrão para nome de campo válido. Deve ser {{field_name}}. | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +539,{{{0}}} is not a valid fieldname pattern. It should be {{field_name}}.,{{{0}}} não é padrão para nome de campo válido. Deve ser {{field_name}}. | |||
apps/frappe/frappe/public/js/frappe/views/treeview.js +161,Add Child,Adicionar sub-item | |||
apps/frappe/frappe/model/delete_doc.py +165,{0} {1}: Submitted Record cannot be deleted.,{0} {1}: Registro enviado não pode ser excluído. | |||
apps/frappe/frappe/model/delete_doc.py +166,{0} {1}: Submitted Record cannot be deleted.,{0} {1}: Registro enviado não pode ser excluído. | |||
apps/frappe/frappe/core/page/usage_info/usage_info.html +99,Backup Size,Tamanho do backup | |||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder.js +460,Align Value,Alinhar Valor | |||
apps/frappe/frappe/website/doctype/blog_post/blog_post.py +102,Posts by {0},Posts de {0} | |||
apps/frappe/frappe/website/doctype/blog_post/blog_post.py +106,Posts by {0},Posts de {0} | |||
apps/frappe/frappe/www/login.html +72,Don't have an account? Sign up,Não tem uma conta? Se inscreva | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +721,{0}: Cannot set Assign Amend if not Submittable,{0}: Não é possível definir atributo Corrigir se não pode ser enviado | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +725,{0}: Cannot set Assign Amend if not Submittable,{0}: Não é possível definir atributo Corrigir se não pode ser enviado | |||
apps/frappe/frappe/core/page/user_permissions/user_permissions.js +14,Edit Role Permissions,Editar permissões de Função | |||
DocType: Communication,Link DocType,Relacionar ao DocType | |||
DocType: Social Login Keys,Social Login Keys,Login nas Redes Sociais | |||
@@ -1255,7 +1253,7 @@ apps/frappe/frappe/custom/doctype/customize_form/customize_form.js +227,Permissi | |||
DocType: Contact Us Settings,Pincode,CEP | |||
apps/frappe/frappe/core/page/data_import_tool/importer.py +81,Please make sure that there are no empty columns in the file.,"Por favor, certifique-se de que não existem colunas vazias no arquivo." | |||
apps/frappe/frappe/utils/oauth.py +232,Please ensure that your profile has an email address,Verifique se o seu perfil tem um endereço de email | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +455,Default for {0} must be an option,Padrão para {0} deve ser uma opção | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +459,Default for {0} must be an option,Padrão para {0} deve ser uma opção | |||
DocType: User,User Image,Imagem do Usuário | |||
apps/frappe/frappe/email/queue.py +289,Emails are muted,Emails são silenciados | |||
apps/frappe/frappe/public/js/frappe/form/templates/grid_form.html +25,Ctrl + Up,Ctrl + Seta para cima | |||
@@ -1272,13 +1270,13 @@ apps/frappe/frappe/public/js/frappe/views/treeview.js +17,Tree view not availabl | |||
DocType: Custom Field,Label Help,Ajuda sobre Etiquetas | |||
apps/frappe/frappe/utils/password_strength.py +122,Dates are often easy to guess.,Datas são frequentemente fáceis de adivinhar. | |||
DocType: User,These values will be automatically updated in transactions and also will be useful to restrict permissions for this user on transactions containing these values.,Esses valores serão atualizados automaticamente em transações e também serão úteis para restringir as permissões para este usuário em operações que contenham esses valores. | |||
apps/frappe/frappe/model/rename_doc.py +377,** Failed: {0} to {1}: {2},** Falha: {0} para {1}: {2} | |||
apps/frappe/frappe/model/rename_doc.py +378,** Failed: {0} to {1}: {2},** Falha: {0} para {1}: {2} | |||
apps/frappe/frappe/core/page/data_import_tool/data_import_main.html +23,Select Mandatory,Selecionar Campos Obrigatórios | |||
apps/frappe/frappe/public/js/frappe/ui/upload.html +4,Browse,Procurar | |||
DocType: Async Task,Running,Correndo | |||
apps/frappe/frappe/email/doctype/email_group/email_group.py +102,Please Upgrade to add more than {0} subscribers,"Por favor, atualize para adicionar mais de {0} assinantes" | |||
DocType: Workflow State,hand-left,mão à esquerda | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +468,Fieldtype {0} for {1} cannot be unique,FieldType {0} para {1} não pode ser exclusivo | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +472,Fieldtype {0} for {1} cannot be unique,FieldType {0} para {1} não pode ser exclusivo | |||
DocType: Workflow State,play-circle,jogo-círculo | |||
apps/frappe/frappe/printing/page/print_format_builder/print_format_builder.js +82,Select Print Format to Edit,Selecione um formato de impressão para editar | |||
DocType: Address,Shipping,Expedição | |||
@@ -1306,7 +1304,7 @@ DocType: ToDo,ToDo,Lista de Atribuições | |||
DocType: Workflow State,qrcode,QRCode | |||
apps/frappe/frappe/www/login.html +34,Login with LDAP,Logar com LDAP | |||
DocType: Web Form,Breadcrumbs,Breadcrumbs | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +667,If Owner,Se proprietário | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +671,If Owner,Se proprietário | |||
DocType: Web Page,Website Sidebar,Menu Lateral do Site | |||
DocType: Web Form,Show Sidebar,Mostrar menu lateral | |||
apps/frappe/frappe/public/js/frappe/form/footer/assign_to.js +142,Complete By,Finalizar até | |||
@@ -1316,7 +1314,7 @@ DocType: Website Settings,Top Bar Items,Itens da barra superior | |||
DocType: Print Settings,Print Settings,Configurações de Impressão | |||
DocType: DocType,Max Attachments,Máx. de Anexos | |||
apps/frappe/frappe/config/website.py +93,Knowledge Base,Base de Conhecimento | |||
apps/frappe/frappe/model/base_document.py +561,Value cannot be changed for {0},Valor não pode ser alterado para {0} | |||
apps/frappe/frappe/model/base_document.py +560,Value cannot be changed for {0},Valor não pode ser alterado para {0} | |||
DocType: Workflow State,"Style represents the button color: Success - Green, Danger - Red, Inverse - Black, Primary - Dark Blue, Info - Light Blue, Warning - Orange","Estilo representa a cor do botão: Sucesso - Verde, Perigo - Vermelho, Inverso - Preto, Primário - Azul Escuro, Informações - Azul Claro, Aviso - Laranja" | |||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +158,No Report Loaded. Please use query-report/[Report Name] to run a report.,"Não Relatório Loaded. Por favor, use-consulta do relatório / [Nome do relatório] para executar um relatório." | |||
DocType: Workflow Transition,Workflow Transition,Transição do Fluxo de Trabalho | |||
@@ -1335,6 +1333,7 @@ apps/frappe/frappe/permissions.py +397,Permission already set,Permissão já def | |||
apps/frappe/frappe/core/doctype/docshare/docshare.py +47,{0} shared this document with everyone,{0} compartilhou este documento com todos | |||
apps/frappe/frappe/desk/page/activity/activity_row.html +17,Commented on {0}: {1},Comentou sobre {0}: {1} | |||
apps/frappe/frappe/core/page/user_permissions/user_permissions.js +248,These restrictions will apply for Document Types where 'Apply User Permissions' is checked for the permission rule and a field with this value is present.,Essas restrições serão aplicadas para tipos de documento onde "Aplicar permissões de usuário 'está marcada para a regra de permissão e um campo com esse valor está presente. | |||
apps/frappe/frappe/public/js/frappe/ui/filters/edit_filter.html +24,Apply,Aplicar | |||
apps/frappe/frappe/integrations/utils.py +76,{0} Settings not found,{0} Configurações não encontradas | |||
DocType: Module Def,Module Def,Módulo Def | |||
apps/frappe/frappe/config/core.py +22,Pages in Desk (place holders),Páginas na Desk (suportes do lugar) | |||
@@ -1363,8 +1362,8 @@ apps/frappe/frappe/core/page/data_import_tool/importer.py +49,Please do not chan | |||
DocType: Contact,More Information,Mais Informações | |||
DocType: Desktop Icon,Desktop Icon,Ícone da área de trabalho | |||
apps/frappe/frappe/utils/nestedset.py +235,{0} {1} cannot be a leaf node as it has children,"{0} {1} não pode ser um nó de extremidade , uma vez que tem filhos" | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +336,Add Attachment,Anexar | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +68,Send Read Receipt,Enviar Confirmação de Leitura | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +337,Add Attachment,Anexar | |||
apps/frappe/frappe/public/js/frappe/views/communication.js +67,Send Read Receipt,Enviar Confirmação de Leitura | |||
DocType: Stripe Settings,Stripe Settings,Configurações do Stripe | |||
DocType: Dropbox Settings,Dropbox Setup via Site Config,Configuração do Dropbox via Site Config | |||
apps/frappe/frappe/www/login.py +64,Invalid Login Token,Inválido símbolo de logon | |||
@@ -1428,7 +1427,7 @@ apps/frappe/frappe/config/setup.py +146,Add / Manage Email Accounts.,Adicionar / | |||
apps/frappe/frappe/templates/emails/auto_reply.html +1,Thank you for your email,Obrigado pelo seu email | |||
apps/frappe/frappe/core/doctype/user/user.py +868,Administrator accessed {0} on {1} via IP Address {2}.,Administrador acessada {0} em {1} através do endereço IP {2}. | |||
apps/frappe/frappe/public/js/frappe/ui/filters/edit_filter.html +6,Equals,Igual | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +449,Options 'Dynamic Link' type of field must point to another Link Field with options as 'DocType',"Opções 'Dynamic Link' tipo de campo deve apontar para um outro campo Ligação com opções como ""TipoDoc '" | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +453,Options 'Dynamic Link' type of field must point to another Link Field with options as 'DocType',"Opções 'Dynamic Link' tipo de campo deve apontar para um outro campo Ligação com opções como ""TipoDoc '" | |||
DocType: About Us Settings,Team Members Heading,Título da página Membros da Equipe | |||
apps/frappe/frappe/utils/csvutils.py +35,Invalid CSV Format,Formato inválido de CSV | |||
DocType: DocField,Do not allow user to change after set the first time,Não permitir que o usuário altere após definir o primeiro tempo | |||
@@ -1436,7 +1435,7 @@ apps/frappe/frappe/public/js/frappe/upload.js +252,Private or Public?,Privada ou | |||
DocType: Contact,Contact,Contato | |||
DocType: Website Settings,Banner is above the Top Menu Bar.,A faixa está acima da barra de menu superior. | |||
DocType: Razorpay Settings,API Secret,Segredo da API | |||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +859,Export Report: ,Exportar Relatório: | |||
apps/frappe/frappe/public/js/frappe/views/reports/query_report.js +858,Export Report: ,Exportar Relatório: | |||
apps/frappe/frappe/config/core.py +12,Models (building blocks) of the Application,Modelos (blocos de construção) do aplicativo | |||
apps/frappe/frappe/custom/doctype/customize_form/customize_form.js +105,Select Module,Selecione o Módulo | |||
apps/frappe/frappe/sessions.py +29,Cache Cleared,Cache Limpo | |||
@@ -1447,7 +1446,7 @@ DocType: Print Settings,PDF Settings,Configurações do PDF | |||
DocType: Kanban Board Column,Column Name,Nome da coluna | |||
DocType: Language,Based On,Baseado em | |||
apps/frappe/frappe/printing/doctype/print_format/print_format.js +34,Make Default,Tornar padrão | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +491,Fieldtype {0} for {1} cannot be indexed,FieldType {0} para {1} não pode ser indexado | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +495,Fieldtype {0} for {1} cannot be indexed,FieldType {0} para {1} não pode ser indexado | |||
DocType: Workflow State,Download,Baixar | |||
DocType: Blog Post,Blog Intro,Introdução do Blog | |||
DocType: DocField,Display Depends On,Visualização depende | |||
@@ -1468,7 +1467,7 @@ DocType: Web Form,Amount,Total | |||
apps/frappe/frappe/website/doctype/portal_settings/portal_settings.js +10,Restore to default settings?,Restaurar as configurações padrão? | |||
apps/frappe/frappe/website/doctype/website_settings/website_settings.py +23,Invalid Home Page,Inválido Página Inicial | |||
apps/frappe/frappe/public/js/frappe/views/reports/grid_report.js +170,Reset Filters,Restaurar Filtros | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +684,{0}: Permission at level 0 must be set before higher levels are set,{0} : permissão no nível 0 deve ser definida antes de definir os níveis mais altos | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +688,{0}: Permission at level 0 must be set before higher levels are set,{0} : permissão no nível 0 deve ser definida antes de definir os níveis mais altos | |||
apps/frappe/frappe/desk/doctype/todo/todo.py +28,Assignment closed by {0},Atribuição fechado por {0} | |||
DocType: Integration Request,Remote,Remoto | |||
DocType: Integration Request,Remote,Remoto | |||
@@ -1477,15 +1476,15 @@ apps/frappe/frappe/email/doctype/newsletter/newsletter.py +173,Confirm Your Emai | |||
apps/frappe/frappe/www/login.html +42,Or login with,Ou faça login com | |||
apps/frappe/frappe/desk/page/activity/activity_row.html +19,Communicated via {0} on {1}: {2},Comunicada via {0} em {1}: {2} | |||
apps/frappe/frappe/core/doctype/communication/comment.py +85,{0} mentioned you in a comment in {1},{0} mencionou você em um comentário em {1} | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +138,e.g. (55 + 434) / 4 or =Math.sin(Math.PI/2)...,por exemplo (55 + 434) / 4 ou = Math.sin (Math.PI / 2) ... | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/awesome_bar.js +141,e.g. (55 + 434) / 4 or =Math.sin(Math.PI/2)...,por exemplo (55 + 434) / 4 ou = Math.sin (Math.PI / 2) ... | |||
DocType: Social Login Keys,GitHub Client ID,ID do Cliente do Github | |||
DocType: DocField,Perm Level,Nível Permanente | |||
apps/frappe/frappe/desk/doctype/event/event.py +54,Events In Today's Calendar,Eventos no calendário de hoje | |||
apps/frappe/frappe/public/js/frappe/views/treeview.js +297,View List,Ver Lista | |||
apps/frappe/frappe/public/js/frappe/form/control.js +739,Date must be in format: {0},A data deve estar no formato : {0} | |||
apps/frappe/frappe/public/js/frappe/form/control.js +721,Date must be in format: {0},A data deve estar no formato : {0} | |||
apps/frappe/frappe/www/feedback.html +90,Please give a rating.,"Por favor, atribua um rating." | |||
apps/frappe/frappe/public/js/frappe/feedback.js +47,{0} Feedback Request,{0} Solicitação de Feedback | |||
apps/frappe/frappe/desk/page/setup_wizard/setup_wizard.js +493,The First User: You,O primeiro usuário: Você | |||
apps/frappe/frappe/desk/page/setup_wizard/setup_wizard.js +505,The First User: You,O primeiro usuário: Você | |||
DocType: Translation,Source Text,Texto Original | |||
apps/frappe/frappe/www/login.py +55,Missing parameters for login,Parâmetros que faltam para o login | |||
DocType: Workflow State,folder-open,abrir pasta | |||
@@ -1506,7 +1505,7 @@ DocType: Email Domain,domain name,nome de domínio | |||
DocType: Kanban Board Column,Order,Pedido | |||
DocType: Custom DocPerm,"JSON list of DocTypes used to apply User Permissions. If empty, all linked DocTypes will be used to apply User Permissions.","Lista JSON de doctypes usados para aplicar permissões de usuário. Se vazio, todas as doctypes vinculados serão usados para aplicar permissões de usuário." | |||
DocType: Report,Ref DocType,DocType de Ref. | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +696,{0}: Cannot set Amend without Cancel,{0}: Não é possível definir Amend sem Cancelar | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +700,{0}: Cannot set Amend without Cancel,{0}: Não é possível definir Amend sem Cancelar | |||
apps/frappe/frappe/public/js/frappe/form/templates/print_layout.html +22,Full Page,Página completa | |||
DocType: DocType,Is Child Table,É Tabela Filho | |||
apps/frappe/frappe/utils/csvutils.py +124,{0} must be one of {1},{0} deve fazer parte de {1} | |||
@@ -1524,7 +1523,7 @@ DocType: Workflow Action,Workflow Action,Ação do Fluxo de Trabalho | |||
DocType: Event,Send an email reminder in the morning,Enviar um email lembrete na parte da manhã | |||
DocType: Blog Post,Published On,Publicado no | |||
apps/frappe/frappe/website/doctype/web_form/web_form.py +342,Mandatory Information missing:,Informações obrigatórias ausente: | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +488,Field '{0}' cannot be set as Unique as it has non-unique values,"O campo '{0}' não pode ser definido como único, pois tem valores não-exclusivos" | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +492,Field '{0}' cannot be set as Unique as it has non-unique values,"O campo '{0}' não pode ser definido como único, pois tem valores não-exclusivos" | |||
apps/frappe/frappe/client.py +140,Only 200 inserts allowed in one request,São permitidas somente 200 inserções por solicitação | |||
DocType: Event,Repeat On,Repetir em | |||
DocType: Communication,Marked As Spam,Marcado como spam | |||
@@ -1544,7 +1543,7 @@ DocType: Email Account,Notifications and bulk mails will be sent from this outgo | |||
apps/frappe/frappe/public/js/frappe/form/templates/form_sidebar.html +64,Currently Viewing,Atualmente Exibindo | |||
apps/frappe/frappe/email/doctype/email_group/email_group.py +42,{0} subscribers added,{0} assinantes acrescentados | |||
apps/frappe/frappe/public/js/frappe/ui/filters/edit_filter.html +9,Not In,Não Presente | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +433,Max width for type Currency is 100px in row {0},Largura máxima para o tipo de moeda é 100px na linha {0} | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +437,Max width for type Currency is 100px in row {0},Largura máxima para o tipo de moeda é 100px na linha {0} | |||
apps/frappe/frappe/config/website.py +13,Content web page.,Conteúdo da Página Web | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +9,Add a New Role,Adicionar um Novo Papel | |||
DocType: Deleted Document,Deleted Document,Documento Excluído | |||
@@ -1552,7 +1551,7 @@ apps/frappe/frappe/templates/includes/login/login.js +193,Oops! Something went w | |||
apps/frappe/frappe/config/core.py +37,Client side script extensions in Javascript,Extensões de script do lado do cliente em Javascript | |||
DocType: User,Email Settings,Configurações de Email | |||
apps/frappe/frappe/workflow/doctype/workflow/workflow.py +57,{0} not a valid State,{0} não é um status válido | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +515,Search field {0} is not valid,Campo de pesquisa {0} não é válido | |||
apps/frappe/frappe/core/doctype/doctype/doctype.py +519,Search field {0} is not valid,Campo de pesquisa {0} não é válido | |||
DocType: Workflow State,ok-circle,ok-círculo | |||
apps/frappe/frappe/utils/bot.py +150,You can find things by asking 'find orange in customers',"Você pode encontrar as coisas pedindo ""encontrar fulano em clientes""" | |||
apps/frappe/frappe/core/doctype/user/user.py +172,Sorry! User should have complete access to their own record.,Desculpe! O usuário deve ter acesso completo ao seu próprio registro. | |||
@@ -1590,7 +1589,7 @@ apps/frappe/frappe/model/document.py +540,Please refresh to get the latest docum | |||
,Desktop,Área de trabalho | |||
DocType: Web Form,Text to be displayed for Link to Web Page if this form has a web page. Link route will be automatically generated based on `page_name` and `parent_website_route`,"O texto a ser exibido para o link da página da web, se este formulário tem uma página web. Um link será gerado automaticamente com base em ` page_name` e `parent_website_route`" | |||
DocType: Feedback Request,Feedback Trigger,Gatilho para Feedback | |||
apps/frappe/frappe/public/js/frappe/form/control.js +1697,Please set {0} first,Defina {0} primeiro | |||
apps/frappe/frappe/public/js/frappe/form/control.js +1656,Please set {0} first,Defina {0} primeiro | |||
DocType: Patch Log,Patch,Remendo | |||
apps/frappe/frappe/core/page/data_import_tool/importer.py +54,No data found,Não foram encontrados dados | |||
DocType: User,Background Style,Estilo do Fundo | |||
@@ -0,0 +1,42 @@ | |||
apps/frappe/frappe/desk/doctype/todo/todo_list.js +22,Assigned By Me,Dodijelio | |||
apps/frappe/frappe/public/js/frappe/form/toolbar.js +189,New {0} (Ctrl+B),Novi {0} (Ctrl-B) | |||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +23,Add Filter,Dodaj filter | |||
apps/frappe/frappe/public/js/frappe/model/model.js +26,Assigned To,Dodijeljeno | |||
apps/frappe/frappe/public/js/frappe/form/footer/assign_to.js +138,Assign to me,Dodijeljeno meni | |||
apps/frappe/frappe/public/js/frappe/ui/filters/edit_filter.html +16,Between,Između | |||
apps/frappe/frappe/public/js/frappe/list/list_sidebar.js +389,UnCategorised Tags,Nekategorisani tag-ovi | |||
apps/frappe/frappe/public/js/frappe/form/toolbar.js +163,Customize,Prilagodite | |||
apps/frappe/frappe/desk/reportview.py +253,No Tags,Nema tag-ova | |||
apps/frappe/frappe/public/js/frappe/views/treeview.js +212,New {0},Novi {0} | |||
apps/frappe/frappe/public/js/frappe/ui/filters/edit_filter.html +10,Not equals,Nije jednak | |||
apps/frappe/frappe/public/js/frappe/ui/page.html +24,Menu,Meni | |||
apps/frappe/frappe/public/js/frappe/model/model.js +27,Document Status,Status dokumenta | |||
apps/frappe/frappe/config/core.py +27,Script or Query reports,Skripte ili query izvještaji | |||
apps/frappe/frappe/public/js/frappe/views/reports/reportview.js +111,Add to Desktop,Dodaj na radnu površinu | |||
apps/frappe/frappe/core/page/permission_manager/permission_manager_help.html +30,User Permissions,Prava pristupa korisnika | |||
apps/frappe/frappe/public/js/frappe/model/meta.js +186,Created On,Kreirano | |||
apps/frappe/frappe/public/js/frappe/ui/toolbar/search_utils.js +107,New,Novi | |||
,User Permissions Manager,Menadžer prava pristupa korisnika | |||
DocType: Workflow State,Refresh,Osvježi | |||
DocType: Contact,Status,Status | |||
apps/frappe/frappe/desk/doctype/todo/todo.py +20,Assigned to {0}: {1},Dodijeljen {0}: {1} | |||
apps/frappe/frappe/public/js/frappe/model/meta.js +187,Last Modified On,Poslednji put izmijenjeno | |||
DocType: Authentication Log,Full Name,Puno ime | |||
DocType: Custom DocPerm,Import,Uvoz | |||
DocType: Communication,Assigned,Dodijeljeno | |||
apps/frappe/frappe/desk/moduleview.py +94,Standard Reports,Standardni izvještaji | |||
apps/frappe/frappe/public/js/frappe/list/list_sidebar.html +49,Assigned To Me,Dodijeljeno meni | |||
,Role Permissions Manager,Menadžer prava pristupa rolama | |||
apps/frappe/frappe/public/js/frappe/ui/filters/edit_filter.html +24,Apply,Primijeni | |||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +479,Like,Kao | |||
DocType: Workflow State,remove,Ukloni | |||
apps/frappe/frappe/public/js/frappe/list/list_sidebar.html +32,Kanban,Kanban | |||
apps/frappe/frappe/public/js/frappe/roles_editor.js +195,Role Permissions,Prava pristupa rolama | |||
apps/frappe/frappe/public/js/frappe/ui/filters/edit_filter.html +9,Not In,Nije u | |||
apps/frappe/frappe/public/js/frappe/ui/filters/edit_filter.html +6,Equals,Jednak | |||
apps/frappe/frappe/public/js/frappe/ui/filters/filters.js +479,Not Like,Nije kao | |||
apps/frappe/frappe/public/js/frappe/list/list_sidebar.html +10,Reports,Izvještaji | |||
apps/frappe/frappe/public/js/frappe/ui/sort_selector.js +182,Most Used,Najviše korišćeno | |||
DocType: ToDo,Assigned By,Dodijelio | |||
apps/frappe/frappe/desk/report/todo/todo.py +19,ID,ID | |||
DocType: Workflow State,Print,Štampaj |
@@ -217,7 +217,8 @@ def backup(with_files=False, backup_path_db=None, backup_path_files=None, quiet= | |||
odb = scheduled_backup(ignore_files=not with_files, backup_path_db=backup_path_db, backup_path_files=backup_path_files, force=True) | |||
return { | |||
"backup_path_db": odb.backup_path_db, | |||
"backup_path_files": odb.backup_path_files | |||
"backup_path_files": odb.backup_path_files, | |||
"backup_path_private_files": odb.backup_path_private_files | |||
} | |||
if __name__ == "__main__": | |||
@@ -4,7 +4,7 @@ | |||
from __future__ import unicode_literals | |||
import frappe | |||
import datetime | |||
from frappe.utils import formatdate, fmt_money, flt, cstr, cint, format_datetime | |||
from frappe.utils import formatdate, fmt_money, flt, cstr, cint, format_datetime, format_time | |||
from frappe.model.meta import get_field_currency, get_field_precision | |||
import re | |||
@@ -20,6 +20,8 @@ def format_value(value, df=None, doc=None, currency=None, translated=False): | |||
df.fieldtype = 'Datetime' | |||
elif isinstance(value, datetime.date): | |||
df.fieldtype = 'Date' | |||
elif isinstance(value, datetime.timedelta): | |||
df.fieldtype = 'Time' | |||
elif isinstance(value, int): | |||
df.fieldtype = 'Int' | |||
elif isinstance(value, float): | |||
@@ -45,6 +47,9 @@ def format_value(value, df=None, doc=None, currency=None, translated=False): | |||
elif df.get("fieldtype")=="Datetime": | |||
return format_datetime(value) | |||
elif df.get("fieldtype")=="Time": | |||
return format_time(value) | |||
elif value==0 and df.get("fieldtype") in ("Int", "Float", "Currency", "Percent") and df.get("print_hide_if_no_value"): | |||
# this is required to show 0 as blank in table columns | |||
return "" | |||