Replace endpoint /calendar/schedule_recipe by /calendar/sheduled_recipe
[recipes.git] / TODO.md
diff --git a/TODO.md b/TODO.md
index 2120205..e1a9785 100644 (file)
--- a/TODO.md
+++ b/TODO.md
@@ -1,10 +1,64 @@
-* Asynchonous email sending and database requests
-* Try using WASM for all the client logic (test on signup page)
-* Describe the use cases.
+* Finish all local storage API (remove scheduled, add ingredient, etc..)
+* Find an elegant/global way to adapt the quantities to servings (e.g. shopping list)
+* FIX: when the event blur is triggered when changing page, the async process doesn't finish all the time
+* User can change default_servings in profile
+* Add a way to retrieve a backup of the database (only if admin)
+    * Maybe make a dev-page with logs and other tools/information
+* Can choose servings number in recipe view
+    * Default number is the user setting user.default_servings
+    * A symbol show the native recipe servings number
+* Check position of message error in profile/sign in/sign up with flex grid layout
+* Replace Rinja by Askama when Askma 0.13 is out (Rinja has been merged with Askama)
 * Define the UI (mockups).
     * Two CSS: one for desktop and one for mobile
 * Define the UI (mockups).
     * Two CSS: one for desktop and one for mobile
-* Define the logic behind each page and action.
+    * Use CSS flex/grid to define a good design/layout
+* CSS for dark mode + autodetect
+* CSS for toast and modal dialog
+* Calendar: Choose the first day of the week
+* i18n: prefix uri with the language: /fr/recipe/view/2 (do it for all intern href)
+    * Redirect with the correct prefix when the current language is changed
+* Make a search page
+    Use FTS5:
+        https://sqlite.org/fts5.html
+        https://www.sqlitetutorial.net/sqlite-full-text-search/
+* Use of markdown for some field (how to add markdown as askama filter?)
+* Quick search left panel by tags ?
+* Make the home page: Define what to display to the user
+* Show existing tags when editing a recipe
 
 
+[ok] Add a table for website global settings with two column: name + value
+    * Add a boolean settings to enable/disable new inscription
+[ok] Add a [is_admin] flag to [User] table
+[ok] Test when there is an SQL error (syntax error for sample)
+[ok] Drag and drop of steps and groups to define their order
+[ok] Force tags in lowercase
+[ok] Remove the given language to recipe_edit and replace it by tr (like the header)
+    [ok] List only recipe of current language
+[ok] Add support to translations.
+    * Make a Text database (a bit like d-lan.net) and think about translation.
+    * The language is stored in cookie or in user profile if the user is connected
+    * A combobox in the header shows all languages
+[ok] Set a lang cookie (when not connected)
+[ok] User can choose language
+[ok] Implement:
+    .service(services::edit_recipe)
+    .service(services::new_recipe)
+    .service(services::webapi::set_recipe_title)
+    .service(services::webapi::set_recipe_description)
+[ok] Review the recipe model (SQL)
+[ok] Finish updating profile
+    [ok] check password and message error
+    [ok] user can change email: add a field + revalidation of new email
+[ok] Try using WASM for all the client logic (test on editing/creating a recipe)
+[ok] How to log error to journalctl or elsewhere + debug log?
+[ok] Clean the old code + commit
+[ok] Reactivate sign up/in/out
+[ok] Change all id to i64
+[ok] Check cookie lifetime -> Session by default
+[ok] Asynchonous email sending and database requests
+    [ok] Try to return Result for async routes (and watch what is printed in log)
+    [ok] Then try to make async database calls
+    [ok] Set email sending as async and show a waiter when sending email. Handle (and test) a timeout (~10s). -> (timeout put to 60s)
 [ok] Sign out
 [ok] Read all the askama doc and see if the current approach is good
 [ok] Handle 404
 [ok] Sign out
 [ok] Read all the askama doc and see if the current approach is good
 [ok] Handle 404