witten
/
luminotes
Archived
1
0
Fork 0

Temporarily re-adding Entry for db conversion purposes.

This commit is contained in:
Dan Helfman 2007-07-17 01:54:03 +00:00
parent e66dee112b
commit 433b3b3915
1 changed files with 57 additions and 0 deletions

57
model/Entry.py Normal file
View File

@ -0,0 +1,57 @@
import re
from Persistent import Persistent
from model.Note import Note
from controller.Html_nuker import Html_nuker
class Entry( Persistent ):
def __setstate__(self, state):
self.__dict__.update(state)
self.__class__ = Note
"""
An single textual wiki entry.
"""
TITLE_PATTERN = re.compile( u"<h3>(.*)</h3>", flags = re.IGNORECASE )
def __init__( self, id, contents = None ):
"""
Create a new entry with the given id and contents.
@type id: unicode
@param id: id of the entry
@type contents: unicode or NoneType
@param contents: initial contents of the entry (optional)
@rtype: Entry
@return: newly constructed entry
"""
Persistent.__init__( self, id )
self.__title = None
self.__contents = None or ""
self.__set_contents( contents )
def __set_contents( self, contents ):
self.update_revision()
self.__contents = contents
# parse title out of the beginning of the contents
result = Entry.TITLE_PATTERN.search( contents )
if result:
self.__title = result.groups()[ 0 ]
self.__title = Html_nuker( allow_refs = True ).nuke( self.__title )
else:
self.__title = None
def to_dict( self ):
d = Persistent.to_dict( self )
d.update( dict(
contents = self.__contents,
title = self.__title,
) )
return d
contents = property( lambda self: self.__contents, __set_contents )
title = property( lambda self: self.__title )