Add method Album.add_associated_directory
This commit is contained in:
parent
09f209719b
commit
43bc1e74fc
1 changed files with 30 additions and 0 deletions
|
@ -241,6 +241,36 @@ class Album(ObjectBase, GroupableMixin):
|
|||
self._sum_bytes_albums = None
|
||||
|
||||
@decorators.transaction
|
||||
def add_associated_directory(self, filepath, *, commit=True):
|
||||
filepath = pathclass.Path(filepath)
|
||||
if not filepath.is_dir:
|
||||
raise ValueError('%s is not a directory' % filepath)
|
||||
|
||||
try:
|
||||
existing = self.photodb.get_album_by_path(filepath)
|
||||
except exceptions.NoSuchAlbum:
|
||||
existing = None
|
||||
|
||||
if existing is None:
|
||||
pass
|
||||
elif existing == self:
|
||||
return
|
||||
else:
|
||||
raise exceptions.AlbumExists(filepath)
|
||||
|
||||
data = {
|
||||
'albumid': self.id,
|
||||
'directory': filepath.absolute_path,
|
||||
}
|
||||
(qmarks, bindings) = helpers.binding_filler(constants.SQL_ALBUM_DIRECTORY_COLUMNS, data)
|
||||
query = 'INSERT INTO album_associated_directories VALUES(%s)' % qmarks
|
||||
cur = self.photodb.sql.cursor()
|
||||
cur.execute(query, bindings)
|
||||
|
||||
if commit:
|
||||
self.photodb.log.debug('Committing - add associated directory')
|
||||
self.photodb.commit()
|
||||
|
||||
@decorators.transaction
|
||||
def add_photo(self, photo, *, commit=True):
|
||||
if self.photodb != photo.photodb:
|
||||
|
|
Loading…
Reference in a new issue