* added normalization to foods and units
* changed search to reference new normalized fields
* fix tests
* added parsed food matching to backend
* prevent pagination from ordering when searching
* added extra fuzzy matching to sqlite ing matching
* added tests
* only apply search ordering when order_by is null
* enabled post-search fuzzy matching for postgres
* fixed postgres fuzzy search test
* idk why this is failing
* 🤦
* simplified frontend ing matching
and restored automatic unit creation
* tightened food fuzzy threshold
* change to rapidfuzz
* sped up fuzzy matching with process
* fixed units not matching by abbreviation
* fast return for exact matches
* replace db searching with pure fuzz
* added fuzzy normalization
* tightened unit fuzzy matching thresh
* cleaned up comments/var names
* ran matching logic through the dryer
* oops
* simplified order by application logic
* WIP: proof of concept
* basic meta tag injection
* add support for scraping public/private links
* make tests go brrrrr
* cleanup initialization
* rewrite build config
* remove recipe meta on frontend
* make type checker happy
* remove other deployment methods
* fix issue with JSON response on un-authenticated request
* docs updates
* update tivy scanner
* fix linter stuff
* change registry tag
* build fixes
* fix same mistake I always make
* fixed incorrect var ref
* added public recipe pagination route
* refactored frontend public/explore API
* fixed broken public cards
* hid context menu from cards when public
* fixed public app header
* fixed random recipe
* added public food, category, tag, and tool routes
* not sure why I thought that would work
* added public organizer/foods stores
* disabled clicking on tags/categories
* added public link to profile page
* linting
* force a 404 if the group slug is missing or invalid
* oops
* refactored to fit sidebar into explore
* fixed invalid logic for app header
* removed most sidebar options from public
* added backend routes for public cookbooks
* added explore cookbook pages/apis
* codegen
* added backend tests
* lint
* fixes v-for keys
* I do not understand but sure why not
---------
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
* updated base button group
* added kitchen timer
* added missing icon
* usability tweaks
* for for menu rendering over app bar
* clean up types
* fix for mp3 loading, maybe?
* spooky linter fixes
* for real this time
---------
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
* feat: improve readability of notes in ingredients list
Makes the notes in the ingredients list more readable by making them slightly opaque. This creates a better visual separation between the notes and the rest of the ingredient.
* Use server display if available
* Move note to newline and make quantity more distinct
* Use safeMarkdown for shopping list
* Use component
* Wrap unit in accent color
* Update RecipeIngredientListItem to set food in bold
* improved UI responsiveness and added image preview
* added global image cropper component
* added image cropper to last made dialog
* style tweaks
* added more specific text for creating event
* mopped up some slop
* renamed height and width vars
---------
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
* added support for group slugs
* modified frontend to use links with group slug
* fixed test refs
* unused import
---------
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
* refactored recipe image paths/service
* added routes for updating/fetching timeline images
* make generate
* added event image upload and rendering
* switched update to patch to preserve timestamp
* added tests
* tweaked order of requests
* always reload events when opening the timeline
* re-arranged elements to make them look nicer
* delete files when timeline event is deleted
* added support for SQL keywords IS, IN, LIKE, NOT
deprecated datetime workaround for "<> null"
updated frontend reference for "<> null" to "IS NOT NULL"
* tests
* refactored query filtering to leverage orm
* added CONTAINS ALL keyword
* tests
* fixed bug where "and" or "or" was in an attr name
* more tests
* linter fixes
* TIL this works
* extended query filter to accept nested tables
* decoupled timeline api from recipe slug
* modified frontend to use simplified events api
* fixed nested loop index ghosting
* updated existing tests
* gave mypy a snack
* added tests for nested queries
* fixed "last made" render error
* decoupled recipe timeline from dialog
* removed unused props
* tweaked recipe get_all to accept ids
* created group global timeline
added new timeline page to sidebar
reformatted the recipe timeline
added vertical option to recipe card mobile
* extracted timeline item into its own component
* fixed apploader centering
* added paginated scrolling to recipe timeline
* added sort direction config
fixed infinite scroll on dialog
fixed hasMore var not resetting during instantiation
* added sort direction to user preferences
* updated API docs with new query filter feature
* better error tracing
* fix for recipe not found response
* simplified recipe crud route for slug/id
added test for fetching by slug/id
* made query filter UUID validation clearer
* moved timeline menu option below shopping lists
---------
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
* expanded safe html tags and attrs
* removed style attr
* add note on sources of safe elements
---------
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
* fix webhooks not firing due to missing session
* disable webhook test button because it doesnt do anything
* fix background task administration not working at all
* fix error in test
* added color back to labels
* improved mobile view
refactored layout to use grid
allowed text wrapping on item labels
removed label overflow
added completion date on checked items
* sort checked items by last updated
* made checking an item off more responsive
* optimized moving checked items
removed unnecessary updateAll call
removed jitter when shopping list refreshes
* adds authentication method for users
* fix db migration with postgres
* tests for auth method
* update migration ids
* hide auth method on user creation form
* (docs): Added documentation for the new authentication method
* update migration
* add to auto-form instead of having hidden fields
* allow certain props to be updated on locked recipe
* pytest
* added "last_made" to hardcoded datetime fields
* refactored last made to its own route
* codegen/types
* updated pytest
* 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