Add thumbnail_photo to Album.
This commit is contained in:
parent
a6f9d1859e
commit
95b95bc7be
5 changed files with 52 additions and 4 deletions
|
@ -41,7 +41,7 @@ ffmpeg = _load_ffmpeg()
|
|||
|
||||
# Database #########################################################################################
|
||||
|
||||
DATABASE_VERSION = 17
|
||||
DATABASE_VERSION = 18
|
||||
DB_VERSION_PRAGMA = f'''
|
||||
PRAGMA user_version = {DATABASE_VERSION};
|
||||
'''
|
||||
|
@ -62,8 +62,10 @@ CREATE TABLE IF NOT EXISTS albums(
|
|||
title TEXT,
|
||||
description TEXT,
|
||||
created INT,
|
||||
thumbnail_photo TEXT,
|
||||
author_id TEXT,
|
||||
FOREIGN KEY(author_id) REFERENCES users(id)
|
||||
FOREIGN KEY(author_id) REFERENCES users(id),
|
||||
FOREIGN KEY(thumbnail_photo) REFERENCES photos(id)
|
||||
);
|
||||
CREATE INDEX IF NOT EXISTS index_albums_id on albums(id);
|
||||
CREATE INDEX IF NOT EXISTS index_albums_author_id on albums(author_id);
|
||||
|
|
|
@ -284,6 +284,7 @@ class Album(ObjectBase, GroupableMixin):
|
|||
self.title = self.normalize_title(db_row['title'])
|
||||
self.description = self.normalize_description(db_row['description'])
|
||||
self.created = db_row['created']
|
||||
self._thumbnail_photo = db_row['thumbnail_photo']
|
||||
self.author_id = self.normalize_author_id(db_row['author_id'])
|
||||
|
||||
self.group_getter_many = self.photodb.get_albums_by_id
|
||||
|
@ -532,6 +533,7 @@ class Album(ObjectBase, GroupableMixin):
|
|||
'description': self.description,
|
||||
'title': self.title,
|
||||
'created': self.created,
|
||||
'thumbnail_photo': self.thumbnail_photo.id if self._thumbnail_photo else None,
|
||||
'author': self.get_author().jsonify() if self.author_id else None,
|
||||
}
|
||||
if not minimal:
|
||||
|
@ -629,6 +631,16 @@ class Album(ObjectBase, GroupableMixin):
|
|||
total = self.photodb.sql_select_one(query)[0]
|
||||
return total
|
||||
|
||||
@property
|
||||
def thumbnail_photo(self):
|
||||
if self._thumbnail_photo is None:
|
||||
return None
|
||||
if isinstance(self._thumbnail_photo, Photo):
|
||||
return self._thumbnail_photo
|
||||
photo = self.photodb.get_photo(self._thumbnail_photo)
|
||||
self._thumbnail_photo = photo
|
||||
return photo
|
||||
|
||||
def walk_photos(self):
|
||||
yield from self.get_photos()
|
||||
children = self.walk_children()
|
||||
|
|
|
@ -38,7 +38,6 @@
|
|||
.album_card_thumbnail
|
||||
{
|
||||
grid-area: thumbnail;
|
||||
background-color: var(--color_transparency);
|
||||
display: flex;
|
||||
width: 100%;
|
||||
height: 150px;
|
||||
|
|
|
@ -19,7 +19,12 @@ draggable=true
|
|||
{% else %}
|
||||
<a class="album_card_thumbnail" href="/album/{{album.id}}{{viewparam}}">
|
||||
{% endif %}
|
||||
<img src="/static/basic_thumbnails/album.png"/>
|
||||
{% if album.thumbnail_photo %}
|
||||
{% set thumbnail_src = "/thumbnail/" + album.thumbnail_photo.id + ".jpg" %}
|
||||
{% else %}
|
||||
{% set thumbnail_src = "/static/basic_thumbnails/album.png" %}
|
||||
{% endif %}
|
||||
<img src="{{thumbnail_src}}"/>
|
||||
</a>
|
||||
|
||||
<div class="album_card_tools">
|
||||
|
|
|
@ -572,6 +572,36 @@ def upgrade_16_to_17(photodb):
|
|||
|
||||
m.go()
|
||||
|
||||
def upgrade_17_to_18(photodb):
|
||||
'''
|
||||
Added the thumbnail_photo column to albums.
|
||||
'''
|
||||
m = Migrator(photodb)
|
||||
m.tables['albums']['create'] = '''
|
||||
CREATE TABLE albums(
|
||||
id TEXT PRIMARY KEY NOT NULL,
|
||||
title TEXT,
|
||||
description TEXT,
|
||||
created INT,
|
||||
thumbnail_photo TEXT,
|
||||
author_id TEXT,
|
||||
FOREIGN KEY(author_id) REFERENCES users(id),
|
||||
FOREIGN KEY(thumbnail_photo) REFERENCES photos(id)
|
||||
);
|
||||
'''
|
||||
m.tables['albums']['transfer'] = '''
|
||||
INSERT INTO albums SELECT
|
||||
id,
|
||||
title,
|
||||
description,
|
||||
created,
|
||||
NULL,
|
||||
author_id
|
||||
FROM albums_old;
|
||||
'''
|
||||
|
||||
m.go()
|
||||
|
||||
def upgrade_all(data_directory):
|
||||
'''
|
||||
Given the directory containing a phototagger database, apply all of the
|
||||
|
|
Loading…
Reference in a new issue