diff --git a/frontends/src/quick_frontend/quick_blog.py b/frontends/src/quick_frontend/quick_blog.py index ad902542..fcbdd060 100644 --- a/frontends/src/quick_frontend/quick_blog.py +++ b/frontends/src/quick_frontend/quick_blog.py @@ -103,7 +103,7 @@ class EntriesManager(object): else: self.blog = manager.blog self.entries = [] - self._first_entry = None + self.edit_entry = None @property def level(self): @@ -140,7 +140,7 @@ class EntriesManager(object): for item, comments in items: self.addEntry(item, comments, service=service, node=node, with_update=False) - def addEntry(self, item=None, comments=None, service=None, node=None, with_update=True, editable=False, first=False): + def addEntry(self, item=None, comments=None, service=None, node=None, with_update=True, editable=False, edit_entry=False): """Add a microblog entry @param editable (bool): True if the entry can be modified @@ -149,12 +149,14 @@ class EntriesManager(object): @param service (jid.JID, None): service where the entry is coming from @param service (unicode, None): node hosting the entry @param with_update (bool): if True, udpate is called with the new entry - @param first(bool): if True, will be the first entry regardless of sorting + @param edit_entry(bool): if True, will be in self.edit_entry instead of + self.entries, so it can be managed separately (e.g. first or last + entry regardless of sorting) """ new_entry = ENTRY_CLS(self, item, comments, service=service, node=node) new_entry.setEditable(editable) - if first: - self._first_entry = new_entry + if edit_entry: + self.edit_entry = new_entry else: self.entries.append(new_entry) if with_update: @@ -289,7 +291,13 @@ class Entry(EntriesManager): log.debug(u"deleting entry {}".format('EDIT ENTRY' if self.new else self.item.id)) for child in self.entries: child.delete() - self.manager.entries.remove(self) + try: + self.manager.entries.remove(self) + except ValueError: + if self != self.manager.edit_entry: + log.error(u"Internal Error: entry not found in manager") + else: + self.manager.edit_entry = None if not self.new: # we must remove references to self # in QuickBlog's dictionary