mirror of
				https://git.sr.ht/~tsileo/microblog.pub
				synced 2025-06-05 21:59:23 +02:00 
			
		
		
		
	Add admin profile page
This commit is contained in:
		
							
								
								
									
										47
									
								
								app/admin.py
									
									
									
									
									
								
							
							
						
						
									
										47
									
								
								app/admin.py
									
									
									
									
									
								
							| @@ -223,6 +223,53 @@ def get_notifications( | ||||
|     ) | ||||
|  | ||||
|  | ||||
| @router.get("/object") | ||||
| def admin_object( | ||||
|     request: Request, | ||||
|     ap_id: str, | ||||
|     db: Session = Depends(get_db), | ||||
| ) -> templates.TemplateResponse: | ||||
|     return templates.render_template( | ||||
|         db, | ||||
|         request, | ||||
|         "admin_object.html", | ||||
|         {}, | ||||
|     ) | ||||
|  | ||||
|  | ||||
| @router.get("/profile") | ||||
| def admin_profile( | ||||
|     request: Request, | ||||
|     actor_id: str, | ||||
|     db: Session = Depends(get_db), | ||||
| ) -> templates.TemplateResponse: | ||||
|     actor = db.query(models.Actor).filter(models.Actor.ap_id == actor_id).one_or_none() | ||||
|     if not actor: | ||||
|         raise HTTPException(status_code=404) | ||||
|  | ||||
|     actors_metadata = get_actors_metadata(db, [actor]) | ||||
|  | ||||
|     inbox_objects = ( | ||||
|         db.query(models.InboxObject) | ||||
|         .filter( | ||||
|             models.InboxObject.actor_id == actor.id, | ||||
|             models.InboxObject.ap_type.in_(["Note", "Article", "Video"]), | ||||
|         ) | ||||
|         .all() | ||||
|     ) | ||||
|  | ||||
|     return templates.render_template( | ||||
|         db, | ||||
|         request, | ||||
|         "admin_profile.html", | ||||
|         { | ||||
|             "actors_metadata": actors_metadata, | ||||
|             "actor": actor, | ||||
|             "inbox_objects": inbox_objects, | ||||
|         }, | ||||
|     ) | ||||
|  | ||||
|  | ||||
| @router.post("/actions/follow") | ||||
| def admin_actions_follow( | ||||
|     request: Request, | ||||
|   | ||||
							
								
								
									
										8
									
								
								app/templates/admin_profile.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								app/templates/admin_profile.html
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| {%- import "utils.html" as utils with context -%} | ||||
| {% extends "layout.html" %} | ||||
| {% block content %} | ||||
|     {{ utils.display_actor(actor, actors_metadata) }} | ||||
|     {% for inbox_object in inbox_objects %} | ||||
|         {{ utils.display_object(inbox_object) }} | ||||
|     {% endfor %} | ||||
| {% endblock %} | ||||
| @@ -59,6 +59,13 @@ | ||||
| </form>  | ||||
| {% endmacro %} | ||||
|  | ||||
| {% macro admin_profile_button(ap_actor_id) %} | ||||
| <form action="{{ url_for("admin_profile") }}"  method="GET"> | ||||
| <input type="hidden" name="actor_id" value="{{ ap_actor_id }}"> | ||||
| <button type="submit">Profile</button> | ||||
| </form>  | ||||
| {% endmacro %} | ||||
|  | ||||
| {% macro display_actor(actor, actors_metadata) %} | ||||
| {% set metadata = actors_metadata.get(actor.ap_id) %} | ||||
| <div style="display: flex;column-gap: 20px;margin:20px 0 10px 0;" class="actor-box"> | ||||
| @@ -194,6 +201,9 @@ | ||||
|             <div class="bar-item"> | ||||
|                 {{ admin_reply_button(object.ap_id) }} | ||||
|             </div> | ||||
|             <div class="bar-item"> | ||||
|                 {{ admin_profile_button(object.actor.ap_id) }} | ||||
|             </div> | ||||
|  | ||||
|     {% endif %} | ||||
|      | ||||
|   | ||||
		Reference in New Issue
	
	Block a user