瀏覽代碼

[fix] show 'click here' in expiry message if upgrade_url is available

version-14
Anand Doshi 9 年之前
父節點
當前提交
b3546f1ebc
共有 6 個文件被更改,包括 47 次插入20 次删除
  1. +2
    -2
      frappe/commands/site.py
  2. +2
    -2
      frappe/core/page/usage_info/usage_info.js
  3. +22
    -14
      frappe/limits.py
  4. +2
    -1
      frappe/patches.txt
  5. +10
    -0
      frappe/patches/v7_0/replace_upgrade_link_limit.py
  6. +9
    -1
      frappe/public/js/frappe/toolbar.js

+ 2
- 2
frappe/commands/site.py 查看文件

@@ -377,7 +377,7 @@ def _set_limits(context, site, limits):
new_limits = {} new_limits = {}
for limit, value in limits: for limit, value in limits:
if limit not in ('emails', 'space', 'users', 'expiry', if limit not in ('emails', 'space', 'users', 'expiry',
'support_email', 'support_chat', 'upgrade_link'):
'support_email', 'support_chat', 'upgrade_url'):
frappe.throw('Invalid limit {0}'.format(limit)) frappe.throw('Invalid limit {0}'.format(limit))


if limit=='expiry': if limit=='expiry':
@@ -399,7 +399,7 @@ def _set_limits(context, site, limits):
@click.command('clear-limits') @click.command('clear-limits')
@click.option('--site', help='site name') @click.option('--site', help='site name')
@click.argument('limits', nargs=-1, type=click.Choice(['emails', 'space', 'users', 'expiry', @click.argument('limits', nargs=-1, type=click.Choice(['emails', 'space', 'users', 'expiry',
'support_email', 'support_chat', 'upgrade_link']))
'support_email', 'support_chat', 'upgrade_url']))
@pass_context @pass_context
def clear_limits(context, site, limits): def clear_limits(context, site, limits):
"""Clears given limit from the site config, and removes limit from site config if its empty""" """Clears given limit from the site config, and removes limit from site config if its empty"""


+ 2
- 2
frappe/core/page/usage_info/usage_info.js 查看文件

@@ -19,9 +19,9 @@ frappe.pages['usage-info'].on_page_load = function(wrapper) {


var btn_text = usage_info.limits.users == 1 ? __("Upgrade") : __("Renew / Upgrade"); var btn_text = usage_info.limits.users == 1 ? __("Upgrade") : __("Renew / Upgrade");


if(usage_info.upgrade_link) {
if(usage_info.upgrade_url) {
page.set_primary_action(btn_text, function() { page.set_primary_action(btn_text, function() {
window.open(usage_info.upgrade_link);
window.open(usage_info.upgrade_url);
}); });
} }
} }


+ 22
- 14
frappe/limits.py 查看文件

@@ -21,13 +21,11 @@ def check_if_expired():
expires_on = formatdate(limits.get("expiry")) expires_on = formatdate(limits.get("expiry"))
support_email = limits.get("support_email") support_email = limits.get("support_email")


if limits.upgrade_link:
upgrade_link = get_upgrade_link(limits.upgrade_link)
upgrade_link = '<a href="{upgrade_link}" target="_blank">{click_here}</a>'.format(upgrade_link=upgrade_link, click_here=_('click here'))
message = _("""Your subscription expired on {0}. To extend your subscription, {1}.""").format(expires_on, upgrade_link)
if limits.upgrade_url:
message = _("""Your subscription expired on {0}. To renew, {1}.""").format(expires_on, get_upgrade_link(limits.upgrade_url))


elif support_email: elif support_email:
message = _("""Your subscription expired on {0}. To extend your subscription, please send an email to {1}.""").format(expires_on, support_email)
message = _("""Your subscription expired on {0}. To renew, please send an email to {1}.""").format(expires_on, support_email)


else: else:
message = _("""Your subscription expired on {0}""").format(expires_on) message = _("""Your subscription expired on {0}""").format(expires_on)
@@ -51,7 +49,8 @@ def get_expiry_message():
if "System Manager" not in frappe.get_roles(): if "System Manager" not in frappe.get_roles():
return "" return ""


if not get_limits().get("expiry"):
limits = get_limits()
if not limits.expiry:
return "" return ""


expires_on = getdate(get_limits().get("expiry")) expires_on = getdate(get_limits().get("expiry"))
@@ -59,18 +58,22 @@ def get_expiry_message():


message = "" message = ""
if today > expires_on: if today > expires_on:
message = _("Your subscription has expired")
message = _("Your subscription has expired.")
else: else:
days_to_expiry = (expires_on - today).days days_to_expiry = (expires_on - today).days


