@@ -611,6 +611,10 @@ def get_list(doctype, filters=None, fields=None, or_filters=None, docstatus=None | |||
limit_page_length=limit_page_length, as_list=as_list, debug=debug, | |||
ignore_permissions=ignore_permissions, user=user) | |||
def get_all(doctype, **args): | |||
args["ignore_permissions"] = True | |||
return get_list(doctype, **args) | |||
run_query = get_list | |||
def add_version(doc): | |||
@@ -1 +1 @@ | |||
__version__ = "4.4.6" | |||
__version__ = "4.5.0" |
@@ -3,7 +3,7 @@ app_title = "Frappe Framework" | |||
app_publisher = "Web Notes Technologies Pvt. Ltd." | |||
app_description = "Full Stack Web Application Framework in Python" | |||
app_icon = "assets/frappe/images/frappe.svg" | |||
app_version = "4.4.6" | |||
app_version = "4.5.0" | |||
app_color = "#3498db" | |||
app_email = "support@frappe.io" | |||
@@ -362,6 +362,11 @@ ul.linked-with-list li { | |||
cursor: pointer; | |||
} | |||
.grid-static-col { | |||
max-height: 200px; | |||
overflow: hidden; | |||
} | |||
.data-row { | |||
margin-left: -20px; | |||
} | |||
@@ -333,7 +333,7 @@ frappe.ui.form.GridRow = Class.extend({ | |||
add_class += (["Int", "Currency", "Float"].indexOf(df.fieldtype)!==-1) ? | |||
" text-right": ""; | |||
$col = $('<div class="col col-xs-'+colsize+add_class+'"></div>') | |||
$col = $('<div class="col col-xs-'+colsize+add_class+' grid-static-col"></div>') | |||
.html(txt) | |||
.attr("data-fieldname", df.fieldname) | |||
.data("df", df) | |||
@@ -23,7 +23,7 @@ | |||
{%= doc.fieldtype %} | |||
<br><span class="small">{%= doc.fieldname %}</span> | |||
</div> | |||
<div class="col-sm-4"> | |||
<div class="col-sm-4 grid-static-col"> | |||
{%= doc.options && doc.options.split("\n").join("<br>") || "" %} | |||
{% if(doc["default"]) { %} | |||
<br>{%= __("Default") %}: <strong>{%= doc["default"] %}</strong> | |||
@@ -36,12 +36,15 @@ | |||
<div class="list-group"> | |||
{% for i in items %} | |||
<div class="list-group-item"> | |||
{% if allow_delete %} | |||
<button class="close" data-name="{{ i.name }}">×</button> | |||
{% endif %} | |||
<a href="{{ pathname }}?name={{ i.name }}"> | |||
{{ i.title }} | |||
</a> | |||
<span class="text-muted pull-right"> | |||
{{ frappe.format_value(i.creation, {"fieldtype":"Date"}) }} | |||
</span> | |||
</a><br> | |||
<div class="text-muted small"> | |||
{{ frappe.format_date(i.creation) }} | |||
</div> | |||
</div> | |||
{% endfor %} | |||
</div> | |||
@@ -53,15 +56,26 @@ | |||
{%- macro help(field) -%} | |||
{% if field.description -%} | |||
<span class="help-block">{{ field.description }}</span> | |||
<span class="help-block small">{{ field.description }}</span> | |||
{%- endif -%} | |||
{%- endmacro %} | |||
{% macro label(field) %}<label for="{{ field.fieldname }}" class="col-sm-3 control-label">{{ field.label }}</label>{% endmacro %} | |||
<div class="form-message alert alert-info hide"></div> | |||
<form class="form-horizontal" role="form" | |||
data-web-form="{{ name }}"> | |||
{% if params.name and web_page_link_text %} | |||
<div class="row"> | |||
<div class="col-sm-offset-3 col-sm-9"> | |||
<div class="alert alert-info"> | |||
<a href="{{ ('/' + doc.parent_website_route) if doc.parent_website_route else '' }}/{{ doc.page_name }}"> | |||
{{ web_page_link_text }}</a> | |||
</div> | |||
</div> | |||
</div> | |||
{% endif %} | |||
<input type="hidden" name="web_form" value="{{ name }}"> | |||
<input type="hidden" name="doctype" value="{{ doc_type }}"> | |||
{% if params.name -%} | |||
@@ -71,6 +85,10 @@ | |||
{% if field.hidden %} | |||
<input type="hidden" | |||
name="{{ field.fieldname }}" value="{{ field.default }}"> | |||
{% elif field.fieldtype == "HTML" and field.options %} | |||
<div class="form-group"> | |||
{{ field.options }} | |||
</div> | |||
{% elif field.fieldtype in ("Data", "Date", "Datetime") %} | |||
<div class="form-group"> | |||
{{ label(field) }} | |||
@@ -85,11 +103,11 @@ | |||
{{ label(field) }} | |||
<div class="col-sm-9"> | |||
<select class="form-control" {{ properties(field) }}> | |||
{% for option in field.options.split("\n") %} | |||
{% for option in field.options.split("\n") -%} | |||
<option value="{{ option }}" | |||
"value(field)==option and 'selected' or '' }}"> | |||
{{ 'selected="selected"' if value(field)==option else '' }}> | |||
{{ option }}</option> | |||
{% endfor %} | |||
{%- endfor %} | |||
</select> | |||
{{ help(field) }} | |||
</div> | |||
@@ -98,7 +116,7 @@ | |||
<div class="form-group"> | |||
{{ label(field) }} | |||
<div class="col-sm-9"> | |||
<textarea class="form-control" style="height: 100px;" | |||
<textarea class="form-control" style="height: 200px;" | |||
{{ properties(field) }}>{{ value(field) }}</textarea> | |||
{{ help(field) }} | |||
</div> | |||
@@ -131,7 +149,7 @@ | |||
<label> | |||
<input type="checkbox" id="{{ field.fieldname }}" | |||
name="{{ field.fieldname }}" | |||
"{{ doc and doc.get(field.fieldname) and 'checked' or '' }}"> | |||
{{ doc and doc.get(field.fieldname) and 'checked' or '' }}> | |||
{{ field.label }} | |||
</label> | |||
{{ help(field) }} | |||
@@ -148,7 +166,7 @@ | |||
</div> | |||
</form> | |||
{% if allow_comments -%} | |||
<div class="row"> | |||
<div class="row comments"> | |||
<div class="col-sm-offset-3 col-sm-9"> | |||
<hr> | |||
<h3>{{ _("Comments") }}</h3> | |||
@@ -163,6 +181,7 @@ | |||
<script> | |||
frappe.ready(function() { | |||
window.file_reading = false; | |||
frappe.datepicker_format = "{{ frappe.date_format.replace('yyyy', 'yy') }}"; | |||
var $form = $("form[data-web-form='{{ name }}']"); | |||
// read file attachment | |||
@@ -198,6 +217,7 @@ frappe.ready(function() { | |||
return false; | |||
}); | |||
// submit | |||
$("form[data-web-form='{{ name }}']").on("submit", function() { | |||
var args = {}; | |||
if(window.saving) | |||
@@ -212,8 +232,14 @@ frappe.ready(function() { | |||
$form.find("[name]").each(function() { | |||
var $input = $(this); | |||
if($input.attr("type")==="file") { | |||
var input_type = $input.attr("type"); | |||
if(input_type==="file") { | |||
var val = $input.get(0).filedata; | |||
} else if(input_type==="checkbox") { | |||
var val = $input.is(":checked") ? 1 : 0; | |||
} else if($input.attr("data-fieldtype")==="Date") { | |||
var val = $.datepicker.formatDate("yy-mm-dd", | |||
$input.datepicker('getDate')); | |||
} else { | |||
var val = $input.val(); | |||
} | |||
@@ -236,15 +262,12 @@ frappe.ready(function() { | |||
callback: function(data) { | |||
if(!data.exc) { | |||
$form.addClass("hide"); | |||
$(".comments").addClass("hide"); | |||
scroll(0, 0); | |||
$(".form-message") | |||
.html("{{ success_message or 'Thank You!' }}") | |||
.html("{{ success_message or 'Thank You!' }}" | |||
+ '<p><a href="{{ success_url }}">Continue</a></p>') | |||
.removeClass("hide"); | |||
{% if success_url -%} | |||
setTimeout(function() { | |||
window.location.href = "{{ success_url }}"; | |||
}, 1000); | |||
{%- endif %}; | |||
} | |||
window.saving = false; | |||
} | |||
@@ -253,6 +276,26 @@ frappe.ready(function() { | |||
return false; | |||
}); | |||
// close button | |||
$(".close").on("click", function() { | |||
var name = $(this).attr("data-name"); | |||
if(name) { | |||
frappe.call({ | |||
type:"POST", | |||
method: "frappe.website.doctype.web_form.web_form.delete", | |||
args: { | |||
"web_form": "{{ name }}", | |||
"name": name | |||
}, | |||
callback: function(r) { | |||
if(!r.exc) { | |||
location.reload(); | |||
} | |||
} | |||
}); | |||
} | |||
}) | |||
// import date picker / timepicker if required | |||
{% if "Date" in types %} | |||
frappe.require("assets/frappe/js/lib/jquery/jquery.ui.min.js"); | |||
@@ -261,7 +304,16 @@ frappe.ready(function() { | |||
altFormat:'yy-mm-dd', | |||
changeYear: true, | |||
yearRange: "-70Y:+10Y", | |||
dateFormat: "{{ frappe.date_format.replace('yyyy', 'yy') }}", | |||
dateFormat: frappe.datepicker_format, | |||
}); | |||
// convert dates to user format | |||
$form.find("[data-fieldtype='Date']").each(function() { | |||
var val = $(this).val(); | |||
if(val) { | |||
$(this).val($.datepicker.formatDate(frappe.datepicker_format, | |||
$.datepicker.parseDate("yy-mm-dd", val))); | |||
} | |||
}) | |||
{% endif %} | |||
@@ -275,7 +327,7 @@ frappe.ready(function() { | |||
altFormat:'yy-mm-dd', | |||
changeYear: true, | |||
yearRange: "-70Y:+10Y", | |||
dateFormat: "{{ frappe.date_format.replace('yyyy', 'yy') }}", | |||
dateFormat: frappe.datepicker_format, | |||
}) | |||
{% endif %} | |||
}); | |||
@@ -1,9 +1,8 @@ | |||
{% set parents = doc.get_parents() if (doc and doc.get_parents) else [] %} | |||
{% if parents and parents|length > 0 %} | |||
<ul class="breadcrumb"> | |||
{% if parents|length > 0 %} | |||
{% for parent in parents %} | |||
<li><a href="{{ parent.name }}">{{ parent.page_title or parent.title or "" }}</a></li> | |||
{% endfor %} | |||
{% for parent in parents %} | |||
<li><a href="{{ parent.name }}">{{ parent.page_title or parent.title or "" }}</a></li> | |||
{% endfor %} | |||
<li class="active">{{ title or "" }}</li> | |||
{% endif %} | |||
</ul> | |||
{% endif %} |
@@ -1,9 +1,12 @@ | |||
<div class="comment-row"> | |||
<div class="comment-title text-muted"> | |||
<span itemprop="name" class="author">{{ comment.comment_by_fullname }}</span> / | |||
<span itemprop="commentTime">{{ comment.creation|global_date_format }}</span>: | |||
<div class="media"> | |||
<a class="pull-left" href="#"> | |||
<img class="media-object" style="width: 48px;" src="{{ frappe.get_gravatar(comment.comment_by) }}" alt="{{ comment.comment_by_fullname }}"> | |||
</a> | |||
<div class="media-body"> | |||
<h5 class="media-heading" itemprop="name">{{ comment.comment_by_fullname }}</h5> | |||
<p class="text-muted small"> | |||
<span itemprop="commentTime">{{ comment.creation|global_date_format }}</span> | |||
</p> | |||
<div itemprop="commentText">{{ comment.comment|markdown }}</div> | |||
</div> | |||
<p class="comment-content" itemprop="commentText" | |||
style="margin-left: 20px;">{{ comment.comment|markdown }}</p> | |||
<hr> | |||
</div> | |||
</div> |
@@ -54,7 +54,7 @@ $(document).ready(function() { | |||
comment: $("[name='comment']").val(), | |||
comment_doctype: "{{ doctype }}", | |||
comment_docname: "{{ name }}", | |||
page_name: "{{ path }}", | |||
page_name: "{{ pathname }}", | |||
} | |||
if(!args.comment_by_fullname || !args.comment_by || !args.comment) { | |||
@@ -45,13 +45,16 @@ def add_comment(args=None): | |||
owner = frappe.db.get_value(comment.comment_doctype, comment.comment_docname, "owner") | |||
recipients = list(set(commentors if owner=="Administrator" else (commentors + [owner]))) | |||
message = _("{0} by {1}").format(markdown2.markdown(args.get("comment")), comment.comment_by_fullname) | |||
message += "<p><a href='{0}/{1}' style='font-size: 80%'>{2}</a></p>".format(frappe.utils.get_request_site_address(), | |||
page_name, _("View it in your browser")) | |||
from frappe.utils.email_lib.bulk import send | |||
send(recipients=recipients, | |||
doctype='Comment', | |||
email_field='comment_by', | |||
subject = _("New comment on {0} {1}").format(comment.comment_doctype, comment.comment_docname), | |||
message = _("{0} by {1}").format(markdown2.markdown(args.get("comment")), comment.comment_by_fullname), | |||
message = message, | |||
ref_doctype=comment.comment_doctype, ref_docname=comment.comment_docname) | |||
template = frappe.get_template("templates/includes/comment.html") | |||
@@ -3,7 +3,7 @@ | |||
<div class="sidebar-items"> | |||
{%- for child in children -%} | |||
<div class="sidebar-item"> | |||
<a href="{{ child.name }}" class="no-decoration {% if (pathname or "").startswith(child.name or "") %}active{% endif %}"> | |||
<a href="{{ child.name }}" class="no-decoration {% if (pathname or "")==(child.name or "") %}active{% endif %}"> | |||
{{ child.title or child.page_title or (child.name or "").replace("_", " ").title() }} | |||
</a> | |||
</div> | |||
@@ -1,18 +1,17 @@ | |||
{% block title %}{{ type }} {{ _("List") }}{% endblock %} | |||
{% block title %}{{ doctype }} {{ _("List") }}{% endblock %} | |||
{% block header %} | |||
<h2>{{ type }} {{ _("List") }}</h2> | |||
<h2>{{ doctype }} {{ _("List") }}</h2> | |||
{% endblock %} | |||
{% block content %} | |||
<!-- no-sidebar --> | |||
<div class="row"> | |||
<div class=" col-sm-offset-8 col-sm-4"> | |||
<form class="form-inline form-search" action="/list"> | |||
<div class="input-group"> | |||
<input class="form-control" type="text" name="txt" | |||
<input class="form-control" doctype="text" name="txt" | |||
placeholder="Search..." value="{{ txt or '' }}"> | |||
<input type="hidden" name="type" value="{{ type }}"> | |||
<input type="hidden" name="doctype" value="{{ doctype }}"> | |||
<span class="input-group-btn"> | |||
<button class="btn btn-default" type="submit"> | |||
<i class="icon-search"></i></button> | |||
@@ -23,13 +22,14 @@ | |||
</div> | |||
<br> | |||
{% if txt %} | |||
<div class="alert alert-warning">Results filtered by <b>{{ txt }}</b>. <a href="/list?type={{ type }}" class="close">×</a></div> | |||
<div class="alert alert-warning">Results filtered by <b>{{ txt }}</b>. <a href="/list?doctype={{ doctype }}" class="close">×</a></div> | |||
{% endif %} | |||
<div class="list-group" data-type="{{ type }}" data-txt="{{ txt or '[notxt]' }}"> | |||
<div data-doctype="{{ doctype }}" data-txt="{{ txt or '[notxt]' }}"> | |||
{% for item in items %} | |||
<div class="list-group-item"> | |||
<div> | |||
{{ item }} | |||
</div> | |||
</div> | |||
{% endfor %} | |||
</div> | |||
<div class="more-block text-center hide"> | |||
@@ -41,7 +41,7 @@ | |||
<script> | |||
frappe.ready(function() { | |||
// show more button if len is 20 | |||
$list_group = $(".list-group[data-type='{{ type }}'][data-txt='{{ txt or "[notxt]" }}']"); | |||
$list_group = $(".list-group[data-doctype='{{ doctype }}'][data-txt='{{ txt or "[notxt]" }}']"); | |||
// more ajax | |||
frappe.start = 20; | |||
@@ -49,7 +49,7 @@ frappe.ready(function() { | |||
$.ajax({ | |||
url:"/api/method/frappe.templates.pages.list.get_items", | |||
data: { | |||
type: "{{ type }}", | |||
doctype: "{{ doctype }}", | |||
txt: "{{ txt or '' }}", | |||
limit_start: frappe.start | |||
}, | |||
@@ -3,47 +3,48 @@ | |||
from __future__ import unicode_literals | |||
import frappe, os | |||
from frappe.modules import get_doc_path | |||
from jinja2 import Environment, Template, FileSystemLoader | |||
from frappe.modules import get_doc_path, load_doctype_module | |||
no_cache = 1 | |||
no_sitemap = 1 | |||
def get_context(context): | |||
context.type = frappe.local.form_dict.type | |||
context.doctype = frappe.local.form_dict.doctype | |||
context.txt = frappe.local.form_dict.txt | |||
context.update(get_items(context.type, context.txt)) | |||
module = load_doctype_module(context.doctype) | |||
context.update(get_items(context.doctype, context.txt)) | |||
return context | |||
@frappe.whitelist(allow_guest=True) | |||
def get_items(type, txt, limit_start=0): | |||
meta = frappe.get_meta(type) | |||
def get_items(doctype, txt, limit_start=0): | |||
meta = frappe.get_meta(doctype) | |||
filters, or_filters = [], [] | |||
out = frappe._dict() | |||
module = load_doctype_module(doctype) | |||
if txt: | |||
if meta.search_fields: | |||
for f in meta.get_search_fields(): | |||
or_filters.append([type, f.strip(), "like", "%" + txt + "%"]) | |||
or_filters.append([doctype, f.strip(), "like", "%" + txt + "%"]) | |||
else: | |||
filters.append([type, "name", "like", "%" + txt + "%"]) | |||
filters.append([doctype, "name", "like", "%" + txt + "%"]) | |||
out.raw_items = frappe.get_list(type, fields = ["*"], | |||
out.raw_items = frappe.get_list(doctype, fields = ["*"], | |||
filters=filters, or_filters = or_filters, limit_start=limit_start, | |||
limit_page_length = 20) | |||
template_path = os.path.join(get_doc_path(meta.module, "DocType", meta.name), "list_item.html") | |||
if os.path.exists(template_path): | |||
env = Environment(loader = FileSystemLoader("/")) | |||
#template_path = os.path.relpath(template_path) | |||
template = env.get_template(template_path) | |||
if hasattr(module, "get_list_item"): | |||
out["items"] = [] | |||
for i in out.raw_items: | |||
i.doc = i | |||
out["items"].append(module.get_list_item(i)) | |||
else: | |||
template = Template("""<div><a href="/{{ doctype }}/{{ doc.name }}" no-pjax> | |||
{{ doc[title_field] }}</a></div>""") | |||
out.items = [template.render(doc=i, doctype=type, | |||
title_field = meta.title_field or "name") for i in out.raw_items] | |||
out.items = [template.render(doc=i, doctype=doctype, | |||
title_field = meta.title_field or "name") for i in out.raw_items] | |||
out.meta = meta | |||
@@ -136,7 +136,7 @@ Bulk Email,الجزء الأكبر البريد الإلكتروني | |||
Bulk email limit {0} crossed,الحد معظم البريد الإلكتروني {0} عبروا | |||
Button,زر | |||
By,بواسطة | |||
Calculate,حساب | |||
Calculate,إحسب | |||
Calendar,تقويم | |||
Cancel,إلغاء | |||
Cancelled,إلغاء | |||
@@ -193,7 +193,7 @@ Comment By Fullname,التعليق بواسطة الاسم بالكامل | |||
Comment Date,التعليق تاريخ | |||
Comment Docname,التعليق Docname | |||
Comment Doctype,التعليق DOCTYPE | |||
Comment Time,التعليق الوقت | |||
Comment Time,وقت التعليق | |||
Comments,تعليقات | |||
Communication,اتصالات | |||
Communication Medium,الاتصالات متوسطة | |||
@@ -17,13 +17,13 @@ | |||
A user can be permitted to multiple records of the same DocType.,Ein Benutzer kann die Genehmigung für mehrere Datensätze des gleichen DocType haben. | |||
About,Info | |||
About Us Settings,Über uns Einstellungen | |||
About Us Team Member,Über uns Team-Mitglied | |||
About Us Team Member,Über uns Teammitglied | |||
Action,Aktion | |||
"Actions for workflow (e.g. Approve, Cancel).","Aktionen für Workflows (z. B. genehmigen , Abbruch) ." | |||
Add,Hinzufügen | |||
Add A New Rule,Hinzufügen einer neuen Regel | |||
Add A User Permission,Fügen Sie ein Benutzerberechtigung hinzu | |||
Add Attachments,Hinzufügen von Dateianhängen | |||
Add A New Rule,Neue Regel hinzufügen | |||
Add A User Permission,Benutzerberechtigung hinzufügen | |||
Add Attachments,Anhänge hinzufügen | |||
Add Bookmark,Lesezeichen hinzufügen | |||
Add CSS,CSS hinzufügen | |||
Add Column,Spalte hinzufügen | |||
@@ -34,11 +34,11 @@ Add New Permission Rule,Neue Berechtigungsregel hinzufügen | |||
Add Reply,Antwort hinzufügen | |||
Add Tag, | |||
Add Total Row,Gesamtzeile hinzufügen | |||
Add a New Role,Fügen Sie eine neue Rolle hinzu | |||
Add a New Role,Neue Rolle hinzufügen | |||
Add a banner to the site. (small banners are usually good),Der Website ein Werbebanner hinzufügen. (kleine Banner sind in der Regel gut) | |||
Add all roles,Alle Rollen hinzufügen | |||
Add attachment,Anhang hinzufügen | |||
Add code as <script>,Code als <script> hinzufügen | |||
Add code as <script>,Code als <script> hinzfügen | |||
Add comment, | |||
Add custom javascript to forms.,"Fügen Sie benutzerdefinierte Javascript, um Formen ." | |||
Add fields to forms.,Fügen Sie Felder zu Formularen . | |||
@@ -1351,7 +1351,7 @@ arrow-left,Pfeil-nach-links | |||
arrow-right,Pfeil-nach-rechts | |||
arrow-up,Pfeil-nach-oben | |||
asterisk,Sternchen | |||
backward,Rücktaste | |||
backward,zurück | |||
ban-circle,ban-circle | |||
barcode,Strichcode | |||
beginning with,beginnend mit | |||
@@ -311,7 +311,7 @@ Duplicate name {0} {1},重複する名前{0} {1} | |||
Dynamic Link,動的リンク | |||
ERPNext Demo,ERPNextデモ | |||
Edit,編集 | |||
Edit Permissions,権限の編集 | |||
Edit Permissions,認可を編集する | |||
Editable,編集可能な | |||
Email,Eメール | |||
Email Alert,電子メールアラート | |||
@@ -329,11 +329,11 @@ Email Signature,電子メールの署名 | |||
Email Use SSL,電子メールを使用したSSL | |||
Email address,メールアドレス | |||
"Email addresses, separted by commas",カンマでseparted電子メールアドレス、 | |||
Email not verified with {1},メールによって確認していない{1} | |||
Email not verified with {1},電子メールは{1}で確認されませんでした。 | |||
Email sent to {0},{0}に送信された電子メール | |||
Email...,電子メール... | |||
Emails are muted,メールはミュートされ | |||
Embed image slideshows in website pages.,ウェブサイトのページ内の画像のスライドショーを埋め込む。 | |||
Embed image slideshows in website pages.,ウェブサイトのページ内の画像のスライドショーを埋め込んでください。 | |||
Enable,可能 | |||
Enable Comments,コメントを有効にする | |||
Enable Scheduled Jobs,スケジュールされたジョブを有効にする | |||
@@ -347,7 +347,7 @@ Enter at least one permission row,少なくとも1の許可の行を入力して | |||
Equals,等号 | |||
Error,エラー | |||
"Error generating PDF, attachment sent as HTML",HTMLとして送信されたエラー発生ファイル、添付ファイル | |||
Error: Document has been modified after you have opened it,エラー:あなたがそれを開いた後にドキュメントが変更されました | |||
Error: Document has been modified after you have opened it,エラー:あなたがそれを開いた後に文書が変更されました | |||
Event,イベント | |||
Event Datetime,イベント日時 | |||
Event Individuals,イベント個人 | |||
@@ -421,7 +421,7 @@ For DocType,のDocType用 | |||
"For Links, enter the DocType as rangeFor Select, enter list of Options separated by comma",リンクについては、範囲としてのDocTypeに入る選択して、カンマで区切られたオプションのリストを入力します。 | |||
"For comparative filters, start with",比較のフィルタの場合、で始まる | |||
For example if you cancel and amend 'INV004' it will become a new document 'INV004-1'. This helps you to keep track of each amendment.,あなたがキャンセルして「INV004」を改正する場合は、新しいドキュメント 'INV004-1」となります。これにより、各修正案を追跡するのに役立ちます。 | |||
For ranges,範囲については、 | |||
For ranges,範囲について | |||
For top bar,トップバーの | |||
For {0} at level {1} in {2} in row {3},{0}のレベルで{1} {2}の行の{3} | |||
Forgot Password,パスワードを忘れた方はこちら | |||
@@ -439,7 +439,7 @@ Gender,性別 | |||
Generator,発電機 | |||
Georgia,ジョージア | |||
Get,ゲット | |||
Get From , | |||
Get From ,フォームを取得 | |||
"Get your globally recognized avatar from <a href=""https://gravatar.com/"">Gravatar.com</a>","もし、ごhref=""https://gravatar.com/""> Gravatar.com </ A>から世界的に認知されたアバターを入手" | |||
GitHub,GitHub | |||
GitHub Client ID,GitHubのクライアントID | |||
@@ -450,13 +450,13 @@ Google,グーグル。 | |||
Google Analytics ID,{0}Google Analytics ID{/0} | |||
Google Client ID,GoogleのクライアントID | |||
Google Client Secret,Googleのクライアントの秘密 | |||
Google Plus One,グーグルプラスワン | |||
Google Plus One,Googleプラスワン | |||
Google User ID,GoogleのユーザーID | |||
Google Web Font (Heading),Googleウェブフォント(見出し) | |||
Google Web Font (Text),Googleウェブフォント(テキスト) | |||
Greater or equals,グレーターまたは等号 | |||
Greater or equals,大か等しい | |||
Greater than,より大きい | |||
"Group Added, refreshing...",グループ追加、さわやかな... | |||
"Group Added, refreshing...",グループを追加しました、さわやかな... | |||
Group Description,コミュニティの説明 | |||
Group Name,グループ名 | |||
Group Title,グループタイトル | |||
@@ -473,7 +473,7 @@ Helvetica Neue,ヘルベチカノイエ | |||
Hidden,非表示 | |||
Hide Actions,アクション隠す | |||
Hide Copy,コピーを隠す | |||
Hide Heading,隠す見出し | |||
Hide Heading,見出しを隠す | |||
Hide Toolbar,ツールバーを非表示に | |||
Hide the sidebar,サイドバーを隠す | |||
High,高 | |||
@@ -543,7 +543,7 @@ Is Submittable,Submittableです | |||
Is Task,課題である | |||
Item cannot be added to its own descendents,アイテムには独自の子孫に追加することはできません | |||
JavaScript Format: frappe.query_reports['REPORTNAME'] = {},JavaScriptの形式:frappe.query_reports ['REPORTNAME'] = {} | |||
Javascript,Javascript | |||
Javascript,ジャバスプリクト | |||
Javascript to append to the head section of the page.,Javascriptがページのheadセクションに追加する。 | |||
Key,キー (key) | |||
Label,ラベル | |||
@@ -565,7 +565,7 @@ Left,左 | |||
Less or equals,以下のequals | |||
Less than,未満 | |||
Letter,手紙 | |||
Letter Head,レターヘッド | |||
Letter Head,レターヘッド(会社名•所在地などを便箋上部に印刷したもの) | |||
Letter Head Name,レターヘッドの名前 | |||
Letter Head in HTML,HTMLでレターヘッド | |||
Level,レベル | |||
@@ -744,17 +744,17 @@ Page,ページ | |||
Page #{0} of {1},ページ#{0}の{1} | |||
Page Background,ページの背景 | |||
Page HTML,ページのHTML | |||
Page Header,ページヘッダー | |||
Page Header Background,ページヘッダーの背景 | |||
Page Header Text,ページヘッダーテキスト | |||
Page Header,ページ見出し | |||
Page Header Background,ページ見出しの背景 | |||
Page Header Text,ページ見出しテキスト | |||
Page Links,ページへのリンク | |||
Page Name,ページ名 | |||
Page Role,ページの役割 | |||
Page Text,ページテキスト | |||
Page Title,ページ タイトル | |||
Page content,ページコンテンツ | |||
Page content,ページ内容 | |||
Page not found,ページが見つかりません | |||
Page or Generator,ページまたは発電機 | |||
Page or Generator,ページまたはジェネレーター | |||
Page url name (auto-generated),ページURL名(自動生成された) | |||
Parent Label,親ラベル | |||
Parent Post,親ポスト | |||
@@ -850,10 +850,10 @@ Published,公開済み | |||
Published On,上で公開 | |||
Published on website at: {0},のウェブサイト上で公開:{0} | |||
Pull Emails from the Inbox and attach them as Communication records (for known contacts).,受信トレイからメールを引いて(知らコンタクト用)通信記録として取り付けます。 | |||
Query,クエリ | |||
Query,質問 | |||
Query Options,クエリーオプション | |||
Query Report,クエリ レポート | |||
Query must be a SELECT,クエリは、SELECTでなければなりません | |||
Query must be a SELECT,質問は、セレクトでなければなりません。 | |||
Quick Help for Setting Permissions,アクセス権を設定するためのクイックヘルプ | |||
Quick Help for User Permissions,ユーザーのアクセス許可のためのクイックヘルプ | |||
Re-open,再オープン | |||
@@ -1021,7 +1021,7 @@ Sign up,申込み | |||
Single Post (article).,シングルポスト(記事)。 | |||
Single Types have only one record no tables associated. Values are stored in tabSingles,シングルタイプはテーブルが関連付けられていない唯一の記録がある。値がtabSinglesに格納されてい | |||
Sitemap Browser,サイトマップブラウザー | |||
Slideshow,スライドショー | |||
Slideshow,スライドショー(一連の画像を順次表示するもの) | |||
Slideshow Items,スライドショーアイテム | |||
Slideshow Name,スライドショーの名前 | |||
Small Text,小さなテキスト | |||
@@ -1135,18 +1135,18 @@ Twitter Share,Twitterで共有 | |||
Twitter Share via,Twitterで共有経由 | |||
Type,データ型 | |||
Unable to find attachment {0},添付ファイル{0}が見つかりません | |||
Unable to load: {0},ロードできません:{0} | |||
Unable to load: {0},{0}を読み取ることが出来ません。 | |||
Unable to open attached file. Please try again.,添付ファイルを開くことができません。もう一度お試しください。 | |||
Unable to send emails at this time,この時に電子メールを送信することができません。 | |||
Unable to send emails at this time,メールを送信することができません。 | |||
Unknown Column: {0},不明なコラム:{0} | |||
"Unknown file encoding. Tried utf-8, windows-1250, windows-1252.",未知のファイルのエンコーディング。UTF-8、Windowsベース1250、Windowsベース1252を試してみました。 | |||
"Unknown file encoding. Tried utf-8, windows-1250, windows-1252.",未知のファイルのエンコーディング(符号化)。UTF-8、Windowsベース1250、Windowsベース1252を試し済み。 | |||
Unread Messages,未読メッセージ | |||
Unsubscribe,サービス退会 | |||
Unsubscribe,購読解除 | |||
Unsubscribed,購読解除 | |||
Upcoming Events for Today,今日のための今後のイベント | |||
Upcoming Events for Today,今日すべき事柄。 | |||
Update,更新 | |||
Update Field,フィールドの更新 | |||
Update Value,更新値 | |||
Update Field,フィールド(欄)の更新 | |||
Update Value,値の更新 | |||
Updated,更新日 | |||
Upload,アップロード | |||
Upload Attachment,添付ファイルをアップロード | |||
@@ -1157,7 +1157,7 @@ Upload and Sync,アップロードと同期 | |||
Uploading...,アップロードしています... | |||
Upvotes,Upvotes | |||
Use TLS,TLSを使用 | |||
User,ユーザー | |||
User,ユーザー(使用者) | |||
User Cannot Create,ユーザーが作成できない | |||
User Cannot Search,ユーザーが検索することはできません | |||
User Defaults,ユーザー·デフォルト設定 | |||
@@ -1181,39 +1181,39 @@ UserRole,USERROLE | |||
Users and Permissions,ユーザーと権限 | |||
Users with role {0}:,ロールを持つユーザー{0}: | |||
Valid Login id required.,有効なログインIDが必要です。 | |||
Valid email and name required,有効な電子メールと名前が必要 | |||
Valid email and name required,有効なメールアドレスと名前が必要です。 | |||
Value,値 | |||
Value Change,値変更 | |||
Value Changed,値を変更 | |||
Value cannot be changed for {0},値は{0}のために変更することはできません | |||
Value Changed,値を変更済み | |||
Value cannot be changed for {0},{0}の値は変更することはできません。 | |||
Value for a check field can be either 0 or 1,チェックフィールドの値は0または1のいずれかになります | |||
Value missing for,値に対して不足している | |||
Verdana,Verdana | |||
Version,バージョン | |||
Version restored,バージョンに復元 | |||
View or manage Website Route tree.,ウェブサイトのルートツリーを表示したり、管理します。 | |||
Visit,訪問 | |||
Value missing for,の値の記入漏れ。 | |||
Verdana,ヴァーダナ(視認性向上のために開発された書体) | |||
Version,バージョン/版 | |||
Version restored,復元版 | |||
View or manage Website Route tree.,ウェブサイトの系図経路の表示または管理。 | |||
Visit,観覧/アクセス | |||
Warning,警告 | |||
Warning: This Print Format is in old style and cannot be generated via the API.,警告:この印刷フォーマットは古いスタイルであり、APIを介して生成することはできません。 | |||
Warning: This Print Format is in old style and cannot be generated via the API.,警告:古い印刷書式のため、APIを介して生産することはできません。 | |||
Web Page,ウェブページ | |||
Web Site Forum Page.,Webサイトのフォーラムページ。 | |||
Web Site Forum Page.,ウェブサイトの掲示板 | |||
Website,ウェブサイト | |||
Website Group,ウェブサイトのグループ | |||
Website Route,ウェブルート | |||
Website Route Permission,ウェブサイトのルート許可 | |||
Website Script,ウェブサイトのスクリプト | |||
Website Route,ウェブルート(経路) | |||
Website Route Permission,ウェブサイトルートの許可 | |||
Website Script,ウェブサイトのスクリプト(処理手順プログラム) | |||
Website Settings,Webサイト設定 | |||
Website Slideshow,ウェブサイトのスライドショー | |||
Website Slideshow Item,ウェブサイトのスライドショーアイテム | |||
Website User,ウェブサイトのユーザー | |||
Website User,ウェブサイトのユーザー(利用者) | |||
Wednesday,水曜日 | |||
Welcome email sent,ウェルカムメール送信された | |||
"When you Amend a document after Cancel and save it, it will get a new number that is a version of the old number.",あなたが後にそれをキャンセルして、保存した文書を改正する場合は、古い番号のバージョンである新しい番号を取得します。 | |||
Welcome email sent,ウェルカムメール(歓迎メール)が送信されました。 | |||
"When you Amend a document after Cancel and save it, it will get a new number that is a version of the old number.",キャンセル後、書類を訂正し保存することで更新された書類は古い番号から新規の番号を取得します。 | |||
Width,幅 | |||
Will be used in url (usually first name).,URL(通常はファーストネーム)で使用されます。 | |||
Will be used in url (usually first name).,URLで使用されます。(通常名前で表記されます) | |||
With Groups,グループと | |||
With Ledgers,元帳と | |||
With Letterhead,レターヘッド付き | |||
With Letterhead,レターヘッド付き(会社名•所在地などを便箋上部に印刷したもの。) | |||
Workflow,作業の流れ | |||
Workflow Action,ワークフローアクション | |||
Workflow Action Name,ワークフローアクション名 | |||
@@ -1221,32 +1221,32 @@ Workflow Document State,ワークフロードキュメントの状態 | |||
Workflow Document States,ワークフロードキュメントの状態 | |||
Workflow Name,ワークフロー名 | |||
Workflow State,ワークフローの状態 | |||
Workflow State Field,ワークフローの状態フィールド | |||
Workflow Transition,ワークフロートランジション | |||
Workflow Transitions,ワークフロートランジション | |||
Workflow State Field,ワークフローの欄の状態 | |||
Workflow Transition,ワークフロートランジション(仕事の流れの変遷) | |||
Workflow Transitions,ワークフロートランジション(仕事の流れの変遷) | |||
Workflow will start after saving.,ワークフローは保存した後に開始されます。 | |||
Write,書き込む | |||
Write a Python file in the same folder where this is saved and return column and result.,これが保存されているのと同じフォルダにあるPythonファイルを作成し、列と結果を返します。 | |||
Write a SELECT query. Note result is not paged (all data is sent in one go).,SELECTクエリを記述します。注結果は、(すべてのデータが一度に送信されます)ページングされていません。 | |||
Write titles and introductions to your blog.,あなたのブログにタイトルや紹介を書きます。 | |||
Write a Python file in the same folder where this is saved and return column and result.,パイソンファイルをそれが保存されている同じフォルダーに保存し、コラム(縦の行)と数値を報告する。 | |||
Write a SELECT query. Note result is not paged (all data is sent in one go).,SELECTクエリ(質問)の記入。結果/返答は一度にまとめて送られてきます。 | |||
Write titles and introductions to your blog.,あなたのブログにタイトルと紹介文を記載して下さい。 | |||
Writers Introduction,作家紹介 | |||
Year,年 | |||
Yes,はい | |||
Yesterday,昨日 | |||
You are not allowed to create / edit reports,あなたは/編集レポートを作成することが許可されていません | |||
You are not allowed to export the data of: {0}. Downloading empty template.,あなたは、データをエクスポートすることはできません:{0}。空のテンプレートのダウンロード。 | |||
You are not allowed to export this report,あなたは、このレポートをエクスポートすることはできません | |||
You are not allowed to print this document,あなたは、この文書を印刷することはできません | |||
You are not allowed to send emails related to this document,あなたは、このドキュメントに関連する電子メールを送信することが許可されていません | |||
"You can change Submitted documents by cancelling them and then, amending them.",あなたはそれらを修正し、それを打ち消すことによって提出された書類を変更することができます。 | |||
You can use Customize Form to set levels on fields.,あなたは、フィールド上のレベルを設定するカスタマイズフォームを使用することができます。 | |||
You can use wildcard %,ワイルドカード%を使用することができます | |||
You cannot install this app,あなたは、このアプリをインストールすることはできません | |||
You have unsaved changes in this form. Please save before you continue.,この形式で保存されていない変更があります。続行する前に、保存してください。 | |||
You need to be logged in and have System Manager Role to be able to access backups.,あなたはログインしてバックアップにアクセスできるようにするシステムマネージャの役割を持ってする必要があります。 | |||
You need write permission to rename,名前を変更する権限を書く必要があります | |||
You seem to have written your name instead of your email. \ Please enter a valid email address so that we can get back.,あなたは、あなたの電子メールの代わりに自分の名前を書かれているように見える。\我々は取り戻すことができるように、有効なメールアドレスを入力してください。 | |||
"Your download is being built, this may take a few moments...",あなたのダウンロードは、これはしばらく時間がかかる場合があり、建設されている... | |||
You are not allowed to create / edit reports,レポートを作成/編集することが許可されていません。 | |||
You are not allowed to export the data of: {0}. Downloading empty template.,{0}のデータを出力することはできません。テンプレート(空白の定型書式ファイル)をダウンロードしています。 | |||
You are not allowed to export this report,この記事を出力することが許可されていません。 | |||
You are not allowed to print this document,この文書を印刷することが許可されていません。 | |||
You are not allowed to send emails related to this document,この書類に関連するメールを送信することが許可されていません。 | |||
"You can change Submitted documents by cancelling them and then, amending them.",書類を取り消し、修正することによって提出した書類を変更することができます。 | |||
You can use Customize Form to set levels on fields.,欄の制限を設定できるカスタマイズフォームを使用することができます。 | |||
You can use wildcard %,ワイルドカードの(%)を使用することができます | |||
You cannot install this app,このアプリ(プログラム)をインストール(取り込む)することはできません | |||
You have unsaved changes in this form. Please save before you continue.,この書式に保存されていない変更事項があります。継続する前に、保存してください。 | |||
You need to be logged in and have System Manager Role to be able to access backups.,"ログインして,’’システムマネージャロー(機能)’’でバックアップにアクセス(接続)できるようにする必要があります。" | |||
You need write permission to rename,名前を変更するために許可書を書く必要があります | |||
You seem to have written your name instead of your email. \ Please enter a valid email address so that we can get back.,メールアドレスの代わりに自分の名前を書かれているようです。\ 連絡が取れる有効なメールアドレスを入力してください。 | |||
"Your download is being built, this may take a few moments...",ダウンロード中。これはしばらくお待ち下さい。 | |||
[Label]:[Field Type]/[Options]:[Width],[ラベル]:[フィールドタイプ] / [オプション]:[幅] | |||
[Optional] Send the email X days in advance of the specified date. 0 equals same day.,[オプション]指定した日付の前に電子メールのX日に送信します。 0は同じ日に等しい。 | |||
add your own CSS (careful!),独自のCSSを追加(careful!) | |||
@@ -1306,7 +1306,7 @@ filter,filter | |||
fire,火災 | |||
flag,flag | |||
folder-close,フォルダを閉じる | |||
folder-open,フォルダオープン | |||
folder-open,フォルダを開ける | |||
font,font | |||
forward,まえがき | |||
found,発見 | |||
@@ -1406,13 +1406,13 @@ use % as wildcard,ワイルドカードとして%を使用 | |||
user,ユーザー | |||
user_image_show,user_image_show | |||
values and dates,値と日付 | |||
values separated by commas,カンマで区切られた値 | |||
volume-down,ボリュームダウン | |||
volume-off,ボリュームオフ | |||
volume-up,ボリュームアップ | |||
values separated by commas,"カンマ(,)で区切られた値" | |||
volume-down,音量を落とす | |||
volume-off,無音/音量を消す。 | |||
volume-up,音量を上げる。 | |||
warning-sign,警告サイン | |||
wrench,レンチ | |||
yyyy-mm-dd,YYYY-MM-DD | |||
wrench,レンチ(ねじ回し) | |||
yyyy-mm-dd,年/月/日 | |||
zoom-in,ズームアップ | |||
zoom-out,ズームアウト | |||
{0} List,{0}リスト | |||
@@ -16,8 +16,8 @@ | |||
<i>text</i> <b>in</b> <i>document type</i>,<i> текст </ I> <b> в </ B> <i> типа документа </ I> | |||
A user can be permitted to multiple records of the same DocType.,Пользователь может быть разрешено с несколькими записями той же DocType. | |||
About,О нас | |||
About Us Settings,О нас Настройки | |||
About Us Team Member,О нас Команда Член | |||
About Us Settings,"Настройки ""О нас""" | |||
About Us Team Member,О члене комманды | |||
Action,Действие | |||
Actions,Действия | |||
"Actions for workflow (e.g. Approve, Cancel).","Действия для рабочего процесса (например, утверждать, отменять)." | |||
@@ -112,11 +112,11 @@ Avatar,Аватар | |||
Back to Login,Войти | |||
Background Color,Цвет фона | |||
Background Image,Фоновое изображение | |||
Background Style,Фон Стиль | |||
Background Style,Стиль фона | |||
Banner,Баннер | |||
Banner HTML,Баннер HTML | |||
Banner Image,Баннер Изображение | |||
Banner is above the Top Menu Bar.,Баннер выше верхней строке меню. | |||
Banner HTML,HTML Баннер | |||
Banner Image,Изображение баннера | |||
Banner is above the Top Menu Bar.,Баннер над верхнем меню. | |||
Begin this page with a slideshow of images,Начать эту страницу с слайд-шоу из изображений | |||
Beginning with,Начиная с | |||
Belongs to,Принадлежит | |||
@@ -125,18 +125,18 @@ Birth Date,Дата рождения | |||
Blog Category,Блог Категории | |||
Blog Intro,Блог Intro | |||
Blog Introduction,Блог Введение | |||
Blog Post,Сообщение блога | |||
Blog Settings,Настройки Блог | |||
Blog Post,Пост блога | |||
Blog Settings,Настройки Блога | |||
Blog Title,Название блога | |||
Blogger,Blogger | |||
Blogger,Блоггер | |||
Bookmarks,Закладки | |||
Both login and password required,"Оба Логин и пароль, необходимый" | |||
Both login and password required,Необходимо ввести логин и пароль | |||
Brand HTML,Марка HTML | |||
Bulk Email,Массовая Email | |||
Bulk email limit {0} crossed,Предел объемной электронной почты {0} пересек | |||
Button,Кнопка | |||
By,От | |||
Calculate,Калькулировать | |||
Calculate,Рассчитать | |||
Calendar,Календарь | |||
Cancel,Отмена | |||
Cancelled,Отменено | |||
@@ -164,7 +164,7 @@ Category,Категории | |||
Category Name,Название категории | |||
Center,Центр | |||
"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.","Некоторые документы, как счета-фактуры, должны быть установлены только финал. Конечное состояние для таких документов называется Представленные. Вы можете ограничить, какие роли могут Представьте." | |||
"Change field properties (hide, readonly, permission etc.)","Изменение свойств поля (скрыть, только для чтения, разрешение и т.д.)" | |||
"Change field properties (hide, readonly, permission etc.)","Изменение свойств поля (скрыть, только для чтения, доступ и т.д.)" | |||
Chat,Чат | |||
Check,чек | |||
Check / Uncheck roles assigned to the User. Click on the Role to find out what permissions that Role has.,"Отметить / Отменить роли, назначенные пользователю. Нажмите на роли, чтобы узнать, с какими эта роль." | |||
@@ -190,10 +190,10 @@ Column Break,Разрыв столбца | |||
Comment,Комментарий | |||
Comment By,Комментарий По | |||
Comment By Fullname,Комментарий По FULLNAME | |||
Comment Date,Комментарий Дата | |||
Comment Date,Дата комментария | |||
Comment Docname,Комментарий DOCNAME | |||
Comment Doctype,Комментарий DOCTYPE | |||
Comment Time,Комментарий время | |||
Comment Time,Время комментария | |||
Comments,Комментарии | |||
Communication,Общение | |||
Communication Medium,Связь Средний | |||
@@ -211,13 +211,13 @@ Content web page.,Содержимое веб-страницы. | |||
Controller,Регулятор | |||
Copy,Копировать | |||
Copyright,Авторское право | |||
Core,Центральная территория | |||
Core,Центр управления | |||
Could not connect to outgoing email server,Не удалось подключиться к сервера исходящей почты | |||
Could not find {0},Не удалось найти {0} | |||
Count,Считать | |||
Country,Страна | |||
Create,Создать | |||
Create a new {0},Создать новую {0} | |||
Create a new {0},Создать новый {0} | |||
Created Custom Field {0} in {1},Дата создания настраиваемого поля {0} в {1} | |||
Created Customer Issue,Дата выпуска клиентов | |||
Created Opportunity,Дата Возможность | |||
@@ -239,14 +239,14 @@ Customized HTML Templates for printing transctions.,Индивидуальные | |||
Daily Event Digest is sent for Calendar Events where reminders are set.,"Ежедневно событие Дайджест направляется на Календарь событий, где установлены напоминания." | |||
Danger,Опасность | |||
Data,Данные | |||
Data Import / Export Tool,Импорт / Экспорт данных инструментов | |||
Data Import Tool,Данные Инструмент импорта | |||
Data Import / Export Tool,Инструмент Импорта/Экспорта данных | |||
Data Import Tool,Инструмент импорта данных | |||
Data missing in table,Данные отсутствует в таблице | |||
Date,Дата | |||
Date Change,Дата Изменение | |||
Date Changed,Дата Изменен | |||
Date Change,Дата Изменения | |||
Date Changed,Изменен | |||
Date Format,Формат даты | |||
Date and Number Format,Дата и номер Формат | |||
Date and Number Format,Настройки времени и валюты | |||
Date must be in format: {0},Дата должна быть в формате: {0} | |||
Datetime,Datetime | |||
Days in Advance,Дней | |||
@@ -267,9 +267,9 @@ Descending,По убыванию | |||
Description,Описание | |||
Description and Status,Описание и статус | |||
"Description for listing page, in plain text, only a couple of lines. (max 140 characters)","Описание для листинга странице, в виде обычного текста, только пару строк. (Макс. 140 символов)" | |||
Description for page header.,Описание для заголовка страницы. | |||
Description for page header.,Описание заголовка страницы. | |||
Desktop,Настольный | |||
Details,Детали | |||
Details,Подробности | |||
Did not add,Не добавить | |||
Did not cancel,Не отменить | |||
Did not find {0} for {0} ({1}),Не нашли {0} {0} ({1}) | |||
@@ -284,8 +284,8 @@ Display,Показать | |||
Display Settings,Настройки отображения | |||
Display in the sidebar of this Website Route node,Показать в боковой панели этого веб-сайта Маршрут узла | |||
Do not allow user to change after set the first time,Не позволяйте пользователю изменять после установить в первый раз | |||
Doc Status,Док Статус | |||
DocField,DocField | |||
Doc Status,Статус документа | |||
DocField,Поле документа | |||
DocPerm,DocPerm | |||
DocType,DocType | |||
DocType Details,DocType Подробнее | |||
@@ -302,11 +302,11 @@ Document is only editable by users of role,Документ может реда | |||
Documentation,Документация | |||
Documents,Документация | |||
Download,Скачать | |||
Download Backup,Скачать Резервное копирование | |||
Download Backup,Скачать резервную копию | |||
Download link for your backup will be emailed on the following email address:,Ссылка на загрузку для резервного копирования будет выслан на электронный адрес: | |||
Drafts,Черновики | |||
Drag to sort columns,Перетащите для сортировки столбцов | |||
Due Date,Дата исполнения | |||
Due Date,Дата выполнения | |||
Duplicate name {0} {1},Дубликат имя {0} {1} | |||
Dynamic Link,Dynamic Link | |||
ERPNext Demo,ERPNext Демо | |||
@@ -393,12 +393,12 @@ Fieldname {0} appears multiple times in rows {1},Fieldname {0} нескольк | |||
Fields,Поля | |||
"Fields separated by comma (,) will be included in the<br /><b>Search By</b> list of Search dialog box","Поля отделяются запятой (,) будут включены в <br /> <b> Поиск По </ B> список диалоговом окне Поиск" | |||
Fieldtype cannot be changed from {0} to {1} in row {2},FieldType не может быть изменен от {0} до {1} в строке {2} | |||
File,Файла | |||
File,Файл | |||
File Data,Файл данных | |||
File Name,Имя файла | |||
File Size,Размер файла: | |||
File URL,URL файла | |||
File not attached,Файл не прилагается | |||
File not attached,Файл не прикреплен | |||
File size exceeded the maximum allowed size of {0} MB,Размер файла превысил максимально допустимый размер {0} МБ | |||
Fill Screen,Заполнить экран | |||
Filter,Фильтр | |||
@@ -414,9 +414,9 @@ Font Size,Размер шрифта | |||
Font Size (Text),Размер шрифта (Текст) | |||
Fonts,Шрифты | |||
Footer,Подвал | |||
Footer Background,Footer фона | |||
Footer Background,Фон подвала | |||
Footer Items,Footer товары | |||
Footer Text,Сноска | |||
Footer Text,Текст подвала | |||
For DocType,Для DocType | |||
"For Links, enter the DocType as rangeFor Select, enter list of Options separated by comma","Для Ссылки, введите DocType как диапазон Для Select, введите список опций через запятую" | |||
"For comparative filters, start with","Для сравнения фильтров, начните с" | |||
@@ -428,7 +428,7 @@ Forgot Password,Забыли пароль | |||
Forgot Password?,Забыли пароль? | |||
Form,Форма | |||
Forum,Форум | |||
Forums,Форум | |||
Forums,Форумы | |||
Forward To Email Address,Вперед на электронный адрес | |||
Frappe Framework,Фраппе Framework | |||
Friday,Пятница | |||
@@ -476,7 +476,7 @@ Hide Copy,Скрыть Копировать | |||
Hide Heading,Свернуть Заголовок | |||
Hide Toolbar,Скрыть панель инструментов | |||
Hide the sidebar,Скрыть боковую панель | |||
High,Высокая | |||
High,Высокий | |||
Highlight,Выделить | |||
History,История | |||
Home Page,Домашняя Страница | |||
@@ -491,16 +491,16 @@ Icon will appear on the button,Иконка появится на кнопку | |||
If non standard port (e.g. 587),"Если, не стандартный порт (например, 587)" | |||
"If these instructions where not helpful, please add in your suggestions on GitHub Issues.","Если эти инструкции, где не помогает, пожалуйста, добавьте в ваши предложения по вопросам GitHub." | |||
"If you set this, this Item will come in a drop-down under the selected parent.","Если вы установите это, этот предмет придет в раскрывающемся списке под выбранной родителя." | |||
Ignore User Permissions,Игнорировать разрешений пользователя | |||
Ignore User Permissions,Игнорировать разрешеник пользователя | |||
"Ignoring Item {0}, because a group exists with the same name!","Игнорирование Пункт {0}, потому что группа существует с тем же именем!" | |||
Image,Изображение | |||
Image Link,Ссылка Изображения | |||
Image Link,Ссылка на изображения | |||
Import,Импорт | |||
Import / Export Data,Импорт / Экспорт данных | |||
Import / Export Data from .csv files.,Импорт / Экспорт данных из. CSV-файлов. | |||
Import / Export Data from .csv files.,Импорт / Экспорт CSV файлов. | |||
In,В | |||
In Dialog,В диалоге | |||
In Filter,В фильтр | |||
In Filter,В фильтрe | |||
In List View,В виде списка | |||
In Report Filter,В Сообщить Фильтр | |||
In points. Default is 9.,В точках. По умолчанию 9. | |||
@@ -514,22 +514,22 @@ Insert After,Вставьте После | |||
"Insert After field '{0}' mentioned in Custom Field '{1}', does not exist","Вставьте После области '{0}' упоминается в настраиваемого поля '{1}', не существует" | |||
Insert Below,Вставить ниже | |||
Insert Code,Вставить код | |||
Insert Row,Insert Row | |||
Insert Row,Вставить ряд | |||
Insert Style,Вставьте стиль | |||
Install Applications.,Установка приложений. | |||
Installed,Установлен | |||
Installer,Монтажник | |||
Installer,Установщик | |||
Int,Интервал | |||
Integrations,Интеграции | |||
Introduce your company to the website visitor.,Представьте вашу компанию на посетителя сайта. | |||
Introduction,Введение | |||
Introductory information for the Contact Us Page,Вводная информация для Контакты Page | |||
Introductory information for the Contact Us Page,Вводная информация для страницы контактов | |||
Invalid Email: {0},Неверный e-mail: {0} | |||
Invalid Filter: {0},Неверный Фильтр: {0} | |||
Invalid Home Page,Неверный Главная страница | |||
Invalid Login,Неверный Войти | |||
Invalid Home Page,Неверная Главная страница | |||
Invalid Login,Неправильный Login | |||
Invalid Outgoing Mail Server or Port,Неверный Сервер исходящей почты или порт | |||
Invalid login or password,Неверный Войти или пароль | |||
Invalid login or password,Неверный логин или пароль | |||
Invalid recipient address,Неверный адрес получателя | |||
Inverse,Обратный | |||
Is Active,Активен | |||
@@ -593,13 +593,13 @@ Login Id,Логин ID | |||
Login not allowed at this time,Войти не допускается в это время | |||
Logout,Выход | |||
Long Text,Длинный текст | |||
Low,Низкая | |||
Low,Низкий | |||
Lucida Grande,Lucida Grande | |||
Mail Password,Почта Пароль | |||
Main Section,Основной раздел | |||
Make a new,Создайте новый | |||
Make a new record,Сделать новый рекорд | |||
Male,Муж | |||
Make a new,Создать новый | |||
Make a new record,Сделать новую запись | |||
Male,Мужчина | |||
Manage cloud backups on Dropbox,Управление облачных резервные копии на Dropbox | |||
Manage uploaded files.,Управление загруженные файлы. | |||
Mandatory,Обязательный | |||
@@ -609,17 +609,17 @@ Master,Мастер | |||
Max Attachments,Максимальное Вложения | |||
Max width for type Currency is 100px in row {0},Максимальная ширина для типа валюта 100px в строке {0} | |||
"Meaning of Submit, Cancel, Amend","Значение Представьте, Отменить, Изменить" | |||
Medium,Средние булки | |||
Medium,Средний | |||
"Menu items in the Top Bar. For setting the color of the Top Bar, go to <a href=""#Form/Style Settings"">Style Settings</a>","Элементы меню на верхней панели. Для установки цвета верхней панели, перейдите в <a href=""#Form/Style настройки стиля Settings""> </ A>" | |||
Merging is only possible between Group-to-Group or Leaf Node-to-Leaf Node,Слияние возможно только между Группа-в-группе или Leaf узел-листовой узел | |||
Message,Сообщение | |||
Message Examples,Примеры сообщений | |||
Message Examples,Пример сообщения | |||
Messages,Сообщения | |||
Method,Метод | |||
Middle Name (Optional),Отчество (необязательно) | |||
Misc,Разное | |||
Miscellaneous,Разное | |||
Missing Values Required,Отсутствующие значения Обязательные | |||
Missing Values Required,Не заполнены обязательные поля | |||
Modern,"модные," | |||
Modified by,Изменено | |||
Module,Модуль | |||
@@ -640,7 +640,7 @@ Name,Имя | |||
Name Case,"Название, наименование, обозначение дела" | |||
Name and Description,Название и описание | |||
Name is required,Имя обязательно | |||
Name not permitted,Имя не допускается | |||
Name not permitted,Имя не допускаетимо | |||
Name not set via Prompt,Имя не установлено через строки | |||
Name of the Document Type (DocType) you want this field to be linked to. e.g. Customer,"Название типа документа (DOCTYPE) вы хотите это поле, чтобы быть связаны с. например клиентов" | |||
Name of {0} cannot be {1},Название {0} не может быть {1} | |||
@@ -656,7 +656,7 @@ New value to be set,Новое значение будет установлен | |||
New {0},Новый {0} | |||
Next Communcation On,Следующая Communcation На | |||
Next Record,Следующая запись | |||
Next State,Следующая государственный | |||
Next State,Следующее состояние | |||
Next actions,Дальнейшие действия | |||
No,Нет | |||
No Action,Никаких действий | |||
@@ -670,10 +670,10 @@ No User Permissions found.,Нет Разрешения пользователе | |||
No data found,Данные не найдены | |||
No file attached,Нет файла прилагается | |||
No further records,Никаких дополнительных записей | |||
No one,"Никто," | |||
No one,Никто | |||
No permission to '{0}' {1},Нет доступа для '{0}' {1} | |||
No permission to edit,Нет доступа для редактирования | |||
No permission to write / remove.,Нет доступа для записи / Удалить. | |||
No permission to write / remove.,Нет доступа для записи/удаления. | |||
No records tagged.,Записи отсутствуют помечены. | |||
No template found at path: {0},Не шаблон не найдено на пути: {0} | |||
No {0} permission,Нет {0} разрешение | |||
@@ -699,12 +699,12 @@ Not in Developer Mode! Set in site_config.json,Не в режиме разраб | |||
Not permitted,Не допускается | |||
"Note: For best results, images must be of the same size and width must be greater than height.","Примечание: Для достижения наилучших результатов, изображения должны быть того же размера и ширина должна быть больше, чем высота." | |||
Note: Other permission rules may also apply,Примечание: Другие правила разрешений может также применяться | |||
Note: maximum attachment size = 1mb,Примечание: Максимальный размер приложения = 1 Мб | |||
Note: maximum attachment size = 1mb,Примечание: Максимальный размер прикрепленного файла = 1 Мб | |||
Nothing to show,"Ничего, чтобы показать" | |||
Nothing to show for this selection,"Ничего, чтобы показать для этого выбора" | |||
Notification Count,Граф Уведомление | |||
Notify by Email,Сообщите по электронной почте | |||
Number Format,Number Формат | |||
Notify by Email,Уведомление по почте | |||
Number Format,Числовой\валютный формат | |||
Old Parent,Старый родительский | |||
On,Вкл | |||
"Once you have set this, the users will only be able access documents (eg. Blog Post) where the link exists (eg. Blogger).","После установки этого, пользователи смогут только доступ к документам (напр. Сообщение в блоге), где связь существует (например, Blogger)." | |||
@@ -713,8 +713,8 @@ Only Administrator can save a standard report. Please rename and save.,"Толь | |||
Only Allow Edit For,Только Разрешить редактирования для | |||
Only allowed {0} rows in one import,Только разрешенные {0} строк в одном импорта | |||
Oops! Something went wrong,Упс! Что-то пошло не так. | |||
Open,Открыть | |||
Open Count,Открыть Граф | |||
Open,Открыт | |||
Open Count,Открыть счет | |||
Open Sans,Открыть Sans | |||
Open Source Web Applications for the Web,Веб-приложения с открытым исходным кодом для Web | |||
Open a module or tool,Откройте модуль или инструмент | |||
@@ -733,26 +733,26 @@ Org History,Org История | |||
Org History Heading,Org История Заголовок | |||
Original Message,Исходное сообщение | |||
Other,Другое | |||
Outgoing Email Settings,Исходящие Настройки электронной почты | |||
Outgoing Email Settings,Настройки исходящей почты | |||
Outgoing Mail Server,Сервер исходящей почты | |||
Outgoing Mail Server not specified,Сервер исходящей почты не указано | |||
Outgoing Mail Server not specified,Сервер исходящей почты не определен | |||
Owner,Владелец | |||
PDF Page Size,PDF Размер страницы | |||
PDF Page Size,Размер PDF страницы | |||
PDF Settings,Настройки PDF | |||
POP3 Mail Server (e.g. pop.gmail.com),"Почты POP3-сервер (например, pop.gmail.com)" | |||
Page,Страница | |||
Page #{0} of {1},Страница # {0} {1} | |||
Page Background,Фон страницы | |||
Page HTML,Страница HTML | |||
Page Header,Борьбе с коррупцией: США издание | |||
Page Header,Заголовок страницы | |||
Page Header Background,Заголовок страницы Фон | |||
Page Header Text,Заголовок страницы текста | |||
Page Links,Страница Ссылки | |||
Page Header Text,Текст заголовка страницы | |||
Page Links,Ссылки страницы | |||
Page Name,Имя страницы | |||
Page Role,Страница Роль | |||
Page Text,Страница текста | |||
Page Title,Название страницы | |||
Page content,Содержание страницы | |||
Page content,Содержимое страницы | |||
Page not found,Страница не найдена | |||
Page or Generator,Или генератор | |||
Page url name (auto-generated),Название URL страницы (автоматически сгенерированный) | |||
@@ -763,7 +763,7 @@ Parent Website Route,Родитель Сайт Маршрут | |||
Parent Website Sitemap,Родитель Сайт Карта сайта | |||
Participants,Участники | |||
Password,Пароль | |||
Password Updated,Пароль Обновлено | |||
Password Updated,Пароль Обновлен | |||
Password reset instructions have been sent to your email,Инструкции Восстановление пароля были отправлены на электронную почту | |||
Patch,Исправление(Патч) | |||
Patch Log,Патч Вход | |||
@@ -772,18 +772,18 @@ Perm Level,Пермь Уровень | |||
Permanently Cancel {0}?,Постоянно Отменить {0}? | |||
Permanently Submit {0}?,Постоянно Представьте {0}? | |||
Permanently delete {0}?,Навсегда удалить {0}? | |||
Permission Level,Введено Уровень | |||
Permission Levels,Уровни разрешений | |||
Permission Rules,Введено Правила | |||
Permission already set,Введено уже установлен | |||
Permission Level,Уровень доступа | |||
Permission Levels,Уровни доступа | |||
Permission Rules,Правило доступа | |||
Permission already set,Разрешение уже установленно | |||
Permissions,Разрешения | |||
Permissions Settings,Разрешения Настройки | |||
Permissions Settings,Настройки доступа | |||
Permissions are automatically translated to Standard Reports and Searches.,Разрешения автоматически переведен на стандартные отчеты и альбом. | |||
"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.","Разрешения устанавливаются на ролей и типов документов (так называемые DOCTYPEs), установив права, как читать, писать, создавать, удалять, Представьте, Отменить, Изменить, Доклад, экспорт, импорт, печать, электронная почта и устанавливать разрешения пользователя." | |||
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.,"Разрешения на более высоких уровнях это разрешения ""ровное поле '. Все поля имеют ""уровень разрешений"" набор против них и правилами, определенными в том, что разрешения применяются к полю. Это полезно в случае, если вы хотите, чтобы скрыть или сделать определенные поле только для чтения для определенных ролей." | |||
"Permissions at level 0 are 'Document Level' permissions, i.e. they are primary for access to the document.","Разрешения на уровне 0 это разрешения ""уровне документа"", то есть они являются первичными для доступа к документу." | |||
Permissions get applied on Users based on what Roles they are assigned.,"Разрешения быть применена на пользователей на основе того, что Роли они назначены." | |||
Permitted Documents For User,Разрешенные Документы для пользователя | |||
Permitted Documents For User,Разрешенные документы для пользователя | |||
Person,Персона | |||
Personal Info,Сведения о себе | |||
Phone,Телефон | |||
@@ -822,7 +822,7 @@ Post Topic,Сообщение Тема | |||
Post already exists. Cannot add again!,Сообщение уже существует. Не можете добавить снова! | |||
Post does not exist. Please add post!,"Сообщение не существует. Пожалуйста, добавьте пост!" | |||
Post to user,Начать с пользователем | |||
Posts,Записи | |||
Posts,Посты | |||
Previous Record,Предыдущая запись | |||
Primary,Основной | |||
Print,Печать | |||
@@ -845,7 +845,7 @@ Properties,Недвижимость | |||
Property,Свойство | |||
Property Setter,Сеттер недвижимости | |||
Property Type,Тип недвижимости | |||
Public,Публичный | |||
Public,Публично | |||
Published,Опубликовано | |||
Published On,Опубликовано на | |||
Published on website at: {0},Опубликовано на веб-сайте по адресу: {0} | |||
@@ -924,8 +924,8 @@ Same file has already been attached to the record,То же файл уже пр | |||
Sample,Образец | |||
Saturday,Суббота | |||
Save,Сохранить | |||
Scheduler Log,Планировщик Вход | |||
Script,Сценарий | |||
Scheduler Log,Лог планировщика | |||
Script,Скрипт | |||
Script Report,Сообщить скрипта | |||
Script Type,Тип скрипта | |||
Search,Поиск | |||
@@ -933,8 +933,8 @@ Search Fields,Поиск Поля | |||
Search in a document type,Поиск в тип документа | |||
Search or type a command,Поиск либо введите команду | |||
Section Break,Разделитель Секций | |||
Security,Охрана | |||
Security Settings,Безопасность | |||
Security,Безопасность | |||
Security Settings,Настройки безопасности | |||
Select,Выбрать | |||
Select All,Выбрать Все | |||
Select Attachments,Выберите Вложения | |||
@@ -943,9 +943,9 @@ Select Document Type or Role to start.,"Выбор типа документа | |||
Select Print Format,Выберите Формат печати | |||
Select Report Name,Выберите Имя отчета | |||
Select Role,Выберите Роль | |||
Select To Download:,Выберите на скачивание: | |||
Select To Download:,Выберите для скачивания: | |||
Select Type,Выберите тип | |||
Select User or DocType to start.,Выберите пользователя или DocType начать. | |||
Select User or DocType to start.,Сначала выберите пользователя или тип документа. | |||
Select a Banner Image first.,Выберите изображение баннера в первую очередь. | |||
Select an image of approx width 150px with a transparent background for best results.,Выберите изображение шириной около 150px с прозрачным фоном для достижения наилучших результатов. | |||
Select dates to create a new , | |||
@@ -956,7 +956,7 @@ Select the label after which you want to insert new field.,"Выберите м | |||
Send,Отправить | |||
Send Alert On,Отправить оповещение о | |||
Send As Email,Отправить по электронной почте | |||
Send Email,Отправить на e-mail | |||
Send Email,Отправить e-mail | |||
Send Email Print Attachments as PDF (Recommended),Отправить E-mail Распечатать Вложения как PDF (рекомендуется) | |||
Send Me A Copy,Отправить мне копию | |||
Send Password,Отправить пароль | |||
@@ -976,38 +976,38 @@ Series {0} already used in {1},Серия {0} уже используется в | |||
Server,Сервер | |||
Server & Credentials,Сервер и Полномочия | |||
Server Error: Please check your server logs or contact tech support.,"Ошибка сервера: Пожалуйста, проверьте логи сервера или в службу технической поддержки." | |||
Session Expired. Logging you out,Сессия просрочена. Вход вас | |||
Session Expiry,Заседание Срок | |||
Session Expiry in Hours e.g. 06:00,Заседание Срок в часах например 6:00 | |||
Session Expiry must be in format {0},Заседание Срок должен быть в формате {0} | |||
Set Banner from Image,Баннер набор из изображения | |||
Set Link,Установите Ссылка | |||
Session Expired. Logging you out,Сессия просрочена. Зайдите заново | |||
Session Expiry,Время сессии | |||
Session Expiry in Hours e.g. 06:00,"Время сессии в часах, например 06:00" | |||
Session Expiry must be in format {0},Время сессии должно быть в формате {0} | |||
Set Banner from Image,Установить баннер из изображения | |||
Set Link,Установите Ссылку | |||
Set Login and Password if authentication is required.,"Набор Логин и пароль, если требуется аутентификация." | |||
Set Only Once,Установлен только один раз | |||
Set Password,Установите пароль | |||
Set Permissions on Document Types and Roles,Установить разрешения на типов документов и роли | |||
Set Permissions per User,Установка разрешений на пользователя | |||
Set User Permissions,Задание разрешений пользователя | |||
Set Value,Заданное значение | |||
Set Value,Задать значение | |||
"Set default format, page size, print style etc.","Установить формат по умолчанию, размер страницы, стиль печати и т.д." | |||
Set numbering series for transactions.,Установите нумерации серии для сделок. | |||
Set outgoing mail server.,Установить сервер исходящей почты. | |||
Settings,Настройки | |||
Settings for About Us Page.,Настройки для О нас страницы. | |||
Settings for Contact Us Page.,Настройки для Контакты Page. | |||
Setup,Настройка | |||
Setup,Настройки | |||
Setup > User,Настройка> Пользователь | |||
Setup > User Permissions Manager,Настройка> Разрешения пользователей менеджер | |||
Setup > User Permissions Manager,Настройка> Права пользователей | |||
Setup Email Alert based on various criteria.,Настройка E-mail оповещения на основе различных критериев. | |||
Setup of fonts and background.,Настройка шрифтов и фона. | |||
"Setup of top navigation bar, footer and logo.",Настройка верхней панели навигации сноске и логотип. | |||
"Setup of top navigation bar, footer and logo.","Настройка верхней панели, навигации, подвала и логотипа." | |||
Short Bio,Краткая справка | |||
Short Name,Краткое Имя | |||
Shortcut,Комбинация клавиш | |||
Short Name,Короткое Имя | |||
Shortcut,Ярлык | |||
Show / Hide Modules,Показать / скрыть модули | |||
Show Print First,Показать печатаются в первую очередь | |||
Show Tags,Показать Теги | |||
Show or hide modules globally.,Показать или скрыть модули во всем мире. | |||
Show or hide modules globally.,Показать или скрыть модули глобально | |||
Show rows with zero values,Показать строки с нулевыми значениями | |||
Show tags,Показать Теги | |||
Show this field as title,Показать это поле как название | |||
@@ -1018,18 +1018,18 @@ Sidebar Links for Home Page only,Sidebar Ссылки для домашней с | |||
Sign Up,Зарегистрироваться | |||
Sign in,Войти | |||
Sign up,Зарегистрироваться | |||
Single Post (article).,Сообщение отдельно (статья). | |||
Single Post (article).,Один пост(статья). | |||
Single Types have only one record no tables associated. Values are stored in tabSingles,"Холост Типы нет только одна запись не таблицы, связанные. Значения сохраняются в tabSingles" | |||
Sitemap Browser,Карта сайта Обозреватель | |||
Slideshow,Слайд-шоу | |||
Slideshow Items,Слайд-шоу товары | |||
Slideshow Name,Слайд-шоу Имя | |||
Small Text,Небольшой текст | |||
Small Text,Маленьикий текст | |||
Social Login Keys,Социальная Вход Ключи | |||
Solid background color (default light gray),Твердые цвет фона (по умолчанию светло-серый) | |||
Sorry we were unable to find what you were looking for.,"К сожалению, мы не смогли найти то, что вы искали." | |||
Sorry you are not permitted to view this page.,"Жаль, что вы не имеете права просматривать эту страницу." | |||
Sort By,Сортировка | |||
Sort By,Сортировать по | |||
Sort Field,Сортировать поле | |||
Sort Order,Порядок сортировки | |||
Standard,Стандартный | |||
@@ -1038,16 +1038,16 @@ Standard Reply,Стандартный ответ | |||
Standard Reports,Стандартные отчеты | |||
Standard replies to common queries.,Стандартный отвечает на распространенные вопросы. | |||
Start Report For,Начните Отчет для | |||
Starts on,Запускает на | |||
Starts on,Начало | |||
State,Состояние | |||
States,Штаты | |||
"States for workflow (e.g. Draft, Approved, Cancelled).","Штаты для рабочего процесса (например, проекты, одобрен, Отменено)." | |||
States,Состояния | |||
"States for workflow (e.g. Draft, Approved, Cancelled).","Состояния для рабочего процесса (например, черновик, опубликован, отменен)." | |||
Static File Timestamp,Статический Отметка времени файла | |||
Status,Статус | |||
Step 1: Set the name and save.,Шаг 1: Установить имя и сохранить. | |||
Step 2: Set Letterhead content.,Шаг 2: Установите бланков содержание. | |||
Step 1: Set the name and save.,Шаг 1: Введите имя и сохраните | |||
Step 2: Set Letterhead content.,Шаг 2: Введите содержание бланка. | |||
Style,Стили | |||
Style Settings,Стиль Настройки | |||
Style Settings,Настройки стилей | |||
"Style represents the button color: Success - Green, Danger - Red, Inverse - Black, Primary - Dark Blue, Info - Light Blue, Warning - Orange","Стиль представляет цвет кнопки: Успех - Зеленый, Danger - красный, Обратная - черный, Первичная - темно-синий, информация - светло-голубой, Предупреждение - Оранжевый" | |||
Sub-domain provided by erpnext.com,Суб-домен предоставляется erpnext.com | |||
Subdomain,Домен | |||
@@ -1056,15 +1056,15 @@ Submit,Отправить | |||
Submit an Issue,Представьте о проблеме | |||
Submitted,Представленный | |||
Submitted Document cannot be converted back to draft. Transition row {0},Представленные Документ не может быть преобразован обратно в проект. Переход строка {0} | |||
Success,Успех | |||
Success,Успешно | |||
Suggestion,Предложение | |||
Sunday,Воскресенье | |||
Switch to Website,Перейти на сайт | |||
Sync Inbox,Синхронизация Входящие | |||
Sync Inbox,Синхронизировать Входящие | |||
System,Система | |||
System Settings,Настройки системы | |||
System User,Система Пользователь | |||
System and Website Users,Системные и сайта Пользователи | |||
System User,Пользователь системы | |||
System and Website Users,Пользователи сайта и системы | |||
System generated mails will be sent from this email id.,Система генерируемые письма будут отправлены из этого электронный идентификатор. | |||
Table,Стол | |||
Table {0} cannot be empty,Таблица {0} не может быть пустым | |||
@@ -1106,16 +1106,16 @@ Thursday,Четверг | |||
Tile,Плитка | |||
Time,Время | |||
Time Zone,Часовой Пояс | |||
Timezone,Часовой пояс | |||
Title,Как к вам обращаться? | |||
Timezone,Временная зона | |||
Title,Заголовок | |||
Title / headline of your page,Название / заголовок вашей страницы | |||
Title Case,Название дела | |||
Title Field,Поле заголовка | |||
Title Field,Название поля | |||
Title Prefix,Название Приставка | |||
Title field must be a valid fieldname,Название поля должно быть допустимым имя_поля | |||
Title is required,Укажите название | |||
To,До | |||
To Do,Делать | |||
To Do,ToDo лист | |||
"To format columns, give column labels in the query.","Для форматирования столбцов, дать заголовки столбцов в запросе." | |||
"To give acess to a role for only specific records, check the 'Apply User Permissions'. User Permissions are used to limit users with such role to specific records.","Чтобы дать широкий доступ к роли только определенных записей, проверить ""Применить разрешений пользователя. Разрешения пользователей используются для ограничения пользователей с такой роли конкретных записей." | |||
"To run a test add the module name in the route after '{0}'. For example, {1}","Чтобы запустить тест добавить имя модуля в маршруте после '{0}'. Например, {1}" | |||
@@ -1205,7 +1205,7 @@ Website Script,Сайт скрипта | |||
Website Settings,Настройки сайта | |||
Website Slideshow,Сайт Слайд-шоу | |||
Website Slideshow Item,Сайт Слайд-шоу Пункт | |||
Website User,Сайт пользователя | |||
Website User,Пользователь сайта | |||
Wednesday,Среда | |||
Welcome email sent,"Добро пожаловать Письмо, отправленное" | |||
"When you Amend a document after Cancel and save it, it will get a new number that is a version of the old number.","При Изменить документ после Отменить и сохранить его, он будет получать новый номер, который является версией старой числа." | |||
@@ -1214,14 +1214,14 @@ Will be used in url (usually first name).,Будет использоватьс | |||
With Groups,С группы | |||
With Ledgers,С Ledgers | |||
With Letterhead,На фирменном бланке | |||
Workflow,Рабочие процессы | |||
Workflow,Рабочий процесс | |||
Workflow Action,Действия рабочего процесса | |||
Workflow Action Name,Действия рабочего процесса Имя | |||
Workflow Document State,Workflow государственный документ | |||
Workflow Document States,Рабочий процесс Штаты Документ | |||
Workflow Name,Название рабочий | |||
Workflow State,Workflow государственный | |||
Workflow State Field,Рабочий процесс Государственный поле | |||
Workflow Name,Название рабочего процесса | |||
Workflow State,Состояние рабочего процесса | |||
Workflow State Field,Поле состояния рабочего процесса | |||
Workflow Transition,Рабочий процесс перехода | |||
Workflow Transitions,Workflow Переходы | |||
Workflow will start after saving.,Рабочий процесс начнется после сохранения. | |||
@@ -1360,7 +1360,8 @@ play-circle,играть круга | |||
plus,А ТАКЖЕ | |||
plus-sign,знак плюс | |||
print,print | |||
qrcode,QRCode | |||
qrcode,"QR код | |||
" | |||
question-sign,Вопрос-знак | |||
random,random | |||
refresh,обновить | |||
@@ -1379,7 +1380,7 @@ screenshot,Скриншот | |||
search,поиск | |||
share,ПОДЕЛИТЬСЯ | |||
share-alt,Доля-альт | |||
shopping-cart,торгово-корзина | |||
shopping-cart,Корзина | |||
signal,сигнал | |||
star,звезда | |||
star-empty,звезды пусто | |||
@@ -14,18 +14,18 @@ | |||
<i>e.g. <strong>(55 + 434) / 4</strong> or <strong>=Math.sin(Math.PI/2)</strong>...</i>,<i> örneğin <strong> (55 + 434) / 4 </ strong> veya <strong> = Math.sin (Math.PI / 2) </ strong> ... </ i> | |||
<i>module name...</i>,<i> modül adı ... </ i> | |||
<i>text</i> <b>in</b> <i>document type</i>,<i> metin </ i> <b> </ b> belge türü </ i> <i> | |||
A user can be permitted to multiple records of the same DocType.,Bir kullanıcı aynı DocType birden kayıtlarına müsaade edilebilir. | |||
A user can be permitted to multiple records of the same DocType.,Bir kullanıcı aynı dosya tipi için birden fazla kayda onay verebilir. | |||
About,Hakkında | |||
About Us Settings,Hakkımızda Ayarları Hakkında | |||
About Us Team Member,Hakkımızda Ekip Üyesi Hakkında | |||
About Us Settings,Hakkımızda Ayarları | |||
About Us Team Member,Ekip üyeleri hakkında | |||
Action,Eylem | |||
Actions,Eylemler | |||
"Actions for workflow (e.g. Approve, Cancel).",Iş akışı için eylemleri (örneğin İptal Onayla). | |||
"Actions for workflow (e.g. Approve, Cancel).","İş akışı için eylemler (örneğin İptal, Onayla)." | |||
Add,Ekle | |||
Add A New Rule,Yeni Kuralı Ekle | |||
Add A User Permission,Bir Kullanıcı İzni ekle | |||
Add Attachments,Ekler ekle | |||
Add Bookmark,Yerimi ekle | |||
Add A New Rule,Yeni Kural Ekle | |||
Add A User Permission,Kullanıcı İzni Ekleyin | |||
Add Attachments,Ekleri ekle | |||
Add Bookmark,Yer imi ekle | |||
Add CSS,CSS Ekle | |||
Add Column,Sütun Ekle | |||
Add Google Analytics ID: eg. UA-89XXX57-1. Please search help on Google Analytics for more information.,Google Analytics ID ekleyin: örn. UA-89XXX57-1. Daha fazla bilgi için Google Analytics yardım arayın. | |||
@@ -35,7 +35,7 @@ Add Reply,Yanıt Ekle | |||
Add Total Row,Toplam satır ekle | |||
Add a New Role,Yeni Rol Ekle | |||
Add a banner to the site. (small banners are usually good),Siteye bir afiş ekleyin. (Küçük afiş genellikle iyidir) | |||
Add all roles,Tüm rolleri Ekle | |||
Add all roles,Rol Ekleyin | |||
Add attachment,Ek ekle | |||
Add code as <script>,<script> Gibi kod ekle | |||
Add custom javascript to forms.,Formlara özel javascript ekle. | |||
@@ -110,22 +110,22 @@ Auto Name,Otomatik Ad | |||
Auto generated,Otomatik oluşturulan | |||
Avatar,Resim | |||
Back to Login,Giriş Sayfasına Dön | |||
Background Color,Arka Plan Rengi | |||
Background Color,Arkaplan Rengi | |||
Background Image,Arkaplan Resmi | |||
Background Style,Arkaplan Stili | |||
Banner,Banner | |||
Banner HTML,Banner HTML | |||
Banner Image,Banner Resmi | |||
Banner is above the Top Menu Bar.,Banner Top Menu Bar üzerindedir. | |||
Begin this page with a slideshow of images,Görüntülerin bir slayt gösterisi ile bu sayfayı başlayın | |||
Begin this page with a slideshow of images,Bu sayfayı slayt gösterisi ile başlatın. | |||
Beginning with,Ile başlayan | |||
Belongs to,Ait | |||
Bio,Bio | |||
Bio,Biyo | |||
Birth Date,Doğum tarihi | |||
Blog Category,Blog Kategorisi | |||
Blog Intro,Intro Blog | |||
Blog Intro,Blog girişi | |||
Blog Introduction,Blog Tanıtım | |||
Blog Post,Blog Post | |||
Blog Post,Blog postası | |||
Blog Settings,Blog Ayarları | |||
Blog Title,Blog Başlığı | |||
Blogger,Blogcu | |||
@@ -1262,11 +1262,11 @@ arrow-right,ok-sağ | |||
arrow-up,ok-up | |||
asterisk,yıldız işareti | |||
backward,geri | |||
ban-circle,ban-daire | |||
ban-circle,'Giriş izni yok' simgesi | |||
barcode,Barkod | |||
beginning with,ile başlayan | |||
bell,çan | |||
bold,cesur | |||
bold,kalın | |||
book,kitap | |||
bookmark,imi | |||
briefcase,evrak çantası | |||
@@ -1413,8 +1413,8 @@ volume-up,hacim-up | |||
warning-sign,uyarı işareti | |||
wrench,İngiliz anahtarı | |||
yyyy-mm-dd,yyyy-aa-gg | |||
zoom-in,zoom-in | |||
zoom-out,zoom-out | |||
zoom-in,Yakınlaştırın | |||
zoom-out,Uzaklaştırın | |||
{0} List,{0} Listesi | |||
{0} added,{0} eklendi | |||
{0} by {1},{0} {1} | |||
@@ -1,7 +1,6 @@ | |||
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors | |||
# MIT License. See license.txt | |||
from __future__ import unicode_literals | |||
from jinja2 import Template | |||
def get_jenv(): | |||
import frappe | |||
@@ -24,13 +23,11 @@ def get_template(path): | |||
return get_jenv().get_template(path) | |||
def render_template(template, context): | |||
if not "frappe" in context: | |||
context.update(get_allowed_functions_for_jenv()) | |||
template = Template(template) | |||
return template.render(**context) | |||
return get_jenv().from_string(template).render(context) | |||
def get_allowed_functions_for_jenv(): | |||
import frappe | |||
import frappe.utils | |||
import frappe.utils.data | |||
datautils = {} | |||
@@ -43,19 +40,29 @@ def get_allowed_functions_for_jenv(): | |||
# only allow functions | |||
datautils[key] = obj | |||
if "_" in frappe.local.form_dict: | |||
del frappe.local.form_dict["_"] | |||
return { | |||
# make available limited methods of frappe | |||
"frappe": { | |||
"_": frappe._, | |||
"format_value": frappe.format_value, | |||
"format_date": frappe.utils.data.global_date_format, | |||
"form_dict": frappe.local.form_dict, | |||
"local": frappe.local, | |||
"get_hooks": frappe.get_hooks, | |||
"get_meta": frappe.get_meta, | |||
"get_doc": frappe.get_doc, | |||
"db": { | |||
"get_value": frappe.db.get_value, | |||
}, | |||
"get_list": frappe.get_list, | |||
"get_all": frappe.get_all, | |||
"utils": datautils, | |||
"user": frappe.session.user, | |||
"date_format": frappe.db.get_default("date_format") or "yyyy-mm-dd" | |||
"user": frappe.local.session.user, | |||
"date_format": frappe.db.get_default("date_format") or "yyyy-mm-dd", | |||
"get_gravatar": frappe.utils.get_gravatar | |||
}, | |||
"get_visible_columns": \ | |||
frappe.get_attr("frappe.templates.pages.print.get_visible_columns"), | |||
@@ -173,6 +173,14 @@ def get_user_fullname(user): | |||
fullname = frappe.db.sql("SELECT CONCAT_WS(' ', first_name, last_name) FROM `tabUser` WHERE name=%s", (user,)) | |||
return fullname and fullname[0][0] or '' | |||
def get_fullname_and_avatar(user): | |||
first_name, last_name, avatar = frappe.db.get_value("User", | |||
user, ["first_name", "last_name", "user_image"]) | |||
return { | |||
"fullname": " ".join(filter(None, [first_name, last_name])), | |||
"avatar": avatar | |||
} | |||
def get_system_managers(only_name=False): | |||
"""returns all system manager's user details""" | |||
import email.utils | |||
@@ -56,14 +56,22 @@ def build_context(sitemap_options): | |||
if context.doc: | |||
context.update(context.doc.as_dict()) | |||
if hasattr(context.doc, "get_context"): | |||
context.update(context.doc.get_context(context) or {}) | |||
ret = context.doc.get_context(context) | |||
if ret: | |||
context.update(ret) | |||
for prop in ("no_cache", "no_sitemap"): | |||
if not prop in context: | |||
context[prop] = getattr(context.doc, prop, False) | |||
elif context.controller: | |||
module = frappe.get_module(context.controller) | |||
if module: | |||
if hasattr(module, "get_context"): | |||
context.update(module.get_context(context) or {}) | |||
ret = module.get_context(context) | |||
if ret: | |||
context.update(ret) | |||
if hasattr(module, "get_children"): | |||
context.get_children = module.get_children | |||
@@ -144,6 +144,14 @@ | |||
"search_index": 0, | |||
"set_only_once": 0 | |||
}, | |||
{ | |||
"depends_on": "allow_multiple", | |||
"fieldname": "allow_delete", | |||
"fieldtype": "Check", | |||
"label": "Allow Delete", | |||
"permlevel": 0, | |||
"precision": "" | |||
}, | |||
{ | |||
"depends_on": "login_required", | |||
"fieldname": "allow_comments", | |||
@@ -151,6 +159,25 @@ | |||
"label": "Allow Comments", | |||
"permlevel": 0 | |||
}, | |||
{ | |||
"fieldname": "fields", | |||
"fieldtype": "Section Break", | |||
"label": "Fields", | |||
"permlevel": 0 | |||
}, | |||
{ | |||
"fieldname": "introduction_text", | |||
"fieldtype": "Text", | |||
"label": "Introduction", | |||
"permlevel": 0 | |||
}, | |||
{ | |||
"fieldname": "web_form_fields", | |||
"fieldtype": "Table", | |||
"label": "Web Form Fields", | |||
"options": "Web Form Field", | |||
"permlevel": 0 | |||
}, | |||
{ | |||
"fieldname": "actions", | |||
"fieldtype": "Section Break", | |||
@@ -172,23 +199,27 @@ | |||
"permlevel": 0 | |||
}, | |||
{ | |||
"fieldname": "fields", | |||
"fieldname": "advanced", | |||
"fieldtype": "Section Break", | |||
"label": "Fields", | |||
"permlevel": 0 | |||
"label": "Advanced", | |||
"permlevel": 0, | |||
"precision": "" | |||
}, | |||
{ | |||
"fieldname": "introduction_text", | |||
"fieldtype": "Text", | |||
"label": "Introduction", | |||
"permlevel": 0 | |||
"description": "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`", | |||
"fieldname": "web_page_link_text", | |||
"fieldtype": "Data", | |||
"label": "Web Page Link Text", | |||
"permlevel": 0, | |||
"precision": "" | |||
}, | |||
{ | |||
"fieldname": "web_form_fields", | |||
"fieldtype": "Table", | |||
"label": "Web Form Fields", | |||
"options": "Web Form Field", | |||
"permlevel": 0 | |||
"description": "In JSON as <pre>[{\"title\":\"Jobs\", \"name\":\"jobs\"}]</pre>", | |||
"fieldname": "breadcrumbs", | |||
"fieldtype": "Small Text", | |||
"label": "Breadcrumbs", | |||
"permlevel": 0, | |||
"precision": "" | |||
} | |||
], | |||
"hide_heading": 0, | |||
@@ -199,7 +230,7 @@ | |||
"is_submittable": 0, | |||
"issingle": 0, | |||
"istable": 0, | |||
"modified": "2014-09-03 14:47:17.181589", | |||
"modified": "2014-10-15 11:47:58.064235", | |||
"modified_by": "Administrator", | |||
"module": "Website", | |||
"name": "Web Form", | |||
@@ -20,8 +20,10 @@ class WebForm(WebsiteGenerator): | |||
if self.allow_multiple: | |||
meta = frappe.get_meta(self.doc_type) | |||
context.items = frappe.db.sql("""select name, | |||
{0} as title, creation as timestamp | |||
from `tab{1}` where owner=%s order by creation desc""".format(meta.title_field or "name", | |||
{0} as title, creation | |||
from `tab{1}` | |||
where owner=%s and docstatus = 0 | |||
order by creation desc""".format(meta.title_field or "name", | |||
self.doc_type), frappe.session.user, as_dict=True) | |||
else: | |||
name = frappe.db.get_value(self.doc_type, {"owner": frappe.session.user}, | |||
@@ -33,9 +35,12 @@ class WebForm(WebsiteGenerator): | |||
context.doc = frappe.get_doc(self.doc_type, frappe.form_dict.name) | |||
context.types = [f.fieldtype for f in self.web_form_fields] | |||
return context | |||
def get_parents(self, context): | |||
if self.breadcrumbs: | |||
return json.loads(self.breadcrumbs) | |||
@frappe.whitelist(allow_guest=True) | |||
def accept(): | |||
args = frappe.form_dict | |||
@@ -98,3 +103,13 @@ def accept(): | |||
doc.set(fieldname, filedoc.file_url) | |||
doc.save() | |||
@frappe.whitelist() | |||
def delete(web_form, name): | |||
web_form = frappe.get_doc("Web Form", web_form) | |||
owner = frappe.db.get_value(web_form.doc_type, name, "owner") | |||
if frappe.session.user == owner and web_form.allow_delete: | |||
frappe.delete_doc(web_form.doc_type, name, ignore_permissions=True) | |||
else: | |||
raise frappe.PermissionError, "Not Allowed" |
@@ -10,6 +10,7 @@ from frappe.website.doctype.website_slideshow.website_slideshow import get_slide | |||
from frappe.website.utils import find_first_image, get_comment_list | |||
from markdown2 import markdown | |||
from frappe.utils.jinja import render_template | |||
from jinja2.exceptions import TemplateSyntaxError | |||
class WebPage(WebsiteGenerator): | |||
save_versions = True | |||
@@ -32,8 +33,11 @@ class WebPage(WebsiteGenerator): | |||
context.comment_list = get_comment_list(self.doctype, self.name) | |||
if self.template_path: | |||
# render dynamic context (if .py file exists) | |||
context = self.get_dynamic_context(frappe._dict(context)) | |||
# load content from template | |||
context.update(get_static_content(self, context)) | |||
get_static_content(self, context) | |||
else: | |||
context.update({ | |||
"style": self.css or "", | |||
@@ -52,10 +56,29 @@ class WebPage(WebsiteGenerator): | |||
def render_dynamic(self, context): | |||
# dynamic | |||
if context.main_section and "<!-- render-jinja -->" in context.main_section: | |||
context["main_section"] = render_template(context.main_section, | |||
{"doc": self, "frappe": frappe}) | |||
context["no_cache"] = 1 | |||
if context.main_section and ("<!-- render-jinja -->" in context.main_section) \ | |||
or ("{{" in context.main_section): | |||
try: | |||
context["main_section"] = render_template(context.main_section, | |||
context) | |||
context["no_cache"] = 1 | |||
except TemplateSyntaxError: | |||
pass | |||
def get_dynamic_context(self, context): | |||
template_path_base = self.template_path.rsplit(".", 1)[0] | |||
template_module = os.path.dirname(os.path.relpath(self.template_path, | |||
os.path.join(frappe.get_app_path("frappe"),"..", "..")))\ | |||
.replace(os.path.sep, ".") + "." + frappe.scrub(template_path_base.rsplit(os.path.sep, 1)[1]) | |||
try: | |||
method = template_module.split(".", 1)[1] + ".get_context" | |||
get_context = frappe.get_attr(method) | |||
ret = get_context(context) | |||
if ret: | |||
context = ret | |||
except ImportError: pass | |||
return context | |||
def set_metatags(self, context): | |||
context.metatags = { | |||
@@ -69,7 +92,6 @@ class WebPage(WebsiteGenerator): | |||
def get_static_content(doc, context): | |||
d = frappe._dict({}) | |||
with open(doc.template_path, "r") as contentfile: | |||
content = unicode(contentfile.read(), 'utf-8') | |||
@@ -79,24 +101,24 @@ def get_static_content(doc, context): | |||
first_line = lines[0].strip() | |||
if first_line.startswith("# "): | |||
d.title = first_line[2:] | |||
context.title = first_line[2:] | |||
content = "\n".join(lines[1:]) | |||
content = markdown(content) | |||
d.main_section = unicode(content.encode("utf-8"), 'utf-8') | |||
if not d.title: | |||
d.title = doc.name.replace("-", " ").replace("_", " ").title() | |||
context.main_section = unicode(content.encode("utf-8"), 'utf-8') | |||
if not context.title: | |||
context.title = doc.name.replace("-", " ").replace("_", " ").title() | |||
doc.render_dynamic(d) | |||
doc.render_dynamic(context) | |||
for extn in ("js", "css"): | |||
fpath = doc.template_path.rsplit(".", 1)[0] + "." + extn | |||
if os.path.exists(fpath): | |||
with open(fpath, "r") as f: | |||
d["css" if extn=="css" else "javascript"] = f.read() | |||
context["css" if extn=="css" else "javascript"] = f.read() | |||
return d | |||
return context | |||
def check_broken_links(): | |||
cnt = 0 | |||
@@ -93,6 +93,15 @@ $.extend(frappe, { | |||
$(opts.btn).prop("disabled", false); | |||
} | |||
if (data._server_messages) { | |||
var server_messages = (JSON.parse(data._server_messages || '[]')).join("<br>"); | |||
if(opts.error_msg) { | |||
$(opts.error_msg).html(server_messages).toggle(true); | |||
} else { | |||
frappe.msgprint(server_messages); | |||
} | |||
} | |||
if(data.exc) { | |||
if(opts.btn) { | |||
$(opts.btn).addClass("btn-danger"); | |||
@@ -108,14 +117,6 @@ $.extend(frappe, { | |||
console.log(data.exc); | |||
} | |||
if (data._server_messages) { | |||
var server_messages = (JSON.parse(data._server_messages || '[]')).join("<br>"); | |||
if(opts.error_msg) { | |||
$(opts.error_msg).html(server_messages).toggle(true); | |||
} else { | |||
frappe.msgprint(server_messages); | |||
} | |||
} | |||
} else{ | |||
if(opts.btn) { | |||
$(opts.btn).addClass("btn-success"); | |||
@@ -347,19 +348,15 @@ $.extend(frappe, { | |||
!navigator.userAgent.match(/((iPod|iPhone|iPad).+\bOS\s+[1-4]|WebApps\/.+CFNetwork)/)) | |||
}, | |||
get_pathname: function() { | |||
return location.pathname && location.pathname.split("/")[1].split(".")[0]; | |||
return location.pathname; | |||
}, | |||
page_ready_events: {}, | |||
ready: function(fn) { | |||
if(!frappe.page_ready_events[frappe.get_pathname()]) { | |||
frappe.page_ready_events[frappe.get_pathname()] = []; | |||
} | |||
frappe.page_ready_events[frappe.get_pathname()].push(fn); | |||
frappe.page_ready_events[frappe.get_pathname()] = fn; | |||
}, | |||
trigger_ready: function() { | |||
$.each((frappe.page_ready_events[frappe.get_pathname()] || []), function(i, fn) { | |||
fn(); | |||
}); | |||
var ready = frappe.page_ready_events[frappe.get_pathname()]; | |||
ready && ready(); | |||
}, | |||
make_navbar_active: function() { | |||
var pathname = window.location.pathname; | |||
@@ -29,7 +29,7 @@ def render(path, http_status_code=None): | |||
frappe.local.form_dict.name = name | |||
elif doctype: | |||
path = "list" | |||
frappe.local.form_dict.type = doctype | |||
frappe.local.form_dict.doctype = doctype | |||
else: | |||
path = "404" | |||
http_status_code = e.http_status_code | |||
@@ -74,14 +74,13 @@ class sync(object): | |||
break | |||
# other files | |||
for extn in ("md", "html"): | |||
fname = page_name + "." + extn | |||
if fname in files: | |||
self.sync_file(fname, os.path.join(basepath, fname), i) | |||
break | |||
else: | |||
if page_name not in folders: | |||
print page_name + " not found in " + basepath | |||
if page_name + ".md" in files: | |||
self.sync_file(page_name + ".md", os.path.join(basepath, page_name + ".md"), i) | |||
elif page_name + ".html" in files: | |||
self.sync_file(page_name + ".html", os.path.join(basepath, page_name + ".html"), i) | |||
else: | |||
if page_name not in folders: | |||
print page_name + " not found in " + basepath | |||
def sync_alphabetically(self, basepath, folders, files): | |||
files.sort() | |||
@@ -43,6 +43,9 @@ def render_blocks(context): | |||
out["header"] = "<h2>" + out["header"] + "</h2>" | |||
if "breadcrumbs" not in out: | |||
if context.doc and hasattr(context.doc, "get_parents"): | |||
context.parents = context.doc.get_parents(context) | |||
out["breadcrumbs"] = scrub_relative_urls( | |||
frappe.get_template("templates/includes/breadcrumbs.html").render(context)) | |||
@@ -30,7 +30,7 @@ def can_cache(no_cache=False): | |||
def get_comment_list(doctype, name): | |||
return frappe.db.sql("""select | |||
comment, comment_by_fullname, creation | |||
comment, comment_by_fullname, creation, comment_by | |||
from `tabComment` where comment_doctype=%s | |||
and comment_docname=%s order by creation""", (doctype, name), as_dict=1) or [] | |||
@@ -7,15 +7,15 @@ from frappe.model.document import Document | |||
from frappe.model.naming import append_number_if_name_exists | |||
from frappe.website.utils import cleanup_page_name, get_home_page | |||
from frappe.website.render import clear_cache | |||
from frappe.utils import now | |||
from frappe.modules import get_module_name | |||
from frappe.website.router import get_page_route | |||
class WebsiteGenerator(Document): | |||
page_title_field = "name" | |||
def autoname(self): | |||
self.name = self.get_page_name() | |||
append_number_if_name_exists(self) | |||
if self.meta.autoname != "hash": | |||
self.name = self.get_page_name() | |||
append_number_if_name_exists(self) | |||
def onload(self): | |||
self.get("__onload").website_route = self.get_route() | |||
@@ -38,6 +38,9 @@ class WebsiteGenerator(Document): | |||
self.get_page_name() | |||
return make_route(self) | |||
def clear_cache(self): | |||
clear_cache(self.get_route()) | |||
def get_page_name(self): | |||
return self.get_or_make_page_name() | |||
@@ -51,12 +54,12 @@ class WebsiteGenerator(Document): | |||
def before_rename(self, oldname, name, merge): | |||
self._local = self.get_route() | |||
clear_cache(self.get_route()) | |||
self.clear_cache() | |||
def after_rename(self, olddn, newdn, merge): | |||
if getattr(self, "_local"): | |||
self.update_routes_of_descendants(self._local) | |||
clear_cache(self.get_route()) | |||
self.clear_cache() | |||
def on_trash(self): | |||
clear_cache(self.get_route()) | |||
@@ -98,7 +101,7 @@ class WebsiteGenerator(Document): | |||
"controller": get_module_name(self.doctype, self.meta.module), | |||
"template": self.template, | |||
"parent_website_route": self.get("parent_website_route", ""), | |||
"page_title": self.get(self.page_title_field) | |||
"page_title": getattr(self, "page_title", None) or self.get(self.page_title_field) | |||
}) | |||
self.update_permissions(route) | |||
@@ -112,7 +115,7 @@ class WebsiteGenerator(Document): | |||
else: | |||
route.public_read = 1 | |||
def get_parents(self): | |||
def get_parents(self, context): | |||
parents = [] | |||
parent = self | |||
while parent: | |||
@@ -1,7 +1,7 @@ | |||
from setuptools import setup, find_packages | |||
import os | |||
version = "4.4.6" | |||
version = "4.5.0" | |||
with open("requirements.txt", "r") as f: | |||
install_requires = f.readlines() | |||