Add panels for user's created photos, albums, tags, bookmarks.
This commit is contained in:
		
							parent
							
								
									fb65138266
								
							
						
					
					
						commit
						84bf9b90de
					
				
					 2 changed files with 50 additions and 8 deletions
				
			
		|  | @ -1,4 +1,5 @@ | ||||||
| import datetime | import datetime | ||||||
|  | import itertools | ||||||
| import jinja2.filters | import jinja2.filters | ||||||
| 
 | 
 | ||||||
| import voussoirkit.bytestring | import voussoirkit.bytestring | ||||||
|  | @ -45,6 +46,10 @@ def file_link(photo, short=False): | ||||||
|     basename = jinja2.filters.do_urlencode(photo.basename) |     basename = jinja2.filters.do_urlencode(photo.basename) | ||||||
|     return f'/file/{photo.id}/{basename}' |     return f'/file/{photo.id}/{basename}' | ||||||
| 
 | 
 | ||||||
|  | @filter_function | ||||||
|  | def islice(gen, start, stop): | ||||||
|  |     return itertools.islice(gen, start, stop) | ||||||
|  | 
 | ||||||
| @filter_function | @filter_function | ||||||
| def timestamp_to_8601(timestamp): | def timestamp_to_8601(timestamp): | ||||||
|     return datetime.datetime.utcfromtimestamp(timestamp).isoformat(' ') + ' UTC' |     return datetime.datetime.utcfromtimestamp(timestamp).isoformat(' ') + ' UTC' | ||||||
|  |  | ||||||
|  | @ -1,12 +1,17 @@ | ||||||
| <!DOCTYPE html5> | <!DOCTYPE html5> | ||||||
| <html> | <html> | ||||||
| <head> | <head> | ||||||
|  |     {% import "album_card.html" as album_card %} | ||||||
|  |     {% import "bookmark_card.html" as bookmark_card %} | ||||||
|  |     {% import "photo_card.html" as photo_card %} | ||||||
|  |     {% import "tag_card.html" as tag_card %} | ||||||
|     {% import "header.html" as header %} |     {% import "header.html" as header %} | ||||||
|     <title class="dynamic_user_display_name">{{user.display_name}}</title> |     <title class="dynamic_user_display_name">{{user.display_name}}</title> | ||||||
|     <meta charset="UTF-8"> |     <meta charset="UTF-8"> | ||||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0"/> |     <meta name="viewport" content="width=device-width, initial-scale=1.0"/> | ||||||
|     <link rel="stylesheet" href="/static/css/common.css"> |     <link rel="stylesheet" href="/static/css/common.css"> | ||||||
|     <link rel="stylesheet" href="/static/css/etiquette.css"> |     <link rel="stylesheet" href="/static/css/etiquette.css"> | ||||||
|  |     <link rel="stylesheet" href="/static/css/cards.css"> | ||||||
|     {% if theme %}<link rel="stylesheet" href="/static/css/theme_{{theme}}.css">{% endif %} |     {% if theme %}<link rel="stylesheet" href="/static/css/theme_{{theme}}.css">{% endif %} | ||||||
|     <script src="/static/js/common.js"></script> |     <script src="/static/js/common.js"></script> | ||||||
|     <script src="/static/js/api.js"></script> |     <script src="/static/js/api.js"></script> | ||||||
|  | @ -30,20 +35,52 @@ h2, h3 | ||||||
| <body> | <body> | ||||||
|     {{header.make_header(session=session)}} |     {{header.make_header(session=session)}} | ||||||
|     <div id="content_body"> |     <div id="content_body"> | ||||||
|         <div class="panel"> |         <div id="hierarchy_self" class="panel"> | ||||||
|             <h2 id="display_name">{{user.display_name}}</h2> |             <h2 id="display_name">{{user.display_name}}</h2> | ||||||
|             <p>ID: <a href="/userid/{{user.id}}">{{user.id}}</a></p> |             <p>ID: <a href="/userid/{{user.id}}">{{user.id}}</a></p> | ||||||
|             <p>User since <span title="{{user.created|int|timestamp_to_8601}}">{{user.created|timestamp_to_naturaldate}}.</span></p> |             <p>User since <span title="{{user.created|int|timestamp_to_8601}}">{{user.created|timestamp_to_naturaldate}}.</span></p> | ||||||
|         </div> |         </div> | ||||||
|         <div class="panel"> | 
 | ||||||
|  |         {% set photos = user.get_photos(direction='desc')|islice(0, 15)|list %} | ||||||
|  |         {% if photos %} | ||||||
|  |         <div id="hierarchy_photos" class="panel"> | ||||||
|             <h3><a href="/search?author={{user.username}}">Photos by <span class="dynamic_user_display_name">{{user.display_name}}</span></a></h3> |             <h3><a href="/search?author={{user.username}}">Photos by <span class="dynamic_user_display_name">{{user.display_name}}</span></a></h3> | ||||||
|             <iframe |             {% for photo in photos %} | ||||||
|             class="embedded_search" |             {{photo_card.create_photo_card(photo)}} | ||||||
|             src="/search_embed?author={{user.username}}&orderby=created-desc&yield_albums=no&limit=10" |             {% endfor %} | ||||||
|             onload="return common.size_iframe_to_content(this);" |  | ||||||
|             > |  | ||||||
|             </iframe> |  | ||||||
|         </div> |         </div> | ||||||
|  |         {% endif %} | ||||||
|  | 
 | ||||||
|  |         {% set tags = user.get_tags(direction='desc')|islice(0, 100)|list %} | ||||||
|  |         {% if tags %} | ||||||
|  |         <div id="hierarchy_tags" class="panel"> | ||||||
|  |             <h3>Tags by <span class="dynamic_user_display_name">{{user.display_name}}</span></h3> | ||||||
|  |             {% for tag in tags %} | ||||||
|  |             {{tag_card.create_tag_card(tag, with_alt_description=True)}} | ||||||
|  |             {% endfor %} | ||||||
|  |         </div> | ||||||
|  |         {% endif %} | ||||||
|  | 
 | ||||||
|  |         {% set albums = user.get_albums()|islice(0, 20)|list %} | ||||||
|  |         {% if albums %} | ||||||
|  |         <div id="hierarchy_albums" class="panel"> | ||||||
|  |             <h3>Albums by <span class="dynamic_user_display_name">{{user.display_name}}</span></h3> | ||||||
|  |             {% for album in albums %} | ||||||
|  |             {{album_card.create_album_card(album)}} | ||||||
|  |             {% endfor %} | ||||||
|  |         </div> | ||||||
|  |         {% endif %} | ||||||
|  | 
 | ||||||
|  |         {% set bookmarks = user.get_bookmarks()|islice(0, 50)|list %} | ||||||
|  |         {% if bookmarks %} | ||||||
|  |         <div id="hierarchy_bookmarks" class="panel"> | ||||||
|  |             <h3>Bookmarks by <span class="dynamic_user_display_name">{{user.display_name}}</span></h3> | ||||||
|  |             {% for bookmark in bookmarks %} | ||||||
|  |             {{bookmark_card.create_bookmark_card(bookmark)}} | ||||||
|  |             {% endfor %} | ||||||
|  |         </div> | ||||||
|  |         {% endif %} | ||||||
|  | 
 | ||||||
|     </div> |     </div> | ||||||
| </body> | </body> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue