1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-01 15:09:14 +00:00

[notice email] improved code

This commit is contained in:
llj
2014-08-29 18:05:16 +08:00
parent 800774b6ef
commit 256de580c8
2 changed files with 45 additions and 43 deletions

View File

@@ -44,7 +44,15 @@ class Command(BaseCommand):
repl = r'src="%s\1"' % get_site_scheme_and_netloc()
return re.sub(pattern, repl, img_tag)
def get_file_upload_avatar_url(self, default_size=32):
def get_avatar_src(self, username, default_size=32):
avatar_img = self.get_avatar(username, default_size)
m = re.search('<img src="(.*?)".*', avatar_img)
if m:
return m.group(1)
else:
return ''
def get_default_avatar(self, default_size=32):
# user default avatar
img_tag = """<img src="%s" width="%s" height="%s" class="avatar" alt="" />""" % \
(get_default_avatar_url(), default_size, default_size)
@@ -52,6 +60,14 @@ class Command(BaseCommand):
repl = r'src="%s\1"' % get_site_scheme_and_netloc()
return re.sub(pattern, repl, img_tag)
def get_default_avatar_src(self, default_size=32):
avatar_img = self.get_default_avatar(default_size)
m = re.search('<img src="(.*?)".*', avatar_img)
if m:
return m.group(1)
else:
return ''
def format_priv_file_share_msg(self, notice):
d = json.loads(notice.detail)
priv_share_token = d['priv_share_token']
@@ -59,7 +75,7 @@ class Command(BaseCommand):
args=[priv_share_token])
notice.notice_from = escape(email2nickname(d['share_from']))
notice.priv_shared_file_name = d['file_name']
notice.avatar = self.get_avatar(d['share_from'])
notice.avatar_src = self.get_avatar_src(d['share_from'])
return notice
def format_user_message(self, notice):
@@ -68,7 +84,7 @@ class Command(BaseCommand):
message = d.get('message')
notice.notice_from = escape(email2nickname(msg_from))
notice.avatar = self.get_avatar(msg_from)
notice.avatar_src = self.get_avatar_src(msg_from)
notice.user_msg_url = reverse('user_msg_list', args=[msg_from])
notice.user_msg = message
return notice
@@ -84,7 +100,7 @@ class Command(BaseCommand):
notice.group_url = reverse('group_discuss', args=[group.id])
notice.notice_from = escape(email2nickname(d['msg_from']))
notice.group_name = group.group_name
notice.avatar = self.get_avatar(d['msg_from'])
notice.avatar_src = self.get_avatar_src(d['msg_from'])
notice.grp_msg = message
return notice
@@ -95,7 +111,7 @@ class Command(BaseCommand):
notice.group_msg_reply_url = reverse('msg_reply_new')
notice.notice_from = escape(email2nickname(d['reply_from']))
notice.avatar = self.get_avatar(d['reply_from'])
notice.avatar_src = self.get_avatar_src(d['reply_from'])
notice.grp_reply_msg = message
notice.grpmsg_topic = grpmsg_topic
return notice
@@ -111,7 +127,7 @@ class Command(BaseCommand):
notice.repo_url = reverse('repo', args=[repo.id])
notice.notice_from = escape(email2nickname(d['share_from']))
notice.repo_name = repo.name
notice.avatar = self.get_avatar(d['share_from'])
notice.avatar_src = self.get_avatar_src(d['share_from'])
return notice
def format_file_uploaded_msg(self, notice):
@@ -129,7 +145,7 @@ class Command(BaseCommand):
notice.file_name = file_name
notice.folder_link = folder_link
notice.folder_name = folder_name
notice.avatar = self.get_file_upload_avatar_url()
notice.avatar_src = self.get_default_avatar_src()
return notice
def format_group_join_request(self, notice):
@@ -148,7 +164,7 @@ class Command(BaseCommand):
notice.notice_from = username
notice.grpjoin_group_name = group.group_name
notice.grpjoin_request_msg = join_request_msg
notice.avatar = self.get_avatar(username)
notice.avatar_src = self.get_avatar_src(username)
return notice
def get_user_language(self, username):

View File

