* added more test data
* added missing pytest id
* add fk validation to backup restore
* removed bad type imports
* actually apply the invalid fk filter and clean up types
* fix key name
* added log when removing bad rows
* removed unused import
* bumped info to warning
* added test data to (hopefully) expose fk error
* added additional commits during migration
---------
Co-authored-by: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com>
* refactor normalized search migration to use dummy default
* changed group slug migration to use raw SQL
* updated comment
* added tests with anonymized backups (currently failing)
* typo
* fixed LDAP enum in test data
* fix for adding label settings across groups
* add migration data fixes
* fix shopping list label settings test
* re-run db init instead of just running alembic migration, to include fixes
* intentionally broke SQLAlchemy GUID handling
* safely convert between GUID types in different databases
* restore original test data after testing backup restores
* added missing group name update to migration
* added backend for shopping list label config
* updated codegen
* refactored shopping list ops to service
removed unique contraint
removed label settings from main route/schema
added new route for label settings
* codegen
* made sure label settings output in position order
* implemented submenu for label order drag and drop
* removed redundant label and tweaked formatting
* added view by label to user preferences
* made items draggable within each label section
* moved reorder labels to its own button
* made dialog scrollable
* fixed broken model
* refactored labels to use a service
moved shopping list label logic to service
modified label seeder to use service
* added tests
* fix for first label missing the tag icon
* fixed wrong mapped type
* added statement to create existing relationships
* fix restore test, maybe
* feat: server side search API (#2112)
* refactor repository_recipes filter building
* add food filter to recipe repository page_all
* fix query type annotations
* working search
* add tests and make sure title matches are ordered correctly
* remove instruction matching again
* fix formatting and small issues
* fix another linting error
* make search test no rely on actual words
* fix failing postgres compiled query
* revise incorrectly ordered migration
* automatically extract latest migration version
* test migration orderes
* run type generators
* new search function
* wip: new search page
* sortable field options
* fix virtual scroll issue
* fix search casing bug
* finalize search filters/sorts
* remove old composable
* fix type errors
---------
Co-authored-by: Sören <fleshgolem@gmx.net>
* add indices to all foreign keys and some fields that are used for ordering and filtering
* add missing migrations
* update migration orders
---------
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
* added related user to mealplans
* made timeline event message actually optional
* added task to create events for mealplan recipes
* replaced fk constraint ops with bulk ops
* fixed event creation and adjusted query range
* indentation is hard
* added missing recipe id query filter
* added tests
* propogate scale changes to print view
* fixed incorrect variable reference
* refactored shopping list recipe routes
cleaned up existing logic
added support for recipe scaling
* updated current revision
* adding to shopping list respects UI recipe scale
* added field annotations
* added tests for recipe scaling
* made column nullable and set to 1 during migration
* added chef hat
* removed unnecessary log
* modified recipe and recipe timeline event schema
changed timeline event "message" -> "event_message"
added "last made" timestamp to recipe
* added "I made this" dialog to recipe action menu
* added missing field and re-ran code-gen
* moved dialog out of context menu and refactored
removed references in action menu and context menu
refactored dialog to be triggered by a button instead
added route to update recipe last made timestamp
added visual for last made timestamp to recipe header and title
* added sorting by last made
* switched event type to comment
* replaced alter column with pydantic alias
* added tests for event message alias
* added recipe_timeline_events table to db
* added schema and routes for recipe timeline events
* added missing mixin and fixed update schema
* added tests
* adjusted migration revision tree
* updated alembic revision test
* added initial timeline event for new recipes
* added additional tests
* added event bus support
* renamed event_dt to timestamp
* add timeline_events to ignore list
* run code-gen
* use new test routes implementation
* use doc string syntax
* moved event type enum from db to schema
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
* added api extras to other tables
genericized api extras model from recipes
added extras column to ingredient foods
added extras column to shopping lists
added extras column to shopping list items
* updated alembic version test
* made mypy happy
* added TODO on test that does nothing
* added extras tests for lists, items, and foods
* added docs for new extras
* modified alembic versions to eliminate branching
* Add pytesseract
* Add simple ocr endpoint
replace extension argument
* feat/ocr-editor gui
* fix frontend linting issues
* Add service unit tests
* Add split text modes & single ingredient/instruction editing
* make split mode really reactive
* Remove default step and ingredient
* make the linter haappy
* Accept only image uploads
* Add automatic recipe title suggestion
* Correct regex
* fix incorrect array.map method usage
* make the linter happy again
* Swap route to use asset name
* Rearange buttons
* fix test data
* feat: Allow making image the recipe image
* Add translation
* Make the linter happy
* Restrict function setPropertyValueByPath generic
* Restrict template literal type
* Add a more friendly icon to creation page
* update poetry lock file
* Correct sloppy ocr classes
* Make MyPy happy
* Rewrite safer tests
* Add tesseract to backend test CI container dependencies
* Make canvas element a component global
* Remove unwanted spaces in selected text
* Add way to know if recipe was created with ocr
* Access to ocr-editor for ocr recipes
* Update Alembic revision
* Make the frontend build
* Fix scrolling offset bug
* Allow creation of recipes with custom settings
* Fix rebasing mistakes
* Add format_tsv_output test
* Exclude the tests data directory only
* Enforce camelCase for frontend functions
* Remove import of unused component
* Fix type and class initialization
* Add multi-language support
* Highlight words in mount
* Fix image ratio bug
* Better ocr creation page
* Revert awkward feature to scroll in Selection mode
* Rebasing alembic migrations sux
* Remove obsolete getShared function
* Add function docstring
* Move down ocr creation option
* Make toolbar icons more generic
* Show help at the bottom of the page
* move ocr types to own file
* Use template ref for the canvas
* Use i18n.tc to get strings directly
* Correct naming mistake
* Move Ocr editor to own directory
* Create Ocr Editor parts
* Safeguard recipe properties access
* Add loading frontend animation due to longer request time
* minor cleanup chores
Co-authored-by: Miroito <alban.vachette@gmail.com>
* add data-types required for login security
* implement user lockout checking at login
* cleanup legacy patterns
* expose passwords in test_user
* test user lockout after bad attempts
* test user service
* bump alembic version
* save increment to database
* add locked_at to datetime transformer on import
* do proper test cleanup
* implement scheduled task
* spelling
* document env variables
* implement context manager for session
* use context manager
* implement reset script
* cleanup generator
* run generator
* implement API endpoint for resetting locked users
* add button to reset all locked users
* add info when account is locked
* use ignore instead of expect-error
* fix type errors on event bus
* webhooks fields required for new implementation
* db migration
* wip: webhook query + tests and stub function
* ignore type checker error
* type and method cleanup
* datetime and time utc validator
* update testing code for utc scheduled time
* fix file cmp function call
* update version_number
* add support for translating "time" objects when restoring backup
* bump recipe-scrapers
* use specific import syntax
* generate frontend types
* utilize names exports
* use utc times
* add task to scheduler
* implement new scheduler functionality
* stub for type annotation
* implement meal-plan data getter
* add experimental banner
* add 'use-abbreviation' db column
* type generation
* add view and edit elements
* check for use_abbreviation to display
* fix: alembic version check
* test: add use_abbreviation prop tests
* add direction prop for icon position
* add support for require_all properties on cookbook
* update type annotations
* add and - or filter support
* update cookbook API
* generate types
* implement editor for additional options
* update version number
* migration: add public, tags, and tools
* generate frontend types
* add help icon
* start replacement for tool-tag-category selector
* add help icon utility
* use generator types
* add support for cookbook features
* add UI elements for cookbook features
* fix tests
* fix type error