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 ######################################################################################### | ||||||
| 
 | 
 | ||||||
| DATABASE_VERSION = 17 | DATABASE_VERSION = 18 | ||||||
| DB_VERSION_PRAGMA = f''' | DB_VERSION_PRAGMA = f''' | ||||||
| PRAGMA user_version = {DATABASE_VERSION}; | PRAGMA user_version = {DATABASE_VERSION}; | ||||||
| ''' | ''' | ||||||
|  | @ -62,8 +62,10 @@ CREATE TABLE IF NOT EXISTS albums( | ||||||
|     title TEXT, |     title TEXT, | ||||||
|     description TEXT, |     description TEXT, | ||||||
|     created INT, |     created INT, | ||||||
|  |     thumbnail_photo TEXT, | ||||||
|     author_id 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_id on albums(id); | ||||||
| CREATE INDEX IF NOT EXISTS index_albums_author_id on albums(author_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.title = self.normalize_title(db_row['title']) | ||||||
|         self.description = self.normalize_description(db_row['description']) |         self.description = self.normalize_description(db_row['description']) | ||||||
|         self.created = db_row['created'] |         self.created = db_row['created'] | ||||||
|  |         self._thumbnail_photo = db_row['thumbnail_photo'] | ||||||
|         self.author_id = self.normalize_author_id(db_row['author_id']) |         self.author_id = self.normalize_author_id(db_row['author_id']) | ||||||
| 
 | 
 | ||||||
|         self.group_getter_many = self.photodb.get_albums_by_id |         self.group_getter_many = self.photodb.get_albums_by_id | ||||||
|  | @ -532,6 +533,7 @@ class Album(ObjectBase, GroupableMixin): | ||||||
|             'description': self.description, |             'description': self.description, | ||||||
|             'title': self.title, |             'title': self.title, | ||||||
|             'created': self.created, |             '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, |             'author': self.get_author().jsonify() if self.author_id else None, | ||||||
|         } |         } | ||||||
|         if not minimal: |         if not minimal: | ||||||
|  | @ -629,6 +631,16 @@ class Album(ObjectBase, GroupableMixin): | ||||||
|         total = self.photodb.sql_select_one(query)[0] |         total = self.photodb.sql_select_one(query)[0] | ||||||
|         return total |         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): |     def walk_photos(self): | ||||||
|         yield from self.get_photos() |         yield from self.get_photos() | ||||||
|         children = self.walk_children() |         children = self.walk_children() | ||||||
|  |  | ||||||
|  | @ -38,7 +38,6 @@ | ||||||
| .album_card_thumbnail | .album_card_thumbnail | ||||||
| { | { | ||||||
|     grid-area: thumbnail; |     grid-area: thumbnail; | ||||||
|     background-color: var(--color_transparency); |  | ||||||
|     display: flex; |     display: flex; | ||||||
|     width:  100%; |     width:  100%; | ||||||
|     height: 150px; |     height: 150px; | ||||||
|  |  | ||||||
|  | @ -19,7 +19,12 @@ draggable=true | ||||||
|     {% else %} |     {% else %} | ||||||
|     <a class="album_card_thumbnail" href="/album/{{album.id}}{{viewparam}}"> |     <a class="album_card_thumbnail" href="/album/{{album.id}}{{viewparam}}"> | ||||||
|     {% endif %} |     {% 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> |     </a> | ||||||
| 
 | 
 | ||||||
|     <div class="album_card_tools"> |     <div class="album_card_tools"> | ||||||
|  |  | ||||||
|  | @ -572,6 +572,36 @@ def upgrade_16_to_17(photodb): | ||||||
| 
 | 
 | ||||||
|     m.go() |     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): | def upgrade_all(data_directory): | ||||||
|     ''' |     ''' | ||||||
|     Given the directory containing a phototagger database, apply all of the |     Given the directory containing a phototagger database, apply all of the | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue