TiddlyWiki.org

Changeset 4995

Show
Ignore:
Timestamp:
16/05/08 16:55:54 (2 months ago)
Author:
cdent
Message:

tiddlyweb - adapt bags so they can store a stack of revisions of the
same tiddler. This makes it so we can use the bag serializer to present
lists of tiddler revisions. Yay, reuse!

The trick here was to change the key used for the tiddler storage.
Instead of tiddler title it is now tiddler.title + tiddler.revision.

I'm afeared this is going to come back and bite me in the ass later,
but we'll see.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • Trunk/contributors/ChrisDent/experimental/TiddlyWeb/tiddlyweb/bag.py

    r4089 r4995  
    2525        self.store = None 
    2626 
     27    def _tiddler_key(self, tiddler): 
     28        return '%s.%s' % (tiddler.title, tiddler.revision) 
     29 
    2730    def __getitem__(self, tiddler): 
    28         return dict.__getitem__(self, tiddler.title
     31        return dict.__getitem__(self, self._tiddler_key(tiddler)
    2932 
    3033    def __setitem__(self, tiddler): 
    31         dict.__setitem__(self, tiddler.title, tiddler) 
     34        dict.__setitem__(self, self._tiddler_key(tiddler), tiddler) 
    3235 
    3336    def __delitem__(self, tiddler): 
    34         dict.__delitem__(self, tiddler.title
     37        dict.__delitem__(self, self._tiddler_key(tiddler)
    3538 
    3639    def add_tiddler(self, tiddler): 
     
    4144            bags_tiddler.bag = self.name 
    4245            tiddler = bags_tiddler 
    43         if tiddler.title in self.order: 
    44             self.order.remove(tiddler.title
    45         self.order.append(tiddler.title
     46        if self._tiddler_key(tiddler) in self.order: 
     47            self.order.remove(self._tiddler_key(tiddler)
     48        self.order.append(self._tiddler_key(tiddler)
    4649        self.__setitem__(tiddler) 
    4750 
    4851    def remove_tiddler(self, tiddler): 
    49         if tiddler.title in self.order: 
    50             self.order.remove(tiddler.title
     52        if self._tiddler_key(tiddler) in self.order: 
     53            self.order.remove(self._tiddler_key(tiddler)
    5154        self.__delitem__(tiddler) 
    5255 
    5356    def list_tiddlers(self): 
    54         return [self.get(title, None) for title in self.order] 
     57        return [self.get(keyword, None) for keyword in self.order]