witten
/
luminotes
Archived
1
0
Fork 0

New note_count member on model.Notebook.

This commit is contained in:
Dan Helfman 2008-11-17 23:42:29 -08:00
parent a53a88c320
commit 4855ac0c7e
3 changed files with 40 additions and 4 deletions

View File

@ -17,7 +17,7 @@ class Notebook( Persistent ):
READ_WRITE_FOR_OWN_NOTES = 2 # user can only edit their own notes, not notes created by others
def __init__( self, object_id, revision = None, name = None, trash_id = None, deleted = False,
user_id = None, read_write = None, owner = True, rank = None, own_notes_only = False ):
user_id = None, read_write = None, owner = True, rank = None, own_notes_only = False, note_count = None ):
"""
Create a new notebook with the given id and name.
@ -42,6 +42,8 @@ class Notebook( Persistent ):
@param rank: indicates numeric ordering of this note in relation to other notebooks
@type own_notes_only: bool or NoneType
@param own_notes_only: True makes read_write be READ_WRITE_FOR_OWN_NOTES (optional, defaults to False)
@type note_count: int or NoneType
@param note_count: a count of the number of notes within this notebook (optional)
@rtype: Notebook
@return: newly constructed notebook
"""
@ -63,10 +65,11 @@ class Notebook( Persistent ):
self.__read_write = read_write
self.__owner = owner
self.__rank = rank
self.__note_count = note_count
self.__tags = []
@staticmethod
def create( object_id, name = None, trash_id = None, deleted = False, user_id = None, read_write = None, owner = True, rank = None, own_notes_only = False ):
def create( object_id, name = None, trash_id = None, deleted = False, user_id = None, read_write = None, owner = True, rank = None, own_notes_only = False, note_count = None ):
"""
Convenience constructor for creating a new notebook.
@ -89,10 +92,12 @@ class Notebook( Persistent ):
@param rank: indicates numeric ordering of this note in relation to other notebooks
@type own_notes_only: bool or NoneType
@param own_notes_only: True makes read_write be READ_WRITE_FOR_OWN_NOTES (optional, defaults to False)
@type note_count: int or NoneType
@param note_count: a count of the number of notes within this notebook (optional)
@rtype: Notebook
@return: newly constructed notebook
"""
return Notebook( object_id, name = name, trash_id = trash_id, user_id = user_id, read_write = read_write, owner = owner, rank = rank, own_notes_only = own_notes_only )
return Notebook( object_id, name = name, trash_id = trash_id, user_id = user_id, read_write = read_write, owner = owner, rank = rank, own_notes_only = own_notes_only, note_count = note_count )
@staticmethod
def sql_load( object_id, revision = None ):
@ -340,6 +345,7 @@ class Notebook( Persistent ):
owner = self.__owner,
deleted = self.__deleted,
user_id = self.__user_id,
note_count = self.__note_count,
tags = self.__tags,
) )
@ -390,4 +396,5 @@ class Notebook( Persistent ):
deleted = property( lambda self: self.__deleted, __set_deleted )
user_id = property( lambda self: self.__user_id, __set_user_id )
rank = property( lambda self: self.__rank, __set_rank )
note_count = property( lambda self: self.__note_count )
tags = property( lambda self: self.__tags, __set_tags )

View File

