Merge branch 'staging-fixes' into staging
This commit is contained in:
commit
472d6a50de
7 changed files with 43 additions and 23 deletions
|
|
@ -17,7 +17,7 @@ from faker import Faker
|
|||
from .exceptions import *
|
||||
from .utils.jinja import (get_jenv, get_template, render_template, get_email_from_template, get_jloader)
|
||||
|
||||
__version__ = '10.1.50'
|
||||
__version__ = '10.1.51'
|
||||
__title__ = "Frappe Framework"
|
||||
|
||||
local = Local()
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ class PreparedReport(Document):
|
|||
def run_background(instance):
|
||||
report = frappe.get_doc("Report", instance.ref_report_doctype)
|
||||
result = generate_report_result(report, filters=json.loads(instance.filters), user=instance.owner)
|
||||
create_csv_file(remove_header_meta(result['columns']), result['result'], 'Prepared Report', instance.name)
|
||||
create_csv_file(result['columns'], result['result'], 'Prepared Report', instance.name)
|
||||
|
||||
instance.status = "Completed"
|
||||
instance.report_end_time = frappe.utils.now()
|
||||
|
|
@ -59,7 +59,25 @@ def remove_header_meta(columns):
|
|||
|
||||
def create_csv_file(columns, data, dt, dn):
|
||||
csv_filename = '{0}.csv'.format(frappe.utils.data.format_datetime(frappe.utils.now(), "Y-m-d-H:M"))
|
||||
rows = [tuple(columns)] + data
|
||||
|
||||
rows = []
|
||||
|
||||
if data:
|
||||
columns_without_meta = remove_header_meta(columns)
|
||||
|
||||
row = data[0]
|
||||
if type(row) == list:
|
||||
rows = [tuple(columns_without_meta)] + data
|
||||
else:
|
||||
for row in data:
|
||||
new_row = []
|
||||
for col in columns:
|
||||
key = col.get('fieldname') or col.get('label')
|
||||
new_row.append(frappe.format(row.get(key, ''), col))
|
||||
rows.append(new_row)
|
||||
|
||||
rows = [tuple(columns_without_meta)] + rows
|
||||
|
||||
encoded = base64.b64encode(frappe.safe_encode(to_csv(rows)))
|
||||
# Call save_file function to upload and attach the file
|
||||
save_file(
|
||||
|
|
|
|||
|
|
@ -797,24 +797,17 @@ def sign_up(email, full_name, redirect_to):
|
|||
return 2, _("Please ask your administrator to verify your sign-up")
|
||||
|
||||
@frappe.whitelist(allow_guest=True)
|
||||
def reset_password(user, send_email=True):
|
||||
def reset_password(user):
|
||||
if user=="Administrator":
|
||||
return 'not allowed'
|
||||
|
||||
if isinstance(send_email, unicode) or isinstance(send_email, basestring):
|
||||
if send_email=='false':
|
||||
send_email = False
|
||||
|
||||
try:
|
||||
user = frappe.get_doc("User", user)
|
||||
if not user.enabled:
|
||||
return 'disabled'
|
||||
|
||||
user.validate_reset_password()
|
||||
link = user.reset_password(send_email=send_email)
|
||||
|
||||
if not send_email:
|
||||
return { "link": link }
|
||||
user.reset_password(send_email=True)
|
||||
|
||||
return frappe.msgprint(_("Password reset instructions have been sent to your email"))
|
||||
|
||||
|
|
|
|||
|
|
@ -180,7 +180,7 @@ def run(report_name, filters=None, user=None):
|
|||
|
||||
def get_prepared_report_result(report, filters, dn=""):
|
||||
latest_report_data = {}
|
||||
doc_list = frappe.get_list("Prepared Report", filters={"status": "Completed", "report_name": report.name})
|
||||
doc_list = frappe.get_all("Prepared Report", filters={"status": "Completed", "report_name": report.name})
|
||||
doc = None
|
||||
if len(doc_list):
|
||||
if dn:
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ source_link = "https://github.com/frappe/frappe"
|
|||
app_license = "MIT"
|
||||
|
||||
develop_version = '11.x.x-develop'
|
||||
staging_version = '11.0.3-beta.6'
|
||||
staging_version = '11.0.3-beta.7'
|
||||
|
||||
app_email = "info@frappe.io"
|
||||
|
||||
|
|
|
|||
|
|
@ -117,8 +117,6 @@ def get_doc_permissions(doc, verbose=False, user=None, ptype=None):
|
|||
if(doc.owner == frappe.session.user):
|
||||
|
||||
permissions = permissions.get("if_owner")
|
||||
# if_owner does not come with create rights...
|
||||
permissions['create'] = 0
|
||||
else:
|
||||
permissions = {}
|
||||
|
||||
|
|
@ -265,7 +263,7 @@ def get_valid_perms(doctype=None, user=None):
|
|||
perms = get_perms_for(roles)
|
||||
custom_perms = get_perms_for(roles, 'Custom DocPerm')
|
||||
|
||||
doctypes_with_custom_perms = list(set([d.parent for d in custom_perms]))
|
||||
doctypes_with_custom_perms = get_doctypes_with_custom_docperms()
|
||||
for p in perms:
|
||||
if not p.parent in doctypes_with_custom_perms:
|
||||
custom_perms.append(p)
|
||||
|
|
@ -312,11 +310,18 @@ def get_roles(user=None, with_standard=True):
|
|||
|
||||
def get_perms_for(roles, perm_doctype='DocPerm'):
|
||||
'''Get perms for given roles'''
|
||||
return frappe.db.sql("""
|
||||
select * from `tab{doctype}` where docstatus=0
|
||||
and ifnull(permlevel,0)=0
|
||||
and role in ({roles})""".format(doctype = perm_doctype,
|
||||
roles=", ".join(["%s"]*len(roles))), tuple(roles), as_dict=1)
|
||||
filters = {
|
||||
'permlevel': 0,
|
||||
'docstatus': 0,
|
||||
'role': ['in', roles]
|
||||
}
|
||||
return frappe.db.get_all(perm_doctype, fields=['*'], filters=filters)
|
||||
|
||||
def get_doctypes_with_custom_docperms():
|
||||
'''Returns all the doctypes with Custom Docperms'''
|
||||
|
||||
doctypes = frappe.db.get_all('Custom DocPerm', fields=['parent'], distinct=1)
|
||||
return [d.parent for d in doctypes]
|
||||
|
||||
def can_set_user_permissions(doctype, docname=None):
|
||||
# System Manager can always set user permissions
|
||||
|
|
@ -460,4 +465,4 @@ def allow_everything():
|
|||
eg. {"read": 1, "write": 1, ...}
|
||||
'''
|
||||
perm = {ptype: 1 for ptype in rights}
|
||||
return perm
|
||||
return perm
|
||||
|
|
|
|||
|
|
@ -53,6 +53,10 @@ $.extend(frappe.perm, {
|
|||
perm[0].read = 1;
|
||||
}
|
||||
|
||||
if (!meta) {
|
||||
return perm;
|
||||
}
|
||||
|
||||
frappe.perm.build_role_permissions(perm, meta);
|
||||
|
||||
if (doc) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue