New note_count member on model.Notebook.
This commit is contained in:
parent
a53a88c320
commit
4855ac0c7e
|
@ -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 )
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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" ) == []
|
||||
|
|
Reference in New Issue