@ -197,7 +197,11 @@ class User( Persistent ):
return \
"""
select
notebook_current.*, user_notebook.read_write, user_notebook.owner, user_notebook.rank, user_notebook.own_notes_only
notebook_current.*, user_notebook.read_write, user_notebook.owner, user_notebook.rank, user_notebook.own_notes_only,
( select count( note_current.id )
from note_current
where note_current.notebook_id = notebook_current.id and
note_current.deleted_from_id is null )
from
user_notebook, notebook_current%s
where

View File

@ -31,6 +31,7 @@ class Test_notebook( object ):
assert self.notebook.owner == self.owner
assert self.notebook.rank == self.rank
assert self.notebook.tags == []
assert self.notebook.note_count == None
assert self.trash.object_id == self.trash_id
assert datetime.now( tz = utc ) - self.trash.revision < self.delta
@ -42,6 +43,7 @@ class Test_notebook( object ):
assert self.trash.owner == True
assert self.trash.rank == None
assert self.trash.tags == []
assert self.trash.note_count == None
def test_create_read_write_true( self ):
notebook = Notebook.create( self.object_id, self.name, trash_id = None, deleted = False, user_id = self.user_id, read_write = True, owner = self.owner, rank = self.rank )
@ -56,6 +58,7 @@ class Test_notebook( object ):
assert notebook.owner == self.owner
assert notebook.rank == self.rank
assert notebook.tags == []
assert notebook.note_count == None
def test_create_read_write_false( self ):
notebook = Notebook.create( self.object_id, self.name, trash_id = None, deleted = False, user_id = self.user_id, read_write = False, owner = self.owner, rank = self.rank )
@ -70,6 +73,7 @@ class Test_notebook( object ):
assert notebook.owner == self.owner
assert notebook.rank == self.rank
assert notebook.tags == []
assert notebook.note_count == None
def test_create_read_write_none( self ):
notebook = Notebook.create( self.object_id, self.name, trash_id = None, deleted = False, user_id = self.user_id, read_write = None, owner = self.owner, rank = self.rank )
@ -84,6 +88,7 @@ class Test_notebook( object ):
assert notebook.owner == self.owner
assert notebook.rank == self.rank
assert notebook.tags == []
assert notebook.note_count == None
def test_create_read_write_true_and_own_notes_only_true( self ):
notebook = Notebook.create( self.object_id, self.name, trash_id = None, deleted = False, user_id = self.user_id, read_write = True, owner = self.owner, rank = self.rank, own_notes_only = True )
@ -98,6 +103,7 @@ class Test_notebook( object ):
assert notebook.owner == self.owner
assert notebook.rank == self.rank
assert notebook.tags == []
assert notebook.note_count == None
def test_create_read_write_false_and_own_notes_only_true( self ):
notebook = Notebook.create( self.object_id, self.name, trash_id = None, deleted = False, user_id = self.user_id, read_write = False, owner = self.owner, rank = self.rank, own_notes_only = True )
@ -112,6 +118,7 @@ class Test_notebook( object ):
assert notebook.owner == self.owner
assert notebook.rank == self.rank
assert notebook.tags == []
assert notebook.note_count == None
def test_create_read_write_false_and_own_notes_only_false( self ):
notebook = Notebook.create( self.object_id, self.name, trash_id = None, deleted = False, user_id = self.user_id, read_write = False, owner = self.owner, rank = self.rank, own_notes_only = False )
@ -126,6 +133,7 @@ class Test_notebook( object ):
assert notebook.owner == self.owner
assert notebook.rank == self.rank
assert notebook.tags == []
assert notebook.note_count == None
def test_create_read_write_true_and_own_notes_only_false( self ):
notebook = Notebook.create( self.object_id, self.name, trash_id = None, deleted = False, user_id = self.user_id, read_write = True, owner = self.owner, rank = self.rank, own_notes_only = False )
@ -140,6 +148,22 @@ class Test_notebook( object ):
assert notebook.owner == self.owner
assert notebook.rank == self.rank
assert notebook.tags == []
assert notebook.note_count == None
def test_create_with_note_count( self ):
notebook = Notebook.create( self.object_id, self.name, trash_id = None, deleted = False, user_id = self.user_id, read_write = True, owner = self.owner, rank = self.rank, note_count = 7 )
assert notebook.object_id == self.object_id
assert datetime.now( tz = utc ) - notebook.revision < self.delta
assert notebook.name == self.name
assert notebook.trash_id == None
assert notebook.deleted == False
assert notebook.user_id == self.user_id
assert notebook.read_write == Notebook.READ_WRITE
assert notebook.owner == self.owner
assert notebook.rank == self.rank
assert notebook.tags == []
assert notebook.note_count == 7
def test_set_name( self ):
new_name = u"my new notebook"
@ -213,6 +237,7 @@ class Test_notebook( object ):
assert d.get( "read_write" ) == self.read_write
assert d.get( "deleted" ) == self.notebook.deleted
assert d.get( "user_id" ) == self.notebook.user_id
assert d.get( "note_count" ) == self.notebook.note_count
assert d.get( "object_id" ) == self.notebook.object_id
assert datetime.now( tz = utc ) - d.get( "revision" ) < self.delta
assert d.get( "tags" ) == []