perf: 优化工单body html显示格式及翻译信息

This commit is contained in:
Bai
2021-01-18 17:11:30 +08:00
committed by Jiangjie.Bai
parent 230ef2f662
commit 243eedc4f9
8 changed files with 231 additions and 167 deletions

View File

@@ -1,6 +1,8 @@
from django.utils.translation import ugettext as __
from django.utils.translation import ugettext as _
from common.utils import get_logger
from tickets.utils import send_ticket_processed_mail_to_applicant
from tickets.utils import (
send_ticket_processed_mail_to_applicant, send_ticket_applied_mail_to_assignees
)
logger = get_logger(__name__)
@@ -14,9 +16,11 @@ class BaseHandler(object):
# on action
def _on_open(self):
self.ticket.applicant_display = str(self.ticket.applicant)
self.ticket.assignees_display = [str(assignee) for assignee in self.ticket.assignees.all()]
meta_display = getattr(self, '_construct_meta_display_of_open', lambda: {})()
self.ticket.meta.update(meta_display)
self.ticket.save()
self._send_applied_mail_to_assignees()
def _on_approve(self):
meta_display = getattr(self, '_construct_meta_display_of_approve', lambda: {})()
@@ -41,11 +45,12 @@ class BaseHandler(object):
return method()
# email
def _send_applied_mail_to_assignees(self):
logger.debug('Send applied email to assignees: {}'.format(self.ticket.assignees_display))
send_ticket_applied_mail_to_assignees(self.ticket)
def _send_processed_mail_to_applicant(self):
msg = 'Ticket ({}) has processed, send mail to applicant ({})'.format(
self.ticket.title, self.ticket.applicant_display
)
logger.debug(msg)
logger.debug('Send processed mail to applicant: {}'.format(self.ticket.applicant_display))
send_ticket_processed_mail_to_applicant(self.ticket)
# comments
@@ -54,13 +59,18 @@ class BaseHandler(object):
user_display = str(user)
action_display = self.ticket.get_action_display()
data = {
'body': __('User {} {} the ticket'.format(user_display, action_display)),
'body': _('User {} {} the ticket'.format(user_display, action_display)),
'user': user,
'user_display': user_display
}
return self.ticket.comments.create(**data)
# body
body_html_format = '''
{}:
<div style="margin-left: 20px;">{}</div>
'''
def get_body(self):
old_body = self.ticket.meta.get('body')
if old_body:
@@ -71,9 +81,7 @@ class BaseHandler(object):
return basic_body + meta_body
def _construct_basic_body(self):
body = '''
{}:
{}: {},
basic_body = '''{}: {},
{}: {},
{}: {},
{}: {},
@@ -81,15 +89,15 @@ class BaseHandler(object):
{}: {},
{}: {}
'''.format(
__("Ticket basic info"),
__('Ticket title'), self.ticket.title,
__('Ticket type'), self.ticket.get_type_display(),
__('Ticket applicant'), self.ticket.applicant_display,
__('Ticket assignees'), self.ticket.assignees_display,
__('Ticket processor'), self.ticket.processor_display,
__('Ticket action'), self.ticket.get_action_display(),
__('Ticket status'), self.ticket.get_status_display()
_('Ticket title'), self.ticket.title,
_('Ticket type'), self.ticket.get_type_display(),
_('Ticket applicant'), self.ticket.applicant_display,
_('Ticket assignees'), self.ticket.assignees_display,
_('Ticket processor'), self.ticket.processor_display or _('No'),
_('Ticket action'), self.ticket.get_action_display(),
_('Ticket status'), self.ticket.get_status_display()
)
body = self.body_html_format.format(_("Ticket basic info"), basic_body)
return body
def _construct_meta_body(self):
@@ -102,21 +110,11 @@ class BaseHandler(object):
return body
def _base_construct_meta_body_of_open(self):
open_body = '''
{}:
{}
'''.format(
__('Ticket applied info'),
getattr(self, '_construct_meta_body_of_open', lambda: 'No')()
)
return open_body
meta_body_of_open = getattr(self, '_construct_meta_body_of_open', lambda: 'No')()
body = self.body_html_format.format(_('Ticket applied info'), meta_body_of_open)
return body
def _base_construct_meta_body_of_approve(self):
approve_body = '''
{}:
{}
'''.format(
__('Ticket approved info'),
getattr(self, '_construct_meta_body_of_approve', lambda: 'No')()
)
return approve_body
meta_body_of_approve = getattr(self, '_construct_meta_body_of_approve', lambda: 'No')()
body = self.body_html_format.format(_('Ticket approved info'), meta_body_of_approve)
return body