@@ -4,22 +4,8 @@
{% block email_con %}
<style type="text/css">
table { width:100%; margin:12px 0 20px; table-layout:fixed; border-spacing: 0; border-collapse: collapse;}
td, th { font-size: 13px; padding: 5px 3px; word-wrap: break-word; border-bottom: 1px solid #eee; }
th { text-align: left; font-weight: normal; color: #9c9c9c; }
td { color: #333; }
p { line-height: 1.5; margin:.2em 0; }
.hi { color:#121214;font-size:14px;margin-bottom:12px; }
.amount { font-size:14px;color:#434144; }
.avatar-cell { text-align:center; vertical-align:top; padding-top:8px; }
.avatar {border-radius: 1000px;}
.topic { padding: 4px 13px; border-left: 3px solid #e0e0e0; margin-left: 7px; }
.brief, .detail { margin-right:10px; }
</style>
<p class="hi">{% blocktrans with name=to_user|email2nickname %}Hi, {{ name }}{% endblocktrans %}</p>
<p class="amount">
<p style="font-size:14px; line-height: 1.5; color:#121214; margin:.2em 0 12px;">{% blocktrans with name=to_user|email2nickname %}Hi, {{ name }}{% endblocktrans %}</p>
<p style="font-size:14px; line-height: 1.5; color:#434144; margin:.2em 0;">
{% blocktrans count num=notice_count %}
You've got 1 new notice on {{ site_name }}:
{% plural %}
@@ -27,53 +13,53 @@ You've got {{num}} new notices on {{ site_name }}:
{% endblocktrans %}
</p>
<table>
<table style="width:100%; margin:12px 0 20px; table-layout:fixed; border-spacing: 0; border-collapse: collapse;">
<tr>
<th width="10%"></th>
<th width="70%">{% trans "Message" %}</th>
<th width="20%">{% trans "Time" %}</th>
<th width="9%" style="padding: 5px 3px; border-bottom: 1px solid #eee;"></th>
<th width="69%" style="padding: 5px 3px; border-bottom: 1px solid #eee; font-size:13px; text-align: left; font-weight: normal; color: #9c9c9c;">{% trans "Message" %}</th>
<th width="22%" style="padding: 5px 3px; border-bottom: 1px solid #eee; font-size:13px; text-align: left; font-weight: normal; color: #9c9c9c;">{% trans "Time" %}</th>
</tr>
{% for notice in notices %}
<tr>
<td class="avatar-cell">{{notice.avatar|safe}}</td>
<td>
<td style="padding:8px 3px 5px; border-bottom: 1px solid #eee; text-align:center; vertical-align:top;"><img src="{{notice.avatar_src}}" width="32" height="32" alt="" style="border-radius:1000px;" /></td>
<td style="padding: 5px 3px; border-bottom: 1px solid #eee; font-size: 13px; color: #333; word-wrap: break-word;">
{% if notice.is_group_msg %}
<p class="brief">{% blocktrans with user=notice.notice_from grp_url=notice.group_url grp_name=notice.group_name%}{{user}} posted a new discussion in <a href="{{url_base}}{{grp_url}}">{{grp_name}}</a>{% endblocktrans %}</p>
<p style="line-height:1.5; margin:.2em 10px .2em 0;">{% blocktrans with user=notice.notice_from grp_url=notice.group_url grp_name=notice.group_name%}{{user}} posted a new discussion in <a href="{{url_base}}{{grp_url}}">{{grp_name}}</a>{% endblocktrans %}</p>
{% if notice.grp_msg %}
<p class="detail">{{notice.grp_msg}}</p>
<p style="line-height:1.5; margin:.2em 10px .2em 0;">{{notice.grp_msg}}</p>
{% endif %}
{% elif notice.is_grpmsg_reply %}
<p class="brief">{% blocktrans with user=notice.notice_from reply_url=notice.group_msg_reply_url%}{{user}} replied your <a href="{{url_base}}{{reply_url}}">group discussion</a>{% endblocktrans %}</p>
<p style="line-height:1.5; margin:.2em 10px .2em 0;">{% blocktrans with user=notice.notice_from reply_url=notice.group_msg_reply_url%}{{user}} replied your <a href="{{url_base}}{{reply_url}}">group discussion</a>{% endblocktrans %}</p>
{% if notice.grp_reply_msg %}
<div class="detail">
<div style="margin-right: 10px;">
{% if notice.grpmsg_topic %}
<p class="topic">{{notice.grpmsg_topic|truncatechars:45}}</p>
<p style="padding: 4px 13px; border-left: 3px solid #e0e0e0; line-height:1.5; margin:.2em 0 .2em 7px;">{{notice.grpmsg_topic|truncatechars:45}}</p>
{% endif %}
<p>{{notice.grp_reply_msg}}</p>
<p style="line-height:1.5; margin:.2em 0;">{{notice.grp_reply_msg}}</p>
</div>
{% endif %}
{% elif notice.is_repo_share_msg %}
<p class="brief">{% blocktrans with user=notice.notice_from lib_url=notice.repo_url lib_name=notice.repo_name%}{{user}} has shared a library named <a href="{{url_base}}{{lib_url}}">{{lib_name}}</a> to you.{% endblocktrans %}</p>
<p style="line-height:1.5; margin:.2em 10px .2em 0;">{% blocktrans with user=notice.notice_from lib_url=notice.repo_url lib_name=notice.repo_name%}{{user}} has shared a library named <a href="{{url_base}}{{lib_url}}">{{lib_name}}</a> to you.{% endblocktrans %}</p>
{% elif notice.is_priv_file_share_msg %}
<p class="brief">{% blocktrans with user=notice.notice_from file_url=notice.priv_shared_file_url file_name=notice.priv_shared_file_name %}{{user}} has shared a file named <a href="{{url_base}}{{file_url}}">{{file_name}}</a> to you.{% endblocktrans %}</p>
<p style="line-height:1.5; margin:.2em 10px .2em 0;">{% blocktrans with user=notice.notice_from file_url=notice.priv_shared_file_url file_name=notice.priv_shared_file_name %}{{user}} has shared a file named <a href="{{url_base}}{{file_url}}">{{file_name}}</a> to you.{% endblocktrans %}</p>
{% elif notice.is_user_message %}
<p class="brief">{% blocktrans with msg_url=notice.user_msg_url user=notice.notice_from %}You have received a <a href="{{ url_base }}{{msg_url}}">new message</a> from {{user}}.{% endblocktrans %}</p>
<p style="line-height:1.5; margin:.2em 10px .2em 0;">{% blocktrans with msg_url=notice.user_msg_url user=notice.notice_from %}You have received a <a href="{{ url_base }}{{msg_url}}">new message</a> from {{user}}.{% endblocktrans %}</p>
{% if notice.user_msg %}
<p class="detail">{{notice.user_msg}}</p>
<p style="line-height:1.5; margin:.2em 10px .2em 0;">{{notice.user_msg}}</p>
{% endif %}
{% elif notice.is_file_uploaded_msg %}
<p class="brief">{% blocktrans with file_url=notice.file_link file_name=notice.file_name folder_url=notice.folder_link folder_name=notice.folder_name %}A file named <a href="{{url_base}}{{file_url}}">{{file_name}}</a> is uploaded to your folder <a href="{{url_base}}{{folder_url}}">{{folder_name}}</a>.{% endblocktrans %}</p>
<p style="line-height:1.5; margin:.2em 10px .2em 0;">{% blocktrans with file_url=notice.file_link file_name=notice.file_name folder_url=notice.folder_link folder_name=notice.folder_name %}A file named <a href="{{url_base}}{{file_url}}">{{file_name}}</a> is uploaded to your folder <a href="{{url_base}}{{folder_url}}">{{folder_name}}</a>.{% endblocktrans %}</p>
{% elif notice.is_group_join_request %}
<p class="brief">{% blocktrans with user_url=notice.grpjoin_user_profile_url user=notice.notice_from grp_url=notice.grpjoin_group_url grp_name=notice.grpjoin_group_name msg=notice.grpjoin_request_msg %}User <a href="{{url_base}}{{user_url}}">{{user}}</a> has asked to join group <a href="{{url_base}}{{grp_url}}">{{grp_name}}</a>, verification message: {{msg}}{% endblocktrans %}</p>
<p style="line-height:1.5; margin:.2em 10px .2em 0;">{% blocktrans with user_url=notice.grpjoin_user_profile_url user=notice.notice_from grp_url=notice.grpjoin_group_url grp_name=notice.grpjoin_group_name msg=notice.grpjoin_request_msg %}User <a href="{{url_base}}{{user_url}}">{{user}}</a> has asked to join group <a href="{{url_base}}{{grp_url}}">{{grp_name}}</a>, verification message: {{msg}}{% endblocktrans %}</p>
{% endif %}
</td>
<td>{{ notice.timestamp|date:"Y-m-d G:i:s"}}</td>
<td style="padding: 5px 3px; border-bottom: 1px solid #eee; font-size: 13px; color: #333; word-wrap: break-word;">{{ notice.timestamp|date:"Y-m-d G:i:s"}}</td>
</tr>
{% endfor %}
</table>