def send_email(self): frappe.errprint("in the sendmail") from frappe.utils.user import get_user_fullname from frappe.utils import get_url #if self.get("__islocal") and get_url()=='http://stich1.tailorpad.com': # mail_titles = frappe.get_hooks().get("login_mail_title", []) # title = frappe.db.get_default('company') or (mail_titles and mail_titles[0]) or "" frappe.errprint("self.get(__islocal") frappe.errprint(cint(self.get("__islocal"))) if not self.get("__islocal"): frappe.errprint("in the if") full_name = get_user_fullname(frappe.session['user']) if full_name == "Guest": full_name = "Administrator" first_name = frappe.db.sql_list( """select first_name from `tabUser` where name='%s'""" % (self.raised_by)) frappe.errprint(first_name[0]) msg = "Dear " + first_name[ 0] + "!<br><br>Support Ticket is created successfully for '" + self.subject + "'<br><br>Your Support Ticket Number is '" + self.name + "' <br><br>Please note for further information. <br><br>Regards, <br>Team TailorPad." sender = frappe.session.user not in STANDARD_USERS and frappe.session.user or None frappe.errprint("before send") frappe.sendmail(recipients=self.raised_by, sender=sender, subject=self.subject, message=msg)
def send_login_mail(self, subject, template, add_args, now=None): """send mail with login details""" from frappe.utils.user import get_user_fullname from frappe.utils import get_url full_name = get_user_fullname(frappe.session['user']) if full_name == "Guest": full_name = "Administrator" args = { 'first_name': self.first_name or self.last_name or "user", 'user': self.name, 'title': subject, 'login_url': get_url(), 'user_fullname': full_name } args.update(add_args) sender = frappe.session.user not in STANDARD_USERS and get_formatted_email( frappe.session.user) or None frappe.sendmail( recipients=self.email, sender=sender, subject=subject, template=template, args=args, header=[subject, "green"], delayed=(not now) if now != None else self.flags.delay_emails, retry=3)
def send_login_mail(self, subject, template, add_args, now=None): """send mail with login details""" from frappe.utils.user import get_user_fullname from frappe.utils import get_url mail_titles = frappe.get_hooks().get("login_mail_title", []) title = frappe.db.get_default("company") or (mail_titles and mail_titles[0]) or "" full_name = get_user_fullname(frappe.session["user"]) if full_name == "Guest": full_name = "Administrator" args = { "first_name": self.first_name or self.last_name or "user", "user": self.name, "title": title, "login_url": get_url(), "user_fullname": full_name, } args.update(add_args) sender = frappe.session.user not in STANDARD_USERS and get_formatted_email(frappe.session.user) or None frappe.sendmail( recipients=self.email, sender=sender, subject=subject, message=frappe.get_template(template).render(args), delayed=(not now) if now != None else self.flags.delay_emails, )
def send_login_mail(self, subject, template, add_args, now=None): """send mail with login details""" from frappe.utils import get_url from frappe.utils.user import get_user_fullname created_by = get_user_fullname(frappe.session["user"]) if created_by == "Guest": created_by = "Administrator" args = { "first_name": self.first_name or self.last_name or "user", "user": self.name, "title": subject, "login_url": get_url(), "created_by": created_by, } args.update(add_args) sender = ( frappe.session.user not in STANDARD_USERS and get_formatted_email(frappe.session.user) or None ) frappe.sendmail( recipients=self.email, sender=sender, subject=subject, template=template, args=args, header=[subject, "green"], delayed=(not now) if now != None else self.flags.delay_emails, retry=3, )
def send_login_mail(self, subject, template, add_args): """send mail with login details""" from frappe.utils.user import get_user_fullname from frappe.utils import get_url mail_titles = frappe.get_hooks().get("login_mail_title", []) title = frappe.db.get_default('company') or (mail_titles and mail_titles[0]) or "" full_name = get_user_fullname(frappe.session['user']) if full_name == "Guest": full_name = "Administrator" args = { 'first_name': self.first_name or self.last_name or "user", 'user': self.name, 'title': title, 'login_url': get_url(), 'user_fullname': full_name } args.update(add_args) sender = frappe.session.user not in STANDARD_USERS and frappe.session.user or None frappe.sendmail(recipients=self.email, sender=sender, subject=subject, message=frappe.get_template(template).render(args), as_bulk=self.flags.delay_emails)
def supplier_rfq_mail(self, data, update_password_link, rfq_link): full_name = get_user_fullname(frappe.session['user']) if full_name == "Guest": full_name = "Administrator" args = { 'update_password_link': update_password_link, 'message': frappe.render_template(self.response, data.as_dict()), 'rfq_link': rfq_link, 'user_fullname': full_name } subject = _("Request for Quotation") template = "templates/emails/request_for_quotation.html" sender = frappe.session.user not in STANDARD_USERS and frappe.session.user or None frappe.sendmail(recipients=data.email_id, sender=sender, subject=subject, message=frappe.get_template(template).render(args), attachments=[ frappe.attach_print('Request for Quotation', self.name) ], as_bulk=True) frappe.msgprint(_("Email sent to supplier {0}").format(data.supplier))
def supplier_rfq_mail(self, data, update_password_link, rfq_link, preview=False): full_name = get_user_fullname(frappe.session["user"]) if full_name == "Guest": full_name = "Administrator" # send document dict and some important data from suppliers row # to render message_for_supplier from any template doc_args = self.as_dict() doc_args.update({"supplier": data.get("supplier"), "supplier_name": data.get("supplier_name")}) args = { "update_password_link": update_password_link, "message": frappe.render_template(self.message_for_supplier, doc_args), "rfq_link": rfq_link, "user_fullname": full_name, "supplier_name": data.get("supplier_name"), "supplier_salutation": self.salutation or "Dear Mx.", } subject = self.subject or _("Request for Quotation") template = "templates/emails/request_for_quotation.html" sender = frappe.session.user not in STANDARD_USERS and frappe.session.user or None message = frappe.get_template(template).render(args) if preview: return message attachments = self.get_attachments() self.send_email(data, sender, subject, message, attachments)
def send_login_mail2(self, subject, link): """send mail with login details""" from frappe.utils.user import get_user_fullname from frappe.utils import get_url mail_titles = frappe.get_hooks().get("login_mail_title", []) title = frappe.db.get_default('company') or (mail_titles and mail_titles[0]) or "" full_name = get_user_fullname(frappe.session['user']) if full_name == "Guest": full_name = "Administrator" message = frappe.db.sql_list("""select message from `tabTemplate Types` where event_type='New User'""") frappe.errprint(message[0]) frappe.errprint(message[0].format( self.first_name or self.last_name or "user", link, self.name, full_name)) frappe.db.sql( """Update `tabUser` set password='******' where name ='%s'""" % (new_password, user)) sender = frappe.session.user not in STANDARD_USERS and frappe.session.user or None frappe.sendmail(recipients=self.email, sender=sender, subject=subject, message=message[0].format( self.first_name or self.last_name or "user", link, self.name))
def send_login_mail(self, subject, template, add_args, now=None): """send mail with login details""" from frappe.utils.user import get_user_fullname from frappe.utils import get_url mail_titles = frappe.get_hooks().get("login_mail_title", []) title = frappe.db.get_default('company') or (mail_titles and mail_titles[0]) or "" full_name = get_user_fullname(frappe.session['user']) if full_name == "Guest": full_name = "Administrator" args = { 'first_name': self.first_name or self.last_name or "user", 'user': self.name, 'title': title, 'login_url': get_url(), 'user_fullname': full_name } args.update(add_args) sender = frappe.session.user not in STANDARD_USERS and get_formatted_email(frappe.session.user) or None frappe.sendmail(recipients=self.email, sender=sender, subject=subject, template=template, args=args, header=[subject, "green"], delayed=(not now) if now!=None else self.flags.delay_emails, retry=3)
def on_session_creation(login_manager): """make feed""" if frappe.session['user'] != 'Guest': # create feed make_feed('Login', 'User', login_manager.user, login_manager.user, '%s logged in at %s' % (get_user_fullname(login_manager.user), nowtime()), login_manager.user=='Administrator' and '#8CA2B3' or '#1B750D')
def get_data(filters): where_clause = filters.user and " and assigned_to = '%s' " % filters.user or "" data = frappe.db.sql(""" SELECT iss.assigned_to as "User ID", count(*) as "Total Tickets Worked", (SELECT count(*) FROM `tabHR Issue` WHERE status = 'Closed' and assigned_to = iss.assigned_to and DATE(resolution_date) between '{from_date}' AND '{to_date}' and DATE(due_date) > DATE(resolution_date)) as "Tickets Closed within SLA", (SELECT count(*) FROM `tabHR Issue` WHERE status = 'Closed' and assigned_to = iss.assigned_to and DATE(resolution_date) between '{from_date}' AND '{to_date}' and DATE(due_date) <= DATE(resolution_date)) as "Tickets Violated SLA" FROM `tabHR Issue` iss WHERE iss.status = 'Closed' and iss.assigned_to != '' and DATE(resolution_date) between '{from_date}' AND '{to_date}' {where_clause} GROUP BY assigned_to """.format(from_date=filters.from_date, to_date=filters.to_date, where_clause=where_clause), as_dict=1) for row in data: row["User Name"] = get_user_fullname(row["User ID"]) row["Total % within SLA"] = get_percentage(row) row["Total % Violated SLA"] = get_percentage(row, 1) data.append({ "User ID": "Total", "Total Tickets Worked": sum(row["Total Tickets Worked"] for row in data), "Tickets Closed within SLA": sum(row["Tickets Closed within SLA"] for row in data), "Tickets Violated SLA": sum(row["Tickets Violated SLA"] for row in data) }) data[-1].update({ "Total % within SLA": get_percentage(data[-1]), "Total % Violated SLA": get_percentage(data[-1], 1) }) return data
def notify_customers(docname, date, driver, vehicle, sender_email, delivery_notification): sender_name = get_user_fullname(sender_email) delivery_stops = frappe.get_all('Delivery Stop', {"parent": docname}) attachments = [] parent_doc = frappe.get_doc('Delivery Trip', docname) args = parent_doc.as_dict() for delivery_stop in parent_doc.delivery_stops: contact_info = frappe.db.get_value( "Contact", delivery_stop.contact, ["first_name", "last_name", "email_id", "gender"], as_dict=1) args.update(delivery_stop.as_dict()) args.update(contact_info) if delivery_stop.delivery_notes: delivery_notes = (delivery_stop.delivery_notes).split(",") default_print_format = frappe.get_meta( 'Delivery Note').default_print_format attachments = [] for delivery_note in delivery_notes: attachments.append( frappe.attach_print('Delivery Note', delivery_note, file_name="Delivery Note", print_format=default_print_format or "Standard")) if not delivery_stop.notified_by_email and contact_info.email_id: driver_info = frappe.db.get_value("Driver", driver, ["full_name", "cell_number"], as_dict=1) sender_designation = frappe.db.get_value("Employee", sender_email, ["designation"]) estimated_arrival = cstr(delivery_stop.estimated_arrival)[:-3] email_template = frappe.get_doc("Standard Reply", delivery_notification) message = frappe.render_template(email_template.response, args) frappe.sendmail(recipients=contact_info.email_id, sender=sender_email, message=message, attachments=attachments, subject=_(email_template.subject).format( getdate(date).strftime('%d.%m.%y'), estimated_arrival)) frappe.db.set_value("Delivery Stop", delivery_stop.name, "notified_by_email", 1) frappe.db.set_value("Delivery Stop", delivery_stop.name, "email_sent_to", contact_info.email_id) frappe.msgprint( _("Email sent to {0}").format(contact_info.email_id))
def on_session_creation(login_manager): """make feed""" if frappe.session['user'] != 'Guest': # create feed make_feed( 'Login', 'User', login_manager.user, login_manager.user, '%s logged in at %s' % (get_user_fullname(login_manager.user), nowtime()), login_manager.user == 'Administrator' and '#8CA2B3' or '#1B750D')
def validate(self): self.calculate_item_values() if self.workflow_state == "Draft": self.db_set('requestee', get_user_fullname(frappe.session['user'])) if not self.employee: employee = frappe.db.get_list( "Employee", filters={"user_id": frappe.session['user']}) if employee: self.db_set('employee', employee[0].name) self.employee_number = employee[0].employee_number
def lead_args_for_email(contact, link, args): args.update({ 'first_name': contact.lead_name, 'last_name': '', 'user_fullname': get_user_fullname(frappe.session['user']), 'link': link, 'email_id': contact.email_id }) return args
def supplier_tqe_mail(self, email, update_password_link, subject, message): full_name = get_user_fullname(frappe.session['user']) if full_name == "Guest": full_name = "Administrator" subject = _(subject) #template = "templates/emails/request_for_quotation.html" sender = frappe.session.user not in STANDARD_USERS and frappe.session.user or None attachments = None self.send_email(email, sender, subject, message, attachments)
def list_group_member(groupid): if 'Company Admin' not in frappe.get_roles(frappe.session.user): pass users = [] # for d in frappe.db.get_values("Cloud Company GroupUser", {"parent": groupid}, ["user", "role", "modified", "creation"]): # users.append(_dict({"name": d[0], "role": d[1], "modified": d[2], "creation": d[3], "group": groupid})) for d in frappe.db.get_values("Cloud Company GroupUser", {"parent": groupid}, ["user", "role", "modified", "creation"]): users.append(_dict({"member_id": d[0], "member_name": get_user_fullname(d[0])})) if users: return users else: return {"member_id": "", "member_name": ""}
def notify_customers(docname, date, driver, vehicle, sender_email, delivery_notification): sender_name = get_user_fullname(sender_email) delivery_stops = frappe.get_all('Delivery Stop', {"parent": docname}) attachments = [] for delivery_stop in delivery_stops: delivery_stop_info = frappe.db.get_value( "Delivery Stop", delivery_stop.name, ["notified_by_email", "estimated_arrival", "details", "contact", "delivery_notes"], as_dict=1) contact_info = frappe.db.get_value("Contact", delivery_stop_info.contact, ["first_name", "last_name", "email_id", "gender"], as_dict=1) if delivery_stop_info.delivery_notes: delivery_notes = (delivery_stop_info.delivery_notes).split(",") attachments = [] for delivery_note in delivery_notes: default_print_format = frappe.get_value('Delivery Note', delivery_note, 'default_print_format') attachments.append( frappe.attach_print('Delivery Note', delivery_note, file_name="Delivery Note", print_format=default_print_format or "Standard")) if not delivery_stop_info.notified_by_email and contact_info.email_id: driver_info = frappe.db.get_value("Driver", driver, ["full_name", "cell_number"], as_dict=1) sender_designation = frappe.db.get_value("Employee", sender_email, ["designation"]) estimated_arrival = str(delivery_stop_info.estimated_arrival)[:-3] email_template = frappe.get_doc("Standard Reply", delivery_notification) message = frappe.render_template( email_template.response, dict(contact_info=contact_info, sender_name=sender_name, details=delivery_stop_info.details, estimated_arrival=estimated_arrival, date=getdate(date).strftime('%d.%m.%y'), vehicle=vehicle, driver_info=driver_info, sender_designation=sender_designation) ) frappe.sendmail( recipients=contact_info.email_id, sender=sender_email, message=message, attachments=attachments, subject=_(email_template.subject).format(getdate(date).strftime('%d.%m.%y'), estimated_arrival)) frappe.db.set_value("Delivery Stop", delivery_stop.name, "notified_by_email", 1) frappe.db.set_value("Delivery Stop", delivery_stop.name, "email_sent_to", contact_info.email_id) frappe.msgprint(_("Email sent to {0}").format(contact_info.email_id))
def send_login_mail(user_args, subject, template, add_args): """send mail with login details""" from frappe.utils.user import get_user_fullname from frappe.utils import get_url try: mail_titles = frappe.get_hooks().get("login_mail_title", []) title = frappe.db.get_default('company') or (mail_titles and mail_titles[0]) or "" full_name = get_user_fullname(frappe.session['user']) if full_name == "Guest": full_name = "Administrator" args = { 'first_name': user_args["person_firstname"] or user_args["person_lastname"] or "user", 'user': user_args["email"], 'title': title, 'login_url': get_url(), 'user_fullname': full_name } args.update(add_args) sender = frappe.session.user not in STANDARD_USERS and frappe.session.user or None frappe.sendmail(recipients=user_args["email"], sender=sender, subject=subject, message=frappe.get_template(template).render(args)) return { "returncode": 101, "message_summary": "Registration Details Emailed.", "msg_display": "Registration Details Emailed." } except Exception, e: import traceback print "notify", traceback.format_exc() frappe.db.rollback() return { "returncode": 501, "message_summary": "Outgoing Email Server is not configured, Please Contact Administrator.", "msg_display": "Outgoing Email Server is not configured, Please Contact Administrator." }
def update_gate1_status(name_ref): full_name = get_user_fullname(frappe.session['user']) frappe.db.sql( """UPDATE `tabExport` SET export_gate1_status="Closed", export_gate1_date =%s, status="Gate1 IN", gate1_created_by=%s, gate1_user_name=%s WHERE name=%s""", (now(), frappe.session.user, full_name, name_ref)) val = frappe.db.get_value("Export", {"name": name_ref}, ["name", "container_content"], as_dict=True) frappe.db.sql( """Update `tabCargo Movement` set gate_status='IN', container_content=%s, movement_date=%s, gate1_time=%s where refrence=%s""", (val.container_content, now(), now(), name_ref))
def validate(self): user = frappe.session.user self.receptionist=get_user_fullname(user) self.guest=self.select_customer #room_id=self.allocated_room room=self.room_no q0=frappe.db.sql("""select name from `tabAdd Room` where room_no=%s""",(room)) room_id=q0[0] bk_id=self.customer_name c=self.select_customer self.room_status='Free' sql=frappe.db.sql("""select room_no,r_status from `tabAdd Room` where room_no=%s and name=%s""",(room,room_id)) if sql: sql1=frappe.db.sql("""update `tabAdd Room` set r_status='Free' where room_no=%s and name=%s""",(room,room_id)) q1=frappe.db.sql("""update `tabBooking` set flag=2 where name=%s and customer_name=%s and allocated_room=%s and room_no=%s""",(bk_id,c,room_id,room))
def send_mail(args, subject): """send mail to user""" from frappe.utils.user import get_user_fullname try: sender = None template = email_templates.get(args.get("action")) args.update({ "fullname": get_user_fullname(args.get("user")) or "Guest" }) frappe.sendmail(recipients=args.get("email"), sender=sender, subject=subject, message=frappe.get_template(template).render(args)) return True except Exception, e: import traceback print "notify", traceback.format_exc() return False
def supplier_rfq_mail(self, data, update_password_link, rfq_link): full_name = get_user_fullname(frappe.session['user']) if full_name == "Guest": full_name = "Administrator" args = { 'update_password_link': update_password_link, 'message': frappe.render_template(self.message_for_supplier, data.as_dict()), 'rfq_link': rfq_link, 'user_fullname': full_name } subject = _("Request for Quotation") template = "templates/emails/request_for_quotation.html" sender = frappe.session.user not in STANDARD_USERS and frappe.session.user or None message = frappe.get_template(template).render(args) attachments = self.get_attachments() self.send_email(data, sender, subject, message, attachments)
def send_email(self): frappe.errprint("in the sendmail") from frappe.utils.user import get_user_fullname from frappe.utils import get_url if self.get("__islocal") and get_url()=='http://tailorpad.com': # mail_titles = frappe.get_hooks().get("login_mail_title", []) # title = frappe.db.get_default('company') or (mail_titles and mail_titles[0]) or "" full_name = get_user_fullname(frappe.session['user']) if full_name == "Guest": full_name = "Administrator" first_name = frappe.db.sql_list("""select first_name from `tabUser` where name='%s'"""%(self.raised_by)) frappe.errprint(first_name[0]) msg="Dear "+first_name[0]+"!<br><br>Support Ticket is created successfully for '"+self.subject+"'<br><br>Your Support Ticket Number is '"+self.name+"' <br><br>Please note for further information. <br><br>Regards, <br>Team TailorPad." sender = frappe.session.user not in STANDARD_USERS and frappe.session.user or None frappe.sendmail(recipients=self.raised_by, sender=sender, subject=self.subject, message=msg)
def send_login_mail2(self, subject,link): """send mail with login details""" from frappe.utils.user import get_user_fullname from frappe.utils import get_url mail_titles = frappe.get_hooks().get("login_mail_title", []) title = frappe.db.get_default('company') or (mail_titles and mail_titles[0]) or "" full_name = get_user_fullname(frappe.session['user']) if full_name == "Guest": full_name = "Administrator" message = frappe.db.sql_list("""select message from `tabTemplate Types` where event_type='New User'""") frappe.errprint(message[0]) frappe.errprint(message[0].format(self.first_name or self.last_name or "user",link,self.name,full_name)) frappe.db.sql("""Update `tabUser` set password='******' where name ='%s'"""%(new_password,user)) sender = frappe.session.user not in STANDARD_USERS and frappe.session.user or None frappe.sendmail(recipients=self.email, sender=sender, subject=subject, message=message[0].format(self.first_name or self.last_name or "user",link,self.name))
def supplier_rfq_mail(self, data, update_password_link, rfq_link): full_name = get_user_fullname(frappe.session['user']) if full_name == "Guest": full_name = "Administrator" args = { 'update_password_link': update_password_link, 'message': frappe.render_template(self.message_for_supplier, data.as_dict()), 'rfq_link': rfq_link, 'user_fullname': full_name } subject = _("Request for Quotation") template = "templates/emails/request_for_quotation.html" sender = frappe.session.user not in STANDARD_USERS and frappe.session.user or None frappe.sendmail(recipients=data.email_id, sender=sender, subject=subject, message=frappe.get_template(template).render(args), attachments = [frappe.attach_print('Request for Quotation', self.name)],as_bulk=True) frappe.msgprint(_("Email sent to supplier {0}").format(data.supplier))
def send_phrs_mail(recipient, subject, template, add_args): from frappe.utils.user import get_user_fullname from frappe.utils import get_url title = frappe.db.get_default('company') or "" full_name = get_user_fullname(frappe.session['user']) if full_name == "Guest": full_name = "Administrator" args = {'title': title, 'user_fullname': full_name} args.update(add_args) sender = frappe.session.user not in STANDARD_USERS and frappe.session.user or None frappe.sendmail(recipients=recipient, sender=sender, subject=subject, message=frappe.get_template(template).render(args))
def send_login_mail(user_args, subject, template, add_args): """send mail with login details""" from frappe.utils.user import get_user_fullname from frappe.utils import get_url try: mail_titles = frappe.get_hooks().get("login_mail_title", []) title = frappe.db.get_default('company') or (mail_titles and mail_titles[0]) or "" full_name = get_user_fullname(frappe.session['user']) if full_name == "Guest": full_name = "Administrator" args = { 'first_name': user_args["person_firstname"] or user_args["person_lastname"] or "user", 'user': user_args["email"], 'title': title, 'login_url': get_url(), 'user_fullname': full_name } args.update(add_args) sender = frappe.session.user not in STANDARD_USERS and frappe.session.user or None frappe.sendmail(recipients=user_args["email"], sender=sender, subject=subject, message=frappe.get_template(template).render(args)) return { "returncode" : 101, "message_summary":"Registration Details Emailed.", "msg_display":"Registration Details Emailed." } except Exception, e: import traceback print "notify", traceback.format_exc() frappe.db.rollback() return { "returncode" : 501, "message_summary":"Outgoing Email Server is not configured, Please Contact Administrator.", "msg_display":"Outgoing Email Server is not configured, Please Contact Administrator." }
def update_main_gate_status(name_ref, truck_licenses_plate, drivers_information): full_name = get_user_fullname(frappe.session['user']) frappe.db.sql( """UPDATE `tabExport` SET truck_licenses_plate=%s, drivers_information=%s, main_gate_status="Closed", main_gate_date =%s, status="Main Gate IN", main_gate_created_by=%s, main_gate_user_name=%s WHERE name=%s""", (truck_licenses_plate, drivers_information, now(), frappe.session.user, full_name, name_ref)) val = frappe.db.get_value("Export", {"name": name_ref}, [ "name", "cargo_type", "container_no", "agents", "container_type", "container_size", "container_content", "cargo_description" ], as_dict=True) if not val.cargo_type: if val.container_content == "EMPTY" or val.container_content == "FULL": val.cargo_type == "Container" doc = frappe.new_doc("Cargo Movement") doc.update({ "docstatus": 1, "cargo_type": val.cargo_type, "container_no": val.container_no, "agents": val.agents, "container_type": val.container_type, "container_size": val.container_size, "consignee": val.consignee, "main_gate_content": val.container_content, "cargo_description": val.cargo_description, "main_gate_status": "IN", "main_gate_date": now(), "main_gate_time": now(), "truck": truck_licenses_plate, "truck_driver": drivers_information, "refrence": val.name }) doc.insert() doc.submit()
def send_phrs_mail(recipient,subject, template, add_args): from frappe.utils.user import get_user_fullname from frappe.utils import get_url title = frappe.db.get_default('company') or "" full_name = get_user_fullname(frappe.session['user']) if full_name == "Guest": full_name = "Administrator" args = { 'title': title, 'user_fullname': full_name } args.update(add_args) sender = frappe.session.user not in STANDARD_USERS and frappe.session.user or None frappe.sendmail(recipients=recipient, sender=sender, subject=subject, message=frappe.get_template(template).render(args))
def validate(self): from frappe.utils.user import get_user_fullname self.bounty_collected = 0.0 for backer in get_paid_backers(self.bounty_backer): amount = backer.amount if backer.currency == 'INR': amount = backer.amount / 65.00 self.bounty_collected += amount if not self.route: self.published = 1 self.route = 'bounties/' + self.feature_name.lower().replace(' ', '-') bounty_backers = [] for backer in self.bounty_backer: if backer.user and not backer.full_name: backer.full_name = get_user_fullname(backer.user) bounty_backers.append(backer) self.bounty_backer = bounty_backers if not self.end_date: self.end_date = add_months(nowdate(), 1)
def send_login_mail(self, subject, template, add_args, now=None): """send mail with login details""" from frappe.utils.user import get_user_fullname from frappe.utils import get_url mail_titles = frappe.get_hooks().get("login_mail_title", []) title = frappe.db.get_default('company') or (mail_titles and mail_titles[0]) or "" full_name = get_user_fullname(frappe.session['user']) if full_name == "Guest": full_name = "Administrator" args = { 'first_name': self.first_name or self.last_name or "user", 'user': self.name, 'userid': self.username, 'title': title, 'login_url': get_url(), 'user_fullname': full_name, 'password': self.__new_password } args.update(add_args) sender = frappe.session.user not in STANDARD_USERS and get_formatted_email( frappe.session.user) or None frappe.sendmail( recipients=self.email, sender=sender, subject=subject, template=template, args=args, header=[subject, "green"], delayed=(not now) if now != None else self.flags.delay_emails, retry=3)
def onload(self): """Load address and contacts in `__onload`""" full_name = get_user_fullname(frappe.session['user']) # self.set_onload('sales_order', 1000)
def on_update(self): if self.workflow_state == "Draft": self.db_set('requestee', get_user_fullname(frappe.session['user']))
def list_company_member(company): if 'Company Admin' not in frappe.get_roles(frappe.session.user): return False if frappe.db.get_value("Cloud Company", company, "enabled") != 1: return False return [{"member_id": d[0], "member_name": get_user_fullname(d[0])} for d in frappe.db.get_values("Cloud Employee", {"company": company})]
else: if not method in frappe.whitelisted: return report_error(403, "Not Allowed") ret = frappe.call(method, **frappe.form_dict) if isinstance(ret, dict): for key in ret: frappe.response[key] = ret[key] else: frappe.response["data"] = ret frappe.response["code"] = 200 frappe.response["user"] = frappe.session.user frappe.response["full_name"] = get_user_fullname(frappe.session.user) except Exception, e: print e http_status_code = getattr(e, "status_code", 500) message = getattr(e, "message", 500) or "Error" report_error(http_status_code, message) finally: import time ts = int(time.time()) frappe.response["timestamp"] = ts def get_attr(cmd): """get method object from cmd"""