witten
/
luminotes
Archived
1
0
Fork 0
Commit Graph

35 Commits

Author SHA1 Message Date
Dan Helfman d37422b592 Fixed a bug in Luminotes Desktop in which a backslash within a note was duplicated each time the note was saved. 2009-05-19 12:38:52 -07:00
Dan Helfman a8af8b3fb3 Fixed several edge cases with re-ranking notes during a reorder. Now updating several notes' ranks on every reorder instead of making successively more precise fractional ranks. 2009-02-10 17:05:03 -08:00
Dan Helfman a55934f948 Fixed a Luminotes Desktop bug in which creating and then clicking on a new note link sometimes caused a red error message.
This was due to a floating point rounding error in Luminotes that occured when loading note revisions from a SQLite database.
2008-12-12 23:36:29 -08:00
Dan Helfman 58c8fdac00 Fixed an occasional bug that caused unexpected logouts by moving the session info into the database. No more write races. 2008-10-29 14:26:22 -07:00
Dan Helfman a8e80db8bd Use cursor.executescript() for the SQLite backend only. 2008-10-17 01:24:48 -07:00
Dan Helfman f1d814cfd6 Now that Cherrypy session locking is gone, locking is now performed in controller.Database, but only for the SQLite backend. 2008-10-08 00:44:16 -07:00
Dan Helfman ebee4e5135 luminotes.db now goes in a user-specific directory. 2008-08-25 17:43:09 -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 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 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 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 20995d3b2e Added support for database hostname and ssl mode in configuration file. 2008-05-16 14:12:01 -07: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 272dd3e157 Converted dump_emails.sh to dump_emails.py so that it can run on a separate server from the database. 2008-04-07 04:47:07 +00:00
Dan Helfman 0754a0b4bb Apparently get_transaction_status() was introduced in psycopg 2.0.6. :( 2008-03-17 23:10:14 +00:00
Dan Helfman f3b0d563c1 Fixed database transaction leak by wrapping every exposed database-using
controller method with a new @end_transaction() decorator. This
decorator is responsible for rolling back unfinished transactions.
2008-03-17 21:17:00 +00:00
Dan Helfman a4387ea371 New rollback() method. Not yet used anywhere. 2008-03-17 19:47:56 +00:00
Dan Helfman 2d55455120 Fixed a bug where, after you highlighted a link and clicked the link button
to unlink it, the link info box popped up.
Actually checking in cache changes that were supposed to be in previous
release.
2008-03-10 23:15:33 +00:00
Dan Helfman 1f57e4ba8a Whoops. 2008-03-07 23:20:32 +00:00
Dan Helfman 7a0368b5d9 Fixed cache behavior so we don't touch the cache within Database.save() if
there's no commit flag. Then, when Database.commit() is called, any pending
saves are put into the cache.
2008-03-07 23:00:07 +00:00
Dan Helfman 8fb1d9a80e Temporary hack so that cache sets are performed whenever save() is called,
regardless of commit flag. Without this, the file upload progress bar breaks
because it gets a stale File object out of the cache.

Eventually, it would be better if cache sets were only done condittionally
based on commit flag, and also whenever Database.commit() is called.
2008-03-06 23:21:15 +00:00
Dan Helfman 21ccc97826 Now using memcached in various places to improve performance. If the Python
cmemcache module is not importable, then memcached simply won't be used.
2008-03-05 00:34:58 +00:00
Dan Helfman eb3983af9c Oops.. Debugging print was left in. 2007-10-11 11:18:51 +00:00
Dan Helfman b71b12fe50 Converting strings pulled out of the database from utf8 to unicode. 2007-10-11 11:06:50 +00:00
Dan Helfman 43c6f54e9f Merged revisions 401-446 via svnmerge from
svn+ssh://torsion.org/home/luminotes/repos/luminotes/branches/postgres

................
  r402 | witten | 2007-10-04 00:48:49 -0700 (Thu, 04 Oct 2007) | 3 lines

  Initialized merge tracking via "svnmerge" with revisions "1-401" from
  svn+ssh://torsion.org/home/luminotes/repos/luminotes/trunk
................
  r404 | witten | 2007-10-04 01:17:07 -0700 (Thu, 04 Oct 2007) | 2 lines

  Beginning a conversion from bsddb to postgres.
................
  r405 | witten | 2007-10-04 01:18:58 -0700 (Thu, 04 Oct 2007) | 9 lines

  Merged revisions 402-404 via svnmerge from
  svn+ssh://torsion.org/home/luminotes/repos/luminotes/trunk

  ........
    r403 | witten | 2007-10-04 01:14:45 -0700 (Thu, 04 Oct 2007) | 2 lines

    Yay, no more stupid deprecation warnings from simplejson about the sre module.
  ........
................
  r406 | witten | 2007-10-04 15:34:39 -0700 (Thu, 04 Oct 2007) | 4 lines

   * Switched back to Python 2.4 because many Python modules in Debian are not packaged to work with Python 2.5
   * Began removal of all references to Scheduler, @async, yield, and so on.
   * Converted Database.py to support PostgreSQL and updated its unit tests accordingly.
................
  r407 | witten | 2007-10-04 16:34:01 -0700 (Thu, 04 Oct 2007) | 2 lines

  All unit tests for the new model classes now pass.
................
  r409 | witten | 2007-10-05 00:53:56 -0700 (Fri, 05 Oct 2007) | 2 lines

  Reordering some columns and adding some indices.
................
  r410 | witten | 2007-10-05 16:08:37 -0700 (Fri, 05 Oct 2007) | 4 lines

  Now adding trash notebooks to user_notebook table. Also switching db
  conversion/verification tools back to require Python 2.5, since they still use
  the old Scheduler, which requires 2.5 generator features.
................
  r411 | witten | 2007-10-06 16:26:56 -0700 (Sat, 06 Oct 2007) | 2 lines

  Lots more unit tests passing. Most of the recent work was on controller.Users and related stuff.
................
  r412 | witten | 2007-10-07 01:52:12 -0700 (Sun, 07 Oct 2007) | 2 lines

  controller.Users unit tests now finally pass!
................
  r413 | witten | 2007-10-07 02:14:10 -0700 (Sun, 07 Oct 2007) | 3 lines

  Got controller.Root unit tests passing.
  Moved fake sql_* function shenanigans from Test_users.py to Test_controller.py, for use by other controller unit tests.
................
  r414 | witten | 2007-10-08 23:11:11 -0700 (Mon, 08 Oct 2007) | 2 lines

  All unit tests pass! Fuck yeah!
................
  r415 | witten | 2007-10-08 23:13:07 -0700 (Mon, 08 Oct 2007) | 2 lines

  Removing all references to Scheduler from luminotes.py
................
  r416 | witten | 2007-10-08 23:54:51 -0700 (Mon, 08 Oct 2007) | 3 lines

  Converted deleted_from to deleted_from_id in a few more places.
  Fixed bug in Users.contents().
................
  r417 | witten | 2007-10-09 00:11:59 -0700 (Tue, 09 Oct 2007) | 3 lines

  Typo fix in Note sql method.
  Adding autocommit flag to Database.next_id() method.
................
  r418 | witten | 2007-10-09 00:13:19 -0700 (Tue, 09 Oct 2007) | 2 lines

  Updating unit test for new auto commit flag.
................
  r419 | witten | 2007-10-09 00:14:09 -0700 (Tue, 09 Oct 2007) | 2 lines

  Removing debugging print.
................
  r420 | witten | 2007-10-09 00:20:55 -0700 (Tue, 09 Oct 2007) | 2 lines

  More sql fixes. I really need some funtional tests that hit the database and exercise the SQL.
................
  r421 | witten | 2007-10-09 00:51:34 -0700 (Tue, 09 Oct 2007) | 3 lines

  Fixed controller.Database handling of tuple as an Object_type.
  Made SQL for user storage calculation better at handling null values and also more succinct.
................
  r422 | witten | 2007-10-09 13:32:16 -0700 (Tue, 09 Oct 2007) | 2 lines

  Converting Wiki.js to trash_id notebook member instead of trash object.
................
  r423 | witten | 2007-10-09 13:42:10 -0700 (Tue, 09 Oct 2007) | 2 lines

  No longer displaying "download as html" on the front page, as people see "download" and think they're downloading the software.
................
  r424 | witten | 2007-10-09 14:24:40 -0700 (Tue, 09 Oct 2007) | 2 lines

  Notebooks.contents() now returns notebooks with correct read-write status.
................
  r425 | witten | 2007-10-09 14:32:25 -0700 (Tue, 09 Oct 2007) | 2 lines

  Fixed reporting of validation errors to the user. Now says "The blah is missing." instead of just "is missing"
................
  r426 | witten | 2007-10-09 17:05:22 -0700 (Tue, 09 Oct 2007) | 2 lines

  No longer redirecting to trash notebook upon login.
................
  r427 | witten | 2007-10-09 17:20:33 -0700 (Tue, 09 Oct 2007) | 2 lines

  Made controller.Database use a connection pool.
................
  r429 | witten | 2007-10-09 20:13:30 -0700 (Tue, 09 Oct 2007) | 2 lines

  Converted initdb.py and updatedb.py to Postgres from bsddb.
................
  r430 | witten | 2007-10-09 20:37:14 -0700 (Tue, 09 Oct 2007) | 2 lines

  Changing error message to remove underscores from variable names.
................
  r431 | witten | 2007-10-10 13:23:30 -0700 (Wed, 10 Oct 2007) | 2 lines

  Removing unused note_title parameter from Wiki.create_editor().
................
  r432 | witten | 2007-10-10 13:25:16 -0700 (Wed, 10 Oct 2007) | 2 lines

  Revision regular expression now supports timezone notation.
................
  r433 | witten | 2007-10-10 14:43:47 -0700 (Wed, 10 Oct 2007) | 2 lines

  Finished implementing ranked ordering for startup notes. (However, there's no way to change the rank from the client yet.)
................
  r434 | witten | 2007-10-10 16:25:19 -0700 (Wed, 10 Oct 2007) | 4 lines

  More strict access checking. Fixed oversight in Postgres DB conversion where,
  in certain controller.Notebook methods, access was only checked at the
  notebook level, not at the note level as well.
................
  r435 | witten | 2007-10-10 17:45:18 -0700 (Wed, 10 Oct 2007) | 3 lines

  Now loading revisions on demand from client when the "changes" button is clicked. Also caching
  loading revisions so subsequent clicks don't have to reload.
................
  r436 | witten | 2007-10-10 21:31:20 -0700 (Wed, 10 Oct 2007) | 2 lines

  Tweaking some of the error handling in Expose and Root so that unhandled errors give a generic error message to the client.
................
  r437 | witten | 2007-10-10 21:33:49 -0700 (Wed, 10 Oct 2007) | 2 lines

  The release script no longer runs initdb.py, because the default database is no longer a single file included in the tarball.
................
  r438 | witten | 2007-10-10 21:40:11 -0700 (Wed, 10 Oct 2007) | 2 lines

  Updated install instructuctions to include use of initdb.py.
................
  r439 | witten | 2007-10-10 21:56:42 -0700 (Wed, 10 Oct 2007) | 3 lines

  Made initdb.py only nuke (drop tables/views) when given a command-line flag.
  Also made install directions more correct.
................
  r440 | witten | 2007-10-10 21:58:48 -0700 (Wed, 10 Oct 2007) | 2 lines

  IE 6 doesn't like commas.
................
  r441 | witten | 2007-10-10 22:08:50 -0700 (Wed, 10 Oct 2007) | 4 lines

  load your notebook. without clicking on "changes", edit a note that has previous revisions. click on "changes". it'll only show
  the most recent revision. fixed by not appending to changes as a result of a save unless the client-side revisions list cache has
  something in it
................
  r442 | witten | 2007-10-10 23:30:41 -0700 (Wed, 10 Oct 2007) | 2 lines

  Forgot to actually save off the new revision as editor.revision.
................
  r443 | witten | 2007-10-11 01:35:54 -0700 (Thu, 11 Oct 2007) | 13 lines

  More intelligent datetime handling:
    * convertdb.py assumes old bsddb database timestamps are Pacific, and then
      converts them to UTC before inserting them into the new PostgreSQL
      database.
    * No longer using naked timezoneless datetime objects in model/controller
      code, except in unit tests that need compatability with pysqlite. Now
      using UTC everwhere.
    * Asking PostgreSQL to give us all timestamps back in UTC.
    * New dependency on python-tz (pytz) package, noted in INSTALL doc.
    * Client now responsible for converting UTC timestamps to local time for
      display.
................
  r444 | witten | 2007-10-11 01:46:09 -0700 (Thu, 11 Oct 2007) | 2 lines

  Tweak to prevent potential race in IE.
................
  r445 | witten | 2007-10-11 01:49:58 -0700 (Thu, 11 Oct 2007) | 2 lines

  Got JavaScript "unit" tests passing again.
................
  r446 | witten | 2007-10-11 01:53:58 -0700 (Thu, 11 Oct 2007) | 2 lines

  Noting that js tests require the Luminotes server on localhost.
................
2007-10-11 09:03:43 +00:00
Dan Helfman 8e7749d512 controller.Database.size() function for getting the approximate storage size of an object. 2007-09-12 21:28:28 +00:00
Dan Helfman 20313728d2 Several changes to handle the case where a note is changed out from under you, due to being saved
from a different window:
 * Made controller.notebooks responsible for preventing unmodified notes from being saved, instead
   of model.Notebook handling this task.
 * Created a revision validator for passing revisions as arguments to exposed methods.
 * controller.Notebooks.save_note() now requires a previous_revision parameter, used to determine
   whether the note has been modified in the particular window it's being saved from.
 * save_note() returns a new previous_revision value, so the client can determine whether a save
   has occurred from another window.
 * controller.Notebooks.undelete_note() fixed to quietly bail if the note to undelete isn't
   actually deleted, which can happen if it was undeleted in another window.
 * Editor() now responsible for making revisions list if it doesn't exist
 * No longer giving an "undo" message when the user deletes an empty note.
 * On the client side, detecting whether the previous_revision as reported by save_note() looks
   correct, and if not, alerting the user about the conflict. Also displaying a "compare versions"
   button that opens both the current version and the previous version.
2007-08-23 23:56:42 +00:00
Dan Helfman a866c617ec More API documentation on the controllers. 2007-08-09 19:06:01 +00:00
Dan Helfman f23fcdde21 * Can now click on revision timestamps to open up the contents of previous note revisions with a small timestamp at the top.
* Revisions can be opened either in the current page or in a new window/tab.
 * Added ability for a read-write notebook to contain read-only notes. This supports showing read-only revisions.
 * Fixed updatedb.py to properly load the anonymous user.
 * Updated initdb.py and updatedb.py to deadl with new-style /notebooks/notebookid?note_id=noteid wiki links.
 * Made Persistent copy the revisions_list on each revision update so different revisions don't share lists.
 * Prevented Note from updating its revision twice upon construction. Now it's only updated once.
 * Work-around for nasty urlparse() caching bug related to unicode strings that cherrypy barfs on.
 * Added optional revision flag to various controller.Notebooks methods to allow opening of a notebook with a particular note revision displayed.
2007-07-31 22:53:57 +00:00
Dan Helfman f81707ea2f For none_okay validator flag, allow empty strings as well. 2007-07-28 04:11:14 +00:00
Dan Helfman 0129c2a2c3 Schema change to secondary ids are stored with their class, not just their bare id. 2007-07-20 20:05:02 +00:00
Dan Helfman 3ba0527d4c Added a reload() method to Database, designed for loading and immediately
saving a key/value to the database. This is useful for schema evolution.
2007-07-18 19:43:12 +00:00
Dan Helfman 02cfca5322 Renaming repository to new name: luminotes 2007-07-16 20:22:38 +00:00