Merge branch 'develop'
This commit is contained in:
commit
3fa108bfec
32 changed files with 330 additions and 223 deletions
|
|
@ -1,2 +1,2 @@
|
|||
from __future__ import unicode_literals
|
||||
__version__ = "6.17.2"
|
||||
__version__ = "6.17.3"
|
||||
|
|
|
|||
|
|
@ -16,12 +16,12 @@ frappe.ui.form.on("Communication", "refresh", function(frm) {
|
|||
}
|
||||
|
||||
if(frm.doc.status==="Open") {
|
||||
frm.add_custom_button("Close", function() {
|
||||
frm.add_custom_button(__("Close"), function() {
|
||||
frm.set_value("status", "Closed");
|
||||
frm.save();
|
||||
});
|
||||
} else if (frm.doc.status !== "Linked") {
|
||||
frm.add_custom_button("Reopen", function() {
|
||||
frm.add_custom_button(__("Reopen"), function() {
|
||||
frm.set_value("status", "Open");
|
||||
frm.save();
|
||||
});
|
||||
|
|
|
|||
|
|
@ -92,11 +92,9 @@ class CustomField(Document):
|
|||
# Create new peroperty setter if order changed
|
||||
if _idx and not existing_property_setter:
|
||||
field_idx = (_idx.index(self.insert_after) + 1) if (self.insert_after in _idx) else len(_idx)
|
||||
if field_idx < len(_idx):
|
||||
_idx[field_idx] = self.fieldname
|
||||
else:
|
||||
_idx.append(self.fieldname)
|
||||
|
||||
|
||||
_idx.insert(field_idx, self.fieldname)
|
||||
|
||||
frappe.make_property_setter({
|
||||
"doctype":self.dt,
|
||||
"doctype_or_field": "DocType",
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ def _toggle_like(doctype, name, add, user=None):
|
|||
frappe.db.set_value(doctype, name, "_liked_by", json.dumps(liked_by), update_modified=False)
|
||||
|
||||
except Exception, e:
|
||||
if e.args[0]==1054:
|
||||
if isinstance(e.args, (tuple, list)) and e.args[0]==1054:
|
||||
add_column(doctype, "_liked_by", "Text")
|
||||
_toggle_like(doctype, name, add, user)
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -262,9 +262,14 @@ function load_frappe_slides() {
|
|||
frappe.wiz.welcome.data = r.message;
|
||||
frappe.wiz.welcome.setup_fields(slide);
|
||||
|
||||
slide.get_field("language")
|
||||
.set_input(frappe.wiz.welcome.data.default_language || "english")
|
||||
.trigger("change");
|
||||
var language_field = slide.get_field("language");
|
||||
language_field.set_input(frappe.wiz.welcome.data.default_language || "english");
|
||||
|
||||
if (!frappe.wiz._from_load_messages) {
|
||||
language_field.$input.trigger("change");
|
||||
}
|
||||
|
||||
delete frappe.wiz._from_load_messages;
|
||||
|
||||
moment.locale("en");
|
||||
}
|
||||
|
|
@ -289,6 +294,7 @@ function load_frappe_slides() {
|
|||
},
|
||||
callback: function(r) {
|
||||
// TODO save values!
|
||||
frappe.wiz._from_load_messages = true;
|
||||
|
||||
// reset all slides so that labels are translated
|
||||
frappe.wiz.slides = [];
|
||||
|
|
|
|||
|
|
@ -77,6 +77,22 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="frappe.core.notifications.get_unseen_likes" href="#frappe.core.notifications.get_unseen_likes" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
frappe.core.notifications.<b>get_unseen_likes</b>
|
||||
<i class="text-muted">()</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p>Returns count of unseen likes</p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- autodoc -->
|
||||
96
frappe/docs/current/api/desk/frappe.desk.like.html
Normal file
96
frappe/docs/current/api/desk/frappe.desk.like.html
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
<!-- title: frappe.desk.like --><div class="dev-header">
|
||||
|
||||
<a class="btn btn-default btn-sm" disabled style="margin-bottom: 10px;">
|
||||
Version 6.x.x</a>
|
||||
|
||||
|
||||
<a class="btn btn-default btn-sm" href="https://github.com/frappe/frappe/blob/develop/frappe/desk/like.py"
|
||||
target="_blank" style="margin-left: 10px; margin-bottom: 10px;"><i class="octicon octicon-mark-github"></i> Source</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="frappe.desk.like._toggle_like" href="#frappe.desk.like._toggle_like" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
frappe.desk.like.<b>_toggle_like</b>
|
||||
<i class="text-muted">(doctype, name, add, user=None)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p>Same as toggle_like but hides param <code>user</code> from API</p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="frappe.desk.like.add_comment" href="#frappe.desk.like.add_comment" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
frappe.desk.like.<b>add_comment</b>
|
||||
<i class="text-muted">(doctype, name)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p><span class="text-muted">No docs</span></p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="frappe.desk.like.remove_like" href="#frappe.desk.like.remove_like" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
frappe.desk.like.<b>remove_like</b>
|
||||
<i class="text-muted">(doctype, name)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p>Remove previous Like</p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p><span class="label label-info">Public API</span>
|
||||
<br><code>/api/method/frappe.desk.like.toggle_like</code>
|
||||
</p>
|
||||
<p class="docs-attr-name">
|
||||
<a name="frappe.desk.like.toggle_like" href="#frappe.desk.like.toggle_like" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
frappe.desk.like.<b>toggle_like</b>
|
||||
<i class="text-muted">(doctype, name, add=False)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p>Adds / removes the current user in the <code>__liked_by</code> property of the given document.
|
||||
If column does not exist, will add it in the database.</p>
|
||||
|
||||
<p>The <code>_liked_by</code> property is always set from this function and is ignored if set via
|
||||
Document API</p>
|
||||
|
||||
<p><strong>Parameters:</strong></p>
|
||||
|
||||
<ul>
|
||||
<li><strong><code>doctype</code></strong> - DocType of the document to like</li>
|
||||
<li><strong><code>name</code></strong> - Name of the document to like</li>
|
||||
<li><strong><code>add</code></strong> - <code>Yes</code> if like is to be added. If not <code>Yes</code> the like will be removed.</li>
|
||||
</ul>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- autodoc -->
|
||||
|
|
@ -131,6 +131,22 @@
|
|||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="frappe.desk.notifications.get_notifications_for" href="#frappe.desk.notifications.get_notifications_for" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
frappe.desk.notifications.<b>get_notifications_for</b>
|
||||
<i class="text-muted">(notification_type, config, notification_count)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p><span class="text-muted">No docs</span></p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="frappe.desk.notifications.get_notifications_for_doctypes" href="#frappe.desk.notifications.get_notifications_for_doctypes" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
|
|
@ -159,6 +175,22 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="frappe.desk.notifications.get_notifications_for_other" href="#frappe.desk.notifications.get_notifications_for_other" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
frappe.desk.notifications.<b>get_notifications_for_other</b>
|
||||
<i class="text-muted">(config, notification_count)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p>Notifications for other items</p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- autodoc -->
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
frappe.desk.calendar
|
||||
frappe.desk.desk_page
|
||||
frappe.desk
|
||||
frappe.desk.like
|
||||
frappe.desk.moduleview
|
||||
frappe.desk.notifications
|
||||
frappe.desk.query_builder
|
||||
|
|
@ -8,5 +9,4 @@ frappe.desk.query_report
|
|||
frappe.desk.report_dump
|
||||
frappe.desk.reportview
|
||||
frappe.desk.search
|
||||
frappe.desk.star
|
||||
frappe.desk.tags
|
||||
|
|
@ -284,7 +284,7 @@
|
|||
<a name="frappe.sessions.clear_sessions" href="#frappe.sessions.clear_sessions" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
frappe.sessions.<b>clear_sessions</b>
|
||||
<i class="text-muted">(user=None, keep_current=False)</i>
|
||||
<i class="text-muted">(user=None, keep_current=False, device=None)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p><span class="text-muted">No docs</span></p>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -40,6 +40,20 @@
|
|||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="add_comment_count" href="#add_comment_count" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
<b>add_comment_count</b>
|
||||
<i class="text-muted">(self, result)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p><span class="text-muted">No docs</span></p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="add_limit" href="#add_limit" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
|
|
@ -156,7 +170,7 @@
|
|||
<a name="execute" href="#execute" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
<b>execute</b>
|
||||
<i class="text-muted">(self, query=None, fields=None, filters=None, or_filters=None, docstatus=None, group_by=None, order_by=None, limit_start=False, limit_page_length=None, as_list=False, with_childnames=False, debug=False, ignore_permissions=False, user=None)</i>
|
||||
<i class="text-muted">(self, query=None, fields=None, filters=None, or_filters=None, docstatus=None, group_by=None, order_by=None, limit_start=False, limit_page_length=None, as_list=False, with_childnames=False, debug=False, ignore_permissions=False, user=None, with_comment_count=False)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p><span class="text-muted">No docs</span></p>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -110,7 +110,7 @@ all values (including child documents) from the database.</p>
|
|||
<a name="add_comment" href="#add_comment" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
<b>add_comment</b>
|
||||
<i class="text-muted">(self, comment_type, text=None, comment_by=None)</i>
|
||||
<i class="text-muted">(self, comment_type, text=None, comment_by=None, reference_doctype=None, reference_name=None)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p>Add a comment to this document.</p>
|
||||
|
||||
|
|
@ -280,6 +280,20 @@ timestamps don't match.</p>
|
|||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="get_liked_by" href="#get_liked_by" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
<b>get_liked_by</b>
|
||||
<i class="text-muted">(self)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p><span class="text-muted">No docs</span></p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="get_permlevel_access" href="#get_permlevel_access" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
|
|
@ -308,20 +322,6 @@ timestamps don't match.</p>
|
|||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="get_starred_by" href="#get_starred_by" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
<b>get_starred_by</b>
|
||||
<i class="text-muted">(self)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p><span class="text-muted">No docs</span></p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="get_url" href="#get_url" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
<a name="frappe.utils.bench_helper.app_group" href="#frappe.utils.bench_helper.app_group" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
frappe.utils.bench_helper.<b>app_group</b>
|
||||
<i class="text-muted">(ctx, site=False, force=False, verbose=False, profile=False)</i>
|
||||
<i class="text-muted">()</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p><span class="text-muted">No docs</span></p>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -926,6 +926,22 @@ Ported from PrettyDate by John Resig</p>
|
|||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="frappe.utils.data.to_markdown" href="#frappe.utils.data.to_markdown" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
frappe.utils.data.<b>to_markdown</b>
|
||||
<i class="text-muted">(html)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p><span class="text-muted">No docs</span></p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="frappe.utils.data.to_timedelta" href="#frappe.utils.data.to_timedelta" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
|
|
|
|||
|
|
@ -1,131 +0,0 @@
|
|||
<!-- title: frappe.website.template --><div class="dev-header">
|
||||
|
||||
<a class="btn btn-default btn-sm" disabled style="margin-bottom: 10px;">
|
||||
Version 6.x.x</a>
|
||||
|
||||
|
||||
<a class="btn btn-default btn-sm" href="https://github.com/frappe/frappe/blob/develop/frappe/website/template.py"
|
||||
target="_blank" style="margin-left: 10px; margin-bottom: 10px;"><i class="octicon octicon-mark-github"></i> Source</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="frappe.website.template.add_hero" href="#frappe.website.template.add_hero" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
frappe.website.template.<b>add_hero</b>
|
||||
<i class="text-muted">(out, context)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p>Add a hero element if specified in content or hooks.
|
||||
Hero elements get full page width.</p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="frappe.website.template.add_index" href="#frappe.website.template.add_index" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
frappe.website.template.<b>add_index</b>
|
||||
<i class="text-muted">(out, context)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p>Add index, next button if <code>{index}</code>, <code>{next}</code> is present.</p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="frappe.website.template.build_template" href="#frappe.website.template.build_template" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
frappe.website.template.<b>build_template</b>
|
||||
<i class="text-muted">(context)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p>Returns a dict of block name and its rendered content</p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="frappe.website.template.render_blocks" href="#frappe.website.template.render_blocks" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
frappe.website.template.<b>render_blocks</b>
|
||||
<i class="text-muted">(template_path, out, context)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p>Build the template block by block from the main template.</p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="frappe.website.template.separate_style_and_script" href="#frappe.website.template.separate_style_and_script" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
frappe.website.template.<b>separate_style_and_script</b>
|
||||
<i class="text-muted">(out, context)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p>Extract <code>style</code> and <code>script</code> tags into separate blocks</p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="frappe.website.template.set_breadcrumbs" href="#frappe.website.template.set_breadcrumbs" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
frappe.website.template.<b>set_breadcrumbs</b>
|
||||
<i class="text-muted">(out, context)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p>Build breadcrumbs template (deprecated)</p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="frappe.website.template.set_title_and_header" href="#frappe.website.template.set_title_and_header" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
frappe.website.template.<b>set_title_and_header</b>
|
||||
<i class="text-muted">(out, context)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p>Extract and set title and header from content or context.</p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- autodoc -->
|
||||
|
|
@ -3,6 +3,5 @@ frappe.website
|
|||
frappe.website.render
|
||||
frappe.website.router
|
||||
frappe.website.statics
|
||||
frappe.website.template
|
||||
frappe.website.utils
|
||||
frappe.website.website_generator
|
||||
|
|
@ -35,7 +35,7 @@
|
|||
Version
|
||||
</td>
|
||||
<td>
|
||||
<code>6.16.3</code>
|
||||
<code>6.17.2</code>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -73,7 +73,8 @@ Comment
|
|||
Workflow
|
||||
Label
|
||||
Attachment
|
||||
Attachment Removed</pre>
|
||||
Attachment Removed
|
||||
Like</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
|
|
|||
|
|
@ -571,20 +571,6 @@ Recipient Unsubscribed</pre>
|
|||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="get_starrers" href="#get_starrers" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
<b>get_starrers</b>
|
||||
<i class="text-muted">(self)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p>Return list of users who have starred this document.</p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="notify" href="#notify" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
|
|
|
|||
|
|
@ -1068,9 +1068,9 @@ Website User</pre>
|
|||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="send_password_notifcation" href="#send_password_notifcation" class="text-muted small">
|
||||
<a name="send_password_notification" href="#send_password_notification" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
<b>send_password_notifcation</b>
|
||||
<b>send_password_notification</b>
|
||||
<i class="text-muted">(self, new_password)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p><span class="text-muted">No docs</span></p>
|
||||
|
|
@ -1595,8 +1595,6 @@ The mentions will be separated by non-word characters or may appear at the start
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,8 @@
|
|||
Comment
|
||||
Login
|
||||
Label
|
||||
Info</pre>
|
||||
Info
|
||||
Like</pre>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
|
@ -116,6 +117,55 @@ Info</pre>
|
|||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr >
|
||||
<td>7</td>
|
||||
<td ><code>doc_owner</code></td>
|
||||
<td >
|
||||
Data</td>
|
||||
<td >
|
||||
Doc Owner
|
||||
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr >
|
||||
<td>8</td>
|
||||
<td ><code>seen</code></td>
|
||||
<td >
|
||||
Check</td>
|
||||
<td >
|
||||
Seen
|
||||
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr >
|
||||
<td>9</td>
|
||||
<td ><code>reference_doctype</code></td>
|
||||
<td >
|
||||
Data</td>
|
||||
<td >
|
||||
Reference DocType
|
||||
<p class="text-muted small">
|
||||
Use this to provide alternative link to a feed record</p>
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
<tr >
|
||||
<td>10</td>
|
||||
<td ><code>reference_name</code></td>
|
||||
<td >
|
||||
Data</td>
|
||||
<td >
|
||||
Reference Name
|
||||
|
||||
</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
|
@ -138,6 +188,20 @@ Info</pre>
|
|||
</div>
|
||||
<div style="padding-left: 30px;">
|
||||
|
||||
|
||||
|
||||
|
||||
<p class="docs-attr-name">
|
||||
<a name="validate" href="#validate" class="text-muted small">
|
||||
<i class="icon-link small" style="color: #ccc;"></i></a>
|
||||
<b>validate</b>
|
||||
<i class="text-muted">(self)</i>
|
||||
</p>
|
||||
<div class="docs-attr-desc"><p><span class="text-muted">No docs</span></p>
|
||||
</div>
|
||||
<br>
|
||||
|
||||
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ app_publisher = "Frappe Technologies Pvt. Ltd."
|
|||
app_description = "Full stack web framework with Python, Javascript, MariaDB, Redis, Node"
|
||||
|
||||
app_icon = "octicon octicon-circuit-board"
|
||||
app_version = "6.17.2"
|
||||
app_version = "6.17.3"
|
||||
app_color = "orange"
|
||||
source_link = "https://github.com/frappe/frappe"
|
||||
app_license = "MIT"
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@ def update_property_setters(doctype, old_fieldname, new_fieldname):
|
|||
where doc_type=%s and field_name=%s""", (new_fieldname, doctype, old_fieldname))
|
||||
|
||||
idx_property = frappe.db.sql("""select name, value from `tabProperty Setter`
|
||||
where doc_type=%s and property = '_idx' and value like '%%%s%%'""",
|
||||
where doc_type='%s' and property = '_idx' and value like '%%%s%%'""" %
|
||||
(doctype, old_fieldname), as_dict=1)
|
||||
|
||||
if idx_property:
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ frappe.Application = Class.extend({
|
|||
this.check_metadata_cache_status();
|
||||
this.set_globals();
|
||||
this.sync_pages();
|
||||
moment.locale(frappe.boot.lang);
|
||||
moment.locale("en");
|
||||
moment.user_utc_offset = moment().utcOffset();
|
||||
if(frappe.boot.timezone_info) {
|
||||
moment.tz.add(frappe.boot.timezone_info);
|
||||
|
|
|
|||
|
|
@ -1153,10 +1153,6 @@ frappe.ui.form.ControlLink = frappe.ui.form.ControlData.extend({
|
|||
select: function(event, ui) {
|
||||
me.autocomplete_open = false;
|
||||
|
||||
if(ui.item.action) {
|
||||
ui.item.action.apply(me);
|
||||
}
|
||||
|
||||
// prevent selection on tab
|
||||
var TABKEY = 9;
|
||||
if(event.keyCode === TABKEY) {
|
||||
|
|
@ -1165,6 +1161,11 @@ frappe.ui.form.ControlLink = frappe.ui.form.ControlData.extend({
|
|||
return false;
|
||||
}
|
||||
|
||||
if(ui.item.action) {
|
||||
ui.item.value = "";
|
||||
ui.item.action.apply(me);
|
||||
}
|
||||
|
||||
if(me.frm && me.frm.doc) {
|
||||
me.selected = true;
|
||||
me.parse_validate_and_set_in_model(ui.item.value);
|
||||
|
|
|
|||
|
|
@ -236,11 +236,12 @@ frappe.ui.form.Layout = Class.extend({
|
|||
grid_row = null;
|
||||
prev = null,
|
||||
fields = me.fields_list,
|
||||
in_grid = false;
|
||||
in_grid = false,
|
||||
focused = false;
|
||||
|
||||
// in grid
|
||||
if(doctype != me.doctype) {
|
||||
grid_row =me.get_open_grid_row()
|
||||
grid_row = me.get_open_grid_row();
|
||||
fields = grid_row.layout.fields_list;
|
||||
}
|
||||
|
||||
|
|
@ -254,38 +255,43 @@ frappe.ui.form.Layout = Class.extend({
|
|||
}
|
||||
break;
|
||||
}
|
||||
if(i==len-1) {
|
||||
// last field in this group
|
||||
if(grid_row) {
|
||||
// in grid
|
||||
if(grid_row.doc.idx==grid_row.grid.grid_rows.length) {
|
||||
// last row, close it and find next field
|
||||
grid_row.toggle_view(false, function() {
|
||||
me.handle_tab(grid_row.grid.df.parent, grid_row.grid.df.fieldname);
|
||||
})
|
||||
} else {
|
||||
// next row
|
||||
grid_row.grid.grid_rows[grid_row.doc.idx].toggle_view(true);
|
||||
}
|
||||
} else {
|
||||
$(this.primary_button).focus();
|
||||
}
|
||||
} else {
|
||||
me.focus_on_next_field(i, fields);
|
||||
if(i < len-1) {
|
||||
focused = me.focus_on_next_field(i, fields);
|
||||
}
|
||||
|
||||
break;
|
||||
if (focused) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(fields[i].disp_status==="Write")
|
||||
if(this.is_visible(fields[i]))
|
||||
prev = fields[i];
|
||||
}
|
||||
|
||||
if (!focused) {
|
||||
// last field in this group
|
||||
if(grid_row) {
|
||||
// in grid
|
||||
if(grid_row.doc.idx==grid_row.grid.grid_rows.length) {
|
||||
// last row, close it and find next field
|
||||
grid_row.toggle_view(false, function() {
|
||||
grid_row.grid.frm.layout.handle_tab(grid_row.grid.df.parent, grid_row.grid.df.fieldname);
|
||||
})
|
||||
} else {
|
||||
// next row
|
||||
grid_row.grid.grid_rows[grid_row.doc.idx].toggle_view(true);
|
||||
}
|
||||
} else {
|
||||
$(this.primary_button).focus();
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
},
|
||||
focus_on_next_field: function(start_idx, fields) {
|
||||
// loop to find next eligible fields
|
||||
for(var i= start_idx + 1, len = fields.length; i < len; i++) {
|
||||
var field = fields[i];
|
||||
if(field.disp_status==="Write") {
|
||||
if(this.is_visible(field)) {
|
||||
if(field.df.fieldtype==="Table") {
|
||||
// open table grid
|
||||
if(!(field.grid.grid_rows && field.grid.grid_rows.length)) {
|
||||
|
|
@ -294,14 +300,18 @@ frappe.ui.form.Layout = Class.extend({
|
|||
}
|
||||
// show grid row (if exists)
|
||||
field.grid.grid_rows[0].show_form();
|
||||
return true;
|
||||
|
||||
} else if(!in_list(frappe.model.no_value_type, field.df.fieldtype)) {
|
||||
this.set_focus(field);
|
||||
break;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
is_visible: function(field) {
|
||||
return field.disp_status==="Write" && (field.$wrapper && field.$wrapper.is(":visible"))
|
||||
},
|
||||
set_focus: function(field) {
|
||||
// next is table, show the table
|
||||
if(field.df.fieldtype=="Table") {
|
||||
|
|
|
|||
|
|
@ -30,16 +30,17 @@ frappe.ui.form.Toolbar = Class.extend({
|
|||
},
|
||||
set_title: function() {
|
||||
if(this.frm.meta.title_field) {
|
||||
var title = (this.frm.doc[this.frm.meta.title_field] || "").trim() || __(this.frm.docname);
|
||||
var title = (this.frm.doc[this.frm.meta.title_field] || "").trim() || this.frm.docname;
|
||||
if(this.frm.doc.__islocal || title === this.frm.docname || this.frm.meta.autoname==="hash") {
|
||||
this.page.set_title_sub("");
|
||||
} else {
|
||||
this.page.set_title_sub(this.frm.docname);
|
||||
}
|
||||
} else {
|
||||
var title = __(this.frm.docname);
|
||||
var title = this.frm.docname;
|
||||
}
|
||||
var me = this;
|
||||
title = __(title);
|
||||
this.page.set_title(title);
|
||||
if(this.frm.meta.title_field) {
|
||||
frappe.utils.set_title(title + " - " + this.frm.docname);
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
{% } %}
|
||||
{% } else if(col.fieldtype==="Select") { %}
|
||||
<span class="filterable indicator {%= frappe.utils.guess_colour(value) %}"
|
||||
data-filter="{%= col.fieldname %},=,{%= value %}">{%= value %}</span>
|
||||
data-filter="{%= col.fieldname %},=,{%= value %}">{%= __(value) %}</span>
|
||||
{% } else if(col.fieldtype==="Link") { %}
|
||||
<a class="filterable h6 text-muted grey"
|
||||
data-filter="{%= col.fieldname %},=,{%= value %}">{%= value %}</a>
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@
|
|||
|
||||
{% } %}
|
||||
|
||||
<span class="list-value">{%= col.title || col.label || "" %}</span>
|
||||
<span class="list-value">{%= __(col.title) || __(col.label) || "" %}</span>
|
||||
</div>
|
||||
{% } %}
|
||||
{% } %}
|
||||
|
|
|
|||
|
|
@ -266,7 +266,7 @@ frappe.views.ListView = Class.extend({
|
|||
var indicator = frappe.get_indicator(doc, this.doctype);
|
||||
if(indicator) {
|
||||
return '<span class="indicator '+indicator[1]+' filterable" data-filter="'
|
||||
+indicator[2]+'">'+indicator[0]+'<span>';
|
||||
+indicator[2]+'">'+__(indicator[0])+'<span>';
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
|
|
@ -277,7 +277,7 @@ frappe.views.ListView = Class.extend({
|
|||
if (!indicator) {
|
||||
return "";
|
||||
}
|
||||
return '<span class="indicator '+indicator[1]+'" title="'+indicator[0]+'"></span>';
|
||||
return '<span class="indicator '+indicator[1]+'" title="'+__(indicator[0])+'"></span>';
|
||||
},
|
||||
|
||||
prepare_data: function(data) {
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ def enqueue_events(site):
|
|||
|
||||
# set scheduler last event
|
||||
frappe.db.begin()
|
||||
frappe.db.set_value('System Settings', 'System Settings', 'scheduler_last_event', nowtime.strftime(DATETIME_FORMAT))
|
||||
frappe.db.set_value('System Settings', 'System Settings', 'scheduler_last_event', nowtime.strftime(DATETIME_FORMAT), update_modified=False)
|
||||
frappe.db.commit()
|
||||
|
||||
out = []
|
||||
|
|
|
|||
2
setup.py
2
setup.py
|
|
@ -1,7 +1,7 @@
|
|||
from setuptools import setup, find_packages
|
||||
from pip.req import parse_requirements
|
||||
|
||||
version = "6.17.2"
|
||||
version = "6.17.3"
|
||||
requirements = parse_requirements("requirements.txt", session="")
|
||||
|
||||
setup(
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue