recipes/TODO.md

3.4 KiB

  • 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
    • 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] Enable Logging to file. [ok] Implement the model as relational with SQLite. [ok] Create and update functions.