quick_frontend (blog): replaced first argument in addEntry by edit_entry, so it can be managed separately from entries + handle it in Entry.delete
This commit is contained in:
parent
f8a8aa4b08
commit
6c8121324c
1 changed files with 14 additions and 6 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue