# HG changeset patch # User Goffi # Date 1450463760 -3600 # Node ID ad20cedbf25e84eb288541b4fede259b62d0640b # Parent 30efe084471c8a7aaa603dd6763065bc417099db quick_frontend (blog): replaced first argument in addEntry by edit_entry, so it can be managed separately from entries + handle it in Entry.delete diff -r 30efe084471c -r ad20cedbf25e frontends/src/quick_frontend/quick_blog.py --- a/frontends/src/quick_frontend/quick_blog.py Fri Dec 18 15:06:58 2015 +0100 +++ b/frontends/src/quick_frontend/quick_blog.py Fri Dec 18 19:36:00 2015 +0100 @@ -103,7 +103,7 @@ else: self.blog = manager.blog self.entries = [] - self._first_entry = None + self.edit_entry = None @property def level(self): @@ -140,7 +140,7 @@ 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 @@ @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 @@ 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