* 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
* feat(lang): localize some views
* feat(lang): an attempt at localizing vuetify (WIP)
* feat(lang): localized some more screens
* feat(lang): localized some more screens again
* feat(lang): hack to localize vuetify
* feat(lang): localize data management pages
* fix linting errors
---------
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
* refactored event dispatching
added EventDocumentType and EventOperation to Event
added event listeners to bulk recipe changes
overhauled shopping list item events to be more useful
modified shopping list item repo to return more information
* added internal documentation for event types
* renamed message_types.py to event_types.py
* added unique event id and fixed instantiation
* generalized event listeners and publishers
moved apprise publisher to new apprise event listener
fixed duplicate message bug with apprise publisher
* added JWT field for user-specified integration id
* removed obselete test notification route
* tuned up existing notification tests
* added dependency to get integration_id from jwt
* added base crud controller to facilitate events
* simplified event publishing
* temporarily fixed test notification
* fix typing on auth context
* extract user password strength meter
* fix broken useToggle method
* extend form to accept arguments for validators
* enforce password length on update
* fix user password change form
* Moves dependencies directly to controllers
* Reduces use of @cached_property - (I have a suspicion that this is a factor in memory usage)
* reduce duplicate ways to access the same property on a controller.
rewrite get_all routes to use a pagination pattern to allow for better implementations of search, filter, and sorting on the frontend or by any client without fetching all the data. Additionally we added a CI check for running the Nuxt built to confirm that no TS errors were present. Finally, I had to remove the header support for the Shopping lists as the browser caching based off last_updated header was not allowing it to read recent updates due to how we're handling the updated_at property in the database with nested fields. This will have to be looked at in the future to reimplement. I'm unsure how many other routes have a similar issue.
Co-authored-by: Hayden <64056131+hay-kot@users.noreply.github.com>
refactored signup flow for entire registration process. Utilized seed data option for optional seeding of Foods, Units, and Labels. Localized registration page.
* use locale to set language header
* rewrite i18n provider and drop dependency
* rename file
* rename CrudMixin to HttpRepo
* refactor: code-cleanup
* add crowdin source
* remove unused translations
* grab translations from dev branch
* add translation support for foods, units, and labels
* remove rich import
* fix disable button
* add backend env for restricting registration
* update state management
* add allow_signup to app info
* move allow_signup to backend only
* cleanup docker-compose
* potential darkmode fix
* fix missing variable
* add banner on login page
* use random bools for tests
* fix initial state bug
* fix state reset
* update naming
* refactor tests to use shared structure
* shorten names
* add tools test case
* refactor to support multi-tenant
* set group_id on creation
* initial refactor for multitenant tags/cats
* spelling
* additional test case for same valued resources
* fix recipe update tests
* apply indexes to foreign keys
* fix performance regressions
* handle unknown exception
* utility decorator for function debugging
* migrate recipe_id to UUID
* GUID for recipes
* remove unused import
* move image functions into package
* move utilities to packages dir
* update import
* linter
* image image and asset routes
* update assets and images to use UUIDs
* fix migration base
* image asset test coverage
* use ids for categories and tag crud functions
* refactor recipe organizer test suite to reduce duplication
* add uuid serlization utility
* organizer base router
* slug routes testing and fixes
* fix postgres error
* adopt UUIDs
* move tags, categories, and tools under "organizers" umbrella
* update composite label
* generate ts types
* fix import error
* update frontend types
* fix type errors
* fix postgres errors
* fix#978
* add null check for title validation
* add note in docs on multi-tenancy
* add default assets for user profile
* add recipe avatar
* change user_id to UUID
* add profile image upload
* setup image cache keys
* cleanup tests and add image tests
* purge user data on delete
* new user repository tests
* add user_id validator for int -> UUID conversion
* delete depreciated route
* force set content type
* refactor tests to use temp directory
* validate parent exists before createing
* set user_id to correct type
* update instruction id
* reset primary key on migration
* fix(backend): 🐛 Fix favorite assignment on backend
* fix(frontend): 🐛 fix printer button on recipe page
* style(frontend): 🚸 add user feadback on copy of recipe link
* fix(frontend): 🐛 Fix enableLandscape incorrect bindings to remove duplicate values
* feat(frontend): ✨ add ingredient copy button for markdown list -[ ] format
* feat(frontend): ✨ add remove prefix button to bulk entry
* fix(frontend): 🐛 disable random button when no recipes are present
* fix(frontend): ✨ fix .zip download error
* fix(frontend): 🚸 close image dialog on upload/get
* fix(frontend): 🐛 fix assignment on creation for categories and tags
* feat(frontend): ✨ Open editor on creation / fix edit button on main screen
* fix(frontend): 🐛 fix false negative regex match for urls on creationg page
* feat(frontend): 🚸 provide better user feadback when recipe exists
* feat(frontend): ✨ lock bulk importer on submit
* remove zip from navigation
* fix(frontend): ✨ rerender recipes on delete
Co-authored-by: Hayden K <hay-kot@pm.me>
* refactor(backend): ♻️ cleanup duplicate code in http services
* refactor(backend): ♻️ refactor database away from singleton design
removed the database single and instead injected the session into a new Database class that is created during each request life-cycle. Now sessions no longer need to be passed into each method on the database
All tests pass, but there are likely some hidden breaking changes that were not discovered.
* fix venv
* disable venv cache
* fix install script
* bump poetry version
* postgres fixes
* revert install
* fix db initialization for postgres
* add postgres to docker
* refactor(backend): ♻️ cleanup unused and duplicate code in http services
* refactor(backend): remove sessions from arguments
* refactor(backend): ♻️ convert units and ingredients to use http service class
* test(backend): ✅ add unit and food tests
* lint
* update tags
* re-enable cache
* fix missing fraction in db
* fix lint
Co-authored-by: hay-kot <hay-kot@pm.me>
* Enhance security and safety around user update API
- Prevent a regular user from promoting themself to admin
- Prevent an admin from demoting themself
- Refactor token fixture to admin + regular user tokens
* Restrict user CRUD API to admins
* Secure admin API routes
* Refactor APIrouter into Admin/UserAPIRouter
* Secure theme routes
* Make 'all recipes' routes public
* Secure favorite routes
* Remove redundant checks
* Fix public routes mistakenly flagged user routes
* Make webhooks changeable only by admin
* Allow users to create categories and tags
* Address lint issues
* Fix asset link
* remove unused var
* fix no meal-plan returned
* cleanup redundant code
* Fix dates off in UI
* quick set dark/light mode
* user image fixes
Co-authored-by: hay-kot <hay-kot@pm.me>
* lazy load cards
* shopping list recipe search bug
* admin layout fluid
* site loader
* username support
* mobile tabs
* set username at signup
* update user tests
* patch bug on shopping list
* public mealplan links
* support link (I'm a monster)
* icon only on mobile
* padding
Co-authored-by: hay-kot <hay-kot@pm.me>
* additional server events
* sort 'recent recipes' by updated
* remove duplicate code
* fixes#396
* set color
* consolidate tag/category pages
* set colors
* list unorganized recipes
* cleanup old code
* remove flash message, switch to global snackbar
* cancel to close
* cleanup
Co-authored-by: hay-kot <hay-kot@pm.me>