Dan Helfman
4d24914496
Leading/trailing spaces and newlines in note titles and contents are now stripped out when exporting to CSV.
2008-09-29 23:35:45 -07:00
Dan Helfman
f2b88441ee
Leading/trailing spaces in note titles are now ignored when making links to such notes.
2008-09-28 14:48:22 -07:00
Dan Helfman
8c54f7e59c
Testing rewriting of imported note links that have full protocol and server (" http://blah/ "), as IE tacks on.
2008-09-26 23:06:40 -07:00
Dan Helfman
7a3fe2fc5a
Fixed incorrect commit order in import_csv().
2008-09-26 23:01:01 -07:00
Dan Helfman
32da3d3db2
Fixed bug in which an incorrectly detected CSV header or an invalid note_id value could break an entire CSV import. Now just ignoring invalid note_id values.
2008-09-26 22:23:38 -07:00
Dan Helfman
c04475fc7e
Fixed bug in which attempting to export a notebook containing a note saved by a user without a username would raise an error.
2008-09-26 21:57:53 -07:00
Dan Helfman
61fb8cc079
Fixed a bug in which attempting to export a notebook containing a note without a title would raise an error.
2008-09-26 21:54:43 -07:00
Dan Helfman
38f4772a6a
Completed note link rewriting support for CSV importing. Also completed unit tests for that and CSV exporting.
2008-09-26 21:30:40 -07:00
Dan Helfman
6c46951285
Mentioned Google Chrome. Added a link to contact info for people to vote for their browser choice.
2008-09-22 14:23:13 -07:00
Dan Helfman
968ef22bc4
Implemented CSV exporting, and improved CSV importing to better handle the exported CSV files.
...
Importing still needs work on properly handling internal note links.
2008-09-17 23:39:11 -07:00
Dan Helfman
6831fe6d89
Fixed a bug in which the /files/preview page couldn't display unicode filenames with special characters.
...
The problem was that the filename was encoded as UTF-8 twice, rather than once.
2008-09-17 15:38:54 -07:00
Dan Helfman
ae31a871a2
Fixed some bugs with product payment / download after testing with PayPal's sandbox with PDT and auto-return.:
2008-09-11 16:57:51 -07:00
Dan Helfman
9247683a72
Lots more work on the payment code necessary to support Luminotes Desktop.
2008-09-11 00:36:12 -07:00
Dan Helfman
949778e702
Fixed a bug in which Luminotes Desktop file attachment did not always work due to incorrect upload progress reporting.
2008-09-08 15:11:49 -07:00
Dan Helfman
6bbe32bfff
If the item number is blank, ignore the transaction.
2008-09-01 19:18:05 -07:00
Dan Helfman
6bd2dd510f
Lots of product page work for Luminotes Desktop.
2008-08-28 21:19:55 -07:00
Dan Helfman
f07cd2dc41
Notebooks.summarize_note() can now optionally highlight some particular text.
2008-08-26 19:35:50 -07:00
Dan Helfman
9e1ae2abb6
Changing default file mode from just "b" to "rb", since Python complains otherwise.
2008-08-25 23:47:25 -07:00
Dan Helfman
7a65670c45
Now storing uploaded files in home directory / APPDATA. And made uploads always use binary mode, necessary on Windows.
...
Also fixed removal of log files on startup to remove them from the right location.
2008-08-25 23:30:36 -07:00
Dan Helfman
ebee4e5135
luminotes.db now goes in a user-specific directory.
2008-08-25 17:43:09 -07:00
Dan Helfman
fed6bb7b9d
Configured a separate error log where tracebacks go. Should work on all platforms.
2008-08-23 20:00:00 -07:00
Dan Helfman
3e7cd20d43
New "-k" command-line parameter to shutdown an existing local Luminotes server (if allowed by the configuration).
2008-08-22 18:29:49 -07:00
Dan Helfman
25ac437a54
I don't pretend to understand how Windows works.
2008-08-21 14:15:37 -07:00
Dan Helfman
9bd86b53e8
Fixed import in unit test.
2008-08-21 14:06:26 -07:00
Dan Helfman
a3c13d4edf
Unit tests for new auto-login functionality.
2008-08-20 21:56:20 -07:00
Dan Helfman
27581a0445
For desktop version, creating default user and auto-logging that user in. Also set a larger session timeout for desktop version.
2008-08-20 19:50:18 -07:00
Dan Helfman
4cd1e4239d
Modified Files.upload() to work even when the user's rate plan has no quota.
2008-08-20 15:08:08 -07:00
Dan Helfman
2fa2010dd9
Added very basic note summarizing for search results if the backend doesn't return a note summary (e.g. for SQLite).
2008-08-19 22:15:54 -07:00
Dan Helfman
ee38d64302
All Notebooks unit tests are now passing with the new SQLite backend.
2008-08-19 17:49:29 -07:00
Dan Helfman
1ecf88cd8f
Now using BACKEND flags from Persistent.
2008-08-19 17:49:02 -07:00
Dan Helfman
73219b74ce
When deleting file metadata from the database, also removing that data from the cache.
2008-08-19 15:20:58 -07:00
Dan Helfman
5afd5a4b73
Updated Test_root.py to work with new SQLite testing.
2008-08-19 15:05:40 -07:00
Dan Helfman
95577bff55
Began conversion of all controller unit tests to use a real SQLite database. Still incomplete.
2008-08-19 14:22:40 -07:00
Dan Helfman
c35a801311
Testing for new backend property, and no longer setting up SQLite connection with PARSE_COLNAMES.
2008-08-19 14:19:40 -07:00
Dan Helfman
a5dfc2f826
Added backend property to determine the current database backend. Also fixed timestamp regular expression.
2008-08-19 14:18:08 -07:00
Dan Helfman
9d5840e052
Did some conversion of booleans and timestamps coming out of an SQLite database into the appropriate Python types.
2008-08-18 18:03:08 -07:00
Dan Helfman
ef83061d12
If a user's rate plan storage quota is None (indicate no quota), don't calculate the user's storage quota.
2008-08-18 18:00:45 -07:00
Dan Helfman
9d4a33218f
Updated Database.py, initdb.py, and updatedb.py to support local SQLite database. Still need other changes in model/*.py though.
2008-08-15 17:27:03 -07:00
Dan Helfman
3d1919287b
Began a local/desktop mode, and made the server exit upon startup if it's already running.
2008-08-15 15:00:16 -07:00
Dan Helfman
c6dbeffc10
Fixed a bug in which the character encoding of uploaded CSV files was not properly detected and used to decode the file.
...
Note that this fix introduces a new dependency: http://chardet.feedparser.org/ found in the python-chardet package.
2008-08-11 22:53:01 -07:00
Dan Helfman
6e8e1a31c9
Improved escaping of titles based on value of plaintext parameter. Finished unit for import_csv().
2008-08-11 13:21:12 -07:00
Dan Helfman
6b8bb9ce4f
Tweaked CSV import to support HTML refs (e.g. >) in imported titles.
2008-08-11 03:47:17 -07:00
Dan Helfman
4d50c1b869
Began unit tests for Notebooks.import_csv() and added stub tests for those that are still to do.
2008-08-11 02:34:32 -07:00
Dan Helfman
178bf48c86
Completed Files.csv_head() unit tests and reduced maximum returned elements per row length.
2008-08-09 02:13:52 -07:00
Dan Helfman
9ed4254e43
When there's no CSV title column, attempting to use the first line of the contents instead of just the first few words.
...
Also nuking HTML earlier on so that it doesn't interfere with title truncation.
Still needs unit tests for this code.
2008-08-09 01:08:15 -07:00
Dan Helfman
64bf4c49ee
No longer introducing double newlines in CSV header sniff sample.
...
Also fixed unit tests for Files.parse_csv() with data appropriate for correctly sniffing the header.
2008-08-09 01:04:06 -07:00
Dan Helfman
52f129e571
New notebook import feature for importing notes from a CSV file. (Beta.)
...
Uses existing file upload mechanism with slightly modified UI to upload the file.
Then there's new CSV parsing code to parse the CSV and import it as a new notebook.
Still need a few more unit tests before this feature can be considered complete.
2008-08-08 16:39:53 -07:00
Dan Helfman
cc317c03ad
Enforcing maximum note length after stripping the note of any disallowed HTML tags instead of before.
...
Also fixed broken unit test for save_note() without login.
2008-08-05 17:42:56 -07:00
Dan Helfman
d8c58e5f5d
Fixed a bug where clicking the link for an updated note in an RSS feed did not properly redirect to that note after login.
2008-07-25 17:05:13 -07:00
Dan Helfman
9d2f0d344d
When you invite other people to view or edit your notebook, you can now see the invite link they'll get.
2008-07-18 15:01:09 -07:00
Dan Helfman
8271f82734
Unit tests for controller.Notebooks.revert_note().
2008-07-11 17:06:01 -07:00
Dan Helfman
3153492086
Basic note reverting now works.
2008-07-11 14:41:48 -07:00
Dan Helfman
bbb17e4046
controller.Root.guide() now accepts an optional note_id parameter.
2008-07-03 16:29:42 -07:00
Dan Helfman
48f58d0c0e
Fixed bug in which bolding of suggest-as-you-type search text was case sensitive. Now it's case insensitive.
2008-06-29 22:49:29 -07:00
Dan Helfman
0271c4b5d9
Implemented full unit tests for controller.Notebooks.search_titles().
2008-06-29 15:50:27 -07:00
Dan Helfman
fe139cc749
First pass for suggest-as-you-type for linking.
2008-06-27 16:11:09 -07:00
Dan Helfman
599971ba01
When linking to a note by title, the note resolution is now
...
case-insensitive instead of case-sensitive.
2008-06-25 20:04:06 -07:00
Dan Helfman
41a85bb41f
You can now resize embedded images (small, medium, or large).
...
Fixed a bug that potentially caused link pulldowns to open in the wrong
location when the page was scrolled past the top.
2008-06-18 17:14:07 -07:00
Dan Helfman
9c5d734fad
Updated unit tests for yearly subscription "12 M" -> "1 Y" transition.
2008-06-18 17:13:13 -07:00
Dan Helfman
41821e727e
Changing 12 month subscription validation to instead expect 1 year, to reflect similar changes in configuration.
2008-06-18 13:08:57 -07:00
Dan Helfman
eaf45f5599
Links to embedded images now show up within the note tree's list of links.
...
Links to files that have not yet been uploaded (or have been deleted) are
now excluded from the note tree's list of links.
2008-06-17 20:25:44 -07:00
Dan Helfman
9bbed27d73
Fixed a bug in which an image thumbnail could not be loaded unless
...
you had a valid session.
2008-06-16 23:22:12 -07:00
Dan Helfman
f7626d985c
Fixed a bug that caused image files to get deleted if there were multiple images embedded within a single note.
...
Prevented a link pulldown from auto-opening by hovering if another pulldown is already open.
2008-06-16 16:22:50 -07:00
Dan Helfman
522f8b9330
Implemented support for embedded images within wiki notes. Also added hover support to open link pulldowns.
2008-06-13 15:55:19 -07:00
Dan Helfman
8b52ffabfa
Updated tools/set_plan.py to automatically update a user's group
...
membership.
2008-06-09 20:14:42 -07:00
Dan Helfman
9a3f795985
More unit tests for user admin signup/modify/cancel, along with a fix for a bug unearthed by the unit tests.
2008-06-09 14:29:31 -07:00
Dan Helfman
46dc2663ee
Update/remove group admin membership upon signup/cancellation. Some unit tests, but more needed for complete coverage.
2008-06-07 18:18:49 -07:00
Dan Helfman
6fcec83167
Fixed annoying bug where some unit tests didn't use stub SMTP class and so actually send real email messages.
2008-06-07 17:06:43 -07:00
Dan Helfman
1ea667528e
Wrote unit tests for controller.Users.signup_group_member().
2008-06-06 16:14:44 -07:00
Dan Helfman
7ee838d46e
controller.Users.remove_group() now resets the removed user's rate plan to 0. Also fixed broken controller.Users.signup().
...
Updated unit tests.
2008-06-06 15:13:11 -07:00
Dan Helfman
a8a6070da0
Implemented controller.users.signup_group_member().
...
Modified UI code to call this method correctly and display results.
Split generic user signup functionality out into a separate private method.
2008-06-06 14:46:29 -07:00
Dan Helfman
9c923172ab
Fixing broken unit test.
2008-06-05 16:00:24 -07:00
Dan Helfman
0faa06ea10
Called controller.Users.calculate_group_storage() from various places. Fixed model.User.sql_calculate_group_storage().
2008-06-05 15:59:01 -07:00
Dan Helfman
a0ca8025d0
New controller.Users.calculate_group_storage().
2008-06-05 14:16:49 -07:00
Dan Helfman
0e51e461fa
New controller.Users.remove_group() method to remove a user's group membership.
2008-06-03 20:19:07 -07:00
Dan Helfman
3a9cd0a024
New controller.Groups.update_settings() and associated unit tests.
2008-06-03 16:11:27 -07:00
Dan Helfman
39ca4c619b
Groups.load_users() now returns info on the group itself as well.
2008-06-02 16:03:48 -07:00
Dan Helfman
79e2c45533
New controller.Groups class and a new controller.Users.check_group() method.
...
Also a new model.Group.sql_load_users() method.
Lots of unit tests.
2008-05-29 16:36:14 -07:00
Dan Helfman
df3d170362
View groups that you're a member of, with an indicatation if you're an admin of that group.
...
- modify controller.Users.current() to return the user's groups
- update test_current() unit tests to expect empty groups list in results
- modify Main_page, Notebook_rss, Front_page, Tour_page, and Upgrade_page to accept a new groups parameter
- Main_page should add it as a hidden HTML variable
- update Wiki.js to read the hidden groups variable and display the groups in account settings
2008-05-28 16:05:38 -07:00
Dan Helfman
e971959755
Attempting to access the RSS feed for a non-existent notebook now
...
displays a somewhat informative message in the feed instead of just
silently raising an error.
2008-05-26 23:00:31 -07:00
Dan Helfman
953f572b20
Bug fix: Clear the memcache, search for notes in an main notebook (as the
...
anonymous user), open a search result from a notebook. Then, login and try to
edit that notebook as a user with read-write privileges. it will show up as
read-only, presumably because it's being read from the cache.
2008-05-19 23:43:33 -07:00
Dan Helfman
ae5c911c1c
New multiple-notebook search query was way too slow. Now fixed.
...
- make model.Notebook.sql_search_notes() search either with user_id or an anonymous user_id, not both
- update controller.Notebooks.search(), so if the anonymous user has access to the given notebook,
then run the search as the anonymous user instead of the given user id
- update unit tests
- don't search trash/deleted notebooks
2008-05-19 22:36:21 -07:00
Dan Helfman
02a3544590
Search result now return notes from multiple notebooks.
...
- change model.Notebook.sql_search_notes() to be a static method
- take a first_notebook_id argument and a user_id argument
- join user_notebook on notebook_id and matches on user_notebook.user_id instead of notebook_id
- order by notebook_id = first_notebook desc, rank instead of just rank
- include search result for notebooks readable by anonymous user, but only if such a notebook is given as first_notebook_id
- update code that calls model.Notebook.sql_search_notes()
- update model.Note.to_dict() to include notebook_id
- modify Wiki.display_search_results()
- separate search results for the current notebook and results for all other notebooks
- indicate which notebook each result is from
- if there are results in other notebooks but no results in the current notebook, indicate that clearly
- when you click on a result note link in the current notebook, it should simply open a new note
- when you click on a result note link in another notebook, it should open in a new window
- test in IE
- update unit tests for:
- controller.Notebooks.search()
- model.Notebook.sql_search_notes()
- model.Note.to_dict()
2008-05-19 15:16:25 -07:00
Dan Helfman
20995d3b2e
Added support for database hostname and ssl mode in configuration file.
2008-05-16 14:12:01 -07:00
Dan Helfman
8b705ec4c3
In send_invites(), no longer implicitly assuming rate plan 0 has
...
notebook_collaboration set to False.
2008-05-08 23:17:17 +00:00
Dan Helfman
0323f6bc91
Passing new yearly parameter to main page.
2008-05-08 19:29:11 +00:00
Dan Helfman
a6baa45435
Made signup support yearly subscriptions.
2008-05-08 19:14:39 +00:00
Dan Helfman
269c28983d
Support for yearly subscriptions.
2008-05-08 18:39:46 +00:00
Dan Helfman
18982dc129
Implemented basic user account settings. Now you can change your email
...
address.
2008-05-08 03:05:35 +00:00
Dan Helfman
70f52a7406
Fixed a bug where an invite sent for a notebook with an accented unicode
...
name would cause a UnicodeEncodeError upon sending the invite email. Now
such invites are encoded as quoted-printable UTF-8, while other invites
continue to be 7-bit ASCII.
2008-05-06 23:29:43 +00:00
Dan Helfman
bb77cefeaa
Possibly fixed a bug where IE 7 would fail to download as HTML via HTTPS
...
due to cache issues. The fix entailed using a new @weakly_expire decorator
on controller.Notebooks.download_html().
2008-05-06 21:41:00 +00:00
Dan Helfman
8bed4a7f4d
Fixed a bug where the Valid_id() validator would raise a TypeError when
...
given a None value. Now raising a ValueError instead.
2008-05-05 23:32:45 +00:00
Dan Helfman
1d17ea4eff
Fixed a bug where attempting to load a notebook preview without access
...
would give a "list index out of range" error instead of an access error.
2008-05-05 23:10:26 +00:00
Dan Helfman
1095e509de
Fixed yet another diff-breaking edge case. This one had to do with
...
inserting italicized text right before some existing italicized text.
2008-05-03 07:40:46 +00:00
Dan Helfman
570e0ade77
More diff fixes. This time for "<br/>" tags.
2008-05-03 06:10:09 +00:00
Dan Helfman
94fdd08cf4
* Fixed a bug that prevented diffs from working for notes with links.
...
* Made CSS for links within <del> or <ins> red or green, respectively.
2008-05-03 05:36:28 +00:00
Dan Helfman
97c373561d
* Added replace_contents() to model.Note to set the contents without updating the revision or anything else.
...
* Added new optional previous_revision params to default(), contents() and load_note() in controller.Notebooks.
These use Html_differ() to generate and return diffs.
* Updated Wiki.js:
* provide previous_revision when a revision is opened in a new window/tab
* call load_note() when two revisions when a revision is clicked in Changes_pulldown
* update compare_versions() to display a diff instead of opening the two revisions separately
* update load_editor():
* update all invocations of load_editor(), including in Editor.js, to accept a new previous_revision argument
* modify load_editor() to use the previous_revision argument (when supplied) to load a diff
2008-05-03 04:29:23 +00:00
Dan Helfman
42ae3e0ba1
Completed Html_differ unit tests.
2008-05-02 23:59:03 +00:00
Dan Helfman
ba89c8116b
Updated to handle the following case:
...
* If a phrase becomes italicized, it should show the non-italic version in red and immediately after, the italic
version in green.
This required doing a pass on the HTML to merge certain elements together before doing the actual diff.
2008-05-02 21:03:46 +00:00
Dan Helfman
9b2a9db4e9
Implemented new HTML diffing class to produce an HTMLized diff of two HTML
...
strings. Not perfect yet. For instance, if string a contains "foo bar baz" and
string b contains "foo <i>bar</i> baz", the resulting output does not show
"bar" in strikeout and "<i>bar</i>" in green, as one might expect.
2008-05-02 18:58:36 +00:00