diff --git a/frappe/commands/site.py b/frappe/commands/site.py
index 4ed5d1ef23..73703b98e9 100755
--- a/frappe/commands/site.py
+++ b/frappe/commands/site.py
@@ -377,7 +377,7 @@ def _set_limits(context, site, limits):
new_limits = {}
for limit, value in limits:
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))
if limit=='expiry':
@@ -399,7 +399,7 @@ def _set_limits(context, site, limits):
@click.command('clear-limits')
@click.option('--site', help='site name')
@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
def clear_limits(context, site, limits):
"""Clears given limit from the site config, and removes limit from site config if its empty"""
diff --git a/frappe/core/page/usage_info/usage_info.js b/frappe/core/page/usage_info/usage_info.js
index 810785e300..1f2409980e 100644
--- a/frappe/core/page/usage_info/usage_info.js
+++ b/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");
- if(usage_info.upgrade_link) {
+ if(usage_info.upgrade_url) {
page.set_primary_action(btn_text, function() {
- window.open(usage_info.upgrade_link);
+ window.open(usage_info.upgrade_url);
});
}
}
diff --git a/frappe/limits.py b/frappe/limits.py
index 650433b311..f48177ffcf 100755
--- a/frappe/limits.py
+++ b/frappe/limits.py
@@ -21,13 +21,11 @@ def check_if_expired():
expires_on = formatdate(limits.get("expiry"))
support_email = limits.get("support_email")
- if limits.upgrade_link:
- upgrade_link = get_upgrade_link(limits.upgrade_link)
- upgrade_link = '{click_here}'.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:
- 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:
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():
return ""
- if not get_limits().get("expiry"):
+ limits = get_limits()
+ if not limits.expiry:
return ""
expires_on = getdate(get_limits().get("expiry"))
@@ -59,18 +58,22 @@ def get_expiry_message():
message = ""
if today > expires_on:
- message = _("Your subscription has expired")
+ message = _("Your subscription has expired.")
else:
days_to_expiry = (expires_on - today).days
if days_to_expiry == 0:
- message = _("Your subscription will expire today")
+ message = _("Your subscription will expire today.")
elif days_to_expiry == 1:
- message = _("Your subscription will expire tomorrow")
+ message = _("Your subscription will expire tomorrow.")
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
@@ -106,13 +109,13 @@ def get_usage_info():
usage_info['expires_on'] = formatdate(limits.expiry)
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
-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.update({
'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))
return url
+def get_upgrade_link(upgrade_url, label=None):
+ upgrade_url = get_upgrade_url(upgrade_url)
+ upgrade_link = '{click_here}'.format(upgrade_url=upgrade_url, click_here=label or _('click here'))
+ return upgrade_link
+
def get_limits():
'''
"limits": {
diff --git a/frappe/patches.txt b/frappe/patches.txt
index 060c9fa72e..3af018acd8 100644
--- a/frappe/patches.txt
+++ b/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 `tabWeb Page` where ifnull(template_path, '')!=''")
frappe.patches.v7_0.re_route #2016-06-27
-frappe.patches.v7_0.rename_newsletter_list_to_email_group
\ No newline at end of file
+frappe.patches.v7_0.rename_newsletter_list_to_email_group
+frappe.patches.v7_0.replace_upgrade_link_limit
diff --git a/frappe/patches/v7_0/replace_upgrade_link_limit.py b/frappe/patches/v7_0/replace_upgrade_link_limit.py
new file mode 100644
index 0000000000..c178a87466
--- /dev/null
+++ b/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})
diff --git a/frappe/public/js/frappe/toolbar.js b/frappe/public/js/frappe/toolbar.js
index 10546eda32..3e712c40c9 100755
--- a/frappe/public/js/frappe/toolbar.js
+++ b/frappe/public/js/frappe/toolbar.js
@@ -8,7 +8,15 @@ $(document).on("toolbar_setup", function() {
var limits = frappe.boot.limits;
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) {