Add plural method remove_children.
This commit is contained in:
parent
0eb8fd3f1b
commit
8777998829
1 changed files with 26 additions and 2 deletions
|
@ -210,8 +210,7 @@ class GroupableMixin(metaclass=abc.ABCMeta):
|
|||
row = self.photodb.sql_select_one(query, [parent.id, self.id])
|
||||
return row is not None
|
||||
|
||||
@abc.abstractmethod
|
||||
def remove_child(self, member):
|
||||
def __remove_child(self, member):
|
||||
if not self.has_child(member):
|
||||
return BAIL
|
||||
|
||||
|
@ -222,6 +221,17 @@ class GroupableMixin(metaclass=abc.ABCMeta):
|
|||
'memberid': member.id,
|
||||
}
|
||||
self.photodb.sql_delete(table=self.group_table, pairs=pairs)
|
||||
@abc.abstractmethod
|
||||
def remove_child(self, member):
|
||||
return self.__remove_child(member)
|
||||
|
||||
@abc.abstractmethod
|
||||
def remove_children(self, members):
|
||||
bail = True
|
||||
for member in members:
|
||||
bail = (self.__remove_child(member) is BAIL) and bail
|
||||
if bail:
|
||||
return BAIL
|
||||
|
||||
def walk_children(self):
|
||||
'''
|
||||
|
@ -492,6 +502,11 @@ class Album(ObjectBase, GroupableMixin):
|
|||
def remove_child(self, *args, **kwargs):
|
||||
return super().remove_child(*args, **kwargs)
|
||||
|
||||
@decorators.required_feature('album.edit')
|
||||
@decorators.transaction
|
||||
def remove_children(self, *args, **kwargs):
|
||||
return super().remove_children(*args, **kwargs)
|
||||
|
||||
def _remove_photo(self, photo):
|
||||
self.photodb.log.debug('Removing photo %s from %s', photo, self)
|
||||
pairs = {'albumid': self.id, 'photoid': photo.id}
|
||||
|
@ -1417,6 +1432,15 @@ class Tag(ObjectBase, GroupableMixin):
|
|||
self.photodb.caches['tag_exports'].clear()
|
||||
return ret
|
||||
|
||||
@decorators.required_feature('tag.edit')
|
||||
@decorators.transaction
|
||||
def remove_children(self, *args, **kwargs):
|
||||
ret = super().remove_children(*args, **kwargs)
|
||||
if ret is BAIL:
|
||||
return
|
||||
self.photodb.caches['tag_exports'].clear()
|
||||
return ret
|
||||
|
||||
@decorators.required_feature('tag.edit')
|
||||
@decorators.transaction
|
||||
def remove_synonym(self, synname):
|
||||
|
|
Loading…
Reference in a new issue