witten
/
luminotes
Archived
1
0
Fork 0
Commit Graph

38 Commits

Author SHA1 Message Date
Dan Helfman 388f2fcb02 Foundational work for both tags and discussion forums. Should have checked this in in smaller pieces. 2008-10-24 11:51:19 -07:00
Dan Helfman 30283b0e29 More unit tests passing on Windows. 2008-08-21 14:22:20 -07:00
Dan Helfman 410f6f8cbf Added basic note searching for SQLite. Should really be using SQLite's full-text search instead.
In sql_load_notes, no longer adding offset clause if start = 0 since SQLite doesn't like offset without limit.
Switched from using "ilike" to "like" with lower(), since "ilike" is a PostgreSQL-specific extension.
Moved BACKEND flags from Database to Persistent to prevent need from circular imports (model files importing controller.Database).
2008-08-19 17:48:33 -07:00
Dan Helfman 85443e3849 Fixed another limit/offset ordering problem to make SQLite happy. 2008-08-19 14:45:13 -07:00
Dan Helfman 98042c5c3f Fixed ordering of SQL offset/limit clauses to make SQLite happy. 2008-08-18 18:05:51 -07:00
Dan Helfman 3fd3f23fe0 No longer stripping out puncutation when searching titles. 2008-06-30 02:09:14 -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 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 eb587fc44f Fixed bug where recent notes were ordered by creation time instead of revision time. 2008-04-18 20:39:23 +00:00
Dan Helfman 94a51889f9 Added ability to reorder notebooks on the right side of the page.
Need to complete unit tests for controller.Notebooks.move_up() and move_down().
2008-03-15 03:04:59 +00:00
Dan Helfman a354eadcbb When saving a model.Notebook or model.Note to the database, set the user_id field based on the current user. 2008-01-01 01:44:54 +00:00
Dan Helfman 10cee7291a Improved input validation on search terms, so certian punctuation doesn't cause the query to fail. 2007-12-06 03:49:50 +00:00
Dan Helfman 1cb12f6ae4 Making various notebook/user functions support the new "owner" access flag. 2007-12-04 21:28:03 +00:00
Dan Helfman 82bf5bca29 Schema and model changes to support invitations and multiple user collaboration:
* added new database table of invited email addresses
 * altered user_notebook table to have a new owner boolean column, indicating whether the user has owner access to the notebook
 * altered notebook and note tables/views to have an additional user_id field to indicate the user that created that revision
 * updated model.Notebook and model.Note to support new user_id field
2007-12-01 01:08:16 +00:00
Dan Helfman 0152b49475 Refactored the way note summaries are created in the link pulldown window. 2007-11-27 21:28:25 +00:00
Dan Helfman cdd971780e Began work on notebook deletion and subsequent undo/undeletion.
Changed schema slightly to support this.
Added a schema delta file and wrote an UPGRADE doc with info on how to upgrade schemas.
2007-11-17 04:21:48 +00:00
Dan Helfman 44a1cb79c2 Added basic multipage navigation to blog.
Made name of notebook link at the top of the page better for "special" Luminotes notebooks.
2007-11-10 01:46:56 +00:00
Dan Helfman 9fccf7c81f Removed debugging print. 2007-11-02 22:05:31 +00:00
Dan Helfman 37e886f27c Revamped searching to use PostgreSQL's tsearch2 full-text searching. 2007-11-02 20:19:53 +00:00
Dan Helfman ad58956f34 Some early work in support of a reverse chronological order view of a notebook, useful for a blog. 2007-10-30 23:05:46 +00:00
Dan Helfman 27a6a06c91 Display a realtime count of total notes next to the "all notes" link. 2007-10-19 20:24:16 +00:00
Dan Helfman bbebad528e Renaming new_model to model, now that the old bsddb model is out of the way. 2007-10-11 19:49:00 +00:00
Dan Helfman 17ad869635 Old model no longer needed now that all databases are convered to PostgreSQL. 2007-10-11 19:45:46 +00:00
Dan Helfman 295369bad5 None notes are skipped. 2007-09-04 23:27:50 +00:00
Dan Helfman fd175aa85d No longer sending quite as much data in response to /users/current requests.
Now the client has to explicitly request the inclusion of startup notes.

Also no longer including startup notes or revision lists with every single
serialized Notebook.
2007-08-27 22:37:22 +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 1796ccca71 Schema evolution: Adding a trash member to those Notebooks that don't have it. 2007-08-03 21:55:02 +00:00
Dan Helfman 4e28620348 * Added a trash Notebook to model.Notebook.
* Made sure the trash is not exposed by the read-only notebook view.
 * Modified model.User.check_access() to consider read-write access to a
   notebook to be sufficient for access to that notebook's trash.
 * Modified controller.Users so new users are created with a notebook that
   has a trash.
 * Changed controller.Notebooks so deleted notes go to the trash (if any).
2007-08-03 21:12:17 +00:00
Dan Helfman 58665fe14a Handle None notes. 2007-08-01 20:10:54 +00:00
Dan Helfman ccfcd3ccfe * Added convenience method to model.Notebook called is_startup_note(), and made use of it.
* is_startup_note() checks whether the object id of the given note is in the list of startup notes,
   not whether the actual object is.
 * This fixed a bug in which the same note could be saved to the list of startup notes multiple
   times, thereby causing funny display problems when the same note was loaded twice.
2007-08-01 02:23:54 +00:00
Dan Helfman 733e104872 Now that the databases are changed from Entry to Note, removing schema evolution stuff. 2007-07-18 20:05:55 +00:00
Dan Helfman eb957d169b Re-adding Entry yet again, and putting __setstate__() back in Notebook to
properly update the database's schema for Entry -> Note.
2007-07-18 20:05:13 +00:00
Dan Helfman 2bdf683ae4 Removing __setstate__() methods and the Entry class now that all databases
have been switched over to new Note class. In the future some schema evolution
script would probably be useful.
2007-07-17 17:32:15 +00:00
Dan Helfman 15d4758766 Fixed __setstate__() methods to update revision. 2007-07-17 17:29:47 +00:00
Dan Helfman 0976fdf8c6 Renaming all entries to notes to fit better with the name "Luminotes". 2007-07-17 01:21:31 +00:00
Dan Helfman 02cfca5322 Renaming repository to new name: luminotes 2007-07-16 20:22:38 +00:00