diff --git a/config/Common.py b/config/Common.py
index 7a0556e..faa82bf 100644
--- a/config/Common.py
+++ b/config/Common.py
@@ -29,15 +29,22 @@ settings = {
"luminotes.rate_plans": [
{
"name": "free",
+ "designed_for": "professionals",
"storage_quota_bytes": 30 * MEGABYTE,
+ "included_users": 1,
"notebook_collaboration": False,
+ "user_admin": False,
"fee": None,
"yearly_fee": None,
+ "designed_for": "students",
},
{
"name": "basic",
+ "designed_for": "professionals",
"storage_quota_bytes": 250 * MEGABYTE,
+ "included_users": 1,
"notebook_collaboration": True,
+ "user_admin": False,
"fee": 5,
"yearly_fee": 50,
"button":
@@ -46,11 +53,15 @@ settings = {
"yearly_button":
"""
""",
+ "designed_for": "home users",
},
{
"name": "standard",
+ "designed_for": "professionals",
"storage_quota_bytes": 500 * MEGABYTE,
+ "included_users": 1,
"notebook_collaboration": True,
+ "user_admin": False,
"fee": 9,
"yearly_fee": 90,
"button":
@@ -60,15 +71,38 @@ settings = {
"""
""",
},
-# {
-# "name": "premium",
-# "storage_quota_bytes": 2000 * MEGABYTE,
-# "notebook_collaboration": True,
-# "fee": 19,
-# "button":
-# """
-# """,
-# },
+ {
+ "name": "plus",
+ "designed_for": "small teams",
+ "storage_quota_bytes": 1000 * MEGABYTE,
+ "included_users": 10,
+ "notebook_collaboration": True,
+ "user_admin": True,
+ "fee": 19,
+ "yearly_fee": 190,
+ "button":
+ """
+ """,
+ "yearly_button":
+ """
+ """,
+ },
+ {
+ "name": "max",
+ "designed_for": "organizations",
+ "storage_quota_bytes": 5000 * MEGABYTE,
+ "included_users": 50,
+ "notebook_collaboration": True,
+ "user_admin": True,
+ "fee": 99,
+ "yearly_fee": 990,
+ "button":
+ """
+ """,
+ "yearly_button":
+ """
+ """,
+ },
],
"luminotes.unsubscribe_button":
"""
diff --git a/static/css/product.css b/static/css/product.css
index 16421d3..3feafd2 100644
--- a/static/css/product.css
+++ b/static/css/product.css
@@ -300,7 +300,6 @@
}
#upgrade_table .plan_name {
- width: 16%;
text-align: center;
background-color: #d0e0f0;
}
@@ -310,7 +309,7 @@
}
#upgrade_table .feature_name {
- width: 36%;
+ font-size: 82%;
text-align: left;
background-color: #fafafa;
border-bottom: 0px;
@@ -324,6 +323,10 @@
border-width: 0px;
}
+#upgrade_table .feature_value {
+ font-size: 82%;
+}
+
#upgrade_table_small {
margin-top: 1em;
clear: both;
@@ -344,11 +347,14 @@
}
#upgrade_table_small .plan_name {
- width: 33%;
text-align: center;
background-color: #d0e0f0;
}
+#upgrade_table_small .feature_value {
+ font-size: 82%;
+}
+
.price_text {
color: #ff6600;
}
diff --git a/view/Upgrade_page.py b/view/Upgrade_page.py
index a49afc3..60ea2eb 100644
--- a/view/Upgrade_page.py
+++ b/view/Upgrade_page.py
@@ -6,6 +6,7 @@ class Upgrade_page( Product_page ):
def __init__( self, user, notebooks, first_notebook, login_url, logout_url, rate_plan, groups, rate_plans, unsubscribe_button ):
MEGABYTE = 1024 * 1024
rate_plans = list( rate_plans )
+ user_plan = rate_plans[ user.rate_plan ]
rate_plans.reverse() # show rate plans highest to lowest
Product_page.__init__(
@@ -42,6 +43,16 @@ class Upgrade_page( Product_page ):
P(
Table(
self.fee_row( rate_plans, user ),
+ Tr(
+ Td(
+ u"Designed for",
+ class_ = u"feature_name",
+ ),
+ [ Td(
+ plan[ u"designed_for" ],
+ class_ = u"feature_value",
+ ) for plan in rate_plans ],
+ ),
Tr(
Td(
A( u"Included storage space", href = u"#", onclick = u"toggleElementClass( 'undisplayed', 'storage_description' ); return false;" ),
@@ -57,11 +68,31 @@ class Upgrade_page( Product_page ):
Li( u"More space for your wiki notes." ),
Li( u"More space for your documents and files." ),
),
- colspan = u"4",
+ colspan = len( rate_plans ) + 1,
id = u"storage_description",
class_ = u"feature_description undisplayed",
),
),
+ Tr(
+ Td(
+ A( u"Included accounts", href = u"#", onclick = u"toggleElementClass( 'undisplayed', 'users_description' ); return false;" ),
+ class_ = u"feature_name",
+ ),
+ [ Td(
+ ( plan[ u"included_users" ] == 1 ) and u"1 user" or "up to
%s users" % plan[ u"included_users" ],
+ class_ = u"feature_value",
+ ) for plan in rate_plans ],
+ ),
+ Tr(
+ Td(
+ Ul(
+ Li( u"Collaborate on a wiki with multiple people in your organization." ),
+ ),
+ colspan = len( rate_plans ) + 1,
+ id = u"users_description",
+ class_ = u"feature_description undisplayed",
+ ),
+ ),
Tr(
Td(
A( u"Unlimited wiki notebooks", href = u"#", onclick = u"toggleElementClass( 'undisplayed', 'notebooks_description' ); return false;" ),
@@ -77,7 +108,7 @@ class Upgrade_page( Product_page ):
Li( u"Create a unique notebook for each subject." ),
Li( u"Keep work and personal notebooks separate." ),
),
- colspan = u"4",
+ colspan = len( rate_plans ) + 1,
id = u"notebooks_description",
class_ = u"feature_description undisplayed",
),
@@ -97,7 +128,7 @@ class Upgrade_page( Product_page ):
Li( u"Fast email responses to your support questions. From a real live human." ),
Li( u"No waiting on hold with a call center." ),
),
- colspan = u"4",
+ colspan = len( rate_plans ) + 1,
id = u"support_description",
class_ = u"feature_description undisplayed",
),
@@ -118,7 +149,7 @@ class Upgrade_page( Product_page ):
Li( u"Invite as many people as you want." ),
Li( u"Share only the notebooks you want to share. Keep the others private." ),
),
- colspan = u"4",
+ colspan = len( rate_plans ) + 1,
id = u"view_description",
class_ = u"feature_description undisplayed",
),
@@ -142,11 +173,33 @@ class Upgrade_page( Product_page ):
Li( u"Revoke collaboration access with a single click." ),
Li( u"Share only the notebooks you want to share. Keep the others private." ),
),
- colspan = u"4",
+ colspan = len( rate_plans ) + 1,
id = u"edit_description",
class_ = u"feature_description undisplayed",
),
),
+ Tr(
+ Td(
+ A( u"User administration (coming soon!)", href = u"#", onclick = u"toggleElementClass( 'undisplayed', 'admin_description' ); return false;" ),
+ class_ = u"feature_name",
+ ),
+ [ Td(
+ plan[ u"user_admin" ] and
+ Img( src = u"/static/images/check.png", width = u"22", height = u"22" ) or u" ",
+ ) for plan in rate_plans ],
+ ),
+ Tr(
+ Td(
+ Ul(
+ Li( u"Manage all Luminotes accounts for your organization. All from one web page." ),
+ Li( u"Create and delete users as needed." ),
+ Li( u"Grant or revoke access to wiki notebooks." ),
+ ),
+ colspan = len( rate_plans ) + 1,
+ id = u"admin_description",
+ class_ = u"feature_description undisplayed",
+ ),
+ ),
border = u"1",
id = u"upgrade_table",
),
@@ -155,7 +208,7 @@ class Upgrade_page( Product_page ):
user and user.username not in ( u"anonymous", None ) and P(
u"You're currently subscribed to Luminotes %s." %
- rate_plans[ user.rate_plan ][ u"name" ].capitalize(),
+ user_plan[ u"name" ].capitalize(),
( user.rate_plan > 0 ) and unsubscribe_button or None,
) or None,
class_ = u"upgrade_area",
@@ -182,14 +235,20 @@ class Upgrade_page( Product_page ):
Tr( Td(
u"Get two months free with a yearly subscription!",
class_ = u"upgrade_subtitle",
- colspan = u"3",
- ), colspan = u"3" ),
+ colspan = u"%d" % len( rate_plans ),
+ ), colspan = u"%d" % len( rate_plans ) ),
self.fee_row( rate_plans, user, include_blank = False, yearly = True ),
Tr(
[ Td(
plan[ u"storage_quota_bytes" ] // MEGABYTE, " MB",
) for plan in rate_plans ],
),
+ Tr(
+ [ Td(
+ ( plan[ u"included_users" ] == 1 ) and u"1 user" or "up to
%s users" % plan[ u"included_users" ],
+ class_ = u"feature_value",
+ ) for plan in rate_plans ],
+ ),
border = u"1",
id = u"upgrade_table_small",
),