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

This commit is contained in:
Anand Doshi 2016-07-14 17:43:37 +05:30
parent 3bb2fb966d
commit b3546f1ebc
6 changed files with 47 additions and 20 deletions

View file

@ -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"""

View file

@ -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);
});
}
}

View file

@ -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 = '<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:
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 = '<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():
'''
"limits": {

View file

@ -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
frappe.patches.v7_0.rename_newsletter_list_to_email_group
frappe.patches.v7_0.replace_upgrade_link_limit

View file

@ -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})

View file

@ -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) {