Sfoglia il codice sorgente

There is now a downloadable free trial for Luminotes Desktop. Also made export plugins work on Windows.

master
Dan Helfman 10 anni fa
parent
commit
81388ed36b
12 ha cambiato i file con 111 aggiunte e 22 eliminazioni
  1. +2
    -1
      NEWS
  2. +1
    -0
      config/Version.py
  3. +3
    -1
      controller/Root.py
  4. +2
    -3
      plugins/Invoke.py
  5. +3
    -0
      plugins/__init__.py
  6. +7
    -1
      setup.py
  7. +11
    -0
      static/css/product.css
  8. +7
    -0
      static/css/style.css
  9. BIN
      static/images/trial_button.png
  10. BIN
      static/images/trial_button.xcf
  11. +62
    -12
      view/Download_page.py
  12. +13
    -4
      view/Header.py

+ 2
- 1
NEWS Vedi File

@@ -1,4 +1,4 @@
1.6.7: ?
1.6.7: February 23, 2009
* When you export your notebook as an HTML or CSV file, the saved filename is
now based on the name of your notebook, for instance "my-to-do-list.html"
or "ideas-for-my-novel.csv".
@@ -6,6 +6,7 @@
* Converted the existing HTML and CSV export features to work as separate
export plugins. This means that a new export format can be implemented as
a new plugin.
* There is now a downloadable free trial for Luminotes Desktop!

1.6.6: February 16, 2009
* Luminotes now recognizes "mailto:" links as external links, so you can

+ 1
- 0
config/Version.py Vedi File

@@ -1 +1,2 @@
VERSION = u"1.6.7"
TRIAL = True

+ 3
- 1
controller/Root.py Vedi File

@@ -361,7 +361,9 @@ class Root( object ):
result[ "first_notebook" ] = None

result[ "download_products" ] = self.__settings[ u"global" ].get( u"luminotes.download_products" )
result[ "upgrade" ] = upgrade

referer = cherrypy.request.headerMap.get( u"Referer" )
result[ "upgrade" ] = upgrade or ( referer and u"localhost:" in referer )

return result


+ 2
- 3
plugins/Invoke.py Vedi File

@@ -3,8 +3,7 @@ import plugins

def invoke( plugin_type, plugin_name, *args, **kwargs ):
plugin_name = u"%s_%s" % ( plugin_type, plugin_name )
plugin_location = imp.find_module( plugin_name, plugins.__path__ )
plugin_module = imp.load_module( plugin_name, *plugin_location )

plugin_module = getattr( plugins, plugin_name )
function = getattr( plugin_module, plugin_type )

return apply( function, args, kwargs )

+ 3
- 0
plugins/__init__.py Vedi File

@@ -0,0 +1,3 @@
# for the benefit of py2exe
import export_html
import export_csv

+ 7
- 1
setup.py Vedi File

@@ -1,6 +1,7 @@
#!/usr/bin/python

import os
import os.path
import sys
from glob import glob
from distutils.core import setup, Distribution
@@ -148,6 +149,11 @@ class InnoScript:
print >> ofi, r"end;"

def compile(self):
import os
if os.environ.get( "CYGWIN" ):
print "Running in Cygwin, so skipping compile"
return

