Commit Graph

455 Commits

Author SHA1 Message Date
Sören
4b426ddf2f Remove all sqlalchemy lazy-loading from app (#2260)
* Remove some implicit lazy-loads from user serialization

* implement full backup restore across different database versions

* rework all custom getter dicts to not leak lazy loads

* remove some occurances of lazy-loading

* remove a lot of lazy loading from recipes

* add more eager loading
remove loading options from repository
remove raiseload for checking

* fix failing test

* do not apply loader options for paging counts

* try using selectinload a bit more instead of joinedload

* linter fixes
2023-03-24 08:27:26 -08:00
Hayden
97d9d10b1f New Crowdin updates (#2243)
* New translations en-US.json (Finnish)

* New translations en-US.json (Slovak)

* New translations en-US.json (French)

* New translations en-US.json (Spanish)

* New translations en-US.json (Czech)

* New translations en-US.json (Romanian)

* New translations en-US.json (Afrikaans)

* New translations en-US.json (Arabic)

* New translations en-US.json (Bulgarian)

* New translations en-US.json (Catalan)

* New translations en-US.json (Danish)

* New translations en-US.json (German)

* New translations en-US.json (Greek)

* New translations en-US.json (Hebrew)

* New translations en-US.json (Hungarian)

* New translations en-US.json (Italian)

* New translations en-US.json (Japanese)

* New translations en-US.json (Korean)

* New translations en-US.json (Lithuanian)

* New translations en-US.json (Dutch)

* New translations en-US.json (Norwegian)

* New translations en-US.json (Polish)

* New translations en-US.json (Portuguese)

* New translations en-US.json (Russian)

* New translations en-US.json (Slovenian)

* New translations en-US.json (Serbian (Cyrillic))

* New translations en-US.json (Swedish)

* New translations en-US.json (Turkish)

* New translations en-US.json (Ukrainian)

* New translations en-US.json (Chinese Simplified)

* New translations en-US.json (Chinese Traditional)

* New translations en-US.json (Vietnamese)

* New translations en-US.json (Portuguese, Brazilian)

* New translations en-US.json (English, United Kingdom)

* New translations en-US.json (French, Canada)

* New translations en-US.json (German)

* New translations en-US.json (Dutch)

* New translations en-US.json (German)

* New translations en-US.json (Turkish)

* New translations en-US.json (Portuguese)

* New translations en-US.json (Portuguese)

* New translations en-US.json (Polish)

* New translations en-US.json (Italian)

* New translations en-US.json (Ukrainian)

* New translations en-US.json (Romanian)

* New translations en-US.json (Romanian)

* New translations en-US.json (Romanian)

* New translations en-US.json (Romanian)

* New translations en-US.json (Romanian)

* New translations en-US.json (Romanian)

* New translations en-US.json (Romanian)

* New translations en-US.json (Romanian)

* New translations en-US.json (Ukrainian)

* New translations en-US.json (Hebrew)

* New translations en-US.json (Hebrew)

* New translations en-US.json (Hebrew)

* New translations en-US.json (Hebrew)

* New translations en-US.json (Hebrew)

* New translations en-US.json (Hebrew)

* New translations en-US.json (Hebrew)

* New translations en-US.json (Hebrew)

* New translations en-US.json (Hebrew)
2023-03-21 11:46:13 -08:00
Hayden
8d79773bf6 fix: ignore nightly and develop in version check (#2242) 2023-03-12 13:41:41 -08:00
Hayden
9650ba9b00 refator: reuse search page component (#2240)
* wip: fix recipe card section

* refactor basic search to share composable

* fix dialog results

* use search for cat/tag/tool pages

* update organizer to support name edits

* fix composable typing
2023-03-12 12:59:28 -08:00
Sören
ccb0b43cef feat: implement backup restoration from old db schemas (#2213)
* Remove some implicit lazy-loads from user serialization

* implement full backup restore across different database versions
2023-03-12 12:39:51 -08:00
Michael Genson
3118b0e423 feat: Migrate from Copy Me That (#2212)
* implemented copymethat migration

* added migration tree

* added translation support

* genericized example jpgs

* added test data

* fixed test archive

* switched recipe create to service
added test for timeline event creation

* linting

* lxml go brrr
2023-03-12 12:37:24 -08:00
Hayden
3ce8fa9492 New Crowdin updates (#2210)
* New translations en-US.json (Slovak)

* New translations en-US.json (Slovak)

* New translations en-US.json (Slovak)

* New translations en-US.json (Italian)

* New translations en-US.json (Italian)

* New translations en-US.json (Italian)

* New translations en-US.json (Italian)

* New translations en-US.json (Italian)

* New translations en-US.json (French)

* New translations en-US.json (French)

* New translations en-US.json (French, Canada)

* New translations en-US.json (French)

* New translations en-US.json (French)

* New translations en-US.json (French)

* New translations en-US.json (Italian)

* New translations en-US.json (Italian)

* New translations en-US.json (Italian)

* New translations en-US.json (Italian)

* New translations en-US.json (Ukrainian)

* New translations en-US.json (Italian)

* New translations en-US.json (French)

* New translations en-US.json (Ukrainian)

* New translations en-US.json (Greek)

* New translations en-US.json (Greek)

* New translations en-US.json (Finnish)

* New translations en-US.json (Finnish)

* New translations en-US.json (Danish)

* New translations en-US.json (Danish)

* New translations en-US.json (Czech)

* New translations en-US.json (Spanish)
2023-03-12 12:36:48 -08:00
Carter
7d9be67432 feat: LDAP Improvements and E2E testing (#2199)
* add option to enable starttls for ldap

* add integration test for ldap service

* document new, optional environment variable

* fix: support anonymous bind

* id and mail attributes in LDAP_USER_FILTER should be implied

* remove print statement
2023-03-12 12:36:32 -08:00
Carter
93eb2af087 feature: add password reset token endpoint to the admin panel (#2171)
* add password reset token endpoint to the admin panel

* add None check on token

* add localization message for passowrd reset link button
2023-03-12 12:33:36 -08:00
Hayden
1b26ca0cb3 New Crowdin updates (#2196)
* New translations en-US.json (Turkish)

* New translations en-US.json (Turkish)

* New translations en-US.json (Dutch)

* New translations en-US.json (Dutch)

* New translations en-US.json (Ukrainian)

* New translations en-US.json (Ukrainian)

* New translations en-US.json (Ukrainian)

* New translations en-US.json (Portuguese, Brazilian)
2023-03-04 10:26:02 -09:00
Hayden
85bc3a9b15 New Crowdin updates (#2191)
* New translations en-US.json (Danish)

* New translations en-US.json (German)

* New translations en-US.json (German)

* New translations en-US.json (Dutch)

* New translations en-US.json (Polish)

* New translations en-US.json (Turkish)

* New translations en-US.json (Dutch)

* New translations en-US.json (Polish)

* New translations en-US.json (Turkish)
2023-02-26 12:41:08 -09:00
Hayden
d3f893dec2 chore: auto-set-version-on-ci (#2188)
* setup __version__ on build

* make build clickable link

* fix else-if
2023-02-26 11:51:04 -09:00
Hayden
8b181ec28a New Crowdin updates (#2187)
* New translations en-US.json (Finnish)

* New translations en-US.json (Slovak)

* New translations en-US.json (French)

* New translations en-US.json (Spanish)

* New translations en-US.json (Czech)

* New translations en-US.json (Romanian)

* New translations en-US.json (Afrikaans)

* New translations en-US.json (Arabic)

* New translations en-US.json (Bulgarian)

* New translations en-US.json (Catalan)

* New translations en-US.json (Danish)

* New translations en-US.json (German)

* New translations en-US.json (German)

* New translations en-US.json (Greek)

* New translations en-US.json (Hebrew)

* New translations en-US.json (Hungarian)

* New translations en-US.json (Italian)

* New translations en-US.json (Japanese)

* New translations en-US.json (Korean)

* New translations en-US.json (Lithuanian)

* New translations en-US.json (Dutch)

* New translations en-US.json (Norwegian)

* New translations en-US.json (Polish)

* New translations en-US.json (Portuguese)

* New translations en-US.json (Russian)

* New translations en-US.json (Slovenian)

* New translations en-US.json (Serbian (Cyrillic))

* New translations en-US.json (Swedish)

* New translations en-US.json (Turkish)

* New translations en-US.json (Ukrainian)

* New translations en-US.json (Chinese Simplified)

* New translations en-US.json (Chinese Traditional)

* New translations en-US.json (Vietnamese)

* New translations en-US.json (Portuguese, Brazilian)

* New translations en-US.json (English, United Kingdom)

* New translations en-US.json (French, Canada)

* New translations en-US.json (Dutch)

* New translations en-US.json (Danish)

* New translations en-US.json (Romanian)

* New translations en-US.json (French)

* New translations en-US.json (Spanish)

* New translations en-US.json (Afrikaans)

* New translations en-US.json (Arabic)

* New translations en-US.json (Bulgarian)

* New translations en-US.json (Catalan)

* New translations en-US.json (Czech)

* New translations en-US.json (Greek)

* New translations en-US.json (Finnish)

* New translations en-US.json (Hebrew)

* New translations en-US.json (Hungarian)

* New translations en-US.json (Italian)

* New translations en-US.json (Japanese)

* New translations en-US.json (Korean)

* New translations en-US.json (Lithuanian)

* New translations en-US.json (Norwegian)

* New translations en-US.json (Polish)

* New translations en-US.json (Portuguese)

* New translations en-US.json (Russian)

* New translations en-US.json (Slovak)

* New translations en-US.json (Slovenian)

* New translations en-US.json (Serbian (Cyrillic))

* New translations en-US.json (Swedish)

* New translations en-US.json (Turkish)

* New translations en-US.json (Ukrainian)

* New translations en-US.json (Chinese Simplified)

* New translations en-US.json (Chinese Traditional)

* New translations en-US.json (Vietnamese)

* New translations en-US.json (Portuguese, Brazilian)

* New translations en-US.json (English, United Kingdom)

* New translations en-US.json (French, Canada)
2023-02-26 10:34:09 -09:00
Sören
8824aec066 fix: sequence numbers not updating after backup restore (#2179) 2023-02-26 10:28:09 -09:00
Sören
84d55eb920 fix: #2169 webhooks not firing (#2178)
* 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
2023-02-26 10:27:22 -09:00
Carter
2e6ad5da8e Feature: Add "Authentication Method" to allow existing users to sign in with LDAP (#2143)
* 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
2023-02-26 10:12:16 -09:00
Michael Genson
6418a10428 fix: misused update over patch in last_update call (#2168)
* fixed mealplan timeline event task
fixed indentation to only look at one group at a time
changed grumpy update to happy patch

* updated pytest to catch this error

* I don't know how this got past the pre-commit
2023-02-23 13:10:47 -09:00
Sören
9d35b0923a fix performance issues on /api/foods (#2163)
* fix performance issues on /api/foods

* fix comment

* actually apply query-options
2023-02-21 19:01:27 -09:00
Michael Genson
fd03d468d4 Fix: Allow Last Made to be Updated on Locked Recipes (#2140)
* 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
2023-02-21 18:59:22 -09:00
Michael Genson
a6c46a7420 Feature: Shopping List Label Section Improvements (#2090)
* 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
2023-02-21 18:58:41 -09:00
Michael Genson
fb830189d2 remembered how to count over 9 (#2156) 2023-02-20 21:51:58 -09:00
Michael Genson
5562effd66 feat: select ingredients to add to shopping List (#2136)
* added recipe ingredient override to backend

* pytest

* new dialog to filter recipe items added to list
2023-02-19 16:20:32 -09:00
Michael Genson
35124ea875 feat: Shopping List Item Pagination Route (#2145)
* added pagination route for list items

* pytest
2023-02-19 15:48:19 -09:00
Michael Genson
c6d53fe8b1 added validator to trim base url trailing slash (#2142) 2023-02-19 15:46:52 -09:00
Michael Genson
d639bdcfe9 fix: check if the temp dir exists before deleting it (#2141) 2023-02-19 15:46:17 -09:00
Michael Genson
05e2566c35 fix: recipe scraper image cleaning (#2139)
* updated image cleaner
enabled image cleaner
added case for nested image dicts

* refactored image cleaner to return a list of urls
2023-02-19 15:43:52 -09:00
Sören
6a5f9d7f6b feat: diacritic-insensitive search (#2132)
* add normalized columns and use them for search

* add migration to fill all normalized columns
2023-02-19 15:40:18 -09:00
Hayden
f241228b94 New Crowdin updates (#2127)
* New translations en-US.json (Ukrainian)

* New translations en-US.json (Ukrainian)

* New translations en-US.json (German)

* New translations en-US.json (Dutch)

* New translations en-US.json (Dutch)

* New translations en-US.json (Finnish)

* New translations en-US.json (Hungarian)

* New translations en-US.json (German)

* New translations en-US.json (Hungarian)

* New translations en-US.json (Dutch)
2023-02-19 15:33:25 -09:00
Hayden
4d8dc7a63c New Crowdin updates (#2120)
* New translations en-US.json (Finnish)

* New translations en-US.json (Slovak)

* New translations en-US.json (French)

* New translations en-US.json (Spanish)

* New translations en-US.json (Czech)

* New translations en-US.json (Romanian)

* New translations en-US.json (Afrikaans)

* New translations en-US.json (Arabic)

* New translations en-US.json (Bulgarian)

* New translations en-US.json (Catalan)

* New translations en-US.json (Danish)

* New translations en-US.json (German)

* New translations en-US.json (Greek)

* New translations en-US.json (Hebrew)

* New translations en-US.json (Hungarian)

* New translations en-US.json (Italian)

* New translations en-US.json (Japanese)

* New translations en-US.json (Korean)

* New translations en-US.json (Lithuanian)

* New translations en-US.json (Dutch)

* New translations en-US.json (Norwegian)

* New translations en-US.json (Polish)

* New translations en-US.json (Portuguese)

* New translations en-US.json (Russian)

* New translations en-US.json (Slovenian)

* New translations en-US.json (Serbian (Cyrillic))

* New translations en-US.json (Swedish)

* New translations en-US.json (Turkish)

* New translations en-US.json (Ukrainian)

* New translations en-US.json (Chinese Simplified)

* New translations en-US.json (Chinese Traditional)

* New translations en-US.json (Vietnamese)

* New translations en-US.json (Portuguese, Brazilian)

* New translations en-US.json (English, United Kingdom)

* New translations en-US.json (French, Canada)

* New translations en-US.json (Dutch)

* New translations en-US.json (Turkish)

* New translations en-US.json (Swedish)

* New translations en-US.json (German)

* New translations en-US.json (German)

* New translations en-US.json (German)

* New translations en-US.json (German)

* New translations en-US.json (German)
2023-02-12 11:16:39 -09:00
Hayden
71f8c1066a feat: server side search (#2112) (#2117)
* 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>
2023-02-11 21:26:10 -09:00
Sören
7d4a379f0d feat: improve database indexing (#2104)
* 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>
2023-02-11 10:40:53 -09:00
Carter
da60e56982 fix: user login and creation with LDAP (#2107)
* Corrected if statement to check if a results was returned by the LDAP search. And decoded the user_attributes from binary data to string

* removed trailing spaces

* Revert asserts in LDAP unit test back

Since an empty tuple is still a result, an user is created and the result should not be false.

* Simplified code

* Extended the LDAP implementation

* fix ldap authentication and user creation

* modified docs to include new LDAP environment variables

* update tests and linting

* add libldap-2.4-2 as runtime dependency for the api

---------

Co-authored-by: Erik Landkroon <eriklandkroon@gmail.com>
2023-02-11 10:16:33 -09:00
Michael Genson
5f7ac92c96 feat: timeline event for mealplans (#2050)
* 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
2023-02-11 10:08:53 -09:00
Hayden
9e77a9f367 prs-fleshgolem-2070: feat: sqlalchemy 2.0 (#2096)
* upgrade sqlalchemy to 2.0

* rewrite all db models to sqla 2.0 mapping api

* fix some importing and typing weirdness

* fix types of a lot of nullable columns

* remove get_ref methods

* fix issues found by tests

* rewrite all queries in repository_recipe to 2.0 style

* rewrite all repository queries to 2.0 api

* rewrite all remaining queries to 2.0 api

* remove now-unneeded __allow_unmapped__ flag

* remove and fix some unneeded cases of "# type: ignore"

* fix formatting

* bump black version

* run black

* can this please be the last one. okay. just. okay.

* fix repository errors

* remove return

* drop open API validator

---------

Co-authored-by: Sören Busch <fleshgolem@gmx.net>
2023-02-06 18:43:12 -09:00
Hayden
91cd00976a New Crowdin updates (#2097)
* New translations en-US.json (Ukrainian)

* New translations en-US.json (Ukrainian)
2023-02-06 18:21:01 -09:00
Sören
a35bc71e53 Fix routes getting listed twice in API documentation (#2079)
* remove duplicate tags from all routes after mounting

* fix missing import
2023-02-05 09:53:19 -09:00
Hayden
f3a26f864d chore: update linters (#2095)
* update deps

* ruff auto-fixes

* refactor match statements where possible
2023-02-05 09:51:44 -09:00
Hayden
d5efaad2c3 New Crowdin updates (#2075)
* New translations en-US.json (German)

* New translations en-US.json (Dutch)

* New translations en-US.json (Dutch)

* New translations en-US.json (Turkish)

* New translations en-US.json (Turkish)

* New translations en-US.json (German)

* New translations en-US.json (German)

* New translations en-US.json (Dutch)

* New translations en-US.json (German)

* New translations en-US.json (Ukrainian)

* New translations en-US.json (German)

* New translations en-US.json (German)

* New translations en-US.json (German)

* New translations en-US.json (German)

* New translations en-US.json (German)

* New translations en-US.json (French)

* New translations en-US.json (French)

* New translations en-US.json (French)

* New translations en-US.json (Lithuanian)

* New translations en-US.json (Lithuanian)

* New translations en-US.json (Lithuanian)

* New translations en-US.json (French, Canada)

* New translations en-US.json (French)

* New translations en-US.json (German)

* New translations en-US.json (Slovak)

* New translations en-US.json (Ukrainian)

* New translations en-US.json (Ukrainian)

* New translations en-US.json (Ukrainian)

* New translations en-US.json (Italian)

* New translations en-US.json (Italian)

* New translations en-US.json (German)

* New translations en-US.json (German)

* New translations en-US.json (German)

* New translations en-US.json (French)

* New translations en-US.json (Russian)

* New translations en-US.json (Russian)

* New translations en-US.json (Russian)

* New translations en-US.json (Russian)

* New translations en-US.json (French)

* New translations en-US.json (French)

* New translations en-US.json (German)
2023-02-05 09:42:55 -09:00
Michael Genson
4fc4ba934d fix: remove network calls from tests (#2055)
* abstracted scraper get_html method

* applied mock to all scrapers

* fixed incorrect var reference
2023-02-05 09:14:57 -09:00
Hayden
7c766af848 New Crowdin updates (#2074)
* New translations en-US.json (Finnish)

* New translations en-US.json (Slovak)

* New translations en-US.json (Slovak)

* New translations en-US.json (French)

* New translations en-US.json (Spanish)

* New translations en-US.json (Czech)

* New translations en-US.json (Romanian)

* New translations en-US.json (Romanian)

* New translations en-US.json (French)

* New translations en-US.json (Spanish)

* New translations en-US.json (Afrikaans)

* New translations en-US.json (Afrikaans)

* New translations en-US.json (Arabic)

* New translations en-US.json (Arabic)

* New translations en-US.json (Bulgarian)

* New translations en-US.json (Bulgarian)

* New translations en-US.json (Catalan)

* New translations en-US.json (Catalan)

* New translations en-US.json (Czech)

* New translations en-US.json (Danish)

* New translations en-US.json (Danish)

* New translations en-US.json (German)

* New translations en-US.json (German)

* New translations en-US.json (Greek)

* New translations en-US.json (Greek)

* New translations en-US.json (Finnish)

* New translations en-US.json (Hebrew)

* New translations en-US.json (Hebrew)

* New translations en-US.json (Hungarian)

* New translations en-US.json (Hungarian)

* New translations en-US.json (Italian)

* New translations en-US.json (Italian)

* New translations en-US.json (Japanese)

* New translations en-US.json (Japanese)

* New translations en-US.json (Korean)

* New translations en-US.json (Korean)

* New translations en-US.json (Lithuanian)

* New translations en-US.json (Lithuanian)

* New translations en-US.json (Dutch)

* New translations en-US.json (Dutch)

* New translations en-US.json (Norwegian)

* New translations en-US.json (Norwegian)

* New translations en-US.json (Polish)

* New translations en-US.json (Polish)

* New translations en-US.json (Portuguese)

* New translations en-US.json (Portuguese)

* New translations en-US.json (Russian)

* New translations en-US.json (Russian)

* New translations en-US.json (Slovenian)

* New translations en-US.json (Slovenian)

* New translations en-US.json (Serbian (Cyrillic))

* New translations en-US.json (Serbian (Cyrillic))

* New translations en-US.json (Swedish)

* New translations en-US.json (Swedish)

* New translations en-US.json (Turkish)

* New translations en-US.json (Turkish)

* New translations en-US.json (Ukrainian)

* New translations en-US.json (Ukrainian)

* New translations en-US.json (Chinese Simplified)

* New translations en-US.json (Chinese Simplified)

* New translations en-US.json (Chinese Traditional)

* New translations en-US.json (Chinese Traditional)

* New translations en-US.json (Vietnamese)

* New translations en-US.json (Vietnamese)

* New translations en-US.json (Portuguese, Brazilian)

* New translations en-US.json (Portuguese, Brazilian)

* New translations en-US.json (English, United Kingdom)

* New translations en-US.json (English, United Kingdom)

* New translations en-US.json (French, Canada)

* New translations en-US.json (French, Canada)
2023-01-28 16:57:34 -09:00
Hayden
530f7c9d6b logging improvements (#2073)
* Scheduled tasks log to Debug, not Info

* Add LOG_LEVEL config to .env

* Update some other log levels and fix typos

* fix logger initializer

---------

Co-authored-by: Jakob Rubin <647846+Grygon@users.noreply.github.com>
2023-01-28 16:54:44 -09:00
sephrat
f8b8680b45 Localize hard-coded texts (#2044)
* 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>
2023-01-28 16:39:51 -09:00
Hayden
9dbba60379 New Crowdin updates (#2064)
* New translations en-US.json (Spanish)

* New translations en-US.json (Spanish)

* New translations en-US.json (Czech)

* New translations en-US.json (Czech)

* New translations en-US.json (Czech)

* New translations en-US.json (Czech)

* New translations en-US.json (Czech)
2023-01-28 15:51:02 -09:00
Sören
49bd420c10 fix: all recipes performance regressions (#2062)
* Move recipe validations from RecipeSummary to Recipe

* fix RepositoryRecipes loading recipes with ingredients even when load_food is False

* Add eager loading of ingredient units

* fix trying to instantiate PaginationBase with concrete type not being valid for mypy

* fix linting issue
2023-01-28 15:50:26 -09:00
sephrat
8cac921272 fix: Support special characters in seed data (#2048) 2023-01-28 15:46:48 -09:00
Michael Genson
617cc1fdfb Refactor Shopping List API (#2021)
* tidied up shopping list item models
redefined recipe refs and updated models
added calculated display attribute to unify shopping list item rendering
added validation to use a food's label if an item's label is null

* fixed schema reference

* refactored shopping list item service
route all operations through one central method to account for edgecases
return item collections for all operations to account for merging
consolidate recipe items before sending them to the shopping list

* made fractions prettier

* replaced redundant display text util

* fixed edgecase for zero quantity items on a recipe

* fix for pre-merging recipe ingredients

* fixed edgecase for merging create_items together

* fixed bug with merged updated items creating dupes

* added test for self-removing recipe ref

* update items are now merged w/ existing items

* refactored service to make it easier to read

* added a lot of tests

* made it so checked items are never merged

* fixed bug with dragging + re-ordering

* fix for postgres cascade issue

* added prevalidator to recipe ref to avoid db error
2023-01-28 15:45:02 -09:00
Sören
3415a9c310 Convert scraper to use async (#1915)
* add httpx depedency for async http requests

* rework scraper strategies to download recipe html asynchronously

* rework recipe_data_service to download recipe images asynchronously

* fix recipe_parser test, so it can use async results

* fix bulk import so that it also works with async scraper

* fix broken recipe_parser tests

* Fix issues found by scanners

* Add additional checks for ingredient and instruction count in test_create_by_url

* Revert changes in test recipe_data
Since we are checking ingredients and instructions in test_create_url now, these would fail with the stored html of recipe data

* Add explicit type annotation in recipe_data_service.largest_content_len

* Fix typo in annotation
2023-01-28 15:43:27 -09:00
Hayden
7275dd2696 New Crowdin updates (#2038)
* New translations en-US.json (Slovak)

* New translations en-US.json (Slovak)

* New translations en-US.json (Slovak)

* New translations en-US.json (Slovak)

* New translations en-US.json (Slovak)

* New translations en-US.json (Slovak)

* New translations en-US.json (Slovak)

* New translations en-US.json (Slovak)

* New translations en-US.json (Slovak)

* New translations en-US.json (Slovak)

* New translations en-US.json (French)

* New translations en-US.json (French)

* New translations en-US.json (Finnish)

* New translations en-US.json (French)

* New translations en-US.json (French)

* New translations en-US.json (Portuguese)

* New translations en-US.json (French)

* New translations en-US.json (French)

* New translations en-US.json (Finnish)

* New translations en-US.json (Finnish)
2023-01-24 13:16:42 -09:00
Hayden
c8be922111 New Crowdin updates (#2016)
* New translations en-US.json (Lithuanian)

* New translations en-US.json (Lithuanian)

* New translations en-US.json (Lithuanian)

* New translations en-US.json (Finnish)

* New translations en-US.json (Bulgarian)

* New translations en-US.json (Finnish)

* New translations en-US.json (Czech)

* New translations en-US.json (Czech)

* New translations en-US.json (Czech)

* New translations en-US.json (Czech)

* New translations en-US.json (Czech)

* New translations en-US.json (Italian)

* New translations en-US.json (Italian)

* New translations en-US.json (Finnish)

* New translations en-US.json (Finnish)

* New translations en-US.json (Italian)

* New translations en-US.json (Italian)

* New translations en-US.json (Finnish)

* New translations en-US.json (Italian)

* New translations en-US.json (Lithuanian)

* New translations en-US.json (Hungarian)

* New translations en-US.json (Hungarian)

* New translations en-US.json (Hungarian)

* New translations en-US.json (Hungarian)
2023-01-14 09:33:14 -09:00
Sören
0cd892059b Fix/issue#2003 - Unable to remove all instructions/ingredients from a recipe (#2008)
* Fix issue where recipes could not have all their ingredients/instructions removed

* Add test for removing all instructions and ingredients from a recipe
2023-01-08 10:46:51 -09:00