Bläddra i källkod

Add link to lists on index

jherve 1 år sedan
förälder
incheckning
bdbd452e99
3 ändrade filer med 15 tillägg och 3 borttagningar
  1. 5 0
      src/de_quoi_parle_le_monde/storage.py
  2. 4 3
      src/de_quoi_parle_le_monde/web.py
  3. 6 0
      templates/index.html

+ 5 - 0
src/de_quoi_parle_le_monde/storage.py

@@ -327,6 +327,11 @@ class Storage:
             )
             await conn.commit()
 
+    async def list_sites(self):
+        async with self.conn as conn:
+            sites = await conn.execute_fetchall("SELECT * FROM sites")
+            return [{"id": s[0], "original_url": s[1]} for s in sites]
+
     async def list_main_articles(self, site_id: int, limit: int = 5):
         async with self.conn as conn:
             main_articles = await conn.execute_fetchall(

+ 4 - 3
src/de_quoi_parle_le_monde/web.py

@@ -19,12 +19,13 @@ async def get_db():
 
 
 @app.get("/", response_class=HTMLResponse)
-async def index(request: Request):
-    return templates.TemplateResponse(request=request, name="index.html", context={})
+async def index(request: Request, storage: Storage = Depends(get_db)):
+    sites = await storage.list_sites()
+    return templates.TemplateResponse(request=request, name="index.html", context={"sites": sites})
 
 
 @app.get("/sites/{id}/main_article", response_class=HTMLResponse)
-async def site_detail(request: Request, id: int, limit: int | None = None, storage: Storage = Depends(get_db)):
+async def site_main_article(request: Request, id: int, limit: int | None = None, storage: Storage = Depends(get_db)):
     opt_args = [limit] if limit is not None else []
     main_articles = await storage.list_main_articles(id, *opt_args)
     return templates.TemplateResponse(request=request, name="site_detail.html", context={"site_id": id, "main_articles": main_articles})

+ 6 - 0
templates/index.html

@@ -6,5 +6,11 @@
 <body>
     <a href="{{ url_for('admin_index') }}">Admin page</a>
     <h1>Hello World !</h1>
+
+    <ul>
+        {% for s in sites %}
+            <li><a href="{{ url_for('site_main_article', id=s['id']) }}">{{ s["original_url"] }}</a></li>
+        {% endfor %}
+    </ul>
 </body>
 </html>