Mercurial > p > roundup > code
diff roundup/backends/back_metakit.py @ 1523:63aa7be52d2c
checked to make sure that the restored item doesn't clash...
...with a new item using the same key value
| author | Andrey Lebedev <kedder@users.sourceforge.net> |
|---|---|
| date | Mon, 17 Mar 2003 22:03:08 +0000 |
| parents | 6fede2aa6a12 |
| children | cf5a5357a7ea |
line wrap: on
line diff
--- a/roundup/backends/back_metakit.py Mon Mar 17 04:48:41 2003 +0000 +++ b/roundup/backends/back_metakit.py Mon Mar 17 22:03:08 2003 +0000 @@ -1,4 +1,4 @@ -# $Id: back_metakit.py,v 1.42 2003-03-16 22:24:54 kedder Exp $ +# $Id: back_metakit.py,v 1.43 2003-03-17 22:03:04 kedder Exp $ ''' Metakit backend for Roundup, originally by Gordon McMillan. @@ -684,6 +684,18 @@ ''' if self.db.journaltag is None: raise hyperdb.DatabaseError, 'Database open read-only' + + # check if key property was overrided + key = self.getkey() + keyvalue = self.get(nodeid, key) + try: + id = self.lookup(keyvalue) + except KeyError: + pass + else: + raise KeyError, "Key property (%s) of retired node clashes with \ + existing one (%s)" % (key, keyvalue) + # Now we can safely restore node self.fireAuditors('restore', nodeid, None) view = self.getview(1) ndx = view.find(id=int(nodeid))