if days_to_expiry == 0: if days_to_expiry == 0:
message = _("Your subscription will expire today")
message = _("Your subscription will expire today.")


elif days_to_expiry == 1: elif days_to_expiry == 1:
message = _("Your subscription will expire tomorrow")
message = _("Your subscription will expire tomorrow.")


elif days_to_expiry <= EXPIRY_WARNING_DAYS: elif days_to_expiry <= EXPIRY_WARNING_DAYS:
message = _("Your subscription will expire on") + " " + formatdate(expires_on)
message = _("Your subscription will expire on {0}.").format(formatdate(expires_on))

if message and limits.upgrade_url:
upgrade_link = get_upgrade_link(limits.upgrade_url)
message += ' ' + _('To renew, {0}.').format(upgrade_link)


return message return message


@@ -106,13 +109,13 @@ def get_usage_info():
usage_info['expires_on'] = formatdate(limits.expiry) usage_info['expires_on'] = formatdate(limits.expiry)
usage_info['days_to_expiry'] = (getdate(limits.expiry) - getdate()).days usage_info['days_to_expiry'] = (getdate(limits.expiry) - getdate()).days


if limits.upgrade_link:
usage_info['upgrade_link'] = get_upgrade_link(limits.upgrade_link)
if limits.upgrade_url:
usage_info['upgrade_url'] = get_upgrade_url(limits.upgrade_url)


return usage_info return usage_info


def get_upgrade_link(upgrade_link):
parts = urlparse.urlsplit(upgrade_link)
def get_upgrade_url(upgrade_url):
parts = urlparse.urlsplit(upgrade_url)
params = dict(urlparse.parse_qsl(parts.query)) params = dict(urlparse.parse_qsl(parts.query))
params.update({ params.update({
'site': frappe.local.site, 'site': frappe.local.site,
@@ -124,6 +127,11 @@ def get_upgrade_link(upgrade_link):
url = urlparse.urlunsplit((parts.scheme, parts.netloc, parts.path, query, parts.fragment)) url = urlparse.urlunsplit((parts.scheme, parts.netloc, parts.path, query, parts.fragment))
return url return url


def get_upgrade_link(upgrade_url, label=None):
upgrade_url = get_upgrade_url(upgrade_url)
upgrade_link = '<a href="{upgrade_url}" target="_blank">{click_here}</a>'.format(upgrade_url=upgrade_url, click_here=label or _('click here'))
return upgrade_link

def get_limits(): def get_limits():
''' '''
"limits": { "limits": {


+ 2
- 1
frappe/patches.txt 查看文件

@@ -132,4 +132,5 @@ frappe.patches.v7_0.setup_list_settings
execute:frappe.db.sql('''delete from `tabSingles` where doctype="Email Settings"''') # 2016-06-13 execute:frappe.db.sql('''delete from `tabSingles` where doctype="Email Settings"''') # 2016-06-13
execute:frappe.db.sql("delete from `tabWeb Page` where ifnull(template_path, '')!=''") execute:frappe.db.sql("delete from `tabWeb Page` where ifnull(template_path, '')!=''")
frappe.patches.v7_0.re_route #2016-06-27 frappe.patches.v7_0.re_route #2016-06-27
frappe.patches.v7_0.rename_newsletter_list_to_email_group
frappe.patches.v7_0.rename_newsletter_list_to_email_group
frappe.patches.v7_0.replace_upgrade_link_limit

+ 10
- 0
frappe/patches/v7_0/replace_upgrade_link_limit.py 查看文件

@@ -0,0 +1,10 @@
from __future__ import unicode_literals
import frappe
from frappe.limits import get_limits, clear_limit, update_limits

def execute():
limits = get_limits()
if limits and limits.upgrade_link:
upgrade_url = limits.upgrade_link
clear_limit('upgrade_link')
update_limits({'upgrade_url': upgrade_url})

+ 9
- 1
frappe/public/js/frappe/toolbar.js 查看文件

@@ -8,7 +8,15 @@ $(document).on("toolbar_setup", function() {
var limits = frappe.boot.limits; var limits = frappe.boot.limits;


if(frappe.boot.expiry_message) { if(frappe.boot.expiry_message) {
frappe.msgprint(frappe.boot.expiry_message)
var expiry_message_shown = localStorage.expiry_message_shown;

// if message is more than a day old, show message again
if (!(expiry_message_shown
&& (new Date() - new Date(expiry_message_shown) < 86400000))) {

localStorage.expiry_message_shown = new Date();
frappe.msgprint(frappe.boot.expiry_message);
}
} }


if(limits.support_email || limits.support_chat) { if(limits.support_email || limits.support_chat) {


Loading…
取消
儲存