try:
import ctypes
except ImportError:
@@ -276,7 +282,7 @@ setup(
options = dict(
py2exe = dict(
packages = "cherrypy.filters",
includes = "email.header,simplejson",
includes = "email.header,simplejson,plugins.*",
compressed = 1,
optimize = 2,
)

+ 11
- 0
static/css/product.css Vedi File

@@ -498,6 +498,11 @@
padding-bottom: 0.5em;
}

.trial_button_area {
padding-top: 1em;
padding-bottom: 0.5em;
}

.download_button_area {
padding-top: 1em;
padding-bottom: 0.5em;
@@ -543,3 +548,9 @@
margin-bottom: 0.5em;
border: 1px solid #999999;
}

.tiny_text {
font-size: 60%;
line-height: 140%;
font-weight: normal;
}

+ 7
- 0
static/css/style.css Vedi File

@@ -1233,3 +1233,10 @@ h1 {
font-size: 72%;
font-weight: normal;
}

.trial_upgrade_link {
font-weight: bold;
background-color: #ffcc66;
padding: 0.5em;
font-size: 110%;
}

BIN
static/images/trial_button.png Vedi File

Before After
Width: 107  |  Height: 26  |  Size: 2.6KB

BIN
static/images/trial_button.xcf Vedi File


+ 62
- 12
view/Download_page.py Vedi File

@@ -8,7 +8,7 @@ class Download_page( Product_page ):
MEGABYTE = 1024 * 1024

# for now, just assume there's a single download package
download_button = download_products[ 0 ].get( "button" )
download_button = download_products[ 0 ].get( "button" ).strip()
news_url = u"http://luminotes.com/hg/luminotes/file/%s/NEWS" % VERSION

Product_page.__init__(
@@ -66,14 +66,16 @@ class Download_page( Product_page ):
class_ = u"version_text",
),
class_ = u"plan_name_area download_plan_width",
)
colspan = "2",
),
),
Tr( Td(), class_ = u"spacer_row" ),
Tr( Td( colspan = "2" ), class_ = u"spacer_row" ),
Tr(
Td(
Span( u"Solo", class_ = u"highlight" ), u"note taking",
title = u"Luminotes Desktop is designed for individuals.",
class_ = u"feature_value",
colspan = "2",
),
),
Tr(
@@ -81,6 +83,7 @@ class Download_page( Product_page ):
u"Runs on your", Span( u"own computer", class_ = u"highlight" ),
title = u"All of your notes are stored privately on your own computer or on a USB drive.",
class_ = u"feature_value",
colspan = "2",
),
),
Tr(
@@ -88,6 +91,7 @@ class Download_page( Product_page ):
Span( u"Unlimited", class_ = u"highlight" ), u"storage",
title = u"Add as many notes, documents, and files as you want.",
class_ = u"feature_value",
colspan = "2",
),
),
Tr(
@@ -95,30 +99,57 @@ class Download_page( Product_page ):
u"Works", Span( "offline", class_ = u"highlight" ),
title = u"Take notes in meetings, in class, or while on the go. Runs in a web browser, but doesn't need an internet connection.",
class_ = u"feature_value",
colspan = "2",
),
),
Tr( Td(), class_ = u"spacer_row" ),
Tr( Td( colspan = "2" ), class_ = u"spacer_row" ),
Tr(
Td(
u"Windows XP/Vista,", A( u"Linux source", href = u"/source_code" ),
class_ = u"small_text",
colspan = "2",
),
),
Tr(
Td(
u"Firefox 2+, Internet Explorer 7+, Chrome 1+, Safari 3+",
class_ = u"small_text",
colspan = "2",
),
),
Tr( Td( colspan = "2" ), class_ = u"spacer_row" ),
Tr(
Td(
( not upgrade ) and Td(
Div(
A(
Img(
src = u"/static/images/trial_button.png",
width = u"107", height = u"26",
alt = u"download trial",
),
href = "/static/luminotes.exe",
),
Div(
u"Completely free",
class_ = u"tiny_text",
),
class_ = u"trial_button_area",
),
colspan = download_button and "1" or "2",
) or None,
download_button and Td(
Div(
download_button,
Div(
u"Fast and secure",
class_ = u"tiny_text",
),
class_ = u"download_button_area",
),
),
colspan = upgrade and "2" or "1",
) or None,
),
Tr( Td(), class_ = u"spacer_row" ),
Tr( Td( colspan = "2" ), class_ = u"spacer_row" ),
border = u"1",
id = u"upgrade_table",
),
@@ -165,12 +196,15 @@ class Download_page( Product_page ):
H4( u"Can I try before I buy?", class_ = u"upgrade_question" ),
P(
"""
Sure! Just check out the full-featured
Sure! Just
""",
A( u"download the full-featured free trial", href = "/static/luminotes.exe" ),
"""
or check out the
""",
A( u"online demo", href = "/users/demo" ),
"""
to see Luminotes for yourself. The only difference is that Luminotes Desktop runs in
a browser on your own computer instead of on the web.
to see Luminotes for yourself.
""",
class_ = u"upgrade_text",
),
@@ -221,15 +255,31 @@ class Download_page( Product_page ):
Th(
Span( u"Luminotes Desktop", class_ = u"plan_name" ),
class_ = u"plan_name_area",
colspan = "2",
)
),
Tr(
Td(
( not upgrade ) and Td(
Div(
A(
Img(
src = u"/static/images/trial_button.png",
width = u"107", height = u"26",
alt = u"download trial",
),
href = "/static/luminotes.exe",
),
class_ = u"trial_button_area",
),
colspan = download_button and "1" or "2",
) or None,
download_button and Td(
Div(
download_button,
class_ = u"download_button_area",
),
),
colspan = upgrade and "2" or "1",
) or None,
),
id = u"upgrade_table_small",
),

+ 13
- 4
view/Header.py Vedi File

@@ -1,5 +1,5 @@
from Tags import Div, A, Img, Span
from config.Version import VERSION
from Tags import Div, A, Img, Span, B
from config.Version import VERSION, TRIAL

class Header( Div ):
def __init__( self, user, first_notebook, login_url, logout_url, note_title, rate_plan = None ):
@@ -9,6 +9,15 @@ class Header( Div ):
alt = u"Luminotes",
)

trial_expired = False
if TRIAL:
from pytz import utc
from datetime import datetime, timedelta
trial_age = datetime.now( tz = utc ) - first_notebook.revision
if trial_age > timedelta( days = 30 ):
trial_expired = True

if rate_plan and rate_plan.get( u"name" ) == u"desktop":
Div.__init__(
self,
@@ -16,8 +25,8 @@ class Header( Div ):
( note_title == u"home" ) and title_image or
A( title_image, href = u"http://luminotes.com/", target = "_new" ),
Div(
u"version", VERSION, u" | ",
A( u"upgrade", href = u"http://luminotes.com/download?upgrade=True", target = "_new" ), u" | ",
( TRIAL and u"trial" or u"" ), u"version", VERSION, u" | ",
A( u"upgrade", href = u"http://luminotes.com/download", target = "_new", class_ = trial_expired and "trial_upgrade_link" or u"" ), u" | ",
A( u"community", href = u"http://luminotes.com/community", target = "_new" ), u" | ",
A( u"blog", href = u"http://luminotes.com/blog/", target = "_new" ), u" | ",
A( u"close", href = u"/close" ),

Loading…
Annulla
Salva