attached user data file to doc
This commit is contained in:
parent
fb6068dc47
commit
7c0a83aedd
1 changed files with 11 additions and 21 deletions
|
|
@ -13,9 +13,7 @@ class PersonalDataDownloadRequest(Document):
|
|||
if self.user in ['Administrator', 'Guest']:
|
||||
frappe.throw(_("This user cannot request to download data"))
|
||||
else:
|
||||
personal_data = get_unlinked_user_data(self.user)
|
||||
personal_data.update(get_linked_user_data(self.user))
|
||||
|
||||
personal_data = get_user_data(self.user)
|
||||
self.generate_file_and_send_mail(personal_data)
|
||||
|
||||
def generate_file_and_send_mail(self, personal_data):
|
||||
|
|
@ -23,34 +21,26 @@ class PersonalDataDownloadRequest(Document):
|
|||
user_name = self.user_name.replace(' ','-')
|
||||
f = frappe.get_doc({
|
||||
'doctype': 'File',
|
||||
'file_name': 'Personal-Data-'+user_name+'.json',
|
||||
'file_name': 'Personal-Data-'+user_name+'-'+self.name+'.json',
|
||||
"attached_to_doctype": 'Personal Data Download Request',
|
||||
"attached_to_name": self,
|
||||
'content': str(personal_data),
|
||||
'is_private': True
|
||||
})
|
||||
f.save()
|
||||
frappe.sendmail(recipients= self.user,
|
||||
subject=_("ERPNext: User Data"),
|
||||
message= "Your data is ready, <a href="+f.file_url+" download>Click here to download your data</a>",
|
||||
header=["ERPNext: User Data", "green"])
|
||||
message= _("Your data is ready, <a href="+f.file_url+" download>Click here to download your data</a>"),
|
||||
header=[_("ERPNext: User Data"), "green"])
|
||||
|
||||
def get_unlinked_user_data(user):
|
||||
def get_user_data(user):
|
||||
""" returns user data not linked to User doctype """
|
||||
hooks = frappe.get_hooks("user_privacy_documents")
|
||||
data = {}
|
||||
for hook in hooks:
|
||||
d = frappe.get_all(hook.get('doctype'), {hook.get('email_field'): user},["*"])
|
||||
d = []
|
||||
for email_field in hook.get('email_field'):
|
||||
d += frappe.get_all(hook.get('doctype'), {email_field: user},["*"])
|
||||
if d:
|
||||
data.update({ hook.get('doctype'):d })
|
||||
return data
|
||||
|
||||
def get_linked_user_data(user):
|
||||
""" returns user data linked to the User doctype """
|
||||
linked_doctypes = get_linked_doctypes("Customer")
|
||||
data = {}
|
||||
for doctype in linked_doctypes:
|
||||
meta = frappe.get_meta(doctype)
|
||||
if not meta.issingle:
|
||||
d = frappe.get_all(doctype, {linked_doctypes.get(doctype).get('fieldname')[0]: user},["*"])
|
||||
if d:
|
||||
data.update({ doctype:d })
|
||||
data.update({ hook.get('doctype'):d })
|
||||
return data
|
||||
Loading…
Add table
Reference in a new issue