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
|
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,
|
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.
|
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
|
@param rank: indicates numeric ordering of this note in relation to other notebooks
|
||||||
@type own_notes_only: bool or NoneType
|
@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)
|
@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
|
@rtype: Notebook
|
||||||
@return: newly constructed notebook
|
@return: newly constructed notebook
|
||||||
"""
|
"""
|
||||||
|
@ -63,10 +65,11 @@ class Notebook( Persistent ):
|
||||||
self.__read_write = read_write
|
self.__read_write = read_write
|
||||||
self.__owner = owner
|
self.__owner = owner
|
||||||
self.__rank = rank
|
self.__rank = rank
|
||||||
|
self.__note_count = note_count
|
||||||
self.__tags = []
|
self.__tags = []
|
||||||
|
|
||||||
@staticmethod
|
@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.
|
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
|
@param rank: indicates numeric ordering of this note in relation to other notebooks
|
||||||
@type own_notes_only: bool or NoneType
|
@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)
|
@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
|
@rtype: Notebook
|
||||||
@return: newly constructed 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
|
@staticmethod
|
||||||
def sql_load( object_id, revision = None ):
|
def sql_load( object_id, revision = None ):
|
||||||
|
@ -340,6 +345,7 @@ class Notebook( Persistent ):
|
||||||
owner = self.__owner,
|
owner = self.__owner,
|
||||||
deleted = self.__deleted,
|
deleted = self.__deleted,
|
||||||
user_id = self.__user_id,
|
user_id = self.__user_id,
|
||||||
|
note_count = self.__note_count,
|
||||||
tags = self.__tags,
|
tags = self.__tags,
|
||||||
) )
|
) )
|
||||||
|
|
||||||
|
@ -390,4 +396,5 @@ class Notebook( Persistent ):
|
||||||
deleted = property( lambda self: self.__deleted, __set_deleted )
|
deleted = property( lambda self: self.__deleted, __set_deleted )
|
||||||
user_id = property( lambda self: self.__user_id, __set_user_id )
|
user_id = property( lambda self: self.__user_id, __set_user_id )
|
||||||
rank = property( lambda self: self.__rank, __set_rank )
|
rank = property( lambda self: self.__rank, __set_rank )
|
||||||
|
note_count = property( lambda self: self.__note_count )
|
||||||
tags = property( lambda self: self.__tags, __set_tags )
|
tags = property( lambda self: self.__tags, __set_tags )
|
||||||
|
|
|
@ -197,7 +197,11 @@ class User( Persistent ):
|
||||||
return \
|
return \
|
||||||
"""
|
"""
|
||||||
select
|
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
|
from
|
||||||
user_notebook, notebook_current%s
|
user_notebook, notebook_current%s
|
||||||
where
|
where
|
||||||
|
|
|
@ -31,6 +31,7 @@ class Test_notebook( object ):
|
||||||
assert self.notebook.owner == self.owner
|
assert self.notebook.owner == self.owner
|
||||||
assert self.notebook.rank == self.rank
|
assert self.notebook.rank == self.rank
|
||||||
assert self.notebook.tags == []
|
assert self.notebook.tags == []
|
||||||
|
assert self.notebook.note_count == None
|
||||||
|
|
||||||
assert self.trash.object_id == self.trash_id
|
assert self.trash.object_id == self.trash_id
|
||||||
assert datetime.now( tz = utc ) - self.trash.revision < self.delta
|
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.owner == True
|
||||||
assert self.trash.rank == None
|
assert self.trash.rank == None
|
||||||
assert self.trash.tags == []
|
assert self.trash.tags == []
|
||||||
|
assert self.trash.note_count == None
|
||||||
|
|
||||||
def test_create_read_write_true( self ):
|
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 )
|
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.owner == self.owner
|
||||||
assert notebook.rank == self.rank
|
assert notebook.rank == self.rank
|
||||||
assert notebook.tags == []
|
assert notebook.tags == []
|
||||||
|
assert notebook.note_count == None
|
||||||
|
|
||||||
def test_create_read_write_false( self ):
|
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 )
|
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.owner == self.owner
|
||||||
assert notebook.rank == self.rank
|
assert notebook.rank == self.rank
|
||||||
assert notebook.tags == []
|
assert notebook.tags == []
|
||||||
|
assert notebook.note_count == None
|
||||||
|
|
||||||
def test_create_read_write_none( self ):
|
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 )
|
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.owner == self.owner
|
||||||
assert notebook.rank == self.rank
|
assert notebook.rank == self.rank
|
||||||
assert notebook.tags == []
|
assert notebook.tags == []
|
||||||
|
assert notebook.note_count == None
|
||||||
|
|
||||||
def test_create_read_write_true_and_own_notes_only_true( self ):
|
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 )
|
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.owner == self.owner
|
||||||
assert notebook.rank == self.rank
|
assert notebook.rank == self.rank
|
||||||
assert notebook.tags == []
|
assert notebook.tags == []
|
||||||
|
assert notebook.note_count == None
|
||||||
|
|
||||||
def test_create_read_write_false_and_own_notes_only_true( self ):
|
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 )
|
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.owner == self.owner
|
||||||
assert notebook.rank == self.rank
|
assert notebook.rank == self.rank
|
||||||
assert notebook.tags == []
|
assert notebook.tags == []
|
||||||
|
assert notebook.note_count == None
|
||||||
|
|
||||||
def test_create_read_write_false_and_own_notes_only_false( self ):
|
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 )
|
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.owner == self.owner
|
||||||
assert notebook.rank == self.rank
|
assert notebook.rank == self.rank
|
||||||
assert notebook.tags == []
|
assert notebook.tags == []
|
||||||
|
assert notebook.note_count == None
|
||||||
|
|
||||||
def test_create_read_write_true_and_own_notes_only_false( self ):
|
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 )
|
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.owner == self.owner
|
||||||
assert notebook.rank == self.rank
|
assert notebook.rank == self.rank
|
||||||
assert notebook.tags == []
|
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 ):
|
def test_set_name( self ):
|
||||||
new_name = u"my new notebook"
|
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( "read_write" ) == self.read_write
|
||||||
assert d.get( "deleted" ) == self.notebook.deleted
|
assert d.get( "deleted" ) == self.notebook.deleted
|
||||||
assert d.get( "user_id" ) == self.notebook.user_id
|
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 d.get( "object_id" ) == self.notebook.object_id
|
||||||
assert datetime.now( tz = utc ) - d.get( "revision" ) < self.delta
|
assert datetime.now( tz = utc ) - d.get( "revision" ) < self.delta
|
||||||
assert d.get( "tags" ) == []
|
assert d.get( "tags" ) == []
|
||||||
|
|
Reference in New Issue