Compare commits

..

1715 Commits
1.0.0 ... 1.4.2

Author SHA1 Message Date
vabene1111
16c0189b80 Merge branch 'develop' 2022-09-23 17:00:11 +02:00
vabene1111
36c30f9e11 fixed print from card when recipe is not open 2022-09-23 16:55:25 +02:00
vabene1111
12a8582a9a fixed importer and copy recipe 2022-09-23 16:43:22 +02:00
vabene1111
13b91e5b91 improved swiping behavior on shopping list 2022-09-23 16:27:16 +02:00
vabene1111
d02b253242 fixed search settings not working with sqlite DB 2022-09-23 16:16:44 +02:00
henrique roberto lino
16528c4c89 Translated using Weblate (Portuguese)
Currently translated at 10.4% (48 of 460 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pt/
2022-09-23 02:33:11 +00:00
henrique roberto lino
6442e174b3 Translated using Weblate (Portuguese (Brazil))
Currently translated at 35.0% (161 of 460 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pt_BR/
2022-09-23 02:33:11 +00:00
vabene1111
fd325c1797 Merge branch 'develop' 2022-09-21 20:17:08 +02:00
vabene1111
12491d1302 changed gunicorn default settings 2022-09-21 20:17:00 +02:00
vabene1111
b7a4613310 Merge pull request #2052 from Szeraax/patch-1
Update boot.sh
2022-09-21 20:16:25 +02:00
Szeraax
39f5fca89b Update boot.sh
Set default value to 1 if null or unset for gunicorn workers/threads.
2022-09-21 11:06:55 -06:00
vabene1111
2902262503 Merge branch 'develop' 2022-09-21 17:05:17 +02:00
vabene1111
b49393357a fixed tests 2022-09-21 16:54:41 +02:00
vabene1111
cc1a69eac0 fixed cache key uniqueness even in tests 2022-09-21 16:28:54 +02:00
vabene1111
13d498658c fixed DB setting 2022-09-19 07:34:26 +02:00
vabene1111
cad93b2dd1 equal button styling in editor 2022-09-19 07:32:51 +02:00
vabene1111
f0b8bac221 improved loading animation 2022-09-19 07:31:57 +02:00
vabene1111
13ef843edb fixed sort dropdown visibility 2022-09-19 07:28:20 +02:00
vabene1111
902ef3cd1e downgrade django to fix DRF 2022-09-19 07:13:22 +02:00
vabene1111
0b69bcddcc downgrade django to fix DRF 2022-09-19 07:13:09 +02:00
vabene1111
9089fc7ad3 fixed admin userspace search 2022-09-17 08:49:00 +02:00
vabene1111
6d866ae62b fixed keyword serialization 2022-09-17 08:43:18 +02:00
vabene1111
9fa82c2ddb something broke with md, dont want to fix right now 2022-09-17 08:43:10 +02:00
vabene1111
0ca29cd677 small visual tweaks to search page 2022-09-17 08:06:38 +02:00
vabene1111
54c9e200a0 Merge pull request #2044 from ambroisie/fix/markdown_md_globals_deprecated
Fix 'markdown' 3.4 version incompatibility
2022-09-17 07:14:03 +02:00
vabene1111
fc67525dcb Merge pull request #1969 from TandoorRecipes/dependabot/pip/markdown-3.4.1
Bump markdown from 3.3.7 to 3.4.1
2022-09-17 07:13:54 +02:00
Bruno BELANYI
37e292cab9 Fix 'markdown' 3.4 version incompatibility 2022-09-16 19:11:52 +02:00
vabene1111
e391abd23d moved annotation to default query manager 2022-09-16 18:18:59 +02:00
vabene1111
947986277a fixed recipe detail query 2022-09-16 18:15:05 +02:00
vabene1111
b2a10f269c permission and search preference caching 2022-09-16 14:35:35 +02:00
vabene1111
dc076d25d6 improved hash generation time 2022-09-16 13:31:00 +02:00
vabene1111
845408244b optimized recipe search query annotation performance 2022-09-16 13:24:57 +02:00
vabene1111
e06c82297d added loading animation to main search page 2022-09-15 20:53:22 +02:00
vabene1111
459be74a7c changed local DB setting 2022-09-15 19:05:46 +02:00
vabene1111
37e81275b5 align dependencies with oauth toolkit 2022-09-15 18:37:15 +02:00
vabene1111
8417b0ec3f Merge branch 'develop' of https://github.com/vabene1111/recipes into develop
# Conflicts:
#	recipes/settings.py
2022-09-15 18:31:46 +02:00
vabene1111
7d834ee088 debug toobar stuff 2022-09-15 18:31:30 +02:00
vabene1111
eb119b7443 remove "favorite" as default sort order due to performacne issues 2022-09-15 18:31:22 +02:00
vabene1111
cc342cbae3 add community contributed to HA docs and link to alexbelgium directly on top 2022-09-12 20:06:12 +02:00
vabene1111
75ae26fd28 Merge pull request #2032 from alexbelgium/develop
Home Assistant documentation
2022-09-12 20:00:31 +02:00
vabene1111
94f58f4608 Merge pull request #2029 from TandoorRecipes/dependabot/pip/django-4.1.1
Bump django from 4.0.7 to 4.1.1
2022-09-12 19:59:37 +02:00
vabene1111
5478a8d49a Merge pull request #2036 from TandoorRecipes/dependabot/pip/recipe-scrapers-14.14.0
Bump recipe-scrapers from 14.11.0 to 14.14.0
2022-09-12 19:59:26 +02:00
dependabot[bot]
23180622e8 Bump django from 4.0.7 to 4.1.1
Bumps [django](https://github.com/django/django) from 4.0.7 to 4.1.1.
- [Release notes](https://github.com/django/django/releases)
- [Commits](https://github.com/django/django/commits)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-12 15:59:22 +00:00
dependabot[bot]
62187fbbdf Bump recipe-scrapers from 14.11.0 to 14.14.0
Bumps [recipe-scrapers](https://github.com/hhursev/recipe-scrapers) from 14.11.0 to 14.14.0.
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/14.11.0...14.14.0)

---
updated-dependencies:
- dependency-name: recipe-scrapers
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-12 15:59:09 +00:00
vabene1111
bd6b04f95e Merge branch 'develop' of https://github.com/vabene1111/recipes into develop 2022-09-12 17:58:22 +02:00
vabene1111
b315d6e171 adding debug toolbar 2022-09-12 17:58:20 +02:00
Alexandre
35bb3c9eb1 Add updates and backup instructions 2022-09-10 22:33:06 +02:00
Noé Feutry
84e7850e91 Translated using Weblate (French)
Currently translated at 85.2% (392 of 460 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/
2022-09-10 19:33:01 +00:00
David Schenk
4b40d75d1d Translated using Weblate (German)
Currently translated at 99.6% (522 of 524 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/
2022-09-10 19:33:01 +00:00
Alexandre
5423019a14 Add self promotion 2022-09-10 11:57:27 +02:00
Alexandre
e8c5c610b7 Improve layout 2022-09-10 11:54:21 +02:00
Alexandre
3f0cef59b8 Create home assistant install instructions 2022-09-10 11:53:56 +02:00
Alexandre
867c3595ff Merge branch 'TandoorRecipes:develop' into develop 2022-09-10 10:51:58 +02:00
vabene1111
631dd58c1f fixed share link guest user error message 2022-09-09 18:28:01 +02:00
vabene1111
ba235b26b7 fixed make header not removing food/unit/amount 2022-09-09 18:18:29 +02:00
dependabot[bot]
e54e850241 Bump markdown from 3.3.7 to 3.4.1
Bumps [markdown](https://github.com/Python-Markdown/markdown) from 3.3.7 to 3.4.1.
- [Release notes](https://github.com/Python-Markdown/markdown/releases)
- [Commits](https://github.com/Python-Markdown/markdown/compare/3.3.7...3.4.1)

---
updated-dependencies:
- dependency-name: markdown
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-09 16:09:40 +00:00
vabene1111
40c85c512c Merge pull request #1968 from TandoorRecipes/dependabot/pip/pillow-9.2.0
Bump pillow from 9.1.1 to 9.2.0
2022-09-09 18:09:02 +02:00
vabene1111
ca5eb7b2b6 Merge pull request #1984 from andyjayne/fix-nl-ingredients
fix: ingredient parsing for non-latin languages
2022-09-09 18:07:55 +02:00
dependabot[bot]
574a6ab5f4 Bump pillow from 9.1.1 to 9.2.0
Bumps [pillow](https://github.com/python-pillow/Pillow) from 9.1.1 to 9.2.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/9.1.1...9.2.0)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-09 16:06:44 +00:00
vabene1111
39070d32bd Merge pull request #1986 from CameronJGrant/develop
Solves #1830 (Split times over 60 min into hours and minutes)
2022-09-09 18:06:34 +02:00
vabene1111
9aa3d2d87a Merge pull request #2013 from nough/develop
Update documentation on external recipes
2022-09-09 18:05:29 +02:00
vabene1111
02926516b9 Merge pull request #2025 from TandoorRecipes/dependabot/pip/python-dotenv-0.21.0
Bump python-dotenv from 0.20.0 to 0.21.0
2022-09-09 18:05:18 +02:00
dependabot[bot]
215f561623 Bump python-dotenv from 0.20.0 to 0.21.0
Bumps [python-dotenv](https://github.com/theskumar/python-dotenv) from 0.20.0 to 0.21.0.
- [Release notes](https://github.com/theskumar/python-dotenv/releases)
- [Changelog](https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md)
- [Commits](https://github.com/theskumar/python-dotenv/compare/v0.20.0...v0.21.0)

---
updated-dependencies:
- dependency-name: python-dotenv
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-09 16:04:58 +00:00
vabene1111
e2c2f5d757 Merge pull request #2017 from TandoorRecipes/dependabot/pip/drf-writable-nested-0.7.0
Bump drf-writable-nested from 0.6.4 to 0.7.0
2022-09-09 18:04:33 +02:00
vabene1111
d887405ab3 Merge pull request #2018 from TandoorRecipes/dependabot/npm_and_yarn/vue/typescript-4.8.2
Bump typescript from 4.7.2 to 4.8.2 in /vue
2022-09-09 18:04:29 +02:00
vabene1111
00deb75195 Merge pull request #2019 from TandoorRecipes/dependabot/npm_and_yarn/vue/core-js-3.25.0
Bump core-js from 3.22.7 to 3.25.0 in /vue
2022-09-09 18:04:21 +02:00
Tomasz Klimczak
b228b0f42a Translated using Weblate (Polish)
Currently translated at 100.0% (460 of 460 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pl/
2022-09-05 21:32:56 +00:00
Tomasz Klimczak
3d5ff23433 Translated using Weblate (Polish)
Currently translated at 99.3% (457 of 460 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pl/
2022-09-03 23:32:55 +00:00
Alexandre
1a24f34499 Create homeassistant.md 2022-09-03 18:59:14 +02:00
1k2
8459b40743 Translated using Weblate (Dutch)
Currently translated at 99.3% (457 of 460 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/nl/
2022-09-01 20:32:55 +00:00
1k2
75cb5d2d4c Translated using Weblate (Dutch)
Currently translated at 99.4% (521 of 524 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/nl/
2022-09-01 20:32:53 +00:00
dependabot[bot]
bd1b40dd94 Bump core-js from 3.22.7 to 3.25.0 in /vue
Bumps [core-js](https://github.com/zloirock/core-js) from 3.22.7 to 3.25.0.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.22.7...v3.25.0)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-01 00:37:12 +00:00
dependabot[bot]
95d4bfb2bd Bump typescript from 4.7.2 to 4.8.2 in /vue
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.7.2 to 4.8.2.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.7.2...v4.8.2)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-01 00:34:33 +00:00
dependabot[bot]
23caac9d09 Bump drf-writable-nested from 0.6.4 to 0.7.0
Bumps [drf-writable-nested](https://github.com/beda-software/drf-writable-nested) from 0.6.4 to 0.7.0.
- [Release notes](https://github.com/beda-software/drf-writable-nested/releases)
- [Changelog](https://github.com/beda-software/drf-writable-nested/blob/master/CHANGELOG.md)
- [Commits](https://github.com/beda-software/drf-writable-nested/compare/v0.6.4...v0.7.0)

---
updated-dependencies:
- dependency-name: drf-writable-nested
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-01 00:15:01 +00:00
nough
ece4f6e32d Update updating.md 2022-08-28 20:52:52 +01:00
nough
5e7d1ba827 Update updating.md
remove outline of docker update batch script - it wasn't ready and I committed it when I didn't understand how github branches work (I still don't, really).
2022-08-28 20:51:26 +01:00
nough
a88214eea6 Update external_recipes.md
fixed my mistakes
2022-08-27 22:18:52 +01:00
nough
7ec5646338 update external_recipes.md with docker info
added info on docker external recipes, as i've just followed this process myself. unsure if I needed to add the externalfiles folder to the nginx_recipes volume, but I have anyway in my personal one, and that worked.
2022-08-27 22:12:33 +01:00
nough
c020bea41e Merge branch 'TandoorRecipes:develop' into develop 2022-08-27 21:57:02 +01:00
吕楪
e6f79a6fa3 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (460 of 460 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/zh_Hans/
2022-08-23 13:32:56 +00:00
Mike Miller
0ab430ea82 Translated using Weblate (German)
Currently translated at 99.7% (459 of 460 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-08-23 13:32:56 +00:00
Kirstin Seidel-Gebert
3d95657b8a Translated using Weblate (German)
Currently translated at 99.7% (459 of 460 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-08-23 13:32:56 +00:00
吕楪
726157a062 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (524 of 524 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/zh_Hans/
2022-08-23 13:32:51 +00:00
Kirstin Seidel-Gebert
f8793f3ec8 Translated using Weblate (German)
Currently translated at 99.6% (522 of 524 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/
2022-08-23 13:32:51 +00:00
吕楪
09929beeb9 Translated using Weblate (Chinese (Simplified))
Currently translated at 98.6% (454 of 460 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/zh_Hans/
2022-08-22 09:56:23 +00:00
Mathias Rasmussen
2a1b2c18fc Translated using Weblate (Danish)
Currently translated at 100.0% (528 of 528 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/da/
2022-08-18 14:32:52 +00:00
Mathias Rasmussen
0cc3df71d2 Translated using Weblate (Danish)
Currently translated at 100.0% (460 of 460 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/da/
2022-08-14 16:32:49 +00:00
Thorin
e124c211ac Translated using Weblate (Spanish)
Currently translated at 73.2% (315 of 430 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/es/
2022-08-12 21:32:52 +00:00
Thorin
dc2f62dc9d Translated using Weblate (Spanish)
Currently translated at 53.0% (278 of 524 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/es/
2022-08-12 21:32:52 +00:00
Cameron Grant
38921f1254 Updated time to use hours and minutes split 2022-08-11 14:23:31 -07:00
vabene1111
4fec9a493e Merge pull request #1989 from TandoorRecipes/dependabot/pip/django-4.0.7
Bump django from 4.0.6 to 4.0.7
2022-08-11 23:07:43 +02:00
dependabot[bot]
71c5adda79 Bump django from 4.0.6 to 4.0.7
Bumps [django](https://github.com/django/django) from 4.0.6 to 4.0.7.
- [Release notes](https://github.com/django/django/releases)
- [Commits](https://github.com/django/django/compare/4.0.6...4.0.7)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-11 15:25:12 +00:00
Andrew Jayne
cffa731106 fix: ingredient parsing for non-latin languages
Before this change the ingredient string for non-latin
languages was not being parsed into the correct amount
or units when the food is found at the start of the
ingredient string.

This was because the regex being used was restricted to
latin characters.

With this change the amount and units are correctly
parsed from such a string.

Fixes https://github.com/TandoorRecipes/recipes/issues/1983
2022-08-07 21:37:59 +01:00
vabene1111
c7f75fe58f boot.sh 2022-08-05 17:55:25 +02:00
vabene1111
2eed5143fe boot.sh 2022-08-05 17:43:59 +02:00
vabene1111
6e4ea518d9 boot.sh 2022-08-05 17:36:00 +02:00
vabene1111
a898d722d6 fixed typo 2022-08-05 17:21:59 +02:00
vabene1111
904358bb00 allow changing gunicorn settings 2022-08-05 17:13:27 +02:00
vabene1111
6605b87c5c new settings page finished 2022-08-05 16:54:53 +02:00
vabene1111
64688ca5e1 Merge branch 'develop' of https://github.com/vabene1111/recipes into develop 2022-08-05 14:28:22 +02:00
vabene1111
e9a1a06bda fixed recipe share permission 2022-08-05 14:28:17 +02:00
vabene1111
a8da28f877 Merge pull request #1980 from 8633brown/nplusone
prefetch food relations #1965
2022-08-05 07:53:01 +02:00
8633brown
70b2bd6ccf prefetch food relations #1965 2022-08-04 22:11:48 +01:00
vabene1111
8ed5d52ddf fixed space settings saving issue 2022-08-04 18:54:00 +02:00
vabene1111
f7af0741fe fixed bookmarklet 2022-08-04 18:45:40 +02:00
vabene1111
3ec4afb02f fixed scoping and permissions for tokens 2022-08-04 18:33:45 +02:00
vabene1111
3f77b73a61 add multiple API tokens per user, removes old API tokens 2022-08-04 17:24:54 +02:00
Oliver Cervera
9e62d8a3a3 Translated using Weblate (Italian)
Currently translated at 79.9% (419 of 524 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/it/
2022-08-04 11:32:45 +00:00
vabene1111
9ef21241bf markdown editor adjustments 2022-08-01 17:13:44 +02:00
vabene1111
5e77adf7e6 fixed mail send 2022-08-01 16:56:18 +02:00
vabene1111
4df0a46701 Merge pull request #1975 from TandoorRecipes/dependabot/pip/icalendar-4.1.0
Bump icalendar from 4.0.9 to 4.1.0
2022-08-01 16:28:48 +02:00
dependabot[bot]
f186404628 Bump icalendar from 4.0.9 to 4.1.0
Bumps [icalendar](https://github.com/collective/icalendar) from 4.0.9 to 4.1.0.
- [Release notes](https://github.com/collective/icalendar/releases)
- [Changelog](https://github.com/collective/icalendar/blob/4.1.0/CHANGES.rst)
- [Commits](https://github.com/collective/icalendar/compare/4.0.9...4.1.0)

---
updated-dependencies:
- dependency-name: icalendar
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 14:28:24 +00:00
vabene1111
8e3ec91f3c Merge pull request #1961 from AquaticLava/develop
Fixes  #1234
2022-08-01 16:28:18 +02:00
vabene1111
2605addf34 Merge pull request #1974 from TandoorRecipes/dependabot/pip/drf-writable-nested-0.6.4
Bump drf-writable-nested from 0.6.3 to 0.6.4
2022-08-01 16:27:48 +02:00
vabene1111
1ab3e57b83 Merge pull request #1947 from dmaes/develop
Add S3_CUSTOM_DOMAIN settings, closes #1943
2022-08-01 16:27:16 +02:00
dependabot[bot]
2f36ae5112 Bump drf-writable-nested from 0.6.3 to 0.6.4
Bumps [drf-writable-nested](https://github.com/beda-software/drf-writable-nested) from 0.6.3 to 0.6.4.
- [Release notes](https://github.com/beda-software/drf-writable-nested/releases)
- [Changelog](https://github.com/beda-software/drf-writable-nested/blob/master/CHANGELOG.md)
- [Commits](https://github.com/beda-software/drf-writable-nested/compare/v0.6.3...v0.6.4)

---
updated-dependencies:
- dependency-name: drf-writable-nested
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 14:27:15 +00:00
vabene1111
acc19ca65e Merge pull request #1973 from TandoorRecipes/dependabot/pip/python-ldap-3.4.2
Bump python-ldap from 3.4.0 to 3.4.2
2022-08-01 16:26:46 +02:00
vabene1111
ea213e2dfd Merge pull request #1948 from iamkarlson/feature/fix_csrf_django_40
fixed csrf
2022-08-01 16:25:56 +02:00
vabene1111
02cf3264a3 Merge branch 'develop' of https://github.com/vabene1111/recipes into develop 2022-08-01 16:18:46 +02:00
vabene1111
a0b1186558 settings wip 2022-08-01 16:18:43 +02:00
dependabot[bot]
27e47718bb Bump python-ldap from 3.4.0 to 3.4.2
Bumps [python-ldap](https://github.com/python-ldap/python-ldap) from 3.4.0 to 3.4.2.
- [Release notes](https://github.com/python-ldap/python-ldap/releases)
- [Commits](https://github.com/python-ldap/python-ldap/compare/python-ldap-3.4.0...python-ldap-3.4.2)

---
updated-dependencies:
- dependency-name: python-ldap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 05:52:23 +00:00
vabene1111
f78dd209bd Merge pull request #1967 from TandoorRecipes/dependabot/pip/recipe-scrapers-14.11.0
Bump recipe-scrapers from 14.6.0 to 14.11.0
2022-08-01 07:51:58 +02:00
dependabot[bot]
b4e0b51f5b Bump recipe-scrapers from 14.6.0 to 14.11.0
Bumps [recipe-scrapers](https://github.com/hhursev/recipe-scrapers) from 14.6.0 to 14.11.0.
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/14.6.0...14.11.0)

---
updated-dependencies:
- dependency-name: recipe-scrapers
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-01 00:13:53 +00:00
AquaticLava
eedce4dcfd fixes shopping list number showing completed items 2022-07-27 21:03:21 -06:00
AquaticLava
006be92180 Fixes #1234 2022-07-26 17:49:43 -06:00
Tomasz Klimczak
1fae004785 Translated using Weblate (Polish)
Currently translated at 100.0% (427 of 427 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pl/
2022-07-26 21:32:41 +00:00
Huth Jimmy
239a88cd24 Translated using Weblate (French)
Currently translated at 88.5% (378 of 427 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/
2022-07-26 21:32:41 +00:00
vabene1111
22b432a6ae Merge pull request #1952 from tomtjes/patch-1
fix minor issues in CopyMeThat importer
2022-07-25 14:48:26 +02:00
tomtjes
c88566a4ae fix minor issues in CopyMeThat importer
improve handling of empty fields and fields that exceed character limits
2022-07-22 12:14:23 -04:00
vabene1111
5f8e371793 Merge pull request #1949 from TandoorRecipes/dependabot/npm_and_yarn/vue/terser-4.8.1
Bump terser from 4.8.0 to 4.8.1 in /vue
2022-07-21 07:46:56 +02:00
dependabot[bot]
94d9ac03ea Bump terser from 4.8.0 to 4.8.1 in /vue
Bumps [terser](https://github.com/terser/terser) from 4.8.0 to 4.8.1.
- [Release notes](https://github.com/terser/terser/releases)
- [Changelog](https://github.com/terser/terser/blob/master/CHANGELOG.md)
- [Commits](https://github.com/terser/terser/commits)

---
updated-dependencies:
- dependency-name: terser
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-21 05:21:46 +00:00
George Green
897ac97423 fixed csrf 2022-07-20 21:17:29 +02:00
dmaes
24aeae6de9 update .env.template 2022-07-20 10:45:52 +02:00
dmaes
ce941db3be add S3_CUSTOM_DOMAIN setting 2022-07-20 08:54:34 +02:00
vabene1111
5ff91ee47f more settings in 2022-07-15 17:39:44 +02:00
vabene1111
ce1f55ffd1 settings wip 2022-07-15 17:12:01 +02:00
vabene1111
8700e2df69 basics of new settings page working 2022-07-14 17:50:20 +02:00
vabene1111
f4df84b609 added ability to set space images 2022-07-14 15:23:59 +02:00
vabene1111
ba473123ba added ability to use invite link more than once 2022-07-14 11:28:13 +02:00
vabene1111
98a54ef38f removed lots of unused stuff 2022-07-14 10:37:15 +02:00
vabene1111
7fdc9c7cb8 added sharing permission test 2022-07-14 10:30:45 +02:00
vabene1111
dc3b1566d7 made shared field for recipe api optional 2022-07-14 10:21:35 +02:00
vabene1111
5429c4d557 Merge pull request #1937 from tomtjes/patch-1
Update copymethat.py
2022-07-14 09:53:43 +02:00
tomtjes
dabcea6ba7 Update copymethat.py
- make use of field for source URL
- preserve "I made this" flag as keyword
- preserve long descriptions in full at bottom of steps
- preserve ingredient and step headers
2022-07-13 14:37:16 -04:00
vabene1111
e91790f5ac added ability to mark recipes as private 2022-07-13 15:46:39 +02:00
vabene1111
51076d4ced Merge branch 'master' into develop 2022-07-13 10:25:39 +02:00
vabene1111
1cb37fe2d2 dont allow space manage page in demo 2022-07-13 10:25:22 +02:00
vabene1111
61a9f0647b added userspace admin 2022-07-13 10:24:12 +02:00
vabene1111
ac2ab62050 moved import functions to proper api function 2022-07-12 21:14:51 +02:00
vabene1111
c50efac00e basics for profile page 2022-07-12 20:57:13 +02:00
vabene1111
bf16e61a1f removed unused stuff and fixed manifest 2022-07-12 20:52:32 +02:00
vabene1111
d464633c70 removed django filters 2022-07-12 20:38:18 +02:00
vabene1111
b78d0ec30b added userspace admin 2022-07-12 20:37:38 +02:00
vabene1111
da09602834 removed old search pages 2022-07-12 20:05:59 +02:00
vabene1111
5ead4967a5 removed ingredient list shopping 2022-07-12 19:54:18 +02:00
vabene1111
8bb7ce2062 removed user servings feature 2022-07-12 19:43:11 +02:00
vabene1111
0068c75e31 Merge branch 'develop' 2022-07-12 19:41:50 +02:00
vabene1111
5de7fa9d48 fixed another social auth issues 2022-07-12 19:41:46 +02:00
vabene1111
3dc3592783 Merge branch 'develop' 2022-07-12 19:20:42 +02:00
vabene1111
43a082a51a updated translations 2022-07-12 19:20:35 +02:00
vabene1111
4c264673df fixed copy me that importer 2022-07-12 19:20:05 +02:00
vabene1111
d537d73c6a Merge pull request #1930 from Mikhail5555/patch-1
Add documentation for migrating from sqlite3 database to postgresql (Unraid)
2022-07-12 14:46:00 +02:00
vabene1111
5c227ecc57 Merge pull request #1931 from smilerz/fix_cookbookapp_import
updated cookbookapp importer to handle multi-step recipes
2022-07-12 08:45:17 +02:00
smilerz
b03fa4fdf2 updated cookbookapp importer to handle multi-step recipes 2022-07-11 17:21:56 -05:00
vabene1111
38219a22ca fixed issue with social default access and multi space tennany 2022-07-11 23:42:26 +02:00
Mikhail5555
9d6a5efa72 Update migration_sqlite-postgres.md 2022-07-11 23:14:55 +02:00
Mikhail5555
aaa0520a6d Update migration_sqlite-postgres.md 2022-07-11 23:12:42 +02:00
Mikhail5555
eb0f231a80 Create migration_sqlite-postgres.md 2022-07-11 23:09:41 +02:00
vabene1111
17f3da5a37 removed dead invite link button from system page 2022-07-11 14:54:00 +02:00
vabene1111
608039b7e4 cookbookapp importer more or less broken (more) 2022-07-11 14:46:54 +02:00
vabene1111
bb424cc3d6 Merge pull request #1917 from smilerz/bookmarklet_fix
Bookmarklet fix
2022-07-11 14:28:08 +02:00
Mike Miller
9eaf0f9530 Translated using Weblate (German)
Currently translated at 96.9% (414 of 427 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-07-10 08:32:35 +00:00
Kalli_1
b44bb552e0 Translated using Weblate (German)
Currently translated at 96.9% (414 of 427 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-07-10 08:32:35 +00:00
nough
c86ff27bef Update backup.md
Further information, backup using import/export.
2022-07-08 09:19:48 +01:00
nough
be6bb5f039 Merge branch 'TandoorRecipes:develop' into develop 2022-07-08 09:14:57 +01:00
smilerz
e40b73f420 deprecate get_recipe_from_source 2022-07-07 15:09:22 -05:00
vabene1111
5b3d8a3aaf Merge branch 'develop' 2022-07-07 19:38:32 +02:00
vabene1111
fd4051c04a fixed copy to clipboard 2022-07-07 19:16:16 +02:00
vabene1111
5f0fa24c2a Merge pull request #1908 from nough/patch-1
Update backup.md with manual process
2022-07-07 18:57:43 +02:00
vabene1111
0d676e1957 Merge pull request #1909 from smilerz/makenow_query_fix
fix makenow filter
2022-07-07 18:56:31 +02:00
vabene1111
8539e365fb Merge pull request #1915 from TandoorRecipes/dependabot/npm_and_yarn/vue/moment-2.29.4
Bump moment from 2.29.3 to 2.29.4 in /vue
2022-07-07 18:52:49 +02:00
dependabot[bot]
dd25ea748b Bump moment from 2.29.3 to 2.29.4 in /vue
Bumps [moment](https://github.com/moment/moment) from 2.29.3 to 2.29.4.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/moment/moment/compare/2.29.3...2.29.4)

---
updated-dependencies:
- dependency-name: moment
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-07 16:50:54 +00:00
vabene1111
2b74c1c47b Merge pull request #1912 from TandoorRecipes/dependabot/pip/lxml-4.9.1
Bump lxml from 4.9.0 to 4.9.1
2022-07-07 18:50:23 +02:00
nough
9961746f1f update, adding docker backup script outline 2022-07-07 15:46:31 +01:00
smilerz
b1c0334947 quick hack to allow scraper to work correctly 2022-07-07 07:50:57 -05:00
smilerz
25a41bd293 reverting scraper to just using wildmode 2022-07-07 06:43:07 -05:00
nough
ac25beddda Update backup.md
working restore function
2022-07-07 10:27:32 +01:00
nough
9d38186404 Update backup.md
updated with functional code
2022-07-07 10:16:52 +01:00
dependabot[bot]
51d9ffbb4e Bump lxml from 4.9.0 to 4.9.1
Bumps [lxml](https://github.com/lxml/lxml) from 4.9.0 to 4.9.1.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-4.9.0...lxml-4.9.1)

---
updated-dependencies:
- dependency-name: lxml
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-06 21:47:07 +00:00
smilerz
e23d514d89 fix bookmarklet 2022-07-06 16:16:53 -05:00
nough
0697116a21 Update backup.md
Added comment about backing up when other containers are failing
2022-07-06 19:29:22 +01:00
Nidhal Brniyah
165bb00040 Translated using Weblate (Arabic)
Currently translated at 20.4% (108 of 528 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/ar/
2022-07-06 14:32:36 +00:00
vabene1111
07947199c0 Merge pull request #1910 from TandoorRecipes/dependabot/pip/django-4.0.6
Bump django from 4.0.5 to 4.0.6
2022-07-06 09:07:04 +02:00
dependabot[bot]
92aadb4743 Bump django from 4.0.5 to 4.0.6
Bumps [django](https://github.com/django/django) from 4.0.5 to 4.0.6.
- [Release notes](https://github.com/django/django/releases)
- [Commits](https://github.com/django/django/compare/4.0.5...4.0.6)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-05 22:39:26 +00:00
smilerz
bd89de6f4d fix makenow filter 2022-07-05 14:31:32 -05:00
vabene1111
dca567b5fa Added translation using Weblate (Arabic) 2022-07-05 12:04:35 +00:00
vabene1111
a015c2f566 Added translation using Weblate (Arabic) 2022-07-05 12:04:31 +00:00
vabene1111
946de2e7e3 updated scrapers 2022-07-05 09:01:40 +02:00
vabene1111
690c486bb2 zip files before download in file broswer
needs to be completly rewritten in the future but for now this is more secure
2022-07-04 14:39:53 +02:00
vabene1111
d9d0676bed temporarily disable table button in mavon editor 2022-07-01 11:58:28 +02:00
vabene1111
9c8a410e50 fixed non spaced page load 2022-07-01 11:03:53 +02:00
vabene1111
22296de03c Merge pull request #1885 from Jbonnett/feature/reset_inheritance_fix
Fixes #1857
2022-07-01 11:02:26 +02:00
vabene1111
9228f9c339 Merge pull request #1891 from TandoorRecipes/dependabot/pip/django-allauth-0.51.0
Bump django-allauth from 0.50.0 to 0.51.0
2022-07-01 08:56:29 +02:00
vabene1111
609d4477ae Merge pull request #1906 from TandoorRecipes/dependabot/pip/requests-2.28.1
Bump requests from 2.27.1 to 2.28.1
2022-07-01 08:56:11 +02:00
vabene1111
fc0cfe3133 Merge pull request #1905 from TandoorRecipes/dependabot/pip/pytest-factoryboy-2.5.0
Bump pytest-factoryboy from 2.4.0 to 2.5.0
2022-07-01 08:55:48 +02:00
vabene1111
ebe1aa33f3 Merge pull request #1904 from TandoorRecipes/dependabot/pip/django-4.0.5
Bump django from 4.0.4 to 4.0.5
2022-07-01 08:55:41 +02:00
dependabot[bot]
e451adbfdb Bump requests from 2.27.1 to 2.28.1
Bumps [requests](https://github.com/psf/requests) from 2.27.1 to 2.28.1.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.27.1...v2.28.1)

---
updated-dependencies:
- dependency-name: requests
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 06:55:07 +00:00
dependabot[bot]
852c64d9f4 Bump pytest-factoryboy from 2.4.0 to 2.5.0
Bumps [pytest-factoryboy](https://github.com/pytest-dev/pytest-factoryboy) from 2.4.0 to 2.5.0.
- [Release notes](https://github.com/pytest-dev/pytest-factoryboy/releases)
- [Changelog](https://github.com/pytest-dev/pytest-factoryboy/blob/master/CHANGES.rst)
- [Commits](https://github.com/pytest-dev/pytest-factoryboy/compare/2.4.0...2.5.0)

---
updated-dependencies:
- dependency-name: pytest-factoryboy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 06:55:02 +00:00
dependabot[bot]
d96b6dbefb Bump django from 4.0.4 to 4.0.5
Bumps [django](https://github.com/django/django) from 4.0.4 to 4.0.5.
- [Release notes](https://github.com/django/django/releases)
- [Commits](https://github.com/django/django/compare/4.0.4...4.0.5)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 06:54:56 +00:00
vabene1111
fbbd57a4ae Merge pull request #1903 from TandoorRecipes/dependabot/pip/django-cors-headers-3.13.0
Bump django-cors-headers from 3.12.0 to 3.13.0
2022-07-01 08:54:48 +02:00
dependabot[bot]
e5cc990111 Bump django-allauth from 0.50.0 to 0.51.0
Bumps [django-allauth](https://github.com/pennersr/django-allauth) from 0.50.0 to 0.51.0.
- [Release notes](https://github.com/pennersr/django-allauth/releases)
- [Changelog](https://github.com/pennersr/django-allauth/blob/master/ChangeLog.rst)
- [Commits](https://github.com/pennersr/django-allauth/compare/0.50.0...0.51.0)

---
updated-dependencies:
- dependency-name: django-allauth
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 06:54:46 +00:00
vabene1111
78482313d8 Merge pull request #1902 from TandoorRecipes/dependabot/pip/bleach-5.0.1
Bump bleach from 5.0.0 to 5.0.1
2022-07-01 08:54:39 +02:00
vabene1111
5b601695e1 Merge pull request #1901 from TandoorRecipes/dependabot/pip/pytube-12.1.0
Bump pytube from 12.0.0 to 12.1.0
2022-07-01 08:54:34 +02:00
dependabot[bot]
d6a67335ed Bump django-cors-headers from 3.12.0 to 3.13.0
Bumps [django-cors-headers](https://github.com/adamchainz/django-cors-headers) from 3.12.0 to 3.13.0.
- [Release notes](https://github.com/adamchainz/django-cors-headers/releases)
- [Changelog](https://github.com/adamchainz/django-cors-headers/blob/main/HISTORY.rst)
- [Commits](https://github.com/adamchainz/django-cors-headers/compare/3.12.0...3.13.0)

---
updated-dependencies:
- dependency-name: django-cors-headers
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 06:53:58 +00:00
dependabot[bot]
4f7b68c882 Bump bleach from 5.0.0 to 5.0.1
Bumps [bleach](https://github.com/mozilla/bleach) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/mozilla/bleach/releases)
- [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES)
- [Commits](https://github.com/mozilla/bleach/commits)

---
updated-dependencies:
- dependency-name: bleach
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 06:53:54 +00:00
dependabot[bot]
1359782d30 Bump pytube from 12.0.0 to 12.1.0
Bumps [pytube](https://github.com/pytube/pytube) from 12.0.0 to 12.1.0.
- [Release notes](https://github.com/pytube/pytube/releases)
- [Commits](https://github.com/pytube/pytube/compare/v12.0.0...v12.1.0)

---
updated-dependencies:
- dependency-name: pytube
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 06:53:51 +00:00
vabene1111
966bd5fd33 Merge pull request #1899 from TandoorRecipes/dependabot/pip/whitenoise-6.2.0
Bump whitenoise from 6.1.0 to 6.2.0
2022-07-01 08:53:49 +02:00
vabene1111
759264e1d5 Merge pull request #1900 from TandoorRecipes/dependabot/pip/django-filter-22.1
Bump django-filter from 21.1 to 22.1
2022-07-01 08:53:40 +02:00
vabene1111
65c0f3d786 Merge pull request #1888 from TandoorRecipes/dependabot/pip/recipe-scrapers-14.5.2
Bump recipe-scrapers from 14.2.0 to 14.5.2
2022-07-01 08:53:30 +02:00
dependabot[bot]
f1535b4b54 Bump django-filter from 21.1 to 22.1
Bumps [django-filter](https://github.com/carltongibson/django-filter) from 21.1 to 22.1.
- [Release notes](https://github.com/carltongibson/django-filter/releases)
- [Changelog](https://github.com/carltongibson/django-filter/blob/main/CHANGES.rst)
- [Commits](https://github.com/carltongibson/django-filter/compare/21.1...22.1)

---
updated-dependencies:
- dependency-name: django-filter
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 06:43:55 +00:00
dependabot[bot]
fcb5f51a78 Bump whitenoise from 6.1.0 to 6.2.0
Bumps [whitenoise](https://github.com/evansd/whitenoise) from 6.1.0 to 6.2.0.
- [Release notes](https://github.com/evansd/whitenoise/releases)
- [Changelog](https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst)
- [Commits](https://github.com/evansd/whitenoise/compare/6.1.0...6.2.0)

---
updated-dependencies:
- dependency-name: whitenoise
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 06:43:52 +00:00
vabene1111
50fc98dcb3 Merge pull request #1889 from TandoorRecipes/dependabot/pip/boto3-1.24.21
Bump boto3 from 1.24.0 to 1.24.21
2022-07-01 08:43:45 +02:00
vabene1111
c1a1fe1047 Merge pull request #1887 from TandoorRecipes/dependabot/pip/validators-0.20.0
Bump validators from 0.19.0 to 0.20.0
2022-07-01 08:43:29 +02:00
dependabot[bot]
b3a60f70ff Bump boto3 from 1.24.0 to 1.24.21
Bumps [boto3](https://github.com/boto/boto3) from 1.24.0 to 1.24.21.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.24.0...1.24.21)

---
updated-dependencies:
- dependency-name: boto3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 00:04:35 +00:00
dependabot[bot]
5ee0033983 Bump recipe-scrapers from 14.2.0 to 14.5.2
Bumps [recipe-scrapers](https://github.com/hhursev/recipe-scrapers) from 14.2.0 to 14.5.2.
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/14.2.0...14.5.2)

---
updated-dependencies:
- dependency-name: recipe-scrapers
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 00:04:26 +00:00
dependabot[bot]
a28e653386 Bump validators from 0.19.0 to 0.20.0
Bumps [validators](https://github.com/kvesteri/validators) from 0.19.0 to 0.20.0.
- [Release notes](https://github.com/kvesteri/validators/releases)
- [Changelog](https://github.com/kvesteri/validators/blob/master/CHANGES.rst)
- [Commits](https://github.com/kvesteri/validators/compare/0.19.0...0.20.0)

---
updated-dependencies:
- dependency-name: validators
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-07-01 00:04:22 +00:00
Joshua Bonnett
8d568526be Fixes #1857 2022-06-29 05:15:22 -07:00
vabene1111
6643008baf media query for navbar scrolling 2022-06-28 07:30:42 +02:00
vabene1111
44a19e03e8 fixed ingredient list step header duplication 2022-06-28 06:32:25 +02:00
vabene1111
b5207d91ba fixed navbar viewport issues 2022-06-28 06:19:58 +02:00
vabene1111
f1d54675c3 allow editing recipe source filed 2022-06-28 06:17:43 +02:00
vabene1111
b057b6006c add debounce to food search on recipe edit 2022-06-26 12:54:08 +02:00
vabene1111
f92a62da4e improved header show/hide for step name 2022-06-26 12:47:40 +02:00
vabene1111
27c695a393 allow disabling of ingredient overview 2022-06-26 12:36:37 +02:00
vabene1111
7945c1a431 fixed ingredient compontent 2022-06-26 12:18:13 +02:00
vabene1111
7c31cb9993 updated and compiled translations 2022-06-26 12:10:25 +02:00
vabene1111
f6d46cae79 Merge pull request #1866 from nicedevil007/nicedevil007-patch-1
Updates with more packages
2022-06-26 12:08:16 +02:00
César Blanco Guillamon
0e49615a40 Translated using Weblate (Spanish)
Currently translated at 53.4% (282 of 528 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/es/
2022-06-25 17:32:27 +00:00
Tomasz Klimczak
534792cd1a Translated using Weblate (Polish)
Currently translated at 100.0% (425 of 425 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pl/
2022-06-22 18:32:29 +00:00
Andreas Thor Lau
89891d11d7 Translated using Weblate (Danish)
Currently translated at 100.0% (414 of 414 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/da/
2022-06-20 19:32:27 +00:00
vabene1111
cb86ece0c4 fixed parse servings function 2022-06-20 16:53:14 +02:00
vabene1111
e7976fab46 show import links 2022-06-20 16:52:42 +02:00
vabene1111
11cb40702d cookmate fixes 2022-06-20 16:29:33 +02:00
vabene1111
877b7799df added proper login template for social auth 2022-06-20 15:40:42 +02:00
vabene1111
7f35d462b6 fixed url import servings 2022-06-20 15:25:23 +02:00
nicedevil007
fff5c2387b removed python3.9 from update (python3 is enough) 2022-06-18 23:02:03 +02:00
nicedevil007
3de6f6faf8 Added the "--no-input" to the collectstatic lines 2022-06-18 22:32:09 +02:00
nicedevil007
e6f80497a9 Updates with more packages
Updated the manual installation file to get everybody up and running.
There were missing requirements like the nginx installation and so on.

Now a first time linux user should be able to get this up and running.
2022-06-18 09:49:25 +02:00
vabene1111
6c122e4ed0 fixed autofocus on markdown editor 2022-06-16 16:21:35 +02:00
Kaibu
1836056bd1 Recipe edit icons on mobile 2022-06-15 17:33:03 +02:00
Kaibu
cdc95d8fd2 ingredient card cleanup 2022-06-15 16:42:28 +02:00
Kaibu
d3c3339d5e shopping modal ui fixes 2022-06-15 16:27:43 +02:00
Kaibu
50992d3411 Merge branch 'develop' of https://github.com/TandoorRecipes/recipes into develop 2022-06-15 15:56:25 +02:00
Kaibu
2ae3e7f5b9 reactivated shopping list swipe only on food name 2022-06-15 15:56:18 +02:00
vabene1111
99ea193237 fixed url breaking recipe view 2022-06-15 15:47:52 +02:00
vabene1111
3427f7bbea fixed new limit recipe create 2022-06-15 15:37:20 +02:00
vabene1111
44704be22b fixed limit check for new recipes 2022-06-15 15:36:10 +02:00
vabene1111
356dec636f fixed ingredient paste and plan share serialize 2022-06-14 21:48:17 +02:00
vabene1111
355f181574 added youtube import 2022-06-14 21:37:59 +02:00
vabene1111
b365f9adc1 Merge pull request #1829 from astappiev/fixes
Some minor visual fixes
2022-06-14 21:03:00 +02:00
vabene1111
af1282c268 Merge pull request #1723 from vekunz/feature/optimize_printing
Fix some issues to improve the print output
2022-06-14 20:59:57 +02:00
vabene1111
9ccceb2199 Merge pull request #1815 from anu-codes/patch-1
Grammatical errors
2022-06-14 20:58:37 +02:00
vabene1111
bdea6440a8 Merge pull request #1854 from AliveDevil/feature/discussion-1832
Add django-scopes compatible django-admin dumpdata/loaddata commands
2022-06-14 20:56:52 +02:00
vabene1111
4e1f147b37 Merge pull request #1864 from anaymody/patch-1
Update index.md for capitalization and bold-face issues
2022-06-14 20:53:08 +02:00
anaymody
30d0d340c2 Update index.md
Added capitalization to line 52 and proposed some bold-face changes in lines 42, 44. 52. and 54.
2022-06-14 14:30:47 -04:00
vabene1111
d99748638d fixed broken filter on supermarket category lookups 2022-06-14 17:06:25 +02:00
vabene1111
889089b4cd fixed search defaults 2022-06-14 16:49:58 +02:00
vabene1111
e7de6f62b6 fixed permissions and tests 2022-06-14 16:20:37 +02:00
vabene1111
f02eac8ac6 remvoed ability to swipe shopping list as scrolling needs to be fixed 2022-06-14 15:13:46 +02:00
vabene1111
b30c282a13 remove exception details from api response 2022-06-14 15:07:31 +02:00
vabene1111
c2135de941 downgraded vue simple calendar 2022-06-14 12:08:43 +02:00
vabene1111
e2890d1363 Merge branch 'feature/multi-tennancy' into develop 2022-06-13 20:20:49 +02:00
Mike Miller
0dc2abbdd8 Translated using Weblate (German)
Currently translated at 97.8% (405 of 414 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-06-10 19:32:26 +00:00
vabene1111
deeed4b65b testes and fixes for space, userspace and invitelink apis 2022-06-09 22:02:58 +02:00
vabene1111
30e4ee855c switch space method signature change and test 2022-06-09 18:18:57 +02:00
vabene1111
2ab1560aed fixed user name api filter 2022-06-09 17:31:17 +02:00
vabene1111
d5b7d440fe fixed user preference api endpoint 2022-06-08 17:48:23 +02:00
Kaibu
df88b1ddd2 recipe switcher mobile ui height 2022-06-08 17:40:59 +02:00
vabene1111
e368488933 deprecated all old vue stuff and working on tests 2022-06-07 20:08:32 +02:00
vabene1111
37f0f7a0b7 added endpoint for space switching 2022-06-06 18:34:40 +02:00
vabene1111
e2b887b449 lots of fixes and stuff 2022-06-06 18:21:15 +02:00
Daniel
d653b8f9e6 Translated using Weblate (Portuguese (Brazil))
Currently translated at 4.8% (20 of 414 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pt_BR/
2022-06-05 14:49:41 +00:00
vabene1111
b8f74af41c add supporting options to readme 2022-06-02 16:54:07 +02:00
vabene1111
07f78bb7b8 space management page progress 2022-06-02 16:20:52 +02:00
AliveDevil
1679d820a7 Add django-admin export and import commands, making dump-data and loaddata django-scopes compatible 2022-06-02 14:26:28 +02:00
Oliver Cervera
b3bbb0b156 Translated using Weblate (Italian)
Currently translated at 57.7% (239 of 414 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/it/
2022-06-01 22:32:20 +00:00
Oliver Cervera
8afd73394d Translated using Weblate (Italian)
Currently translated at 82.1% (434 of 528 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/it/
2022-06-01 22:32:20 +00:00
vabene1111
2afab2aec8 invite link basics 2022-06-01 17:42:07 +02:00
vabene1111
f41e4c62d4 space manage users and permissions 2022-06-01 17:01:13 +02:00
vabene1111
c804064155 Merge branch 'develop' into feature/multi-tennancy 2022-06-01 15:36:26 +02:00
vabene1111
eeee36844d Merge pull request #1849 from TandoorRecipes/dependabot/npm_and_yarn/vue/webpack-bundle-tracker-1.5.0
Bump webpack-bundle-tracker from 1.4.0 to 1.5.0 in /vue
2022-06-01 13:47:14 +02:00
vabene1111
d4d4495f2b Merge pull request #1850 from TandoorRecipes/dependabot/npm_and_yarn/vue/typescript-4.7.2
Bump typescript from 4.5.5 to 4.7.2 in /vue
2022-06-01 13:47:05 +02:00
dependabot[bot]
0eee2d8ba5 Bump typescript from 4.5.5 to 4.7.2 in /vue
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.5.5 to 4.7.2.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.5.5...v4.7.2)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-01 05:52:58 +00:00
dependabot[bot]
fbfe00bfec Bump webpack-bundle-tracker from 1.4.0 to 1.5.0 in /vue
Bumps [webpack-bundle-tracker](https://github.com/django-webpack/webpack-bundle-tracker) from 1.4.0 to 1.5.0.
- [Release notes](https://github.com/django-webpack/webpack-bundle-tracker/releases)
- [Commits](https://github.com/django-webpack/webpack-bundle-tracker/compare/1.4.0...1.5.0)

---
updated-dependencies:
- dependency-name: webpack-bundle-tracker
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-01 05:52:00 +00:00
vabene1111
6e70bc3b5d Merge pull request #1848 from TandoorRecipes/dependabot/pip/boto3-1.24.0
Bump boto3 from 1.23.10 to 1.24.0
2022-06-01 07:47:27 +02:00
vabene1111
2dde6ae663 Merge pull request #1846 from TandoorRecipes/dependabot/pip/lxml-4.9.0
Bump lxml from 4.8.0 to 4.9.0
2022-06-01 07:47:20 +02:00
vabene1111
9bda43a670 Merge pull request #1847 from TandoorRecipes/dependabot/pip/pytest-factoryboy-2.4.0
Bump pytest-factoryboy from 2.3.1 to 2.4.0
2022-06-01 07:47:13 +02:00
vabene1111
ba49535bba Merge pull request #1851 from TandoorRecipes/dependabot/npm_and_yarn/vue/vue-cli-plugin-i18n-2.3.1
Bump vue-cli-plugin-i18n from 0.6.1 to 2.3.1 in /vue
2022-06-01 07:47:05 +02:00
vabene1111
21b69f06e5 Merge pull request #1845 from TandoorRecipes/dependabot/pip/recipe-scrapers-14.2.0
Bump recipe-scrapers from 14.1.0 to 14.2.0
2022-06-01 07:46:52 +02:00
dependabot[bot]
1390b01f07 Bump vue-cli-plugin-i18n from 0.6.1 to 2.3.1 in /vue
Bumps [vue-cli-plugin-i18n](https://github.com/intlify/vue-cli-plugin-i18n) from 0.6.1 to 2.3.1.
- [Release notes](https://github.com/intlify/vue-cli-plugin-i18n/releases)
- [Changelog](https://github.com/intlify/vue-cli-plugin-i18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/intlify/vue-cli-plugin-i18n/compare/v0.6.1...v2.3.1)

---
updated-dependencies:
- dependency-name: vue-cli-plugin-i18n
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-01 00:14:43 +00:00
dependabot[bot]
b9dc0da249 Bump boto3 from 1.23.10 to 1.24.0
Bumps [boto3](https://github.com/boto/boto3) from 1.23.10 to 1.24.0.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.23.10...1.24.0)

---
updated-dependencies:
- dependency-name: boto3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-01 00:05:18 +00:00
dependabot[bot]
6615bbb532 Bump pytest-factoryboy from 2.3.1 to 2.4.0
Bumps [pytest-factoryboy](https://github.com/pytest-dev/pytest-factoryboy) from 2.3.1 to 2.4.0.
- [Release notes](https://github.com/pytest-dev/pytest-factoryboy/releases)
- [Changelog](https://github.com/pytest-dev/pytest-factoryboy/blob/master/CHANGES.rst)
- [Commits](https://github.com/pytest-dev/pytest-factoryboy/compare/2.3.1...2.4.0)

---
updated-dependencies:
- dependency-name: pytest-factoryboy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-01 00:05:09 +00:00
dependabot[bot]
b8ef6b3888 Bump lxml from 4.8.0 to 4.9.0
Bumps [lxml](https://github.com/lxml/lxml) from 4.8.0 to 4.9.0.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-4.8.0...lxml-4.9.0)

---
updated-dependencies:
- dependency-name: lxml
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-01 00:05:03 +00:00
dependabot[bot]
1fc9f74e60 Bump recipe-scrapers from 14.1.0 to 14.2.0
Bumps [recipe-scrapers](https://github.com/hhursev/recipe-scrapers) from 14.1.0 to 14.2.0.
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/14.1.0...14.2.0)

---
updated-dependencies:
- dependency-name: recipe-scrapers
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-01 00:04:55 +00:00
vabene1111
ded092ed23 baiscs of space edit page 2022-05-31 21:52:59 +02:00
vabene1111
007b7294d9 join and leave spaces 2022-05-31 20:38:53 +02:00
vabene1111
b3fcfdfc96 space switcher 2022-05-31 17:48:43 +02:00
vabene1111
151461508f multi space membership basics 2022-05-31 17:38:12 +02:00
vabene1111
9affc583a3 add token endpoint 2022-05-31 15:43:04 +02:00
vabene1111
cac72df7ba refactored recipe from source endpoint 2022-05-31 15:22:27 +02:00
Bekhruz Khazratov
a6c81d8168 Translated using Weblate (Russian)
Currently translated at 82.6% (342 of 414 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/ru/
2022-05-31 08:32:18 +00:00
Jesse
7aa3e49e8c Translated using Weblate (Dutch)
Currently translated at 100.0% (414 of 414 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/nl/
2022-05-31 08:32:18 +00:00
Jesse
ab378f5332 Translated using Weblate (Dutch)
Currently translated at 100.0% (528 of 528 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/nl/
2022-05-31 08:32:18 +00:00
vabene1111
24b0d7f8e6 removed unused library 2022-05-30 22:10:25 +02:00
vabene1111
5561a9621b copy past 2022-05-30 21:58:22 +02:00
vabene1111
3512ab7515 update wokflow files 2022-05-30 21:53:59 +02:00
vabene1111
12df4abc80 updating ci 2022-05-30 21:48:34 +02:00
vabene1111
f768aef0b9 fixed some breaking changes due to dependency updates 2022-05-30 21:42:30 +02:00
vabene1111
a6dcef4467 Merge pull request #1756 from TandoorRecipes/dependabot/npm_and_yarn/vue/axios-0.27.2
Bump axios from 0.26.1 to 0.27.2 in /vue
2022-05-30 19:56:34 +02:00
dependabot[bot]
699a6a42be Bump axios from 0.26.1 to 0.27.2 in /vue
Bumps [axios](https://github.com/axios/axios) from 0.26.1 to 0.27.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.26.1...v0.27.2)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 17:54:21 +00:00
vabene1111
9380e376c6 Merge pull request #1840 from TandoorRecipes/dependabot/pip/whitenoise-6.1.0
Bump whitenoise from 6.0.0 to 6.1.0
2022-05-30 19:53:51 +02:00
dependabot[bot]
04dd51d089 Bump whitenoise from 6.0.0 to 6.1.0
Bumps [whitenoise](https://github.com/evansd/whitenoise) from 6.0.0 to 6.1.0.
- [Release notes](https://github.com/evansd/whitenoise/releases)
- [Changelog](https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst)
- [Commits](https://github.com/evansd/whitenoise/compare/6.0.0...6.1.0)

---
updated-dependencies:
- dependency-name: whitenoise
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 17:53:09 +00:00
vabene1111
fe19f81bcd Merge pull request #1838 from TandoorRecipes/dependabot/pip/pillow-9.1.1
Bump pillow from 9.0.1 to 9.1.1
2022-05-30 19:52:48 +02:00
vabene1111
e3711f121f Merge pull request #1841 from TandoorRecipes/dependabot/pip/pytest-factoryboy-2.3.1
Bump pytest-factoryboy from 2.1.0 to 2.3.1
2022-05-30 19:52:34 +02:00
vabene1111
075fd2fd9b Merge pull request #1843 from TandoorRecipes/dependabot/pip/boto3-1.23.10
Bump boto3 from 1.21.31 to 1.23.10
2022-05-30 19:52:20 +02:00
dependabot[bot]
662cfde691 Bump pillow from 9.0.1 to 9.1.1
Bumps [pillow](https://github.com/python-pillow/Pillow) from 9.0.1 to 9.1.1.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/9.0.1...9.1.1)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 17:51:46 +00:00
dependabot[bot]
0a6264228a Bump pytest-factoryboy from 2.1.0 to 2.3.1
Bumps [pytest-factoryboy](https://github.com/pytest-dev/pytest-factoryboy) from 2.1.0 to 2.3.1.
- [Release notes](https://github.com/pytest-dev/pytest-factoryboy/releases)
- [Changelog](https://github.com/pytest-dev/pytest-factoryboy/blob/master/CHANGES.rst)
- [Commits](https://github.com/pytest-dev/pytest-factoryboy/compare/2.1.0...2.3.1)

---
updated-dependencies:
- dependency-name: pytest-factoryboy
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 17:51:37 +00:00
dependabot[bot]
3f67c6d220 Bump boto3 from 1.21.31 to 1.23.10
Bumps [boto3](https://github.com/boto/boto3) from 1.21.31 to 1.23.10.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.21.31...1.23.10)

---
updated-dependencies:
- dependency-name: boto3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 17:51:30 +00:00
vabene1111
4fa6fc10f8 Merge pull request #1839 from TandoorRecipes/dependabot/pip/bleach-5.0.0
Bump bleach from 4.1.0 to 5.0.0
2022-05-30 19:51:08 +02:00
vabene1111
ada811a868 Merge pull request #1837 from TandoorRecipes/dependabot/pip/markdown-3.3.7
Bump markdown from 3.3.6 to 3.3.7
2022-05-30 19:50:55 +02:00
dependabot[bot]
00132c6afa Bump markdown from 3.3.6 to 3.3.7
Bumps [markdown](https://github.com/Python-Markdown/markdown) from 3.3.6 to 3.3.7.
- [Release notes](https://github.com/Python-Markdown/markdown/releases)
- [Commits](https://github.com/Python-Markdown/markdown/compare/3.3.6...3.3.7)

---
updated-dependencies:
- dependency-name: markdown
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 17:50:42 +00:00
dependabot[bot]
da1af693a2 Bump bleach from 4.1.0 to 5.0.0
Bumps [bleach](https://github.com/mozilla/bleach) from 4.1.0 to 5.0.0.
- [Release notes](https://github.com/mozilla/bleach/releases)
- [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES)
- [Commits](https://github.com/mozilla/bleach/compare/v4.1.0...v5.0.0)

---
updated-dependencies:
- dependency-name: bleach
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 17:50:31 +00:00
vabene1111
a9d9c03cc0 Merge pull request #1836 from TandoorRecipes/dependabot/pip/recipe-scrapers-14.1.0
Bump recipe-scrapers from 13.32.1 to 14.1.0
2022-05-30 19:50:18 +02:00
vabene1111
0e1522db12 Merge pull request #1835 from TandoorRecipes/dependabot/pip/cryptography-37.0.2
Bump cryptography from 37.0.1 to 37.0.2
2022-05-30 19:50:14 +02:00
vabene1111
df04d6b58d Merge pull request #1834 from TandoorRecipes/dependabot/pip/django-cors-headers-3.12.0
Bump django-cors-headers from 3.11.0 to 3.12.0
2022-05-30 19:50:09 +02:00
vabene1111
b098b6d148 Merge pull request #1833 from TandoorRecipes/dependabot/pip/django-auth-ldap-4.1.0
Bump django-auth-ldap from 4.0.0 to 4.1.0
2022-05-30 19:50:04 +02:00
dependabot[bot]
24bc6a1a8a Bump recipe-scrapers from 13.32.1 to 14.1.0
Bumps [recipe-scrapers](https://github.com/hhursev/recipe-scrapers) from 13.32.1 to 14.1.0.
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/13.32.1...14.1.0)

---
updated-dependencies:
- dependency-name: recipe-scrapers
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 17:48:56 +00:00
dependabot[bot]
64abf6d785 Bump django-cors-headers from 3.11.0 to 3.12.0
Bumps [django-cors-headers](https://github.com/adamchainz/django-cors-headers) from 3.11.0 to 3.12.0.
- [Release notes](https://github.com/adamchainz/django-cors-headers/releases)
- [Changelog](https://github.com/adamchainz/django-cors-headers/blob/main/HISTORY.rst)
- [Commits](https://github.com/adamchainz/django-cors-headers/compare/3.11.0...3.12.0)

---
updated-dependencies:
- dependency-name: django-cors-headers
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 17:48:56 +00:00
vabene1111
f156722456 Merge pull request #1752 from TandoorRecipes/dependabot/pip/pytest-7.1.2
Bump pytest from 7.1.1 to 7.1.2
2022-05-30 19:48:16 +02:00
dependabot[bot]
d641a3fa48 Bump cryptography from 37.0.1 to 37.0.2
Bumps [cryptography](https://github.com/pyca/cryptography) from 37.0.1 to 37.0.2.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/37.0.1...37.0.2)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 17:47:17 +00:00
dependabot[bot]
29760defd0 Bump django-auth-ldap from 4.0.0 to 4.1.0
Bumps [django-auth-ldap](https://github.com/django-auth-ldap/django-auth-ldap) from 4.0.0 to 4.1.0.
- [Release notes](https://github.com/django-auth-ldap/django-auth-ldap/releases)
- [Changelog](https://github.com/django-auth-ldap/django-auth-ldap/blob/master/docs/changes.rst)
- [Commits](https://github.com/django-auth-ldap/django-auth-ldap/compare/4.0.0...4.1.0)

---
updated-dependencies:
- dependency-name: django-auth-ldap
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 17:47:16 +00:00
dependabot[bot]
5eb822089d Bump pytest from 7.1.1 to 7.1.2
Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.1.1 to 7.1.2.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.1.1...7.1.2)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 17:47:07 +00:00
vabene1111
53414ec1df Merge pull request #1753 from TandoorRecipes/dependabot/pip/jinja2-3.1.2
Bump jinja2 from 3.1.1 to 3.1.2
2022-05-30 19:46:47 +02:00
vabene1111
cd3f0ba739 Merge pull request #1751 from TandoorRecipes/dependabot/pip/beautifulsoup4-4.11.1
Bump beautifulsoup4 from 4.10.0 to 4.11.1
2022-05-30 19:46:42 +02:00
vabene1111
74152d2409 Merge pull request #1750 from TandoorRecipes/dependabot/pip/django-scopes-1.2.0.post1
Bump django-scopes from 1.2.0 to 1.2.0.post1
2022-05-30 19:46:37 +02:00
dependabot[bot]
8f7a4a31c8 Bump beautifulsoup4 from 4.10.0 to 4.11.1
Bumps [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) from 4.10.0 to 4.11.1.

---
updated-dependencies:
- dependency-name: beautifulsoup4
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 17:46:32 +00:00
dependabot[bot]
c5f11c1625 Bump jinja2 from 3.1.1 to 3.1.2
Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/3.1.1...3.1.2)

---
updated-dependencies:
- dependency-name: jinja2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-30 17:46:20 +00:00
vabene1111
f0eb295696 Merge pull request #1754 from TandoorRecipes/dependabot/pip/django-webpack-loader-1.5.0
Bump django-webpack-loader from 1.4.1 to 1.5.0
2022-05-30 19:45:54 +02:00
vabene1111
c86fe0690b Merge pull request #1755 from TandoorRecipes/dependabot/npm_and_yarn/vue/workbox-precaching-6.5.3
Bump workbox-precaching from 6.5.2 to 6.5.3 in /vue
2022-05-30 19:45:50 +02:00
vabene1111
2f088d03bb Merge pull request #1757 from TandoorRecipes/dependabot/npm_and_yarn/vue/vue-cookies-1.8.1
Bump vue-cookies from 1.7.4 to 1.8.1 in /vue
2022-05-30 19:45:42 +02:00
vabene1111
1195dd445a Merge pull request #1759 from TandoorRecipes/dependabot/npm_and_yarn/vue/eslint-plugin-vue-8.7.1
Bump eslint-plugin-vue from 8.5.0 to 8.7.1 in /vue
2022-05-30 19:45:36 +02:00
vabene1111
71c5835909 Added translation using Weblate (Ukrainian) 2022-05-30 16:42:02 +00:00
vabene1111
423e042492 Added translation using Weblate (Ukrainian) 2022-05-30 16:41:36 +00:00
Oleh Astappiev
37c87b4375 fix: ingredients table out of page bounds 2022-05-29 18:25:18 +02:00
Oleh Astappiev
43666e1f63 fix: improve recipe toolbar visualization on mobile and position of elements 2022-05-29 17:42:40 +02:00
Oleh Astappiev
d5dd64acd2 fix: improve buttons visualization on mobile 2022-05-29 17:41:51 +02:00
Oleh Astappiev
b0c3ea0934 fix: make menu icons centered on mobile 2022-05-29 17:16:18 +02:00
Oleh Astappiev
ab446590a2 fix: add some space in multi-row lists of elements on mobile 2022-05-29 17:02:21 +02:00
Oleh Astappiev
3478ff17f8 fix: recipe's step header out of view on mobile in edit mode 2022-05-29 16:56:13 +02:00
Frank Poppe
932e7c8912 Translated using Weblate (Spanish)
Currently translated at 37.4% (155 of 414 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/es/
2022-05-28 16:32:21 +00:00
Frank Poppe
6e7a769d79 Translated using Weblate (German)
Currently translated at 89.6% (371 of 414 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-05-28 16:32:21 +00:00
Frank Poppe
8602de6ce1 Translated using Weblate (Spanish)
Currently translated at 52.6% (278 of 528 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/es/
2022-05-28 16:32:21 +00:00
Tobias Reinmann
faee71943f Translated using Weblate (German)
Currently translated at 90.9% (480 of 528 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/
2022-05-28 16:32:21 +00:00
vabene1111
0e2a27ad41 Merge branch 'develop' 2022-05-25 18:53:18 +02:00
vabene1111
c064e8970f compiled messages 2022-05-25 17:58:29 +02:00
Krisztian Doka
b8ef7ae39d Translated using Weblate (Hungarian)
Currently translated at 92.2% (487 of 528 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/hu/
2022-05-24 20:32:14 +00:00
Krisztian Doka
702f3de061 Added translation using Weblate (Hungarian) 2022-05-23 19:50:50 +00:00
Ramon Aixa Juan
f278d7f6d0 Translated using Weblate (Spanish)
Currently translated at 8.2% (34 of 414 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/es/
2022-05-23 11:32:17 +00:00
Ramon Aixa Juan
221c1b523b Translated using Weblate (Spanish)
Currently translated at 52.2% (276 of 528 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/es/
2022-05-23 11:32:17 +00:00
Ramon Aixa Juan
d00b6a2e85 Translated using Weblate (Catalan)
Currently translated at 91.0% (481 of 528 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/ca/
2022-05-22 11:20:51 +00:00
César Blanco Guillamon
e03c285f14 Translated using Weblate (Spanish)
Currently translated at 5.3% (22 of 414 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/es/
2022-05-21 17:32:19 +00:00
Tomasz Klimczak
0ec1f334c0 Translated using Weblate (Polish)
Currently translated at 100.0% (414 of 414 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pl/
2022-05-21 17:32:19 +00:00
Laura
b637cbeabc Translated using Weblate (French)
Currently translated at 90.3% (374 of 414 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/
2022-05-21 17:32:18 +00:00
César Blanco Guillamon
943f873855 Translated using Weblate (Spanish)
Currently translated at 51.3% (271 of 528 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/es/
2022-05-19 10:10:33 +00:00
César Blanco Guillamon
49cebb400a Added translation using Weblate (Spanish) 2022-05-19 10:10:33 +00:00
Anu
0ed9225c05 Grammatical errors
Spotted several errors in sentence structure, punctuation, capitalization and other grammatical issues. Most changes are minor and any sentences that have been restructured have been re-written with great contemplation to keep the original meaning intact. This is my first open source contribution attempt so please let me know if this is appropriate. I am willing to help improve other pages of the docs as well if this work is considered helpful!
2022-05-19 00:27:24 +05:30
vabene1111
991fbdad3a fixed localization of create shopping auto form 2022-05-18 16:49:25 +02:00
vabene1111
34e95cd25b improved mobile rendering on ingerdient editor 2022-05-18 16:44:27 +02:00
vabene1111
8bc06fef34 Merge branch 'develop' of https://github.com/vabene1111/recipes into develop 2022-05-18 16:27:11 +02:00
vabene1111
6aba5c3661 fixed plan to eat tag delimeter 2022-05-18 16:27:07 +02:00
vabene1111
876bd49ee5 Merge pull request #1793 from smilerz/url_import_test
fixed spuce eats test
2022-05-18 16:25:30 +02:00
vabene1111
9435c5a380 changed order for reverse auth middleware 2022-05-18 16:09:37 +02:00
vabene1111
94c915e23a fixed advanced search field configuration cookie expiery 2022-05-18 16:06:55 +02:00
vabene1111
9ac8641c13 dont make first step header as default if others are not 2022-05-18 15:55:58 +02:00
vabene1111
0fe06cf2df fixed random search ordering 2022-05-18 15:54:02 +02:00
vabene1111
f872f994f1 fixed import failure with leading commas in input strings 2022-05-18 15:29:03 +02:00
vabene1111
87c2ff73e8 Merge branch 'develop' 2022-05-18 14:38:01 +02:00
Gabriel Tapias
27bb4c9bb8 Translated using Weblate (Spanish)
Currently translated at 48.1% (254 of 528 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/es/
2022-05-17 21:32:15 +00:00
dependabot[bot]
c10e0fd7bc Bump eslint-plugin-vue from 8.5.0 to 8.7.1 in /vue
Bumps [eslint-plugin-vue](https://github.com/vuejs/eslint-plugin-vue) from 8.5.0 to 8.7.1.
- [Release notes](https://github.com/vuejs/eslint-plugin-vue/releases)
- [Commits](https://github.com/vuejs/eslint-plugin-vue/compare/v8.5.0...v8.7.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-vue
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-17 20:13:02 +00:00
dependabot[bot]
48d302020c Bump vue-cookies from 1.7.4 to 1.8.1 in /vue
Bumps [vue-cookies](https://github.com/cmp-cc/vue-cookies) from 1.7.4 to 1.8.1.
- [Release notes](https://github.com/cmp-cc/vue-cookies/releases)
- [Commits](https://github.com/cmp-cc/vue-cookies/compare/v1.7.4...v1.8.1)

---
updated-dependencies:
- dependency-name: vue-cookies
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-17 20:12:23 +00:00
dependabot[bot]
b31b3ccd23 Bump workbox-precaching from 6.5.2 to 6.5.3 in /vue
Bumps [workbox-precaching](https://github.com/googlechrome/workbox) from 6.5.2 to 6.5.3.
- [Release notes](https://github.com/googlechrome/workbox/releases)
- [Commits](https://github.com/googlechrome/workbox/compare/v6.5.2...v6.5.3)

---
updated-dependencies:
- dependency-name: workbox-precaching
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-17 20:11:21 +00:00
vabene1111
ac647c5ee8 more JS nonsense 2022-05-17 22:00:36 +02:00
vabene1111
3cec891aa1 added missing dependency 2022-05-17 21:57:43 +02:00
vabene1111
3633b9724b fixed image deletion error 2022-05-17 21:53:10 +02:00
vabene1111
420b5c093f updated some dependencies 2022-05-17 21:43:52 +02:00
vabene1111
9bb55dd746 Merge pull request #1758 from TandoorRecipes/dependabot/npm_and_yarn/vue/kangc/v-md-editor-1.7.11
Bump @kangc/v-md-editor from 1.7.9 to 1.7.11 in /vue
2022-05-17 21:38:00 +02:00
dependabot[bot]
1759ad3587 Bump @kangc/v-md-editor from 1.7.9 to 1.7.11 in /vue
Bumps [@kangc/v-md-editor](https://github.com/code-farmer-i/vue-markdown-editor) from 1.7.9 to 1.7.11.
- [Release notes](https://github.com/code-farmer-i/vue-markdown-editor/releases)
- [Changelog](https://github.com/code-farmer-i/vue-markdown-editor/blob/dev/docs/changelog.md)
- [Commits](https://github.com/code-farmer-i/vue-markdown-editor/compare/v1.7.9...v1.7.11)

---
updated-dependencies:
- dependency-name: "@kangc/v-md-editor"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-17 19:30:34 +00:00
vabene1111
956693b7ca changed view mode of file viewer downloadable files
changed it so that the file is always downloaded so that opened files do not open in the application context (to prevent possible XSS issues)
2022-05-17 21:27:40 +02:00
vabene1111
7b2117c019 improved output sanitization of several views 2022-05-17 21:24:27 +02:00
vabene1111
d48fe26a35 added url validation to all server requests 2022-05-17 18:04:43 +02:00
Kaibu
7fd5fca0cf changed mobile logo to png version aswell 2022-05-13 15:11:04 +02:00
smilerz
37e215a4ea fixed spuce eats test 2022-05-11 14:18:14 -05:00
dependabot[bot]
ab5400efad Bump django-webpack-loader from 1.4.1 to 1.5.0
Bumps [django-webpack-loader](https://github.com/django-webpack/django-webpack-loader) from 1.4.1 to 1.5.0.
- [Release notes](https://github.com/django-webpack/django-webpack-loader/releases)
- [Changelog](https://github.com/django-webpack/django-webpack-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/django-webpack/django-webpack-loader/compare/1.4.1...1.5.0)

---
updated-dependencies:
- dependency-name: django-webpack-loader
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-11 18:43:24 +00:00
dependabot[bot]
258ecd476c Bump django-scopes from 1.2.0 to 1.2.0.post1
Bumps [django-scopes](https://github.com/raphaelm/django-scopes) from 1.2.0 to 1.2.0.post1.
- [Release notes](https://github.com/raphaelm/django-scopes/releases)
- [Commits](https://github.com/raphaelm/django-scopes/commits)

---
updated-dependencies:
- dependency-name: django-scopes
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-11 18:43:07 +00:00
vabene1111
378938812c update recipe scrapers 2022-05-11 20:42:28 +02:00
vabene1111
60b494abeb workflow name 2022-05-11 20:30:17 +02:00
vabene1111
34be1dc1d7 removed notification from raspi build 2022-05-11 20:14:53 +02:00
vabene1111
d89a4620f0 meal plan remove old add to shopping 2022-05-11 19:59:04 +02:00
vabene1111
dea83b5720 fixed duplication of values in recipe editor 2022-05-11 19:31:44 +02:00
vabene1111
d9ebe3e0fb fixed original text rendering in recipe edito view 2022-05-11 19:25:48 +02:00
vabene1111
135dde247f fixed static path generation 2022-05-11 19:17:40 +02:00
vabene1111
eb7a667202 fixed cookmate importer 2022-05-11 19:10:56 +02:00
Kaibu
b3cc9967f5 Merge branch 'develop' of https://github.com/TandoorRecipes/recipes into develop 2022-05-11 17:10:18 +02:00
Kaibu
7276cea3d5 multiple ux fixes 2022-05-11 17:10:12 +02:00
vabene1111
c0c996622e made shopping new entry translatable 2022-05-11 17:06:34 +02:00
vabene1111
5556555bca fixed paprika servings import 2022-05-11 17:05:47 +02:00
vabene1111
55a84494c9 fixed issue with plan to eat importer 2022-05-11 16:53:20 +02:00
vabene1111
74d778dcb8 compiled messages 2022-05-11 16:45:34 +02:00
vabene1111
156d68f1b8 added link to shopping recipes 2022-05-11 16:42:52 +02:00
vabene1111
cb59a6340d Merge pull request #1788 from gloriousDan/fix-import
Fix import with recipe-scrapers
2022-05-11 16:37:41 +02:00
vabene1111
5eb013cc2f Merge branch 'develop' of https://github.com/vabene1111/recipes into develop 2022-05-11 16:22:18 +02:00
vabene1111
dafb26b500 updated raspi docs 2022-05-11 16:22:13 +02:00
vabene1111
d9416a42dc Merge pull request #1786 from gloriousDan/dockerfile-armv7
Build pillow for armv7/ raspi
2022-05-11 16:17:45 +02:00
Jesse
ad88eff9e3 Translated using Weblate (Dutch)
Currently translated at 100.0% (528 of 528 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/nl/
2022-05-10 15:32:17 +00:00
zeon
4d4f623adf Translated using Weblate (Bulgarian)
Currently translated at 100.0% (412 of 412 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/bg/
2022-05-10 15:32:16 +00:00
Mathias Rasmussen
ac9c9cd4e3 Translated using Weblate (Danish)
Currently translated at 100.0% (528 of 528 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/da/
2022-05-10 15:32:15 +00:00
Jesse
580eeef6b7 Translated using Weblate (Dutch)
Currently translated at 100.0% (412 of 412 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/nl/
2022-05-10 15:32:13 +00:00
zeon
f25f5a26cf Translated using Weblate (Bulgarian)
Currently translated at 100.0% (528 of 528 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/bg/
2022-05-10 15:32:11 +00:00
Mathias Rasmussen
972d43c2a2 Translated using Weblate (Danish)
Currently translated at 100.0% (412 of 412 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/da/
2022-05-10 15:32:09 +00:00
Daniel Schulz
2a7475c435 Call scrape_me first when scraping from url 2022-05-10 00:08:37 +02:00
Daniel Schulz
71b41efe6c Build pillow for armv7/ raspi 2022-05-09 13:24:59 +02:00
zeon
33a7fee1cc Added translation using Weblate (Bulgarian) 2022-05-08 21:25:53 +00:00
zeon
fa7fb644ea Added translation using Weblate (Bulgarian) 2022-05-08 20:44:02 +00:00
Mathias Rasmussen
13b996171a Translated using Weblate (Danish)
Currently translated at 1.9% (8 of 412 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/da/
2022-05-07 16:49:26 +00:00
Kim Dannemand
77bb3870bf Translated using Weblate (Danish)
Currently translated at 1.9% (8 of 412 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/da/
2022-05-07 16:49:26 +00:00
vabene1111
9863303a5e Merge remote-tracking branch 'origin/develop' into develop 2022-05-06 20:32:14 +02:00
vabene1111
0caccc3da8 updated it and ru languages 2022-05-06 20:31:57 +02:00
vabene1111
b75427b86d Added translation using Weblate (Danish) 2022-05-06 18:30:41 +00:00
vabene1111
054c4ec61a Added translation using Weblate (Danish) 2022-05-06 18:30:05 +00:00
vabene1111
8da21f9914 added specific build files for raspi (armv7) 2022-05-06 20:28:20 +02:00
vabene1111
99ba512862 Merge branch 'beta' into develop 2022-05-06 20:24:27 +02:00
vabene1111
eab59fcbd8 Update docker-publish-latest-raspi.yml 2022-05-06 16:08:13 +02:00
vabene1111
484da2200e added some debug to auto add shopping signal 2022-05-06 15:34:28 +02:00
vabene1111
330bb6d954 testing extra raspi build 2022-05-06 15:07:54 +02:00
axeron2036
d4b6c8da04 Translated using Weblate (Russian)
Currently translated at 80.3% (331 of 412 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/ru/
2022-05-06 06:32:14 +00:00
Tomasz Klimczak
a5ef438cfe Translated using Weblate (Polish)
Currently translated at 100.0% (412 of 412 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pl/
2022-05-04 19:32:09 +00:00
vabene1111
de196c716b build test openssl 2022-05-04 20:33:27 +02:00
vabene1111
cb248a1f19 beta build test libressl 2022-05-04 20:33:10 +02:00
vabene1111
df2f1b2b7c testing armv7 build solutuin
taken from https://github.com/healthchecks/healthchecks/issues/568#issuecomment-942047344
2022-05-04 17:18:25 +02:00
vabene1111
36e26d8009 Merge branch 'master' into beta 2022-05-04 17:18:08 +02:00
vabene1111
a5973de02b Merge branch 'develop' 2022-05-04 17:11:35 +02:00
vabene1111
68f272bc25 fixed adding supermarket category to supermarket frontend desync 2022-05-04 15:20:40 +02:00
vabene1111
b66a5c1ee9 Merge branch 'develop' 2022-05-04 15:01:14 +02:00
vabene1111
bfc42638a4 fixed supermarket category ordering 2022-05-04 15:00:39 +02:00
vabene1111
a8c9689b43 fixed ability to disabled auto sync 2022-05-04 14:47:53 +02:00
vabene1111
26ff3f56ea Merge branch 'develop' into beta 2022-05-03 16:58:44 +02:00
vabene1111
a49993e399 testing new cryptography version 2022-05-03 16:58:39 +02:00
Tomasz Klimczak
9f42226224 Translated using Weblate (Polish)
Currently translated at 100.0% (395 of 395 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pl/
2022-05-02 22:32:09 +00:00
vabene1111
8f4c00df0b use old property as other sometimes fails 2022-05-02 15:52:15 +02:00
vabene1111
6cebec86c5 Merge branch 'master' into develop 2022-05-02 15:25:47 +02:00
vabene1111
8f5b017857 dont build arm 2022-05-01 21:51:57 +02:00
vabene1111
9915a3eebf Merge branch 'develop' 2022-05-01 13:09:48 +02:00
vabene1111
19c2d3bcf1 shopping description 2022-05-01 13:03:36 +02:00
vabene1111
9259f306ec final importer touches 2022-05-01 12:51:37 +02:00
vabene1111
483bc8f1b7 Merge branch 'develop' into beta 2022-04-29 21:58:13 +02:00
vabene1111
4f33101319 fixed empty step time error 2022-04-29 21:57:05 +02:00
vabene1111
3cef470134 made and compiled messages 2022-04-29 18:42:33 +02:00
vabene1111
ba493e3e19 Merge branch 'develop' into beta 2022-04-25 09:40:04 +02:00
Kaibu
93c53e5fc8 Merge branch 'develop' of https://github.com/vabene1111/recipes into develop 2022-04-24 12:52:06 +02:00
Kaibu
d931feadf5 supermarkets rework mostly done 2022-04-24 12:52:00 +02:00
vabene1111
fe32ff15b3 another toast fix 2022-04-24 12:46:17 +02:00
vabene1111
a44dea64b8 fixed toast error 2022-04-23 20:55:01 +02:00
Kaibu
54af76e9cf Merge branch 'develop' of https://github.com/vabene1111/recipes into develop
# Conflicts:
#	vue/src/apps/ShoppingListView/ShoppingListView.vue
2022-04-23 20:45:35 +02:00
Kaibu
fcfef255c1 shopping list supermarket rework 2022-04-23 20:44:46 +02:00
vabene1111
2914c20522 added space tier banner 2022-04-23 20:18:10 +02:00
vabene1111
825b7b7cf9 ingredient editor and parser 2022-04-23 19:58:40 +02:00
vabene1111
b9fb78c24d Merge pull request #1739 from ndbeals/develop
Fix image upload handler to use content-type
2022-04-23 19:55:08 +02:00
vabene1111
2fbce7d84d Merge pull request #1734 from Drumstickx/develop
Fix link in German locale
2022-04-23 19:53:47 +02:00
vabene1111
69a23f34b4 updated tests ingredient pagination 2022-04-23 18:54:23 +02:00
vabene1111
9f90306f6c at least basic ui for ingredient editor 2022-04-23 17:13:27 +02:00
vabene1111
1fb6f96571 minor shopping tweaks 2022-04-23 16:51:04 +02:00
vabene1111
0b8dd63510 small fixes 2022-04-23 15:27:21 +02:00
Kaibu
b79bc0d9a8 Merge branch 'develop' of https://github.com/vabene1111/recipes into develop 2022-04-23 14:47:14 +02:00
Kaibu
8149192455 shopping list and import view ux 2022-04-23 14:47:10 +02:00
vabene1111
66c0cc070a removed old shopping list 2022-04-23 14:43:03 +02:00
vabene1111
e2ab3a0efb fixed ingredient parser length issues 2022-04-23 14:15:06 +02:00
vabene1111
e0b7d1a8f0 added support for unit/amount at end of ingredient 2022-04-23 13:53:04 +02:00
vabene1111
012a1a7915 ingredient parser produces expected results again 2022-04-23 13:03:15 +02:00
Nathan Beals
2af36a3db4 Merge branch 'develop' of github.com:ndbeals/tandoor_recipes into develop 2022-04-23 00:11:08 -04:00
Nathan Beals
8df3009cb2 Update image upload handler to be content-type aware
Update handle_image: made filetype required and not optional
Updated handle_image usage to reflect changes
2022-04-23 00:11:04 -04:00
Kaibu
161ae9879a import app view refactor 2022-04-23 03:02:46 +02:00
vabene1111
71a60a46be Translated using Weblate (German)
Currently translated at 96.8% (372 of 384 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-04-23 00:54:22 +00:00
Kaibu
93acac1f3b Translated using Weblate (German)
Currently translated at 96.8% (372 of 384 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-04-23 00:54:22 +00:00
vabene1111
b4ebd98ee8 ingredient editor paginatio 2022-04-23 02:28:26 +02:00
vabene1111
78c0c5c213 ingredient editor improve merge/delete add edit 2022-04-23 02:17:40 +02:00
vabene1111
30d5587fbe added err msg to all standard toasts 2022-04-23 01:41:08 +02:00
vabene1111
e4223787be updated standard toast function 2022-04-23 01:31:15 +02:00
vabene1111
3850287deb WSL docs 2022-04-23 01:28:56 +02:00
Kaibu
7fae95e248 Merge branch 'develop' of https://github.com/vabene1111/recipes into develop 2022-04-23 01:28:25 +02:00
Kaibu
b037203b8f ui improvements (shopping and meal plan)
- fixed content scaling for meal plan and shopping
- style fixes on shopping list
- touch based swipe actions for shopping list
- better mobile experience overall
2022-04-23 01:28:20 +02:00
vabene1111
9b132e71f2 screw up ingredient parser 2022-04-23 01:21:13 +02:00
vabene1111
1a21659b5e Merge pull request #1737 from TandoorRecipes/dependabot/pip/django-3.2.13
Bump django from 3.2.12 to 3.2.13
2022-04-23 01:01:40 +02:00
dependabot[bot]
1a1dd092d0 Bump django from 3.2.12 to 3.2.13
Bumps [django](https://github.com/django/django) from 3.2.12 to 3.2.13.
- [Release notes](https://github.com/django/django/releases)
- [Commits](https://github.com/django/django/compare/3.2.12...3.2.13)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-22 22:45:49 +00:00
vabene1111
9adc1f7266 small fixes and tests 2022-04-22 22:27:17 +02:00
vabene1111
6953f763d2 improved source url field rendering 2022-04-22 21:13:00 +02:00
vabene1111
4ecf77f431 Merge branch 'feature/importer_to_vue' into develop
# Conflicts:
#	vue/src/apps/RecipeView/RecipeView.vue
2022-04-22 21:07:02 +02:00
vabene1111
c4f5b160a6 show original text in recipe editor 2022-04-22 21:05:23 +02:00
vabene1111
d8f6dbc58f import list to textarea 2022-04-22 21:00:59 +02:00
vabene1111
8d3747a304 added missing doc entries 2022-04-22 20:30:05 +02:00
vabene1111
1740913a14 improve experience when importing multiple recipes 2022-04-22 20:19:39 +02:00
vabene1111
3cf0395a18 lots of small fixes 2022-04-22 19:26:49 +02:00
Kaibu
42dfc9d126 source url added 2022-04-22 18:53:23 +02:00
Kaibu
d7bd731c73 minor ui fix in recipe view 2022-04-22 17:43:23 +02:00
Kaibu
9e86abb004 Merge branch 'develop' of https://github.com/vabene1111/recipes into develop 2022-04-22 17:33:33 +02:00
Kaibu
dc8ce0f6a4 recipe image max-width based on ingredient table 2022-04-22 17:33:27 +02:00
vabene1111
2ddb0c719a Merge branch 'develop' into feature/importer_to_vue
# Conflicts:
#	vue/src/apps/RecipeEditView/RecipeEditView.vue
#	vue/src/utils/openapi/api.ts
2022-04-22 16:41:13 +02:00
Tomasz Klimczak
05383a2bc3 Translated using Weblate (Polish)
Currently translated at 100.0% (384 of 384 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pl/
2022-04-21 19:14:53 +00:00
Drumstickx
48c0252893 Fix link in German locale 2022-04-21 18:51:38 +02:00
Tomasz Klimczak
82fd6f1860 Translated using Weblate (Polish)
Currently translated at 100.0% (383 of 383 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pl/
2022-04-19 04:18:02 +00:00
Kaibu
694022506d Merge branch 'develop' of https://github.com/vabene1111/recipes into develop 2022-04-18 14:13:30 +02:00
Kaibu
45a86a22e3 recipe switcher and navbar fixes
also added left_hand to global preferences
2022-04-18 14:13:23 +02:00
vabene1111
1100826ed8 fixed NC importer importing empty keywords 2022-04-18 12:52:32 +02:00
vabene1111
d1065c8ac4 Merge pull request #1710 from hendrikbl/feature/navbar-tweaks
Navbar tweaks
2022-04-18 12:37:45 +02:00
vabene1111
2fdd9edde1 Merge pull request #1731 from parkroland/enhancement/clickable-keywords-recipe-card
Add clickable keywords to recipe card
2022-04-18 12:33:10 +02:00
Roland Park
a84ab0c049 Add clickable keywords to recipe card 2022-04-17 19:56:36 -04:00
vabene1111
d9dd0a594e show recipe and allow delete in ingredient editor 2022-04-17 23:25:22 +02:00
vabene1111
f0d59a8c9c added ability to open ingredient editor from food/unit list 2022-04-17 22:43:33 +02:00
vabene1111
d50fb69ce9 fixed errro message in meal plan when adding notes with add to shopping 2022-04-17 15:48:18 +02:00
vabene1111
8bc13fc91f fixed env template email settings 2022-04-17 15:35:41 +02:00
vabene1111
2ce06a8154 fixed too small fractions dissappearing 2022-04-17 15:35:32 +02:00
vabene1111
0a0c0b069f fixed space management page template error 2022-04-17 15:03:50 +02:00
vabene1111
47b62aa390 Merge pull request #1714 from gloriousDan/docs_nginx_read_only
Docs: nginx mount volumes read-only
2022-04-17 14:59:57 +02:00
vabene1111
9a2f91d3d4 Merge pull request #1709 from gloriousDan/develop
Docs: Reintroduce restart-always to web_recipes service
2022-04-17 14:58:55 +02:00
vabene1111
2df940ee40 improved rezkonv importer 2022-04-17 14:55:30 +02:00
Oskar Stenberg
67a5d8f1bd Translated using Weblate (Swedish)
Currently translated at 100.0% (371 of 371 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/sv/
2022-04-17 00:32:01 +00:00
vabene1111
297a8d4c8b ingredient editor basics done 2022-04-14 22:45:31 +02:00
vabene1111
976bce5fdd add merge capability to ingredient editor 2022-04-14 22:10:48 +02:00
vabene1111
8c89438b97 allow delete in ingredient editor 2022-04-14 14:40:15 +02:00
vabene1111
7ca7bd6111 improve generic form delete 2022-04-14 14:31:34 +02:00
Veit Kunz
095befd9b7 Fix some issues to improve the print output 2022-04-14 14:26:36 +02:00
vabene1111
3159868ba4 moved generic multiselect create function into component 2022-04-14 14:08:16 +02:00
vabene1111
7befa4a084 added basic ingredient editor 2022-04-14 13:01:27 +02:00
vabene1111
2ee96c2ea4 docs run on master, update contrib. docs 2022-04-14 08:53:16 +02:00
vabene1111
74b67e5549 Merge pull request #1719 from tristanlins/develop
Remove namespace vom k8s templates
2022-04-14 08:40:51 +02:00
vabene1111
1e24161d4c Merge pull request #1711 from Makanz/add-swedish-language-support
Add swedish language support
2022-04-14 08:39:29 +02:00
Tristan Lins
a839fb0bfc Remove namespace vom k8s templates 2022-04-12 20:43:58 +02:00
cesar ferreira
46267a135b Translated using Weblate (Portuguese)
Currently translated at 7.8% (30 of 381 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pt/
2022-04-12 18:32:03 +00:00
Tomasz Klimczak
f7ab0400a3 Translated using Weblate (Polish)
Currently translated at 100.0% (381 of 381 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pl/
2022-04-12 18:32:02 +00:00
Marcus Alsterfjord
74863117c5 Translated using Weblate (Swedish)
Currently translated at 100.0% (381 of 381 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/sv/
2022-04-12 18:32:01 +00:00
Marcus Alsterfjord
e872272fbd Translated using Weblate (Swedish)
Currently translated at 100.0% (371 of 371 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/sv/
2022-04-12 18:32:00 +00:00
Daniel
9ae7d591cc Merge branch 'TandoorRecipes:develop' into docs_nginx_read_only 2022-04-10 20:46:46 +02:00
Daniel Schulz
c3c697f4a8 Mount all volumes in nginx read-only 2022-04-10 20:45:34 +02:00
Tomasz Klimczak
60e8b95593 Translated using Weblate (Polish)
Currently translated at 88.1% (336 of 381 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pl/
2022-04-10 09:51:32 +00:00
Marcus Alsterfjord
1636710099 Translated using Weblate (Swedish)
Currently translated at 61.7% (229 of 371 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/sv/
2022-04-10 09:51:31 +00:00
Rubens
4296c3d136 Translated using Weblate (Catalan)
Currently translated at 96.4% (542 of 562 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/ca/
2022-04-10 09:51:31 +00:00
Marcus Alsterfjord
bcda5eea93 Update CONTRIBUTERS.md 2022-04-09 16:52:18 +02:00
Marcus Alsterfjord
a63ede0e3a Add swedish support in frontend ui and in search 2022-04-09 16:51:16 +02:00
hendrikbl
a9414065b5 changed navbar logo size and order 2022-04-09 16:15:10 +02:00
Daniel Schulz
fa79adf931 Reintroduce restart-always to web_recipes service 2022-04-09 14:56:00 +02:00
Marcus Alsterfjord
cd5f752d26 Translated using Weblate (Swedish)
Currently translated at 85.8% (327 of 381 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/sv/
2022-04-08 22:32:07 +00:00
Rubens
6a41b182f5 Translated using Weblate (Catalan)
Currently translated at 79.8% (449 of 562 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/ca/
2022-04-08 22:32:07 +00:00
vabene1111
0011ce26d3 Merge pull request #1705 from amillerr/patch-1
Update CONTRIBUTERS.md
2022-04-08 08:03:29 +02:00
Artem Aksenov
1ef92df83c Translated using Weblate (Russian)
Currently translated at 8.8% (44 of 496 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/ru/
2022-04-07 19:32:01 +00:00
Artem Aksenov
3e8ef33402 Translated using Weblate (Russian)
Currently translated at 54.3% (207 of 381 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/ru/
2022-04-07 19:32:00 +00:00
Rubens
4d4c3bea92 Translated using Weblate (Catalan)
Currently translated at 56.5% (318 of 562 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/ca/
2022-04-07 19:32:00 +00:00
Artyom Aksyonov
9ecbfb0655 Update CONTRIBUTERS.md 2022-04-07 21:58:39 +03:00
Jesse
944492168e Translated using Weblate (Dutch)
Currently translated at 100.0% (378 of 378 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/nl/
2022-04-05 10:32:03 +00:00
Jesse
1c39befa0f Translated using Weblate (Dutch)
Currently translated at 100.0% (562 of 562 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/nl/
2022-04-05 10:32:03 +00:00
vabene1111
57ec6a2b3d import servings text 2022-04-04 23:21:13 +02:00
vabene1111
3653d6b911 added source url to nextcloud cookbook 2022-04-04 22:55:00 +02:00
Kaibu
82c2cc0f40 ui improvements 2022-04-04 22:53:26 +02:00
vabene1111
48e9f3f8a9 added cookmate importer 2022-04-04 22:49:50 +02:00
vabene1111
12865437d7 copy me that improvements 2022-04-04 21:44:51 +02:00
vabene1111
090e18e405 paprika importer improvements 2022-04-04 21:30:00 +02:00
vabene1111
7db49b1528 Merge pull request #1698 from HarHarLinks/patch-1
fix links in german locale
2022-04-04 21:16:06 +02:00
vabene1111
85aad42529 added mela recipes importer 2022-04-04 21:09:47 +02:00
Kim Brose
9c254be4b5 fix links in german locale 2022-04-04 20:34:01 +02:00
vabene1111
5bd9a15e4b small fixes 2022-04-04 20:11:22 +02:00
vabene1111
3cedab45ee fixed copy recipe nutrition link 2022-04-04 19:45:37 +02:00
vabene1111
56f3fe2d12 fixed deprecated model attribute on exporters 2022-04-04 19:27:14 +02:00
vabene1111
a2954554b5 fixed description length limit 2022-04-04 19:26:47 +02:00
vabene1111
528ada7d32 Merge branch 'develop' into feature/importer_to_vue
# Conflicts:
#	vue/package.json
2022-04-04 19:16:20 +02:00
vabene1111
b7e6e7b1b0 fixed s3 check 2022-04-04 19:15:11 +02:00
vabene1111
e17da08a74 Merge pull request #1679 from TandoorRecipes/dependabot/pip/jinja2-3.1.1
Bump jinja2 from 3.0.3 to 3.1.1
2022-04-04 19:07:34 +02:00
vabene1111
32cedf1078 Merge pull request #1680 from TandoorRecipes/dependabot/pip/boto3-1.21.31
Bump boto3 from 1.21.28 to 1.21.31
2022-04-04 19:07:29 +02:00
vabene1111
60bb3fd4aa Merge pull request #1633 from smilerz/recipe_as_food
allow marking recipe as food
2022-04-04 19:06:10 +02:00
dependabot[bot]
f421990ae0 Bump jinja2 from 3.0.3 to 3.1.1
Bumps [jinja2](https://github.com/pallets/jinja) from 3.0.3 to 3.1.1.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/3.0.3...3.1.1)

---
updated-dependencies:
- dependency-name: jinja2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-04 17:05:40 +00:00
vabene1111
f9333d2b82 Merge pull request #1681 from TandoorRecipes/dependabot/pip/recipe-scrapers-13.25.0
Bump recipe-scrapers from 13.19.0 to 13.25.0
2022-04-04 19:04:58 +02:00
vabene1111
dfa5475ecb Merge pull request #1690 from kettenbach-it/develop
Get image from S3-storage if configured
2022-04-04 19:02:35 +02:00
Volker Kettenbach
b6e5425bd3 Get image from S3-Storage if configured 2022-04-02 11:35:35 +02:00
dependabot[bot]
1b7347f1d9 Bump recipe-scrapers from 13.19.0 to 13.25.0
Bumps [recipe-scrapers](https://github.com/hhursev/recipe-scrapers) from 13.19.0 to 13.25.0.
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/13.19.0...13.25.0)

---
updated-dependencies:
- dependency-name: recipe-scrapers
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-01 00:04:59 +00:00
dependabot[bot]
2ef23d2cb3 Bump boto3 from 1.21.28 to 1.21.31
Bumps [boto3](https://github.com/boto/boto3) from 1.21.28 to 1.21.31.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.21.28...1.21.31)

---
updated-dependencies:
- dependency-name: boto3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-01 00:04:51 +00:00
Lucas Declercq
bba81f6594 Translated using Weblate (French)
Currently translated at 87.3% (330 of 378 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/
2022-03-31 06:01:57 +00:00
Marcus Alsterfjord
3a4f08f2f7 Translated using Weblate (Swedish)
Currently translated at 57.6% (218 of 378 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/sv/
2022-03-31 06:01:56 +00:00
Marcus Alsterfjord
f8ad465113 Translated using Weblate (Swedish)
Currently translated at 55.0% (208 of 378 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/sv/
2022-03-29 20:36:24 +00:00
Marcus Alsterfjord
6df993ce29 Translated using Weblate (Swedish)
Currently translated at 54.7% (203 of 371 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/sv/
2022-03-29 20:36:24 +00:00
Adrian M
6009eae42d Translated using Weblate (Hungarian)
Currently translated at 100.0% (568 of 568 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/hu/
2022-03-29 20:36:24 +00:00
vabene1111
7bed9963ff fixed vue cli pwa version and admin comment search 2022-03-28 22:56:45 +02:00
vabene1111
a0610ac05f Merge pull request #1676 from TandoorRecipes/dependabot/npm_and_yarn/vue/vue/cli-plugin-eslint-5.0.4
Bump @vue/cli-plugin-eslint from 4.5.15 to 5.0.4 in /vue
2022-03-28 22:15:58 +02:00
dependabot[bot]
afd063a2b9 Bump @vue/cli-plugin-eslint from 4.5.15 to 5.0.4 in /vue
Bumps [@vue/cli-plugin-eslint](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-eslint) from 4.5.15 to 5.0.4.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v5.0.4/packages/@vue/cli-plugin-eslint)

---
updated-dependencies:
- dependency-name: "@vue/cli-plugin-eslint"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 20:01:08 +00:00
vabene1111
6b92dcbb2a Merge pull request #1606 from TandoorRecipes/dependabot/npm_and_yarn/vue/workbox-routing-6.5.0
Bump workbox-routing from 6.4.2 to 6.5.0 in /vue
2022-03-28 21:59:22 +02:00
vabene1111
12af99f546 Merge pull request #1668 from TandoorRecipes/dependabot/pip/cryptography-36.0.2
Bump cryptography from 36.0.1 to 36.0.2
2022-03-28 21:59:08 +02:00
vabene1111
68501d646d Merge pull request #1675 from TandoorRecipes/dependabot/npm_and_yarn/vue/axios-0.26.1
Bump axios from 0.24.0 to 0.26.1 in /vue
2022-03-28 21:58:52 +02:00
vabene1111
d215d236f0 Merge pull request #1669 from TandoorRecipes/dependabot/pip/boto3-1.21.28
Bump boto3 from 1.20.47 to 1.21.28
2022-03-28 21:58:41 +02:00
dependabot[bot]
459cf79ef3 Bump axios from 0.24.0 to 0.26.1 in /vue
Bumps [axios](https://github.com/axios/axios) from 0.24.0 to 0.26.1.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.24.0...v0.26.1)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 19:58:40 +00:00
dependabot[bot]
1d357eca4e Bump cryptography from 36.0.1 to 36.0.2
Bumps [cryptography](https://github.com/pyca/cryptography) from 36.0.1 to 36.0.2.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/36.0.1...36.0.2)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 19:58:38 +00:00
vabene1111
ca8a7c3bc9 Merge pull request #1626 from TandoorRecipes/dependabot/pip/whitenoise-6.0.0
Bump whitenoise from 5.3.0 to 6.0.0
2022-03-28 21:58:30 +02:00
vabene1111
3b936eca3f Merge pull request #1674 from TandoorRecipes/dependabot/pip/python-dotenv-0.20.0
Bump python-dotenv from 0.19.2 to 0.20.0
2022-03-28 21:58:18 +02:00
vabene1111
2f06e9bc1c Merge pull request #1673 from TandoorRecipes/dependabot/pip/django-autocomplete-light-3.9.4
Bump django-autocomplete-light from 3.8.2 to 3.9.4
2022-03-28 21:57:25 +02:00
dependabot[bot]
e25c0705c6 Bump python-dotenv from 0.19.2 to 0.20.0
Bumps [python-dotenv](https://github.com/theskumar/python-dotenv) from 0.19.2 to 0.20.0.
- [Release notes](https://github.com/theskumar/python-dotenv/releases)
- [Changelog](https://github.com/theskumar/python-dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/theskumar/python-dotenv/compare/v0.19.2...v0.20.0)

---
updated-dependencies:
- dependency-name: python-dotenv
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 19:57:19 +00:00
vabene1111
d4e9526c75 Merge pull request #1670 from TandoorRecipes/dependabot/npm_and_yarn/vue/minimist-1.2.6
Bump minimist from 1.2.5 to 1.2.6 in /vue
2022-03-28 21:56:52 +02:00
dependabot[bot]
2e2e81638b Bump django-autocomplete-light from 3.8.2 to 3.9.4
Bumps [django-autocomplete-light](https://github.com/yourlabs/django-autocomplete-light) from 3.8.2 to 3.9.4.
- [Release notes](https://github.com/yourlabs/django-autocomplete-light/releases)
- [Changelog](https://github.com/yourlabs/django-autocomplete-light/blob/master/CHANGELOG)
- [Commits](https://github.com/yourlabs/django-autocomplete-light/compare/3.8.2...3.9.4)

---
updated-dependencies:
- dependency-name: django-autocomplete-light
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 19:56:46 +00:00
vabene1111
baf5c9700f Merge pull request #1671 from TandoorRecipes/dependabot/pip/django-allauth-0.50.0
Bump django-allauth from 0.47.0 to 0.50.0
2022-03-28 21:56:39 +02:00
dependabot[bot]
dff7daefc7 Bump django-allauth from 0.47.0 to 0.50.0
Bumps [django-allauth](https://github.com/pennersr/django-allauth) from 0.47.0 to 0.50.0.
- [Release notes](https://github.com/pennersr/django-allauth/releases)
- [Changelog](https://github.com/pennersr/django-allauth/blob/master/ChangeLog.rst)
- [Commits](https://github.com/pennersr/django-allauth/compare/0.47.0...0.50.0)

---
updated-dependencies:
- dependency-name: django-allauth
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 19:56:33 +00:00
vabene1111
7e27d704ca Merge pull request #1672 from TandoorRecipes/dependabot/pip/pytest-7.1.1
Bump pytest from 7.0.1 to 7.1.1
2022-03-28 21:56:27 +02:00
vabene1111
9722f22837 Merge pull request #1604 from TandoorRecipes/dependabot/npm_and_yarn/vue/vue/cli-plugin-pwa-5.0.1
Bump @vue/cli-plugin-pwa from 4.5.15 to 5.0.1 in /vue
2022-03-28 21:56:09 +02:00
dependabot[bot]
707a12f8c1 Bump pytest from 7.0.1 to 7.1.1
Bumps [pytest](https://github.com/pytest-dev/pytest) from 7.0.1 to 7.1.1.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/7.0.1...7.1.1)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 19:55:38 +00:00
vabene1111
b9b8864631 Merge pull request #1603 from TandoorRecipes/dependabot/npm_and_yarn/vue/popperjs/core-2.11.2
Bump @popperjs/core from 2.11.0 to 2.11.2 in /vue
2022-03-28 21:55:37 +02:00
vabene1111
31bdc0589e Merge pull request #1602 from TandoorRecipes/dependabot/pip/lxml-4.8.0
Bump lxml from 4.7.1 to 4.8.0
2022-03-28 21:55:26 +02:00
dependabot[bot]
cb29caf88c Bump whitenoise from 5.3.0 to 6.0.0
Bumps [whitenoise](https://github.com/evansd/whitenoise) from 5.3.0 to 6.0.0.
- [Release notes](https://github.com/evansd/whitenoise/releases)
- [Changelog](https://github.com/evansd/whitenoise/blob/master/docs/changelog.rst)
- [Commits](https://github.com/evansd/whitenoise/compare/v5.3.0...6.0.0)

---
updated-dependencies:
- dependency-name: whitenoise
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 19:55:05 +00:00
dependabot[bot]
dd044eba36 Bump minimist from 1.2.5 to 1.2.6 in /vue
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 19:54:50 +00:00
dependabot[bot]
b8518884b0 Bump boto3 from 1.20.47 to 1.21.28
Bumps [boto3](https://github.com/boto/boto3) from 1.20.47 to 1.21.28.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.20.47...1.21.28)

---
updated-dependencies:
- dependency-name: boto3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-28 19:54:47 +00:00
vabene1111
ed20a54137 Merge pull request #1601 from TandoorRecipes/dependabot/pip/django-allauth-0.49.0
Bump django-allauth from 0.47.0 to 0.49.0
2022-03-28 21:54:30 +02:00
vabene1111
7781bf1444 Merge pull request #1598 from TandoorRecipes/dependabot/pip/pytest-7.0.1
Bump pytest from 6.2.5 to 7.0.1
2022-03-28 21:54:16 +02:00
vabene1111
14db4179b9 Merge pull request #1660 from MaxJa4/patch-1
Add POSTGRES_USER to psql health check during boot
2022-03-28 21:53:27 +02:00
Adrian M
37eab3ece2 Translated using Weblate (Hungarian)
Currently translated at 57.3% (326 of 568 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/hu/
2022-03-28 01:56:10 +00:00
Adrian M
768b483351 Translated using Weblate (Hungarian)
Currently translated at 12.1% (69 of 568 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/hu/
2022-03-27 18:00:28 +00:00
MaxJa4
59d277da3d Add POSTGRES_USER to psql health check during boot
Add POSTGRES_USER to psql health check during boot to support external psql instances better.

Fixes #1656
2022-03-20 00:08:41 +01:00
Stefan Werner
f68fd0fa94 Translated using Weblate (Finnish)
Currently translated at 56.3% (213 of 378 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fi/
2022-03-18 16:31:49 +00:00
Stefan Werner
dd1fcc21e0 Translated using Weblate (Finnish)
Currently translated at 3.2% (16 of 493 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/fi/
2022-03-18 16:31:49 +00:00
vabene1111
f445722140 Merge pull request #1653 from bradpoulton/develop
Fixes the formatting
2022-03-17 20:46:41 +01:00
brad
a3def6bf4c Fixes the formatting 2022-03-16 22:00:42 -06:00
Adrian M
cbd2ac2032 Translated using Weblate (Hungarian)
Currently translated at 5.6% (32 of 568 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/hu/
2022-03-16 22:31:47 +00:00
vabene1111
1d3d4e78f5 Merge branch 'develop' 2022-03-16 14:27:11 +01:00
vabene1111
0c841ec686 another improvement to shopping list item 2022-03-16 09:21:09 +01:00
ivo
f875942e79 Translated using Weblate (Portuguese)
Currently translated at 1.0% (4 of 378 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pt/
2022-03-15 19:31:47 +00:00
vabene1111
e901c6708c Merge branch 'develop' into feature/importer_to_vue 2022-03-15 13:02:10 +01:00
vabene1111
c5863a5309 Merge branch 'develop' 2022-03-15 13:01:59 +01:00
vabene1111
4cf8b72e3f removed OT from sle 2022-03-15 12:50:41 +01:00
vabene1111
4dd3ba29b6 improved shopping v2 layout a little bit 2022-03-15 12:35:13 +01:00
vabene1111
96bd66f9e6 fixed telegram bot 2022-03-15 11:48:12 +01:00
vabene1111
70716bf99f Merge pull request #1643 from MaxJa4/patch-1
Updated dependencies of manual setup
2022-03-15 11:35:33 +01:00
vabene1111
16449cd078 Merge pull request #1644 from gloriousDan/develop
Update bind mounts in docker run command to use absolute paths
2022-03-15 11:34:40 +01:00
vabene1111
5459e293d1 Merge pull request #1645 from smilerz/fix_sql_debug
fix sql debug button in search
2022-03-15 11:33:23 +01:00
vabene1111
749713d698 Merge pull request #1646 from bradpoulton/develop
Updates Docker installation docs
2022-03-15 11:32:24 +01:00
ivo
4a5af48f33 Added translation using Weblate (Portuguese) 2022-03-14 18:51:14 +00:00
brad
5cf58a32dc Updates formating 2022-03-11 18:19:48 -07:00
brad
a956888355 Fixes wording 2022-03-11 18:18:09 -07:00
brad
cb835b033c Updates Docker installation docs
Adds warning that the jwilder nginx-proxy reduces file size upload to 1 MB.
2022-03-11 18:16:32 -07:00
smilerz
b9289e2685 fix sql debug button in search 2022-03-11 07:27:42 -06:00
Daniel
c0bd0d49ae Update bind mounts to use absolute paths
Docker bind mounts have to use absolute paths, so the docker run command fails when using the relative mounts ./staticfiles and ./mediafiles.
This may be supported again (https://github.com/docker/cli/issues/1203)
2022-03-11 13:40:59 +01:00
MaxJa4
36fbbed1b0 Added link to docs of nodejs installation 2022-03-11 10:21:50 +01:00
MaxJa4
34f70e4ba7 Fixed formatting 2022-03-11 10:18:51 +01:00
MaxJa4
8bc361ee7c Updated dependencies of manual setup
- apt install of nodejs installs an unsupported (V10.X) version
- dependencies for python-ldap were missing
2022-03-11 10:16:55 +01:00
vabene1111
7426bb4e76 auto import multiple urls 2022-03-10 17:35:11 +01:00
vabene1111
92b536b32c check login remember by default 2022-03-10 16:10:33 +01:00
vabene1111
5627161c5e Merge branch 'develop' into feature/importer_to_vue 2022-03-10 15:27:11 +01:00
vabene1111
091fab154a improved openid and social auth pages 2022-03-10 15:24:13 +01:00
vabene1111
c6e11f6ef2 Merge pull request #1640 from CameronJGrant/develop
Fixed typos and grammatical issues.
2022-03-10 14:43:16 +01:00
vabene1111
16b5cd75b1 Merge pull request #1641 from m42e/feature/markdown-img-tag
Allow img tag (including width/height attribute)
2022-03-10 14:41:31 +01:00
Matthias Bilger
f040b491d4 Allow img tag (including width/height attribute)
Allow using img tag in markdown and additionally allowing to specify
width and height attribute for elements.
2022-03-10 11:38:08 +01:00
karawedi
8174da31e8 Translated using Weblate (German)
Currently translated at 95.1% (535 of 562 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/
2022-03-09 18:31:44 +00:00
Cameron Grant
53518f4c47 Fixed typos and grammatical issues. 2022-03-08 12:12:20 -08:00
Felipe Castro
693d829946 Translated using Weblate (Portuguese (Brazil))
Currently translated at 3.0% (17 of 562 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/pt_BR/
2022-03-08 01:31:43 +00:00
Felipe Castro
5ab11eb1bc Translated using Weblate (Portuguese (Brazil))
Currently translated at 0.5% (2 of 378 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pt_BR/
2022-03-08 01:31:43 +00:00
smilerz
486d197854 allow marking recipe as food 2022-03-06 23:12:59 -06:00
Felipe Castro
332f518774 Added translation using Weblate (Portuguese (Brazil)) 2022-03-07 01:00:09 +00:00
Felipe Castro
ed33114947 Added translation using Weblate (Portuguese (Brazil)) 2022-03-07 00:56:04 +00:00
Kaibu
aeb38cd2e9 Merge branch 'develop-weblate' into develop
# Conflicts:
#	cookbook/locale/de/LC_MESSAGES/django.po
#	cookbook/locale/hu_HU/LC_MESSAGES/django.po
#	vue/src/locales/de.json
2022-03-06 20:45:35 +01:00
Adrian M
17cf5f48a1 Translated using Weblate (Hungarian)
Currently translated at 2.9% (17 of 568 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/hu/
2022-03-06 19:35:42 +00:00
vabene1111
22ca482458 super very basics of manual mapping page working 2022-03-05 16:02:42 +01:00
vabene1111
2565ab30a4 lots of improvements and bookmarklet import working again 2022-03-05 15:16:58 +01:00
vabene1111
1caabef56a step functions 2022-03-04 16:54:59 +01:00
vabene1111
edde8c8b8f Merge branch 'develop' 2022-03-04 15:54:16 +01:00
vabene1111
6d8fe3c162 wip 2022-03-04 15:54:11 +01:00
vabene1111
bdccdf0893 Merge branch 'develop' into feature/importer_to_vue
# Conflicts:
#	cookbook/helper/recipe_url_import.py
2022-03-04 14:33:59 +01:00
dependabot[bot]
f0927bf065 Bump django-allauth from 0.47.0 to 0.49.0
Bumps [django-allauth](https://github.com/pennersr/django-allauth) from 0.47.0 to 0.49.0.
- [Release notes](https://github.com/pennersr/django-allauth/releases)
- [Changelog](https://github.com/pennersr/django-allauth/blob/master/ChangeLog.rst)
- [Commits](https://github.com/pennersr/django-allauth/compare/0.47.0...0.49.0)

---
updated-dependencies:
- dependency-name: django-allauth
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-04 13:30:25 +00:00
dependabot[bot]
ed1fb9a95e Bump pytest from 6.2.5 to 7.0.1
Bumps [pytest](https://github.com/pytest-dev/pytest) from 6.2.5 to 7.0.1.
- [Release notes](https://github.com/pytest-dev/pytest/releases)
- [Changelog](https://github.com/pytest-dev/pytest/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest/compare/6.2.5...7.0.1)

---
updated-dependencies:
- dependency-name: pytest
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-04 13:30:07 +00:00
vabene1111
c950e6dabb Merge pull request #1625 from TandoorRecipes/dependabot/pip/recipe-scrapers-13.19.0
Bump recipe-scrapers from 13.18.0 to 13.19.0
2022-03-04 14:29:18 +01:00
vabene1111
e27a64f52c Merge pull request #1623 from gloriousDan/develop
Improve recipe import for non schema.org recipes
2022-03-04 14:28:34 +01:00
vabene1111
f02b6f29db Merge pull request #1620 from ratheile/ratheile-patch-boot-nonstandard-ports
Update boot.sh
2022-03-04 14:27:31 +01:00
dependabot[bot]
a3ba516587 Bump recipe-scrapers from 13.18.0 to 13.19.0
Bumps [recipe-scrapers](https://github.com/hhursev/recipe-scrapers) from 13.18.0 to 13.19.0.
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/13.18.0...13.19.0)

---
updated-dependencies:
- dependency-name: recipe-scrapers
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-04 13:27:30 +00:00
vabene1111
a15f5895f5 Merge pull request #1622 from MaxJa4/fix/ldap_dockerfile
Added ldap as runtime dependency to Dockerfile
2022-03-04 14:27:01 +01:00
vabene1111
c6e36b802c Merge pull request #1617 from smilerz/fix_sqlite_search
remove unaccent from sqlite search
2022-03-04 14:26:32 +01:00
vabene1111
f91ca28638 Merge pull request #1611 from smilerz/missing_preptime
missing prepTime assignment
2022-03-04 14:26:21 +01:00
Daniel Schulz
cfcf354d59 Improve recipe import for non schema.org recipes 2022-03-03 23:47:50 +01:00
MaxJa4
6813077113 Added ldap as runtime dependency to Dockerfile 2022-03-03 22:27:41 +01:00
Raffael Theiler
581ee762b6 Update boot.sh
Add port to pg_isready to allow non-standard ports.
2022-03-03 19:27:51 +01:00
smilerz
08c1a8f2ab fix loading children in treeselect 2022-03-02 14:56:33 -06:00
smilerz
ba25e463ad added uritemplate requirement back 2022-03-02 10:13:40 -06:00
smilerz
f2211da9bb remove unaccent from sqlite search 2022-03-02 09:42:10 -06:00
vabene1111
030d977a8c Merge branch 'develop' 2022-03-02 13:11:57 +01:00
vabene1111
8d3419952c movbed pg password check 2022-03-02 13:11:52 +01:00
vabene1111
8010ee3dca logical fix 2022-03-02 12:22:54 +01:00
vabene1111
0f3d82a5e6 fixing boot script 2022-03-02 12:22:12 +01:00
vabene1111
5e67e735db Merge branch 'beta' into develop 2022-03-02 12:17:40 +01:00
vabene1111
f9f6ca05a4 Merge pull request #1612 from smilerz/mealplan_modal_shopping
trigger shopping modal
2022-03-02 09:43:46 +01:00
vabene1111
d7379d8ab6 testing with setuptools_rust 2022-03-02 09:39:54 +01:00
vabene1111
51f44e4926 testing with py dev 2022-03-02 09:37:11 +01:00
vabene1111
447a16dcd5 re enabled disabled architectures 2022-03-02 09:28:28 +01:00
vabene1111
f15922ceb5 testing cryptography builds with rustc 2022-03-02 09:25:29 +01:00
vabene1111
a5cc218b56 Merge branch 'develop' into beta 2022-03-02 09:24:09 +01:00
vabene1111
640d7305c7 Merge branch 'master' into develop 2022-03-02 09:24:02 +01:00
vabene1111
fdf98932e2 exchanged deprecated vars 2022-03-02 09:20:35 +01:00
vabene1111
29e44e7101 dont build arm v7 2022-03-02 08:38:42 +01:00
smilerz
2993c7e688 trigger shopping modal 2022-03-01 17:17:35 -06:00
smilerz
d6db3fe65b missing prepTime assignment 2022-03-01 16:31:18 -06:00
vabene1111
36099b80ab docker dont pip install cryptography
dont install cryptography wheel in alpine docker build as py-cryptography already takes care of this.
2022-03-01 19:50:31 +01:00
vabene1111
9a795a7f60 docker dont pip install cryptography
dont install cryptography wheel in alpine docker build as py-cryptography already takes care of this.
2022-03-01 19:50:17 +01:00
vabene1111
7ef67cdadd Merge branch 'develop' 2022-03-01 16:37:03 +01:00
vabene1111
55539c83c9 fixed supermarket category creation 2022-03-01 16:26:36 +01:00
vabene1111
c5df241ec3 Merge pull request #1597 from MaxJa4/improvement/multiselect_localization
Multiselect controls are now fully localized in RecipeEditView
2022-03-01 15:55:35 +01:00
vabene1111
8ea882e5b3 Merge branch 'develop' into improvement/multiselect_localization 2022-03-01 15:55:27 +01:00
vabene1111
aaecd479ad Merge pull request #1594 from MaxJa4/improvement/minor_translation_fixes
Added a few more strings to be localized and fixed one ui alignment
2022-03-01 15:54:48 +01:00
vabene1111
65432895ba Merge branch 'develop' into improvement/minor_translation_fixes 2022-03-01 15:54:44 +01:00
vabene1111
b730acc06a Merge pull request #1596 from MaxJa4/improvement/select_amount
Auto selects amount of ingredient when adding new ingredient.
2022-03-01 15:52:10 +01:00
vabene1111
6b430abe3a Merge pull request #1591 from MaxJa4/improvement/ux_improv
Optimized advanced search settings UX
2022-03-01 15:51:11 +01:00
dependabot[bot]
5f25df7d19 Bump workbox-routing from 6.4.2 to 6.5.0 in /vue
Bumps [workbox-routing](https://github.com/googlechrome/workbox) from 6.4.2 to 6.5.0.
- [Release notes](https://github.com/googlechrome/workbox/releases)
- [Commits](https://github.com/googlechrome/workbox/compare/v6.4.2...v6.5.0)

---
updated-dependencies:
- dependency-name: workbox-routing
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-01 00:12:01 +00:00
dependabot[bot]
e55f78c767 Bump @vue/cli-plugin-pwa from 4.5.15 to 5.0.1 in /vue
Bumps [@vue/cli-plugin-pwa](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-pwa) from 4.5.15 to 5.0.1.
- [Release notes](https://github.com/vuejs/vue-cli/releases)
- [Changelog](https://github.com/vuejs/vue-cli/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vue-cli/commits/v5.0.1/packages/@vue/cli-plugin-pwa)

---
updated-dependencies:
- dependency-name: "@vue/cli-plugin-pwa"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-01 00:10:36 +00:00
dependabot[bot]
6d257d2455 Bump @popperjs/core from 2.11.0 to 2.11.2 in /vue
Bumps [@popperjs/core](https://github.com/popperjs/popper-core) from 2.11.0 to 2.11.2.
- [Release notes](https://github.com/popperjs/popper-core/releases)
- [Commits](https://github.com/popperjs/popper-core/compare/v2.11.0...v2.11.2)

---
updated-dependencies:
- dependency-name: "@popperjs/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-01 00:09:44 +00:00
dependabot[bot]
693a5214ef Bump lxml from 4.7.1 to 4.8.0
Bumps [lxml](https://github.com/lxml/lxml) from 4.7.1 to 4.8.0.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-4.7.1...lxml-4.8.0)

---
updated-dependencies:
- dependency-name: lxml
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-01 00:03:39 +00:00
MaxJa4
cebd47a639 Fixed json format after merge 2022-02-28 21:21:06 +01:00
MaxJa4
1e3a6fadf0 More localization of recipe search and view 2022-02-28 21:19:00 +01:00
MaxJa4
47723673d0 Multiselect controls are now fully localized in RecipeEditView 2022-02-28 20:28:41 +01:00
MaxJa4
429d381f63 Auto selects amount of ingredient when adding new ingredient. 2022-02-28 19:43:37 +01:00
MaxJa4
b393d026f7 Added a few more strings to be localized and fixed one ui alignment 2022-02-27 22:40:03 +01:00
MaxJa4
09804de809 Optimized advanced search settings UX 2022-02-27 21:53:22 +01:00
vabene1111
9ecb087cd6 Merge branch 'develop' into beta 2022-02-27 12:37:26 +01:00
vabene1111
089e634d69 fixed mobile emoji select 2022-02-27 11:39:24 +01:00
vabene1111
028ee4a861 fixed file filter regex for importers 2022-02-27 11:37:12 +01:00
vabene1111
561c2106ce fixed nextcloud import first item 2022-02-27 11:27:23 +01:00
vabene1111
429607e1fe fixed shoppoing v2 list container size 2022-02-27 11:07:06 +01:00
vabene1111
802242f54e Merge pull request #1586 from smilerz/genericmodal_translations
fix translations in helper libraries models.js and utils.js
2022-02-27 09:50:37 +01:00
vabene1111
cd58b6681b Merge pull request #1588 from TandoorRecipes/dependabot/npm_and_yarn/vue/url-parse-1.5.10
Bump url-parse from 1.5.7 to 1.5.10 in /vue
2022-02-26 17:37:00 +01:00
dependabot[bot]
c7f5975c22 Bump url-parse from 1.5.7 to 1.5.10 in /vue
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.7 to 1.5.10.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.7...1.5.10)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-26 09:30:47 +00:00
vabene1111
03e32dba90 Merge pull request #1587 from TandoorRecipes/dependabot/npm_and_yarn/vue/prismjs-1.27.0
Bump prismjs from 1.25.0 to 1.27.0 in /vue
2022-02-26 10:30:09 +01:00
dependabot[bot]
739c2ecc53 Bump prismjs from 1.25.0 to 1.27.0 in /vue
Bumps [prismjs](https://github.com/PrismJS/prism) from 1.25.0 to 1.27.0.
- [Release notes](https://github.com/PrismJS/prism/releases)
- [Changelog](https://github.com/PrismJS/prism/blob/master/CHANGELOG.md)
- [Commits](https://github.com/PrismJS/prism/compare/v1.25.0...v1.27.0)

---
updated-dependencies:
- dependency-name: prismjs
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-26 02:26:31 +00:00
smilerz
56c553c35d load language_code to new shopping list 2022-02-25 13:52:56 -06:00
smilerz
dae49ec5f3 fix translations in helper libraries models.js and utils.js 2022-02-25 13:16:34 -06:00
vabene1111
90d477a0fd small change to be able to retain large texts 2022-02-25 16:19:49 +01:00
vabene1111
fc6268b7ff Merge pull request #1564 from smilerz/retain_original_ingredient_text
retain original text when parsing ingredients
2022-02-25 16:17:44 +01:00
vabene1111
425a38f030 Merge pull request #1584 from smilerz/fix_duplicate_entry
return distinct shopping entries
2022-02-25 16:15:41 +01:00
vabene1111
d94e0523b0 Merge pull request #1582 from MaxJa4/fix/member_count
[PR cleanup] Add translations as in #1580
2022-02-25 15:52:09 +01:00
vabene1111
e824c9bff2 improved rezkonv parser 2022-02-25 15:51:37 +01:00
vabene1111
38ad246dc1 Merge branch 'develop' of https://github.com/vabene1111/recipes into develop 2022-02-25 15:51:28 +01:00
vabene1111
1bde4e81b7 fixed duplicate returns from tree manager get or create 2022-02-25 15:42:33 +01:00
smilerz
18e53aa03f return distinct shopping entries 2022-02-25 07:59:20 -06:00
vabene1111
e0b9b9caa2 Merge pull request #1583 from TandoorRecipes/expanded-contributors
Update CONTRIBUTERS.md
2022-02-25 14:49:08 +01:00
smilerz
25db5946bf Update CONTRIBUTERS.md 2022-02-25 07:47:36 -06:00
Maximilian Jannack
715e301a4d Revert "Revert "Added some translations in meal plan, recipe search and recipe switcher.""
This reverts commit 391c45b8be.
2022-02-25 10:43:34 +01:00
vabene1111
581f950e33 Merge pull request #1578 from smilerz/remove_stale_requirements
remove stale requirements
2022-02-25 08:01:24 +01:00
vabene1111
97eadfc39a Merge pull request #1577 from smilerz/email_confrm_ignores_ScriptName
fix bad redirect after email confirmation when using script_name
2022-02-25 08:00:47 +01:00
vabene1111
f7a3e2371a Merge pull request #1581 from MaxJa4/fix/member_count
Fix member count in space settings
2022-02-25 07:58:10 +01:00
MaxJa4
391c45b8be Revert "Added some translations in meal plan, recipe search and recipe switcher."
This reverts commit b2fa1db4f9.
2022-02-24 20:53:52 +01:00
MaxJa4
95b63d882b Fixed member count in space settings. 2022-02-24 19:31:42 +01:00
MaxJa4
b2fa1db4f9 Added some translations in meal plan, recipe search and recipe switcher. 2022-02-24 19:19:25 +01:00
smilerz
3b0b756a30 remove stale requirements 2022-02-24 09:58:14 -06:00
smilerz
896be70a77 fix bad redirect after email confirmation when using script_name 2022-02-24 09:03:29 -06:00
vabene1111
bedbc255b3 Merge pull request #1574 from smilerz/export_from_filter
fix serializer using food name instead of supermarket name
2022-02-24 07:50:18 +01:00
smilerz
c8dcca8630 fix recipe search in export form (converted to change safe genericAPI) 2022-02-23 17:24:06 -06:00
Kaibu
05305c46ca shopping list mobile detail fix 2022-02-23 23:23:37 +01:00
Kaibu
6d5195f0d3 improved cookbook detail loading 2022-02-23 22:44:37 +01:00
smilerz
abeeac838b fix serializer using food name instead of supermarket name 2022-02-23 14:31:43 -06:00
vabene1111
f2c543ac15 Merge pull request #1572 from smilerz/export_from_filter
Export from filter
2022-02-23 17:59:19 +01:00
smilerz
081edfd2d6 fix errors on Tandoor recipe import 2022-02-22 16:33:09 -06:00
smilerz
f9a4521ca1 redirect export using djangoResolveUrl 2022-02-22 16:00:55 -06:00
smilerz
a7d66fa850 export recipes from saved filter 2022-02-22 15:18:39 -06:00
vabene1111
b9597a3333 fixed keyword names including labels during import 2022-02-22 21:21:25 +01:00
vabene1111
5424702dff Merge pull request #1570 from smilerz/trigram_fullltext_fix
fix combined fulltext search and trigram generating error
2022-02-22 21:17:35 +01:00
smilerz
9b5a9b87e9 fix combined fulltext search and trigram generating error 2022-02-22 11:28:30 -06:00
vabene1111
52c16ab7dd all types bascially working (lacking bookmark) 2022-02-22 17:00:30 +01:00
vabene1111
0d98c77301 some small ui stuff 2022-02-21 18:29:23 +01:00
smilerz
e52054e732 retain original text when parsing ingredients 2022-02-21 09:47:27 -06:00
vabene1111
e04d672750 import with image working 2022-02-21 15:59:30 +01:00
vabene1111
c06c511dc9 changed unit default in ingredient parser to none
because empty name units are not accepted by unit serializer but null values can be handled by the ingredient serializer (as a unit can be null)
2022-02-21 15:35:36 +01:00
nough
0ae1ecd867 Update backup.md
Added manual backup method first draft
2022-02-20 00:59:56 +00:00
vabene1111
c8fc67fa2b changed source import to match field structure of recipe model
first imports working
2022-02-19 17:54:00 +01:00
vabene1111
89348f69f1 basics of new import page 2022-02-19 16:55:17 +01:00
vabene1111
c1605454dd only show create/import on search when not loading 2022-02-19 09:37:57 +01:00
vabene1111
55b035eaaa first boilerplate for new import view 2022-02-19 09:34:42 +01:00
vabene1111
b19ff3dca4 added import/create buttons to empty search 2022-02-19 09:16:54 +01:00
vabene1111
8361f4f692 Merge branch 'feature/custom_filters' into develop
# Conflicts:
#	cookbook/helper/recipe_search.py
2022-02-19 08:54:14 +01:00
vabene1111
1b6863683f rename to prevent shadowing 2022-02-19 08:53:25 +01:00
vabene1111
7fa5c2d987 changed defaults for multiple kw/book/food filters 2022-02-19 08:51:11 +01:00
smilerz
3b08b1406f filters are automatically shared when part of shared book 2022-02-19 08:51:11 +01:00
smilerz
6dddcadf41 calculate child/sibling subsitutes correctly 2022-02-19 08:50:55 +01:00
vabene1111
a843f94ea1 Merge pull request #1560 from TandoorRecipes/dependabot/npm_and_yarn/vue/url-parse-1.5.7
Bump url-parse from 1.5.3 to 1.5.7 in /vue
2022-02-19 08:42:55 +01:00
dependabot[bot]
c1297285f3 Bump url-parse from 1.5.3 to 1.5.7 in /vue
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.3 to 1.5.7.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.3...1.5.7)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-19 07:39:44 +00:00
vabene1111
43252a941b Merge pull request #1558 from smilerz/better_get_minutes
handle fractions and decimals in get_minutes() during import
2022-02-19 08:39:00 +01:00
smilerz
3e2fb6f814 Update recipe_url_import.py 2022-02-18 16:31:48 -06:00
smilerz
8e28247f17 handle fractions and decimals in get_minutes() during import 2022-02-18 15:31:55 -06:00
smilerz
f082a2f2cc filters are automatically shared when part of shared book 2022-02-18 11:33:04 -06:00
smilerz
cc1aed948a calculate child/sibling subsitutes correctly 2022-02-18 11:25:31 -06:00
vabene1111
e081d823ed fix book share permission 2022-02-18 17:52:32 +01:00
vabene1111
3cbc96b8b7 Merge pull request #1471 from TandoorRecipes/feature/custom_filters
Feature/custom filters
2022-02-18 17:30:29 +01:00
vabene1111
d6fa02cc9e Merge branch 'develop' into feature/custom_filters 2022-02-18 17:25:15 +01:00
vabene1111
d28cf681a3 Merge pull request #1555 from MaxJa4/improvement/startup_error_page
Added 502 error page for system startup
2022-02-18 17:03:37 +01:00
Maxi
21df09d0ba Added 502 error page for system startup 2022-02-18 16:35:27 +01:00
smilerz
2b5aec5d0a resolved loading custom filter when not in expert mode 2022-02-18 09:08:36 -06:00
vabene1111
9021bcd222 Merge pull request #1554 from MaxJa4/patch-1
[Docs] Add syntax highlighting for nginx subpath example
2022-02-18 13:46:08 +01:00
MaxJa4
e691eaf72f Update docker.md 2022-02-18 13:25:20 +01:00
MaxJa4
9e7a908136 Add syntax highlighting for nginx subpath example 2022-02-18 13:23:51 +01:00
smilerz
6b5a099ba0 removed case insensitive get_or_create for units 2022-02-17 12:49:41 -06:00
smilerz
1c18c8faac fix expert mode 2022-02-17 10:59:53 -06:00
smilerz
f1fa5e32bf fix case insensitive get_or_create 2022-02-17 10:50:38 -06:00
smilerz
d49818ae6a change default trigram threshold 2022-02-17 10:27:15 -06:00
smilerz
1b7f97dc64 case insensitive get_or_create 2022-02-17 10:23:31 -06:00
vabene1111
26a5c665de fixed instructions rendering next to ingredients on small devices 2022-02-17 15:30:08 +01:00
vabene1111
6a73ac0a33 fixed editor leave warning 2022-02-17 15:20:42 +01:00
vabene1111
7e5019eed3 fixed share write permission for meal plan 2022-02-17 14:57:28 +01:00
vabene1111
f23b566689 changed feature request template 2022-02-17 14:53:40 +01:00
vabene1111
e9431b5ff2 changed warning stylin 2022-02-17 14:53:27 +01:00
vabene1111
a54d08c9e2 Merge branch 'develop' into feature/custom_filters 2022-02-17 14:23:47 +01:00
vabene1111
d342e12363 show warning for multiple identical filter 2022-02-17 14:23:35 +01:00
vabene1111
a7aa458a85 Merge pull request #1548 from FHantke/develop
fix file path checks
2022-02-17 13:31:04 +01:00
florian hantke
d135c755c8 fix file path checks 2022-02-17 13:26:35 +01:00
vabene1111
3292c596ff Merge branch 'develop' into feature/custom_filters
# Conflicts:
#	vue/src/components/MealPlanEditModal.vue
#	vue/src/locales/en.json
2022-02-17 10:57:35 +01:00
vabene1111
caeaab22ce Merge pull request #1543 from smilerz/feature/copy-to-new-recipe
copy to new recipe
2022-02-17 10:56:03 +01:00
vabene1111
4fa5b28328 Merge branch 'develop' into feature/copy-to-new-recipe 2022-02-17 10:55:59 +01:00
vabene1111
f916e38da8 Merge pull request #1539 from smilerz/auto_add_shopping_fix
fix duplicate shopping recipes when auto-add enabled
2022-02-17 10:55:06 +01:00
vabene1111
f77b45725b Merge pull request #1538 from smilerz/feature/paste_ingredients
paste list of ingredients
2022-02-17 10:54:25 +01:00
vabene1111
8aedb80140 Merge pull request #1535 from MaxJa4/improvement/check_nginx_config
Added existence check for Nginx config file and mandatory parameters
2022-02-17 10:52:58 +01:00
smilerz
a76c4365ea mealplan showing on search when filtered instead of vice versa 2022-02-16 16:49:36 -06:00
smilerz
21c6f819a0 start counting at zero 2022-02-16 14:19:58 -06:00
smilerz
5f3d5afc37 typo 2022-02-16 14:18:23 -06:00
smilerz
57dec86b06 handle empty ingredient list when pasting 2022-02-16 14:17:41 -06:00
smilerz
d68a89a32c catch empty lines in paste_ingredients 2022-02-16 14:07:56 -06:00
smilerz
8b94bf1333 retain order of pasted ingredients 2022-02-16 13:22:53 -06:00
MaxJa4
539578c965 Add check for SECRET_KEY and POSTGRES_PASSWORD 2022-02-16 18:57:25 +01:00
MaxJa4
124a8687f1 Merge branch 'TandoorRecipes:develop' into improvement/check_nginx_config 2022-02-16 18:16:01 +01:00
smilerz
42a6f8457a remove console messages 2022-02-16 10:58:05 -06:00
smilerz
4c9ddee55c restrict get_or_create to name & space 2022-02-16 10:50:01 -06:00
vabene1111
de1efcb81e Merge pull request #1540 from TandoorRecipes/dependabot/npm_and_yarn/vue/follow-redirects-1.14.8
Bump follow-redirects from 1.14.7 to 1.14.8 in /vue
2022-02-16 17:04:46 +01:00
smilerz
501f56ffd5 copy to new recipe 2022-02-16 09:16:51 -06:00
smilerz
ad6d99800e include note from ingredient API 2022-02-16 08:35:04 -06:00
smilerz
bd973ec3a9 always sort count attributes to end 2022-02-15 16:19:41 -06:00
smilerz
b5c6c7cf2b sort cooked date fix 2022-02-15 12:00:59 -06:00
smilerz
f9ae48e23c fix Vue cookedon sort 2022-02-15 09:14:27 -06:00
smilerz
4e8bbefc17 minor cleanup 2022-02-15 06:42:57 -06:00
dependabot[bot]
90b4ecb599 Bump follow-redirects from 1.14.7 to 1.14.8 in /vue
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.7 to 1.14.8.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.7...v1.14.8)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-15 02:38:12 +00:00
smilerz
57658e76f5 fix duplicate shopping recipes when auto-add enabled 2022-02-14 17:47:17 -06:00
smilerz
19708dbc64 paste list of ingredients 2022-02-14 17:28:16 -06:00
smilerz
444e0c1918 include new filters in ResetSearch() 2022-02-14 15:35:56 -06:00
smilerz
8fa00b50b1 added update_at filter 2022-02-14 15:13:34 -06:00
MaxJa4
b9f16c3f66 Inverted truth check for GUNICORN_MEDIA 2022-02-14 16:45:37 +01:00
MaxJa4
c90de725b0 Only show warning if not using gunicorn 2022-02-14 16:16:45 +01:00
MaxJa4
c0b43987dd Added extistence check for nginx config file. 2022-02-14 16:13:16 +01:00
smilerz
c2fa86e388 fixed typo 2022-02-13 14:35:38 -06:00
smilerz
3b8be24630 merge RecipeSearch with upstream 2022-02-13 14:15:01 -06:00
smilerz
e72f6e4ac4 Merge remote-tracking branch 'upstream/feature/custom_filters' into feature/custom_filters 2022-02-13 14:14:28 -06:00
smilerz
ef81700c05 add created filter, viewed filter and viewed sort 2022-02-13 14:07:43 -06:00
smilerz
bf54680178 more recipe search tests 2022-02-13 13:53:07 -06:00
A. L
a522f9879f Translated using Weblate (German)
Currently translated at 100.0% (298 of 298 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-02-12 21:31:35 +00:00
Dirk
4ee32b3263 Translated using Weblate (German)
Currently translated at 100.0% (298 of 298 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-02-12 21:31:35 +00:00
Ghostfighter
c339b4fef8 Translated using Weblate (German)
Currently translated at 99.6% (566 of 568 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/
2022-02-12 21:31:35 +00:00
Dirk
9ff981f34f Translated using Weblate (German)
Currently translated at 99.6% (566 of 568 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/
2022-02-12 21:31:35 +00:00
vabene1111
3db55cd82b added sub path nginx example 2022-02-11 14:16:22 +01:00
vabene1111
f4bfcdab2e improved on explain and some tweaks 2022-02-11 14:15:46 +01:00
vabene1111
f320651cf8 Merge branch 'develop' into feature/custom_filters 2022-02-11 09:31:59 +01:00
vabene1111
3e9de4c392 compiled translations 2022-02-11 09:31:37 +01:00
vabene1111
1e9f7af017 updated translations and django version 2022-02-11 09:29:28 +01:00
vabene1111
cd99b9dc34 Merge pull request #849 from cschmatzler/develop
Allow specifying port through TANDOOR_PORT environment variable
2022-02-11 09:17:46 +01:00
vabene1111
b182a9962c Merge branch 'develop' into develop 2022-02-11 09:17:31 +01:00
vabene1111
9b5cc3deaa Merge pull request #1496 from poggenpower/develop
K8s deployment: Small fix for dupplicate entries.
2022-02-11 09:05:36 +01:00
vabene1111
7e7c7a3841 Merge pull request #1499 from xMAC94x/update_base_image
Update the baseimage of dockerfile as alpine 3.12 has some security v…
2022-02-11 09:04:29 +01:00
vabene1111
6ae1365505 Merge pull request #1512 from smilerz/additional_fixes
various fixes
2022-02-11 09:01:56 +01:00
vabene1111
dd2f27cfd4 Merge pull request #1513 from MaxJa4/improvement/ping_db
Ping DB instead of trying migration
2022-02-11 08:59:51 +01:00
vabene1111
1a38b54e4f Merge pull request #1520 from smilerz/LDAP-debug-logging
enable logging for LDAP
2022-02-11 08:59:04 +01:00
vabene1111
fffb0e0d07 Merge pull request #1525 from TandoorRecipes/revert-1516-patch-2
Revert "Update de.json"
2022-02-11 08:54:31 +01:00
vabene1111
de505dc8cc Revert "Update de.json" 2022-02-11 08:53:37 +01:00
vabene1111
9a735b75dc Merge pull request #1516 from hyperbit00/patch-2
Update de.json
2022-02-11 08:53:31 +01:00
smilerz
f933226c5d enable logging for LDAP 2022-02-09 16:19:51 -06:00
smilerz
baa2aa51da more recipe search tests 2022-02-09 16:18:45 -06:00
vabene1111
32a8cc9a69 proof of concept for recipe search explain 2022-02-09 18:44:29 +01:00
smilerz
c2961eede4 stub out receip search tests 2022-02-08 20:23:49 -06:00
Marion Kämpfer
13ed297fb9 Translated using Weblate (French)
Currently translated at 95.9% (286 of 298 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/
2022-02-09 01:31:35 +00:00
Jesse
4c259e6b9c Translated using Weblate (Dutch)
Currently translated at 95.2% (541 of 568 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/nl/
2022-02-09 01:31:35 +00:00
Marion Kämpfer
faf51d0455 Translated using Weblate (French)
Currently translated at 94.7% (538 of 568 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/fr/
2022-02-09 01:31:35 +00:00
hyperbit00
ed1585caed Update de.json
typo
2022-02-08 23:00:57 +01:00
hyperbit00
3917521ed6 Update de.json
typo in ressource
2022-02-08 22:56:33 +01:00
smilerz
924ffc473b fix recipe sharing 2022-02-08 14:59:54 -06:00
smilerz
0e258a49fb reload book recipes when adding filter 2022-02-08 12:30:11 -06:00
MaxJa4
a1063ce922 Merge branch 'improvement/ping_db' of https://github.com/MaxJa4/recipes into improvement/ping_db 2022-02-08 19:00:56 +01:00
MaxJa4
2471bb21f6 Fixed dep. position and used smaller package 2022-02-08 19:00:54 +01:00
smilerz
b3a830c319 fix missing pill when loading CustomFilter 2022-02-08 11:41:57 -06:00
MaxJa4
45942dfa7f Fixed indentation 2022-02-08 18:20:19 +01:00
MaxJa4
cb755a47bc Remove wrong code comment 2022-02-08 18:19:32 +01:00
MaxJa4
a35aa953b4 Ping DB instead of trying migration 2022-02-08 18:15:04 +01:00
smilerz
62adc5a91f make +/- search fields not clickable 2022-02-08 09:57:23 -06:00
smilerz
dc71260baa Merge branch 'additional_fixes' into feature/custom_filters 2022-02-08 09:05:07 -06:00
smilerz
88b3ba1427 various fixes 2022-02-08 08:13:16 -06:00
smilerz
93b7e5790d merge clashing commits 2022-02-07 18:11:38 -06:00
smilerz
286c6344ec Merge branch 'feature/custom_filters' into feature/custom_filtersv2 2022-02-07 17:47:53 -06:00
smilerz
1be5889923 tests for makenow filter 2022-02-07 17:46:04 -06:00
Marcel Märtens
542b656bea fix python-ldap bugs according to https://github.com/TandoorRecipes/recipes/pull/1499\#issuecomment-1031627178 2022-02-07 19:21:35 +01:00
vabene1111
4c5994ee7f Merge branch 'develop' into feature/custom_filters
# Conflicts:
#	cookbook/serializer.py
#	cookbook/views/api.py
#	vue/src/utils/openapi/api.ts
2022-02-07 18:56:19 +01:00
vabene1111
f1bbe16606 Merge pull request #1498 from MaxJa4/improvement/retry_migrations
Moved DB-waiting from docker-level to container-level
2022-02-07 18:42:41 +01:00
vabene1111
74e30c79d5 Merge branch 'develop' 2022-02-07 18:41:57 +01:00
MaxJa4
d28a2f81a2 Remove always-restart so the container doesn't boot-loop on error 2022-02-07 18:14:03 +01:00
MaxJa4
855f1e4ee7 Remove always-restart so the container doesn't boot-loop on error 2022-02-07 18:13:58 +01:00
MaxJa4
b53a9a1c07 Remove always-restart so the container doesn't boot-loop on error 2022-02-07 18:13:50 +01:00
MaxJa4
20cc4b93a9 Add max amount of retries for web container boot 2022-02-07 18:13:19 +01:00
vabene1111
c92c3e7d85 improved comment formatting 2022-02-07 17:43:57 +01:00
smilerz
d6af318c21 tests for single food reset inherit and additional inheritted fields 2022-02-07 09:16:48 -06:00
vabene1111
969df37e28 fixed sharing and added additional tests 2022-02-07 15:43:06 +01:00
vabene1111
f37790a24a changed to vue 2 lifecycle hook 2022-02-07 14:48:52 +01:00
vabene1111
5f9820ed30 Merge pull request #1469 from benscobie/issue/1434
Keep screen awake when viewing recipe
2022-02-07 14:48:21 +01:00
vabene1111
543fbfc120 Merge pull request #1490 from murphy83/develop
Added docker compose file for IPv6 native
2022-02-07 14:42:53 +01:00
vabene1111
bcd85ff7d6 Merge pull request #1501 from besendorf/patch-1
add instructions for pwa for Android/Chrome browsers
2022-02-07 14:42:03 +01:00
vabene1111
0dbb9457a1 fixed test 2022-02-07 14:41:36 +01:00
vabene1111
5cc81d977f updated translations 2022-02-07 14:41:00 +01:00
vabene1111
39ca3ac1ad no system page for non superuser 2022-02-07 13:08:18 +01:00
Marcel Märtens
bd8633c630 Update the baseimage of dockerfile as alpine 3.12 has some security vunerabilities.
According to:
https://artifacthub.io/packages/helm/truecharts/recipes?modal=security-report&image=tccr.io%2Ftruecharts%2Frecipes%3Av1.0.5%40sha256%3Ac74923879e7d2bf5bff4d1e953a100307462ad191a79908165f3364b97446833
There are at least 4 Chritical ones with a total of 47.
So updating the base should prob be a good thing and help here.
2022-02-06 23:57:40 +01:00
besendorf
cec74d77ec add instructions for pwa for Android/Chrome browsers
fixes #1349
2022-02-06 22:50:48 +01:00
Dersim Özdag
7dcc38b5b2 Translated using Weblate (German)
Currently translated at 100.0% (298 of 298 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-02-06 21:31:33 +00:00
Dirk
6068496240 Translated using Weblate (German)
Currently translated at 100.0% (298 of 298 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-02-06 21:31:33 +00:00
Marion Kämpfer
2b6e365f0b Translated using Weblate (French)
Currently translated at 91.0% (517 of 568 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/fr/
2022-02-06 21:31:32 +00:00
David Laukamp
2f045e6e0d Translated using Weblate (German)
Currently translated at 96.6% (549 of 568 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/
2022-02-06 21:31:32 +00:00
Christian
8dffc58ca6 Translated using Weblate (German)
Currently translated at 96.6% (549 of 568 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/
2022-02-06 21:31:32 +00:00
MaxJa4
fd5de4e47c Included error code in log message 2022-02-06 19:22:46 +01:00
MaxJa4
bb131ef16a Improved wording of log message upon retry 2022-02-06 19:12:52 +01:00
MaxJa4
773d2eff37 Moved db-waiting from docker-level to container-level 2022-02-06 18:54:42 +01:00
thl@deb030
9f9cc766c6 Small fix for dupplicate entries. 2022-02-06 17:42:04 +01:00
Dirk
65003175ce Translated using Weblate (German)
Currently translated at 99.6% (297 of 298 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-02-05 21:06:28 +00:00
A. L
72d29cc88a Translated using Weblate (German)
Currently translated at 99.6% (297 of 298 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-02-05 21:06:28 +00:00
Dersim Özdag
bc8131ac56 Translated using Weblate (German)
Currently translated at 99.6% (297 of 298 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-02-05 21:06:28 +00:00
Dirk
1c27f2f9b1 Translated using Weblate (German)
Currently translated at 99.6% (297 of 298 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-02-05 21:06:28 +00:00
Kai Schlachter
80965c5462 Added docker compose file for IPv6 native 2022-02-05 13:14:04 +01:00
vabene1111
cffe116145 Merge branch 'develop' 2022-02-05 11:31:29 +01:00
vabene1111
65eb80dbe6 Merge pull request #1484 from kristof-mattei/patch-1
Fixed JS parsing error on settings page
2022-02-05 11:21:59 +01:00
Kristof Mattei
3b946e512c Aligned formatting. 2022-02-04 14:04:05 -08:00
Kristof Mattei
d2a6409381 Fixed parsing error, } should've been included 2022-02-04 14:02:50 -08:00
Tomasz Klimczak
262a1f0064 Translated using Weblate (Polish)
Currently translated at 99.6% (297 of 298 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pl/
2022-02-04 19:31:33 +00:00
vabene1111
fd026154d8 changed step header default and fixed ingredient rendering error 2022-02-04 17:11:35 +01:00
vabene1111
7f427c2d1f validate 0 servings in frontend 2022-02-04 16:51:16 +01:00
Chris Scoggins
ab52bd1a07 fix makenow/fulltext search duplicate results 2022-02-04 08:40:20 -06:00
vabene1111
4fe5290b15 Merge branch 'feature/export-progress' into develop 2022-02-04 14:29:56 +01:00
Chris Scoggins
f9244a93a5 fix MakeNow filter 2022-02-03 17:19:38 -06:00
Chris Scoggins
6ef25b604b add food substitutions 2022-02-03 15:04:46 -06:00
Chris Scoggins
5e3f94fcf7 fix after rebase 2022-02-03 12:21:35 -06:00
Chris Scoggins
dcad389010 food edit modal - reset children inheritance 2022-02-03 12:15:04 -06:00
Chris Scoggins
a0508684d9 cleaned up console messages 2022-02-03 12:14:43 -06:00
Chris Scoggins
9ffae0da7b rebuild openapi 2022-02-03 12:14:42 -06:00
Chris Scoggins
04c4182b24 WIP 2022-02-03 12:14:42 -06:00
Chris Scoggins
583aee204e fix view recipes in Model View 2022-02-03 12:14:18 -06:00
Chris Scoggins
e05fd02c65 recipecoontextmenu 2022-02-03 12:14:17 -06:00
Chris Scoggins
c45bf3a994 WIP 2022-02-03 12:14:17 -06:00
Chris Scoggins
203ff1a6ec WIP 2022-02-03 12:14:04 -06:00
Chris Scoggins
07d5ead128 load RecipeFilter cookbook entries 2022-02-03 12:14:04 -06:00
Chris Scoggins
c042ab08c7 fix after rebase 2022-02-03 12:13:36 -06:00
Chris Scoggins
598f53f3d4 removeMissingItem disabled 2022-02-03 12:13:35 -06:00
Chris Scoggins
ec2cbc9b1b Fix after rebase 2022-02-03 12:13:16 -06:00
Chris Scoggins
fcb8e520b7 WIP 2022-02-03 12:11:32 -06:00
Chris Scoggins
5959914932 makenow filter 2022-02-03 12:11:32 -06:00
Chris Scoggins
ebb0b3a5ea sort by menu 2022-02-03 12:10:00 -06:00
Chris Scoggins
a72fc46d40 improved interaction between saved filter and filter fields 2022-02-03 12:10:00 -06:00
Chris Scoggins
8d78d15e21 implement sort order via API 2022-02-03 12:09:32 -06:00
Chris Scoggins
890e9e7242 created CustomFilter model and api 2022-02-03 12:09:14 -06:00
Chris Scoggins
492febe626 add saveSearch() 2022-02-03 12:08:10 -06:00
Chris Scoggins
d0549bcb6d complex book filters 2022-02-03 12:07:51 -06:00
Chris Scoggins
5e36bd0c27 complex food filters 2022-02-03 12:07:51 -06:00
Chris Scoggins
28d3d8a1e0 complex keyword filters 2022-02-03 12:07:50 -06:00
Chris Scoggins
bb226a221e WIP 2022-02-03 12:07:14 -06:00
smilerz
0ac369423c WIP 2022-02-03 12:07:13 -06:00
smilerz
a6a136c892 fix multiselect 2022-02-03 12:07:13 -06:00
smilerz
97224fa6a0 expert search settings 2022-02-03 12:06:57 -06:00
smilerz
5210bb6fbf added expert search settings 2022-02-03 12:06:30 -06:00
smilerz
918577a9a0 refactored cookies 2022-02-03 12:06:30 -06:00
smilerz
0e89723eab Squashed commit of the following:
commit ba1f10cd3a
Merge: 4e0cc34d4 ef4ce62f5
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Tue Jan 18 07:59:32 2022 +0100

    Merge branch 'develop' into facet-fix

commit 4e0cc34d41
Author: smilerz <smilerz@gmail.com>
Date:   Mon Jan 17 17:18:43 2022 -0600

    better fix for counting facets

commit ef4ce62f5b
Author: Kaibu <notkaibu@gmail.com>
Date:   Mon Jan 17 23:48:57 2022 +0100

    custom class selection for lookupinput comp

commit b990462bdb
Merge: c60141940 5e34c6ddf
Author: Kaibu <notkaibu@gmail.com>
Date:   Mon Jan 17 23:48:12 2022 +0100

    Merge branch 'develop' of https://github.com/vabene1111/recipes into develop

commit 5e34c6ddf0
Merge: 532d32c19 d8d76ae9e
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Mon Jan 17 23:29:49 2022 +0100

    Merge pull request #1353 from smilerz/supermarket-category

    fix missing label on first supermarket category

commit d8d76ae9e0
Author: smilerz <smilerz@gmail.com>
Date:   Mon Jan 17 16:12:54 2022 -0600

    fix missing label supermarket category

commit c60141940d
Author: Kaibu <notkaibu@gmail.com>
Date:   Mon Jan 17 23:02:42 2022 +0100

    shopping list ux improvements

commit 532d32c194
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 22:41:38 2022 +0100

    fixed shopping user save setting would not work

commit 54721a0a62
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 22:37:14 2022 +0100

    also added space to bot

commit c27933548d
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 22:28:02 2022 +0100

    fixed order of delete

commit d04e9518cb
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 22:13:36 2022 +0100

    fixed telegram shopping bot

commit b9065f7052
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 22:03:57 2022 +0100

    added space deletion feature

commit c8c29e1b5a
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 21:14:22 2022 +0100

    fixed performance issue

commit 5724ef9511
Author: smilerz <smilerz@gmail.com>
Date:   Mon Jan 17 14:02:58 2022 -0600

    fix boolean directive

commit 2595a26fb4
Merge: e1c7305c0 437296415
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Mon Jan 17 20:26:02 2022 +0100

    Merge pull request #1351 from MaxJa4/patch-1

    Add hint about trailing slashes for subpath setups

commit e1c7305c07
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 20:22:37 2022 +0100

    switcher basically working again

commit 418c38423f
Merge: 90b6f9ad0 cc5be844d
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Mon Jan 17 20:15:01 2022 +0100

    Merge pull request #1352 from smilerz/fix-search

    force list params to list

commit cc5be844d5
Author: smilerz <smilerz@gmail.com>
Date:   Mon Jan 17 13:13:26 2022 -0600

    force list params to list

commit 90b6f9ad06
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 19:54:16 2022 +0100

    fixed sub recipe issue

commit 437296415e
Author: MaxJa4 <74194322+MaxJa4@users.noreply.github.com>
Date:   Mon Jan 17 18:43:14 2022 +0100

    Update .env.template

commit a8c885bd21
Author: MaxJa4 <74194322+MaxJa4@users.noreply.github.com>
Date:   Mon Jan 17 18:41:41 2022 +0100

    Remove newline at the end

commit a539d14aad
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 18:15:23 2022 +0100

    wip switcher

commit 2b0541bd74
Author: MaxJa4 <74194322+MaxJa4@users.noreply.github.com>
Date:   Mon Jan 17 18:05:39 2022 +0100

    Add hint about trailing slashes for subpath setups

    Add hint about trailing slashes for subpath setups due to recent issue on Discord.

commit 3f53a924e1
Merge: d23158839 0ed9100fb
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 18:01:47 2022 +0100

    Merge branch 'develop' of https://github.com/vabene1111/recipes into develop

commit 0ed9100fb1
Merge: d2b796ddd 85ecac3a1
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Mon Jan 17 17:59:19 2022 +0100

    Merge pull request #1350 from TandoorRecipes/patch-empty-recipe_list

    Update recipe_search.py

commit d23158839b
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 17:58:09 2022 +0100

    Revert "temporarily disable recipe switcher"

    This reverts commit d2b796ddd2.

commit d2b796ddd2
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 17:58:04 2022 +0100

    temporarily disable recipe switcher

commit 8b1e80efeb
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 17:51:29 2022 +0100

    wip

commit 85ecac3a17
Author: smilerz <smilerz@gmail.com>
Date:   Mon Jan 17 10:10:38 2022 -0600

    Update recipe_search.py

commit e0b8d6fcc3
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 17:00:08 2022 +0100

    added exception catch to nextcloud importer

    to handle empty folders in sync

commit edd47873f7
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 16:51:04 2022 +0100

    fixed signup button and autofocus on user input fields

commit c14dd04261
Merge: a37672812 769365d62
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Mon Jan 17 16:50:36 2022 +0100

    Merge pull request #1348 from smilerz/fuzzy_search

    Fuzzy search

commit 769365d624
Merge: ddb9e70d3 30421d067
Author: smilerz <smilerz@gmail.com>
Date:   Mon Jan 17 09:46:33 2022 -0600

    Merge branch 'fuzzy_search' of github.com:smilerz/recipes into fuzzy_search

commit ddb9e70d31
Author: smilerz <smilerz@gmail.com>
Date:   Mon Jan 17 09:46:26 2022 -0600

    fix url_import

commit a376728120
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 16:29:29 2022 +0100

    fixed keyword creation in exporter #1213

commit 306f90aa98
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 16:27:10 2022 +0100

    recipe editor decimal fixes

commit a19ad706ce
Merge: 4af6de742 8f3044dbe
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 16:22:18 2022 +0100

    Merge branch 'develop' of https://github.com/vabene1111/recipes into develop

commit 4af6de7425
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 16:22:11 2022 +0100

    Revert "Merge pull request #1280 from MarcusWolschon/feature1275_readable_export_file_names"

    This reverts commit c4f40b9639, reversing
    changes made to 93b868bc69.

commit 8f3044dbee
Merge: 7c5ffdaef 51620a34d
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Mon Jan 17 16:04:40 2022 +0100

    Merge pull request #1316 from tomtjes/docs-swag-example

    add swag config example

commit 7c5ffdaef4
Merge: d3b71e40c 30421d067
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Mon Jan 17 15:51:54 2022 +0100

    Merge pull request #1347 from smilerz/fuzzy_search

    Fuzzy search

commit 30421d067e
Merge: dde350c8a d3b71e40c
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Mon Jan 17 15:51:23 2022 +0100

    Merge branch 'develop' into fuzzy_search

commit d3b71e40c7
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 15:43:35 2022 +0100

    cleand up context menu code

commit 1a84a8fe80
Merge: 16cb99f91 934eeee5c
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Mon Jan 17 15:39:11 2022 +0100

    Merge pull request #1289 from MarcusWolschon/features/1093_recipe_link_in_plan

commit 16cb99f915
Merge: a451f722a f07690d7e
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Mon Jan 17 15:37:48 2022 +0100

    Merge pull request #1317 from mheiland/patch-1

    Example for third-party authentication

commit a451f722a1
Merge: f12196d1c 99b3ed846
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Mon Jan 17 15:35:43 2022 +0100

    Merge pull request #1327 from tomtjes/docs-faq-amendments

    FAQ amendments

commit dde350c8af
Author: smilerz <smilerz@gmail.com>
Date:   Mon Jan 17 08:35:19 2022 -0600

    prettier cleanup

commit f12196d1c6
Merge: d4242a244 b3e971fe0
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Mon Jan 17 15:20:45 2022 +0100

    Merge pull request #1343 from MatthiasLohr/feature/db-url-path

    Allow to specify an actual path using DATABASE_URL

commit d4242a244d
Merge: 0c603e366 8a7c4e11c
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 15:16:37 2022 +0100

    Merge branch 'master' into develop

commit 8a7c4e11c9
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Mon Jan 17 15:16:13 2022 +0100

    fixed invite link counting

commit 745bb58c7e
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Sun Jan 9 18:25:38 2022 +0100

    fixed valid filter on invite link counter

commit b3e971fe09
Author: Matthias Lohr <mail@mlohr.com>
Date:   Mon Jan 17 11:21:36 2022 +0100

    allow to specify an actual path using DATABASE_URL

commit 0c603e3665
Author: Oliver Cervera <olivercervera@yahoo.it>
Date:   Sun Jan 16 15:21:49 2022 +0000

    Translated using Weblate (Italian)

    Currently translated at 84.1% (239 of 284 strings)

    Translation: Tandoor/Recipes Frontend
    Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/it/

commit fed9cfeeb7
Author: Oliver Cervera <olivercervera@yahoo.it>
Date:   Sun Jan 16 15:44:28 2022 +0000

    Translated using Weblate (Italian)

    Currently translated at 96.6% (492 of 509 strings)

    Translation: Tandoor/Recipes Backend
    Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/it/

commit 5a65fd2231
Merge: c2a763fa4 24e42496a
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Sun Jan 16 17:29:35 2022 +0100

    Merge pull request #1331 from TandoorRecipes/dependabot/npm_and_yarn/vue/follow-redirects-1.14.7

    Bump follow-redirects from 1.14.6 to 1.14.7 in /vue

commit c2a763fa4c
Author: SMunos <smunos@synos.ovh>
Date:   Fri Jan 14 23:19:21 2022 +0000

    Translated using Weblate (French)

    Currently translated at 100.0% (284 of 284 strings)

    Translation: Tandoor/Recipes Frontend
    Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/

commit 528767a835
Author: Josselin du PLESSIS <josse@du-plessis.fr>
Date:   Fri Jan 14 23:20:10 2022 +0000

    Translated using Weblate (French)

    Currently translated at 100.0% (284 of 284 strings)

    Translation: Tandoor/Recipes Frontend
    Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/

commit 9b182f6076
Author: 糖多 <1365143958@qq.com>
Date:   Sat Jan 15 06:09:40 2022 +0000

    Translated using Weblate (Chinese (Simplified))

    Currently translated at 32.0% (91 of 284 strings)

    Translation: Tandoor/Recipes Frontend
    Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/zh_Hans/

commit 968b710b49
Author: 糖多 <1365143958@qq.com>
Date:   Sat Jan 15 06:19:48 2022 +0000

    Translated using Weblate (Chinese (Simplified))

    Currently translated at 28.6% (146 of 509 strings)

    Translation: Tandoor/Recipes Backend
    Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/zh_Hans/

commit f11e07d347
Author: Josselin du PLESSIS <josse@du-plessis.fr>
Date:   Fri Jan 14 23:23:05 2022 +0000

    Translated using Weblate (French)

    Currently translated at 100.0% (509 of 509 strings)

    Translation: Tandoor/Recipes Backend
    Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/fr/

commit 24e42496a7
Author: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Date:   Sun Jan 16 01:02:54 2022 +0000

    Bump follow-redirects from 1.14.6 to 1.14.7 in /vue

    Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.6 to 1.14.7.
    - [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
    - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.6...v1.14.7)

    ---
    updated-dependencies:
    - dependency-name: follow-redirects
      dependency-type: indirect
    ...

    Signed-off-by: dependabot[bot] <support@github.com>

commit 9da496cb6d
Merge: 8cebc98d3 9221533ae
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Sat Jan 15 21:46:04 2022 +0100

    Merge pull request #1323 from MaxJa4/patch-1

    Added Apache2 in the bug report template

commit 99b3ed8464
Author: tomtjes <nesiofnqwe@mailbox.org>
Date:   Sat Jan 15 13:58:40 2022 -0500

    add FAQ for PWA

commit 281535e756
Author: tomtjes <nesiofnqwe@mailbox.org>
Date:   Sat Jan 15 13:57:20 2022 -0500

    phrase FAQ as questions

commit 9221533ae7
Author: MaxJa4 <74194322+MaxJa4@users.noreply.github.com>
Date:   Sat Jan 15 12:56:01 2022 +0100

    Added Apache2 in the bug report template

    Added Apache2 as selectable option in the bug report template

commit f07690d7e3
Author: mheiland <15824364+mheiland@users.noreply.github.com>
Date:   Sat Jan 15 00:24:56 2022 +0100

    Example for third-party authentication

    Providing an example to integrate Keycloak as IAM for Tandoor. Hinting that both SOCIAL* variables are required.

commit 8cebc98d3b
Author: SMunos <smunos@synos.ovh>
Date:   Fri Jan 14 23:18:38 2022 +0000

    Translated using Weblate (French)

    Currently translated at 100.0% (284 of 284 strings)

    Translation: Tandoor/Recipes Frontend
    Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/

commit 965d2c05e7
Author: FrenchAnon <qdskyhwfeu@email.ucms.edu.pk>
Date:   Fri Jan 14 23:17:50 2022 +0000

    Translated using Weblate (French)

    Currently translated at 100.0% (284 of 284 strings)

    Translation: Tandoor/Recipes Frontend
    Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/

commit 17ad01ae8c
Author: Josselin du PLESSIS <josse@du-plessis.fr>
Date:   Fri Jan 14 22:42:42 2022 +0000

    Translated using Weblate (French)

    Currently translated at 100.0% (284 of 284 strings)

    Translation: Tandoor/Recipes Frontend
    Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/

commit 51620a34d9
Author: tomtjes <nesiofnqwe@mailbox.org>
Date:   Fri Jan 14 15:10:22 2022 -0500

    add swag config example

commit 91fcb1b822
Author: Tomasz Klimczak <klemensble@gmail.com>
Date:   Thu Jan 6 12:50:29 2022 +0000

    Translated using Weblate (Polish)

    Currently translated at 80.9% (225 of 278 strings)

    Translation: Tandoor/Recipes Frontend
    Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pl/

commit 01d5ab92c5
Author: Tiago Rascazzi <t.d77@hotmail.com>
Date:   Thu Jan 6 16:30:49 2022 +0000

    Translated using Weblate (French)

    Currently translated at 72.6% (202 of 278 strings)

    Translation: Tandoor/Recipes Frontend
    Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/

commit 79c8d26e8c
Merge: 9486b08e2 0e1153ce3
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Fri Jan 14 17:18:30 2022 +0100

    Merge pull request #1311 from smilerz/patch-2

    fix bug creating food with create form

commit 9486b08e20
Merge: d36033a8b ffa91863d
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Fri Jan 14 16:57:10 2022 +0100

    Merge pull request #1309 from MaxJa4/develop

    Disabled old issue templates and added new ones with new GitHub issues format

commit 934eeee5c4
Author: Marcus Wolschon <Marcus@Wolschon.biz>
Date:   Fri Jan 14 13:56:46 2022 +0100

commit 2927333bf1
Author: Marcus Wolschon <Marcus@Wolschon.biz>
Date:   Fri Jan 14 13:52:42 2022 +0100

commit 0e1153ce3a
Author: smilerz <smilerz@gmail.com>
Date:   Thu Jan 13 17:40:26 2022 -0600

    deleted extraneous emit

commit b3f05b0bfd
Author: smilerz <smilerz@gmail.com>
Date:   Thu Jan 13 16:50:15 2022 -0600

    fix bug creating food with create form

commit ffa91863dd
Author: Maximilian Jannack <maxijannack@t-online.de>
Date:   Thu Jan 13 21:26:15 2022 +0100

    Added config.yml for FAQ link

commit cf2d33daad
Author: Maximilian Jannack <maxijannack@t-online.de>
Date:   Thu Jan 13 21:17:08 2022 +0100

    Disabled old issue templates and added new ones with new GitHub issues format

commit 8f08ba7114
Author: Marcus Wolschon <Marcus@Wolschon.biz>
Date:   Wed Jan 12 16:15:55 2022 +0100

commit 8a4f35e592
Author: Marcus Wolschon <Marcus@Wolschon.biz>
Date:   Wed Jan 12 11:37:08 2022 +0100
2022-02-03 12:05:33 -06:00
smilerz
1fe027b313 WIP 2022-02-03 12:04:11 -06:00
smilerz
cdb7c7854d initial TreeSearch component 2022-02-03 12:04:11 -06:00
smilerz
ab68a60480 WIP 2022-02-03 12:04:10 -06:00
vabene1111
d45e3b8e60 some tweaks for new exporter 2022-02-03 18:00:02 +01:00
vabene1111
a3fa01d8d3 Merge branch 'feature/export-progress' of https://github.com/vabene1111/recipes into feature/export-progress 2022-02-03 15:59:18 +01:00
vabene1111
9a746b5397 Merge branch 'develop' into feature/export-progress 2022-02-03 15:59:11 +01:00
vabene1111
ba3c0b933c update vue cli 2022-02-03 15:59:02 +01:00
vabene1111
87164e894a Merge pull request #1281 from TiagoRascazzi/develop
PDF export improvement
2022-02-03 15:58:06 +01:00
vabene1111
d01cb26c4a length filter for add to old shopping list 2022-02-03 15:46:59 +01:00
vabene1111
3501bcadb1 removed old cook log modal 2022-02-03 15:44:57 +01:00
vabene1111
1cf4f9cb4d Merge pull request #1475 from TandoorRecipes/dependabot/pip/django-cleanup-6.0.0
Bump django-cleanup from 5.2.0 to 6.0.0
2022-02-03 15:22:45 +01:00
dependabot[bot]
be24ee7922 Bump django-cleanup from 5.2.0 to 6.0.0
Bumps [django-cleanup](https://github.com/un1t/django-cleanup) from 5.2.0 to 6.0.0.
- [Release notes](https://github.com/un1t/django-cleanup/releases)
- [Changelog](https://github.com/un1t/django-cleanup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/un1t/django-cleanup/compare/5.2.0...6.0.0)

---
updated-dependencies:
- dependency-name: django-cleanup
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-03 14:22:23 +00:00
vabene1111
5e2c3d6ad2 Merge pull request #1477 from TandoorRecipes/dependabot/pip/pillow-9.0.1
Bump pillow from 9.0.0 to 9.0.1
2022-02-03 15:22:17 +01:00
vabene1111
129bf16e8c Merge pull request #1479 from TandoorRecipes/dependabot/pip/microdata-0.8.0
Bump microdata from 0.7.2 to 0.8.0
2022-02-03 15:22:13 +01:00
vabene1111
ec97b1edae Merge pull request #1480 from TandoorRecipes/dependabot/pip/recipe-scrapers-13.12.1
Bump recipe-scrapers from 13.10.1 to 13.12.1
2022-02-03 15:22:08 +01:00
dependabot[bot]
16a0ea07c7 Bump pillow from 9.0.0 to 9.0.1
Bumps [pillow](https://github.com/python-pillow/Pillow) from 9.0.0 to 9.0.1.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/9.0.0...9.0.1)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-03 14:21:50 +00:00
dependabot[bot]
3ba70683d9 Bump recipe-scrapers from 13.10.1 to 13.12.1
Bumps [recipe-scrapers](https://github.com/hhursev/recipe-scrapers) from 13.10.1 to 13.12.1.
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/13.10.1...13.12.1)

---
updated-dependencies:
- dependency-name: recipe-scrapers
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-03 14:21:37 +00:00
dependabot[bot]
f07f3e183d Bump microdata from 0.7.2 to 0.8.0
Bumps [microdata](https://github.com/edsu/microdata) from 0.7.2 to 0.8.0.
- [Release notes](https://github.com/edsu/microdata/releases)
- [Commits](https://github.com/edsu/microdata/compare/v0.7.2...v0.8.0)

---
updated-dependencies:
- dependency-name: microdata
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-03 14:21:28 +00:00
vabene1111
5d75220312 Merge pull request #1478 from TandoorRecipes/dependabot/pip/requests-2.27.1
Bump requests from 2.27.0 to 2.27.1
2022-02-03 15:21:09 +01:00
vabene1111
c136319719 Merge pull request #1474 from TandoorRecipes/dependabot/pip/boto3-1.20.47
Bump boto3 from 1.20.27 to 1.20.47
2022-02-03 15:21:01 +01:00
dependabot[bot]
c75b666b17 Bump boto3 from 1.20.27 to 1.20.47
Bumps [boto3](https://github.com/boto/boto3) from 1.20.27 to 1.20.47.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.20.27...1.20.47)

---
updated-dependencies:
- dependency-name: boto3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-03 13:42:36 +00:00
dependabot[bot]
fdc0dfaa15 Bump requests from 2.27.0 to 2.27.1
Bumps [requests](https://github.com/psf/requests) from 2.27.0 to 2.27.1.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.27.0...v2.27.1)

---
updated-dependencies:
- dependency-name: requests
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-03 13:42:07 +00:00
vabene1111
7f84186b5b Merge pull request #1456 from TandoorRecipes/dependabot/npm_and_yarn/vue/vue/compiler-sfc-3.2.29
Bump @vue/compiler-sfc from 3.2.26 to 3.2.29 in /vue
2022-02-03 14:41:52 +01:00
vabene1111
bc72086912 Merge pull request #1455 from TandoorRecipes/dependabot/npm_and_yarn/vue/typescript-4.5.5
Bump typescript from 4.5.4 to 4.5.5 in /vue
2022-02-03 14:41:47 +01:00
vabene1111
a41e5b362a Merge pull request #1454 from TandoorRecipes/dependabot/npm_and_yarn/vue/core-js-3.20.3
Bump core-js from 3.20.2 to 3.20.3 in /vue
2022-02-03 14:41:42 +01:00
vabene1111
d4ebbc0b63 Merge pull request #1452 from TandoorRecipes/dependabot/pip/boto3-1.20.46
Bump boto3 from 1.20.27 to 1.20.46
2022-02-03 14:41:37 +01:00
vabene1111
fccb2650f5 Merge pull request #1451 from TandoorRecipes/dependabot/pip/django-hcaptcha-0.2.0
Bump django-hcaptcha from 0.1.0 to 0.2.0
2022-02-03 14:41:32 +01:00
vabene1111
e4f74af9c0 Merge pull request #1450 from TandoorRecipes/dependabot/pip/django-crispy-forms-1.14.0
Bump django-crispy-forms from 1.13.0 to 1.14.0
2022-02-03 14:41:29 +01:00
vabene1111
982cde5623 Merge pull request #1449 from TandoorRecipes/dependabot/pip/pyppeteer-1.0.2
Bump pyppeteer from 0.2.6 to 1.0.2
2022-02-03 14:41:23 +01:00
vabene1111
66949356ea Merge pull request #1448 from TandoorRecipes/dependabot/pip/django-cors-headers-3.11.0
Bump django-cors-headers from 3.10.1 to 3.11.0
2022-02-03 14:41:19 +01:00
vabene1111
6952e10390 Merge branch 'develop' 2022-02-03 14:40:24 +01:00
vabene1111
ed99da2d1e Merge pull request #1472 from smilerz/updated_dockerignore
updated .dockerignore
2022-02-03 14:33:18 +01:00
vabene1111
ed852b3246 Merge pull request #1437 from MaxJa4/improvement/wait_for_db
[Docker] Web_recipes waits for db_recipes to be ready
2022-02-03 14:32:37 +01:00
vabene1111
eec0a49cd6 Merge pull request #1435 from MaxJa4/docs/headers
[Docs] Added example configs and header information
2022-02-03 14:30:20 +01:00
vabene1111
382c08dc0c Merge pull request #1445 from thumm/feature/ldap_cacertfile
Add new env parameter to set ldap ca cert file
2022-02-03 14:28:29 +01:00
Mario Dvorsek
231d1695ff Translated using Weblate (Slovenian)
Currently translated at 15.3% (78 of 509 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/sl/
2022-02-02 15:31:32 +00:00
Sven
97febe9aa1 Translated using Weblate (German)
Currently translated at 96.1% (546 of 568 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/
2022-02-02 15:31:32 +00:00
Chris Scoggins
c5a435905b remove vue source 2022-02-02 07:50:27 -06:00
Ben Scobie
74e88218d5 Keep screen awake when viewing recipe 2022-02-01 21:05:04 +00:00
vabene1111
86e34593d5 Merge pull request #1464 from StephenBrown2/make_header
Fix Make_Header/Make_Ingredient text and reference
2022-02-01 17:40:47 +01:00
Stephen Brown II
3961c684f9 Fix Make_Header/Make_Ingredient text and reference 2022-02-01 09:17:30 -06:00
vabene1111
b2a415b333 Merge pull request #1447 from smilerz/mealplan_shopping_useability
Mealplan shopping useability
2022-02-01 08:28:59 +01:00
dependabot[bot]
1e417fee97 Bump @vue/compiler-sfc from 3.2.26 to 3.2.29 in /vue
Bumps [@vue/compiler-sfc](https://github.com/vuejs/core/tree/HEAD/packages/compiler-sfc) from 3.2.26 to 3.2.29.
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/commits/v3.2.29/packages/compiler-sfc)

---
updated-dependencies:
- dependency-name: "@vue/compiler-sfc"
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-01 00:10:38 +00:00
dependabot[bot]
47d7c846a3 Bump typescript from 4.5.4 to 4.5.5 in /vue
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.5.4 to 4.5.5.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.5.4...v4.5.5)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-01 00:10:13 +00:00
dependabot[bot]
3b236ea04e Bump core-js from 3.20.2 to 3.20.3 in /vue
Bumps [core-js](https://github.com/zloirock/core-js) from 3.20.2 to 3.20.3.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.20.2...v3.20.3)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-01 00:09:45 +00:00
dependabot[bot]
2ec8bcce8b Bump boto3 from 1.20.27 to 1.20.46
Bumps [boto3](https://github.com/boto/boto3) from 1.20.27 to 1.20.46.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.20.27...1.20.46)

---
updated-dependencies:
- dependency-name: boto3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-01 00:03:44 +00:00
dependabot[bot]
966cda2371 Bump django-hcaptcha from 0.1.0 to 0.2.0
Bumps [django-hcaptcha](https://github.com/AndrejZbin) from 0.1.0 to 0.2.0.

---
updated-dependencies:
- dependency-name: django-hcaptcha
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-01 00:03:35 +00:00
dependabot[bot]
fcb1de4b93 Bump django-crispy-forms from 1.13.0 to 1.14.0
Bumps [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms) from 1.13.0 to 1.14.0.
- [Release notes](https://github.com/django-crispy-forms/django-crispy-forms/releases)
- [Changelog](https://github.com/django-crispy-forms/django-crispy-forms/blob/main/CHANGELOG.md)
- [Commits](https://github.com/django-crispy-forms/django-crispy-forms/compare/1.13.0...1.14.0)

---
updated-dependencies:
- dependency-name: django-crispy-forms
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-01 00:03:31 +00:00
dependabot[bot]
ca61764d2d Bump pyppeteer from 0.2.6 to 1.0.2
Bumps [pyppeteer](https://github.com/pyppeteer/pyppeteer) from 0.2.6 to 1.0.2.
- [Release notes](https://github.com/pyppeteer/pyppeteer/releases)
- [Changelog](https://github.com/pyppeteer/pyppeteer/blob/dev/CHANGELOG.md)
- [Commits](https://github.com/pyppeteer/pyppeteer/compare/0.2.6...1.0.2)

---
updated-dependencies:
- dependency-name: pyppeteer
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-01 00:03:26 +00:00
dependabot[bot]
a5946b49f8 Bump django-cors-headers from 3.10.1 to 3.11.0
Bumps [django-cors-headers](https://github.com/adamchainz/django-cors-headers) from 3.10.1 to 3.11.0.
- [Release notes](https://github.com/adamchainz/django-cors-headers/releases)
- [Changelog](https://github.com/adamchainz/django-cors-headers/blob/main/HISTORY.rst)
- [Commits](https://github.com/adamchainz/django-cors-headers/compare/3.10.1...3.11.0)

---
updated-dependencies:
- dependency-name: django-cors-headers
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-01 00:03:23 +00:00
Chris Scoggins
13d144345e adjust height of viewport in mobile shopping view 2022-01-31 16:30:54 -06:00
Chris Scoggins
b633be9c13 fix display issues 2022-01-31 16:24:40 -06:00
Chris Scoggins
f45e09a5a5 add units to search fields 2022-01-31 14:41:18 -06:00
Chris Scoggins
5b3a0a6e29 refactor IngredientComponent, move shopping logic to card 2022-01-31 14:05:01 -06:00
Thomas Schumm
505bac514f Add new env parameter to set ldap ca cert file 2022-01-31 19:34:32 +01:00
MaxJa4
39c3ce7ab2 More emphasis on waiting for migrations 2022-01-31 15:42:48 +01:00
MaxJa4
419821733c Optimized healthcheck timings
1s faster interval (to increase retry speed on faster systems), 1s shorter timeout (since it db should react in a lot less than 1s), increased retries to 12 total so all adds up to 60s of potential retry-time for older systems (e.g. RPI 3)
2022-01-31 14:27:39 +01:00
vabene1111
8216d0c025 Merge pull request #1439 from oliviapinson/develop
Simple font size change
2022-01-31 11:41:29 +01:00
dudel
98128fabab Translated using Weblate (German)
Currently translated at 95.9% (545 of 568 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/
2022-01-30 15:07:01 +00:00
Olivia Pinson
2d36db7822 Simple font size change
Adjusted font size so longer months won't affect arrow buttons. I think this helps the meal plan calendar look more aesthetic.
2022-01-29 22:44:19 -05:00
MaxJa4
300d132266 Removed retry process since it's fixed now
Removed retry process since it's fixed now by improvement/wait_for_db
2022-01-30 01:24:17 +01:00
MaxJa4
6330d15ebe Update docker-compose.yml 2022-01-30 01:20:54 +01:00
MaxJa4
d7d37f9908 Update docker-compose.yml 2022-01-30 01:20:33 +01:00
MaxJa4
fb29db7aad Web container waits for DB container to be ready
Fixes the setup issue almost all Raspberry Pi users have and probably some others with slow or low spec systems.
The web_recipes container waits for db_recipes to be healthy.
db_recipes is healthy, as soon as postgres is completely ready.

Note: ps_isready doesn't work here for some reason.

Tested multiple times with a Raspberry Pi 4.
2022-01-30 01:19:50 +01:00
MaxJa4
76dac29f1c Added raspberry pi setup issue FAQ
Added raspberry pi setup issue FAQ/info
2022-01-30 00:28:27 +01:00
Chris Scoggins
e00794bbdf review shopping list in MealPlan modal 2022-01-29 14:10:14 -06:00
Chris Scoggins
a7796cbf5c fix shopping list sharing 2022-01-29 11:59:06 -06:00
Chris Scoggins
e2f8f29ec8 refactor list_from_recipe as class RecipeShoppingEditor 2022-01-29 10:28:01 -06:00
MaxJa4
6e8729bb58 Added example configs and header information
Added example configs for plain local nginx and Apache2.
Also added FAQ section for all generic issues when not setting all required headers correctly.
Added section for required headers in the Docker installation docs.
2022-01-28 17:44:52 +01:00
vabene1111
a0892470e1 Merge branch 'feature/export-progress' into develop 2022-01-28 15:41:49 +01:00
vabene1111
9fcfa17004 Merge pull request #1377 from MaxJa4/docs/docker-installation
Enhancement of installation instruction docs
2022-01-28 15:35:20 +01:00
vabene1111
58f1ce0331 fixed rendering issue with single step recipes 2022-01-28 15:26:11 +01:00
vabene1111
20b4c4fb36 fixed using undeclared unused field 2022-01-28 15:21:07 +01:00
vabene1111
965e1664af Merge pull request #1411 from TheHaf/feature/addPortionSizeModifiersToGui
Feature/add portion size modifiers to gui
2022-01-28 15:17:05 +01:00
vabene1111
8232c77ef6 Merge pull request #1432 from smilerz/mealplan_shopping_useability
fix servings reactivity
2022-01-28 15:16:01 +01:00
Chris Scoggins
85bbcb0010 fix servings reactivity 2022-01-28 07:38:36 -06:00
vabene1111
338d8459de Merge pull request #1429 from smilerz/fix_shopping_sharing
fix #1426
2022-01-28 08:54:08 +01:00
Mario Dvorsek
fbf9a81121 Translated using Weblate (Slovenian)
Currently translated at 97.2% (283 of 291 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/sl/
2022-01-28 00:07:08 +00:00
Alex Hanselmann
1f80936805 Translated using Weblate (German)
Currently translated at 93.1% (529 of 568 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/
2022-01-28 00:07:08 +00:00
Chris Scoggins
8d424d668d fix #1426 2022-01-27 16:46:46 -06:00
vabene1111
b2fcdaa14e wont load by default otherwise 2022-01-27 14:15:38 +01:00
vabene1111
d4d949b870 Merge pull request #1421 from TandoorRecipes/minor_fixes
Minor fixes
2022-01-27 08:02:06 +01:00
smilerz
759ae99b56 Update en.json 2022-01-26 18:58:45 -06:00
smilerz
7104b5b109 sort SupermarketCategory queryset
fixes #1422
2022-01-26 17:31:22 -06:00
smilerz
331a949623 fixed saving shopping shared users 2022-01-26 17:27:52 -06:00
smilerz
cd733d3190 Update ShoppingListView.vue 2022-01-26 17:10:24 -06:00
Chris Scoggins
6e4bb64b4e fix translation on ModelListMenu 2022-01-26 15:00:21 -06:00
Chris Scoggins
4a48019885 fix duplicate shopping entries when using old list 2022-01-26 14:47:33 -06:00
Chris Scoggins
47823132f0 add ignore_shopping && additional help 2022-01-26 12:57:29 -06:00
Leni
bb5c8bbbf1 Translated using Weblate (German)
Currently translated at 100.0% (291 of 291 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-01-26 14:07:05 +00:00
Rene
5a0a1ca6a9 Translated using Weblate (German)
Currently translated at 100.0% (291 of 291 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-01-26 14:07:05 +00:00
Leni
19cc1e11b9 Translated using Weblate (German)
Currently translated at 91.5% (520 of 568 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/
2022-01-26 14:07:05 +00:00
Rene
c070c5b0ed Translated using Weblate (German)
Currently translated at 91.5% (520 of 568 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/
2022-01-26 14:07:05 +00:00
Chris Scoggins
2e2080d8d1 fix Recipe Counts on food/keyword/unit serializer 2022-01-25 16:48:30 -06:00
TheHaf
381a7e76be Use custom input component in recipe view 2022-01-25 22:04:21 +01:00
TheHaf
6c619ab628 Add custom input component with spin button look&feel 2022-01-25 22:03:49 +01:00
vabene1111
ae14dde13d propperly fixed setting 2022-01-25 18:33:12 +01:00
vabene1111
e33cf08fca Revert "use old system to define frontend settings"
This reverts commit f2e9f50d94.
2022-01-25 18:26:51 +01:00
vabene1111
f2e9f50d94 use old system to define frontend settings 2022-01-25 18:14:25 +01:00
vabene1111
75259ec230 corrected comment 2022-01-25 17:38:35 +01:00
vabene1111
f581f17308 Merge branch 'master' into develop 2022-01-25 15:30:36 +01:00
vabene1111
8c49e6ba18 another small migration fix 2022-01-25 15:29:36 +01:00
vabene1111
4b0ed86c36 Merge branch 'develop' 2022-01-25 12:22:16 +01:00
vabene1111
44da3ed7a9 Merge pull request #1406 from smilerz/patch_1.0.5_migration
Patch 1.0.5 migration
2022-01-25 12:21:46 +01:00
Chris Scoggins
f3f50d179f fixed missing field 2022-01-24 19:16:14 -06:00
vabene1111
6cabeba3cb Merge branch 'develop' 2022-01-24 18:25:49 +01:00
vabene1111
90bb67ff89 compiled translations 2022-01-24 18:25:33 +01:00
vabene1111
69ed987db8 Merge pull request #1400 from geisterfurz007/chore/filename-consistency
k8s yaml file consistency
2022-01-23 21:58:16 +01:00
vabene1111
638904abc8 Merge pull request #1399 from geisterfurz007/patch-1
Correct path to kubernetes files
2022-01-23 21:57:52 +01:00
vabene1111
a07bd452a9 Merge pull request #1405 from TandoorRecipes/dependabot/npm_and_yarn/vue/node-fetch-2.6.7
Bump node-fetch from 2.6.6 to 2.6.7 in /vue
2022-01-23 21:55:04 +01:00
dependabot[bot]
2398c00dfe Bump node-fetch from 2.6.6 to 2.6.7 in /vue
Bumps [node-fetch](https://github.com/node-fetch/node-fetch) from 2.6.6 to 2.6.7.
- [Release notes](https://github.com/node-fetch/node-fetch/releases)
- [Changelog](https://github.com/node-fetch/node-fetch/blob/main/docs/CHANGELOG.md)
- [Commits](https://github.com/node-fetch/node-fetch/compare/v2.6.6...v2.6.7)

---
updated-dependencies:
- dependency-name: node-fetch
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-23 20:53:52 +00:00
vabene1111
7314da1a5f Merge pull request #1395 from TandoorRecipes/dependabot/npm_and_yarn/vue/nanoid-3.2.0
Bump nanoid from 3.1.30 to 3.2.0 in /vue
2022-01-23 21:52:31 +01:00
vabene1111
559fee0ffe Merge branch 'develop' into beta 2022-01-23 12:51:07 +01:00
MaxJa4
075c88e5e8 Merge branch 'develop' into docs/docker-installation 2022-01-23 01:38:04 +01:00
geisterfurz007
9c80a10652 Move yml file to yaml file 2022-01-22 22:48:12 +00:00
geisterfurz007
30456c60e0 Correct path to kubernetes files 2022-01-22 23:24:27 +01:00
dependabot[bot]
202ef9509d Bump nanoid from 3.1.30 to 3.2.0 in /vue
Bumps [nanoid](https://github.com/ai/nanoid) from 3.1.30 to 3.2.0.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/3.1.30...3.2.0)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-22 10:32:18 +00:00
糖多
95b10bc01c Translated using Weblate (Chinese (Simplified))
Currently translated at 95.1% (275 of 289 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/zh_Hans/
2022-01-22 03:31:00 +00:00
糖多
289387f235 Translated using Weblate (Chinese (Simplified))
Currently translated at 88.7% (504 of 568 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/zh_Hans/
2022-01-22 03:31:00 +00:00
vabene1111
92c8afdf8f Merge pull request #1392 from smilerz/add-recipe
Add recipe from shopping list
2022-01-21 20:35:01 +01:00
Chris Scoggins
6e2374737e Squashed commit of the following:
commit a30a27c755
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Fri Jan 21 17:49:27 2022 +0100

    added keyword clicking to recipe view and fixed deleted keyword showing in search when passed via parameter

commit f274f31e80
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Fri Jan 21 16:56:47 2022 +0100

    fixed unit search on importer page

commit 20adcc0e83
Author: vabene1111 <vabene1234@googlemail.com>
Date:   Fri Jan 21 16:44:03 2022 +0100

    fixed v2 autosync flickering
Merge branch 'develop' into add-recipe
2022-01-21 13:11:33 -06:00
Chris Scoggins
f0b05808b8 moved Undefined to be first category 2022-01-21 12:36:54 -06:00
Chris Scoggins
250c3ce5b2 rebase with develop 2022-01-21 12:11:01 -06:00
Chris Scoggins
7916635716 add recipes to shopping list 2022-01-21 12:01:46 -06:00
vabene1111
a30a27c755 added keyword clicking to recipe view and fixed deleted keyword showing in search when passed via parameter 2022-01-21 17:49:27 +01:00
vabene1111
f274f31e80 fixed unit search on importer page 2022-01-21 16:56:47 +01:00
vabene1111
20adcc0e83 fixed v2 autosync flickering 2022-01-21 16:44:03 +01:00
Kaibu
c5b70b94c7 left handed only on mobile 2022-01-21 00:48:57 +01:00
Kaibu
c90e5d72af shopping list ux optimization, left handed mode 2022-01-21 00:13:36 +01:00
Sebastian Weber
0cf0fcea0a Translated using Weblate (German)
Currently translated at 89.6% (509 of 568 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/
2022-01-20 22:47:11 +00:00
vabene1111
ab5bff62e3 Merge pull request #1381 from sebweb3r/spelling_mistakes
Fix typos
2022-01-20 17:44:49 +01:00
vabene1111
001edecdd3 fixed quick entry for shopping v2 2022-01-20 15:54:45 +01:00
vabene1111
d27b39f7de changed default for auto on hand after shopping 2022-01-20 15:46:49 +01:00
Tomasz Klimczak
ddbbd53ace Translated using Weblate (Polish)
Currently translated at 100.0% (285 of 285 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pl/
2022-01-20 14:24:20 +00:00
Philipp Wensauer
0360d443ea Translated using Weblate (German)
Currently translated at 87.0% (248 of 285 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-01-20 14:24:19 +00:00
Sebastian Weber
c20e982fb1 Fix typos 2022-01-20 00:50:41 +01:00
Kaibu
0f7dc096cb shopping list ux 2022-01-20 00:29:10 +01:00
MaxJa4
47dd3118b1 Enhanced manual installation docs 2022-01-19 19:42:38 +01:00
MaxJa4
2e85b01242 Enhanced kubernetes installation docs 2022-01-19 19:38:11 +01:00
MaxJa4
119379028d Enhanced unraid installation docs 2022-01-19 19:33:40 +01:00
MaxJa4
b8bb146422 Enhanced synology installation docs 2022-01-19 19:28:44 +01:00
MaxJa4
71a2f1955e Enhancement of docker install docs 2022-01-19 19:13:33 +01:00
MaxJa4
6b154b05a6 [Docs] Attempt to fix .yml inclusion
File inclusion broke some time ago. Changed back to original format like inclusion-plugin docs suggest.
2022-01-19 18:39:46 +01:00
vabene1111
fc9eb249a8 Merge branch 'develop' of https://github.com/vabene1111/recipes into develop 2022-01-19 17:37:01 +01:00
vabene1111
4a9e027849 changed asset caching strategy
there were to many issues with stale content breaking the application thus policy was changed to network first. might make another fix to split between more static assets (bootstrap/libraries/...) and more actively changed ones like the frontend
2022-01-19 17:36:57 +01:00
vabene1111
890817ef6d Merge pull request #1374 from smilerz/patch-updated-search
fix sort by new and show recent recipes
2022-01-19 17:01:46 +01:00
vabene1111
61a253675c fixed default import / export 2022-01-19 16:08:03 +01:00
smilerz
530b1a8986 fix sort by new 2022-01-19 08:39:40 -06:00
vabene1111
631d594f45 Merge pull request #1372 from MaxJa4/patch-1
Added GH template for documentation issues
2022-01-19 14:39:49 +01:00
MaxJa4
3fcea5af0a Added GH template for documentation issues
Added GH template for documentation issues.
Feel free to adjust.
2022-01-19 10:05:36 +01:00
vabene1111
07195b74a3 Merge pull request #1368 from smilerz/fix-mutliselect
fix multiselect
2022-01-18 22:52:08 +01:00
vabene1111
e15fec9845 Merge branch 'develop' into beta 2022-01-18 22:51:51 +01:00
vabene1111
9e9a61e94e changed tests to support removed step type 2022-01-18 22:50:02 +01:00
smilerz
18c45771e7 fix multiselect 2022-01-18 15:44:11 -06:00
vabene1111
42aaed011c added saving of supermarket in shopping v2 2022-01-18 22:42:10 +01:00
vabene1111
66d29d10bf fixed shopping v2 export drop down alignment 2022-01-18 22:38:42 +01:00
vabene1111
dfa4f444ef Merge branch 'develop' of https://github.com/vabene1111/recipes into develop 2022-01-18 22:36:05 +01:00
vabene1111
12f2d3c7b3 Merge branch 'feature/recipe-edit-view-refactor' into develop 2022-01-18 22:36:00 +01:00
vabene1111
f9c68e9fcc layout tweaks 2022-01-18 22:35:53 +01:00
vabene1111
d65c881fde Merge pull request #1366 from smilerz/super-cat-fix
fix supermarket categories
2022-01-18 22:14:42 +01:00
vabene1111
7bf9f18402 allow file uploading in recipe editor 2022-01-18 21:36:20 +01:00
vabene1111
3ea96d4102 basics 2022-01-18 21:09:08 +01:00
smilerz
b3417be2ec fix supermarket categories 2022-01-18 13:26:07 -06:00
vabene1111
8d24ae9008 small tweaks to the recipe editor 2022-01-18 19:55:51 +01:00
vabene1111
2073158e1f Merge branch 'develop' into beta 2022-01-18 16:18:19 +01:00
vabene1111
a9d8080ec2 Merge pull request #1358 from smilerz/expert-settings
enable/disable treeselect
2022-01-18 16:17:36 +01:00
vabene1111
fe09278b0e silenced translation warnings 2022-01-18 16:16:11 +01:00
smilerz
2a13a341dd enable/disable treeselect 2022-01-18 08:17:54 -06:00
vabene1111
b382ab9024 step rendering improvements 2022-01-18 15:09:51 +01:00
vabene1111
7ff7d157dc updated translations 2022-01-18 14:53:16 +01:00
vabene1111
24c476830d Merge branch 'develop' of https://github.com/vabene1111/recipes into develop 2022-01-18 14:51:44 +01:00
vabene1111
2d0a638c0a fixed empty step headers 2022-01-18 14:51:34 +01:00
Tomasz Klimczak
70b8a50d1d Translated using Weblate (Polish)
Currently translated at 100.0% (284 of 284 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pl/
2022-01-18 13:43:20 +00:00
糖多
05df133960 Translated using Weblate (Chinese (Simplified))
Currently translated at 58.4% (166 of 284 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/zh_Hans/
2022-01-18 13:43:20 +00:00
Jesse
426f4d3e77 Translated using Weblate (Dutch)
Currently translated at 100.0% (284 of 284 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/nl/
2022-01-18 13:43:20 +00:00
Philipp Wensauer
6b2ac3f873 Translated using Weblate (German)
Currently translated at 87.3% (248 of 284 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-01-18 13:43:20 +00:00
糖多
1986da7f6e Translated using Weblate (Chinese (Simplified))
Currently translated at 28.6% (146 of 509 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/zh_Hans/
2022-01-18 13:43:20 +00:00
Philipp Wensauer
cc7b9bba32 Translated using Weblate (German)
Currently translated at 87.3% (248 of 284 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-01-18 13:43:20 +00:00
Christoph Koch
8e0c709427 Translated using Weblate (German)
Currently translated at 87.3% (248 of 284 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-01-18 13:43:20 +00:00
Florian
1ed965adcd Translated using Weblate (German)
Currently translated at 87.3% (248 of 284 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2022-01-18 13:43:20 +00:00
vabene1111
8ced587562 fixed nginx config example for manual install 2022-01-18 14:02:11 +01:00
vabene1111
a0fd1f4104 fixed step header rendering 2022-01-18 14:00:25 +01:00
vabene1111
7fbc1cd8d1 Merge pull request #1354 from smilerz/facet-fix
better fix for counting facets
2022-01-18 07:59:36 +01:00
vabene1111
ba1f10cd3a Merge branch 'develop' into facet-fix 2022-01-18 07:59:32 +01:00
vabene1111
7e2ee0300c Merge branch 'develop' into beta 2022-01-18 07:57:17 +01:00
smilerz
4e0cc34d41 better fix for counting facets 2022-01-17 17:18:43 -06:00
Kaibu
ef4ce62f5b custom class selection for lookupinput comp 2022-01-17 23:48:57 +01:00
Kaibu
b990462bdb Merge branch 'develop' of https://github.com/vabene1111/recipes into develop
# Conflicts:
#	vue/src/components/Modals/LookupInput.vue
2022-01-17 23:48:12 +01:00
vabene1111
5e34c6ddf0 Merge pull request #1353 from smilerz/supermarket-category
fix missing label on first supermarket category
2022-01-17 23:29:49 +01:00
smilerz
d8d76ae9e0 fix missing label supermarket category 2022-01-17 16:12:54 -06:00
Kaibu
c60141940d shopping list ux improvements 2022-01-17 23:02:42 +01:00
vabene1111
532d32c194 fixed shopping user save setting would not work 2022-01-17 22:41:38 +01:00
vabene1111
54721a0a62 also added space to bot 2022-01-17 22:37:14 +01:00
vabene1111
c27933548d fixed order of delete 2022-01-17 22:28:02 +01:00
vabene1111
d04e9518cb fixed telegram shopping bot 2022-01-17 22:13:36 +01:00
vabene1111
b9065f7052 added space deletion feature 2022-01-17 22:03:57 +01:00
vabene1111
c8c29e1b5a fixed performance issue 2022-01-17 21:14:22 +01:00
smilerz
5724ef9511 fix boolean directive 2022-01-17 14:02:58 -06:00
vabene1111
2595a26fb4 Merge pull request #1351 from MaxJa4/patch-1
Add hint about trailing slashes for subpath setups
2022-01-17 20:26:02 +01:00
vabene1111
e1c7305c07 switcher basically working again 2022-01-17 20:22:37 +01:00
vabene1111
418c38423f Merge pull request #1352 from smilerz/fix-search
force list params to list
2022-01-17 20:15:01 +01:00
smilerz
cc5be844d5 force list params to list 2022-01-17 13:13:26 -06:00
vabene1111
90b6f9ad06 fixed sub recipe issue 2022-01-17 19:54:16 +01:00
MaxJa4
437296415e Update .env.template 2022-01-17 18:43:14 +01:00
MaxJa4
a8c885bd21 Remove newline at the end 2022-01-17 18:41:41 +01:00
vabene1111
a539d14aad wip switcher 2022-01-17 18:15:23 +01:00
MaxJa4
2b0541bd74 Add hint about trailing slashes for subpath setups
Add hint about trailing slashes for subpath setups due to recent issue on Discord.
2022-01-17 18:05:39 +01:00
vabene1111
3f53a924e1 Merge branch 'develop' of https://github.com/vabene1111/recipes into develop 2022-01-17 18:01:47 +01:00
vabene1111
0ed9100fb1 Merge pull request #1350 from TandoorRecipes/patch-empty-recipe_list
Update recipe_search.py
2022-01-17 17:59:19 +01:00
vabene1111
d23158839b Revert "temporarily disable recipe switcher"
This reverts commit d2b796ddd2.
2022-01-17 17:58:09 +01:00
vabene1111
d2b796ddd2 temporarily disable recipe switcher 2022-01-17 17:58:04 +01:00
vabene1111
8b1e80efeb wip 2022-01-17 17:51:29 +01:00
smilerz
85ecac3a17 Update recipe_search.py 2022-01-17 10:10:38 -06:00
vabene1111
79f6e27959 Merge branch 'develop' into beta 2022-01-17 17:00:16 +01:00
vabene1111
e0b8d6fcc3 added exception catch to nextcloud importer
to handle empty folders in sync
2022-01-17 17:00:08 +01:00
vabene1111
edd47873f7 fixed signup button and autofocus on user input fields 2022-01-17 16:51:04 +01:00
vabene1111
c14dd04261 Merge pull request #1348 from smilerz/fuzzy_search
Fuzzy search
2022-01-17 16:50:36 +01:00
smilerz
769365d624 Merge branch 'fuzzy_search' of github.com:smilerz/recipes into fuzzy_search 2022-01-17 09:46:33 -06:00
smilerz
ddb9e70d31 fix url_import 2022-01-17 09:46:26 -06:00
vabene1111
a376728120 fixed keyword creation in exporter #1213 2022-01-17 16:29:29 +01:00
vabene1111
306f90aa98 recipe editor decimal fixes 2022-01-17 16:27:10 +01:00
vabene1111
a19ad706ce Merge branch 'develop' of https://github.com/vabene1111/recipes into develop 2022-01-17 16:22:18 +01:00
vabene1111
4af6de7425 Revert "Merge pull request #1280 from MarcusWolschon/feature1275_readable_export_file_names"
This reverts commit c4f40b9639, reversing
changes made to 93b868bc69.
2022-01-17 16:22:11 +01:00
vabene1111
8f3044dbee Merge pull request #1316 from tomtjes/docs-swag-example
add swag config example
2022-01-17 16:04:40 +01:00
vabene1111
7c5ffdaef4 Merge pull request #1347 from smilerz/fuzzy_search
Fuzzy search
2022-01-17 15:51:54 +01:00
vabene1111
30421d067e Merge branch 'develop' into fuzzy_search 2022-01-17 15:51:23 +01:00
vabene1111
d3b71e40c7 cleand up context menu code 2022-01-17 15:43:35 +01:00
vabene1111
1a84a8fe80 Merge pull request #1289 from MarcusWolschon/features/1093_recipe_link_in_plan
#1093 Recipe link in plan
2022-01-17 15:39:11 +01:00
vabene1111
16cb99f915 Merge pull request #1317 from mheiland/patch-1
Example for third-party authentication
2022-01-17 15:37:48 +01:00
vabene1111
a451f722a1 Merge pull request #1327 from tomtjes/docs-faq-amendments
FAQ amendments
2022-01-17 15:35:43 +01:00
smilerz
dde350c8af prettier cleanup 2022-01-17 08:35:19 -06:00
smilerz
37971acb48 refactor recipe search 2022-01-17 08:26:34 -06:00
vabene1111
f12196d1c6 Merge pull request #1343 from MatthiasLohr/feature/db-url-path
Allow to specify an actual path using DATABASE_URL
2022-01-17 15:20:45 +01:00
vabene1111
d4242a244d Merge branch 'master' into develop
# Conflicts:
#	cookbook/forms.py
2022-01-17 15:16:37 +01:00
vabene1111
8a7c4e11c9 fixed invite link counting 2022-01-17 15:16:13 +01:00
vabene1111
745bb58c7e fixed valid filter on invite link counter 2022-01-17 15:02:41 +01:00
Matthias Lohr
b3e971fe09 allow to specify an actual path using DATABASE_URL 2022-01-17 11:21:36 +01:00
Oliver Cervera
0c603e3665 Translated using Weblate (Italian)
Currently translated at 84.1% (239 of 284 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/it/
2022-01-17 07:56:19 +00:00
Oliver Cervera
fed9cfeeb7 Translated using Weblate (Italian)
Currently translated at 96.6% (492 of 509 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/it/
2022-01-17 07:56:19 +00:00
vabene1111
5a65fd2231 Merge pull request #1331 from TandoorRecipes/dependabot/npm_and_yarn/vue/follow-redirects-1.14.7
Bump follow-redirects from 1.14.6 to 1.14.7 in /vue
2022-01-16 17:29:35 +01:00
SMunos
c2a763fa4c Translated using Weblate (French)
Currently translated at 100.0% (284 of 284 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/
2022-01-16 07:07:02 +00:00
Josselin du PLESSIS
528767a835 Translated using Weblate (French)
Currently translated at 100.0% (284 of 284 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/
2022-01-16 07:07:02 +00:00
糖多
9b182f6076 Translated using Weblate (Chinese (Simplified))
Currently translated at 32.0% (91 of 284 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/zh_Hans/
2022-01-16 07:07:02 +00:00
糖多
968b710b49 Translated using Weblate (Chinese (Simplified))
Currently translated at 28.6% (146 of 509 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/zh_Hans/
2022-01-16 07:07:02 +00:00
Josselin du PLESSIS
f11e07d347 Translated using Weblate (French)
Currently translated at 100.0% (509 of 509 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/fr/
2022-01-16 07:07:02 +00:00
dependabot[bot]
24e42496a7 Bump follow-redirects from 1.14.6 to 1.14.7 in /vue
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.6 to 1.14.7.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.6...v1.14.7)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-16 01:02:54 +00:00
vabene1111
9da496cb6d Merge pull request #1323 from MaxJa4/patch-1
Added Apache2 in the bug report template
2022-01-15 21:46:04 +01:00
tomtjes
99b3ed8464 add FAQ for PWA 2022-01-15 13:58:40 -05:00
tomtjes
281535e756 phrase FAQ as questions 2022-01-15 13:57:20 -05:00
MaxJa4
9221533ae7 Added Apache2 in the bug report template
Added Apache2 as selectable option in the bug report template
2022-01-15 12:56:01 +01:00
mheiland
f07690d7e3 Example for third-party authentication
Providing an example to integrate Keycloak as IAM for Tandoor. Hinting that both SOCIAL* variables are required.
2022-01-15 00:24:56 +01:00
SMunos
8cebc98d3b Translated using Weblate (French)
Currently translated at 100.0% (284 of 284 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/
2022-01-14 23:18:42 +00:00
FrenchAnon
965d2c05e7 Translated using Weblate (French)
Currently translated at 100.0% (284 of 284 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/
2022-01-14 23:18:37 +00:00
Josselin du PLESSIS
17ad01ae8c Translated using Weblate (French)
Currently translated at 100.0% (284 of 284 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/
2022-01-14 23:18:36 +00:00
tomtjes
51620a34d9 add swag config example 2022-01-14 15:10:22 -05:00
Tomasz Klimczak
91fcb1b822 Translated using Weblate (Polish)
Currently translated at 80.9% (225 of 278 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pl/
2022-01-14 19:11:20 +00:00
Tiago Rascazzi
01d5ab92c5 Translated using Weblate (French)
Currently translated at 72.6% (202 of 278 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/
2022-01-14 19:11:20 +00:00
vabene1111
79c8d26e8c Merge pull request #1311 from smilerz/patch-2
fix bug creating food with create form
2022-01-14 17:18:30 +01:00
vabene1111
9486b08e20 Merge pull request #1309 from MaxJa4/develop
Disabled old issue templates and added new ones with new GitHub issues format
2022-01-14 16:57:10 +01:00
Marcus Wolschon
934eeee5c4 #1093 code cleanup 2022-01-14 13:56:46 +01:00
Marcus Wolschon
2927333bf1 #1093 code cleanup 2022-01-14 13:52:42 +01:00
smilerz
0e1153ce3a deleted extraneous emit 2022-01-13 17:40:26 -06:00
smilerz
b3f05b0bfd fix bug creating food with create form 2022-01-13 16:50:15 -06:00
smilerz
6d9a90c6ba fix onhand_users 2022-01-13 16:49:10 -06:00
smilerz
6555df824d Merge branch 'develop' into feature/custom_filters 2022-01-13 16:01:05 -06:00
smilerz
e313481fc8 WIP 2022-01-13 16:00:59 -06:00
vabene1111
d36033a8b5 Merge pull request #1310 from TandoorRecipes/smilerz-patch-1
Update serializer.py
2022-01-13 22:53:58 +01:00
smilerz
d2d2765765 Update serializer.py
image location should use MEDIA_URL alone and not combine with SCRIPT_NAME
2022-01-13 15:53:24 -06:00
smilerz
3aa7f6a367 Merge branch 'develop' into feature/custom_filters 2022-01-13 14:41:53 -06:00
Maximilian Jannack
ffa91863dd Added config.yml for FAQ link 2022-01-13 21:26:15 +01:00
Maximilian Jannack
cf2d33daad Disabled old issue templates and added new ones with new GitHub issues format 2022-01-13 21:17:08 +01:00
vabene1111
506d7a8bb2 Merge pull request #1306 from TandoorRecipes/performance_refactor
facets cache-only on initial load
2022-01-13 19:21:11 +01:00
smilerz
8b1233be62 facets cache-only on initial load 2022-01-13 12:02:28 -06:00
vabene1111
9a3a4b9450 Merge pull request #1262 from MaxJa4/patch-2
Extension and hopefully simplification of bug reporting process
2022-01-13 18:20:41 +01:00
vabene1111
2db300a8a4 Merge pull request #1253 from MaxJa4/patch-1
Some additional info for reverse proxy setups.
2022-01-13 17:49:55 +01:00
vabene1111
a2dc8d8988 Merge pull request #1300 from TandoorRecipes/performance_refactor
Performance refactor
2022-01-13 17:06:04 +01:00
smilerz
798aa7f179 detect empty queryset 2022-01-12 16:55:39 -06:00
smilerz
22953b0591 trees in recipe search loaded asynchronously 2022-01-12 16:21:36 -06:00
MaxJa4
0b8881c511 Merge branch 'TandoorRecipes:develop' into patch-1 2022-01-12 21:55:41 +01:00
MaxJa4
dc10bf2c49 Add general note and remove duplicate subchapter from docker installation docs
Add general note and remove duplicate subchapter from docker installation docs
2022-01-12 21:55:31 +01:00
smilerz
20d61160ba refactor get_facets as RecipeFacets class 2022-01-12 12:21:28 -06:00
Tiago Rascazzi
f8c744e301 Merge branch 'TandoorRecipes-develop' into develop 2022-01-12 11:56:27 -05:00
Tiago Rascazzi
a7770bda5b Merge with main 2022-01-12 11:56:11 -05:00
vabene1111
c4f40b9639 Merge pull request #1280 from MarcusWolschon/feature1275_readable_export_file_names
#1275
2022-01-12 17:28:03 +01:00
Marcus Wolschon
8f08ba7114 #1093 conditional receipt link in plan 2022-01-12 16:15:55 +01:00
Marcus Wolschon
8a4f35e592 #1093 Recipe link in plan
#1093 add a recipe link into meal plan
2022-01-12 11:37:08 +01:00
Tiago Rascazzi
fef9bcb1e1 Added date to filename 2022-01-11 15:44:10 -05:00
Marcus Wolschon
80de87d459 #1275
#1275 readable receipt file names in default export
2022-01-11 21:31:02 +01:00
TiagoRascazzi
88e9e39c73 Merge branch 'TandoorRecipes:develop' into develop 2022-01-11 14:07:13 -05:00
smilerz
f9b04a3f1e bug fix 2022-01-11 08:33:42 -06:00
smilerz
f7cb067b52 construct values in queryset instead of serializer methods 2022-01-11 07:24:59 -06:00
smilerz
25ccea90e0 WIP 2022-01-10 15:05:56 -06:00
vabene1111
93b868bc69 fixed valid filter on invite link counter 2022-01-09 18:25:38 +01:00
MaxJa4
acfb02cc0e Extension and hopefully simplification of bug template
To get more information about bugs and prohibit having to ask one by one for specific information, I extended and redesigned the bug template.
Fell free to change parts or suggest changes.
Please note, that all explanatory parts are hidden as comments in the markdown (which the user will see when creating a bug ticket) so they don't unnecessarily clutter the finished bug report.
2022-01-09 14:21:45 +01:00
Tiago Rascazzi
16b357e11e Added printReady selector 2022-01-08 14:44:28 -05:00
Tiago Rascazzi
7c48c13dce Added export from url args 2022-01-08 13:37:26 -05:00
Tiago Rascazzi
68eccd3c05 Merge branch 'develop' of https://github.com/TiagoRascazzi/recipes into develop 2022-01-08 12:31:14 -05:00
Tiago Rascazzi
33d1022a73 Increase number of result for multiselect in export 2022-01-08 12:30:42 -05:00
TiagoRascazzi
08e6833c12 Removed comment 2022-01-08 11:10:48 -05:00
Tiago Rascazzi
9c873127a5 Added loading page 2022-01-08 11:07:33 -05:00
MaxJa4
79c8edd354 Some additional info for reverse proxy setups.
Since there have been quite some people with basic docker setup issues when using a reverse proxy and very basic reverse proxies like a nginx running locally as a proxy or Caddy, I figured these added sentences might clear things up for some people.
Feel free to suggest additional topics which should be added or refined.
2022-01-07 20:14:49 +01:00
vabene1111
e1e53d12f8 playing around with the reciupe switcher 2022-01-07 16:19:25 +01:00
vabene1111
30683fe455 Merge pull request #1252 from smilerz/sw_at_ScriptName
change manifest paths to be relative
2022-01-07 15:39:49 +01:00
vabene1111
c20aae3efc fixed markdown issue 2022-01-07 11:13:13 +01:00
vabene1111
5e2ca250b0 fixed nav and export required recipe 2022-01-07 11:01:53 +01:00
vabene1111
d506952602 small PDF export tweaks 2022-01-07 10:55:27 +01:00
vabene1111
0a6abf9688 Merge pull request #1211 from TiagoRascazzi/develop
Added Saffron and PDF export format
2022-01-07 10:31:13 +01:00
vabene1111
6c4b1e76eb Merge pull request #1251 from smilerz/fail_connection_gracefully
ConnectError fail gracefully during URL import
2022-01-07 10:19:00 +01:00
vabene1111
1f391b794b Merge pull request #1250 from TandoorRecipes/dependabot/npm_and_yarn/vue/mermaid-8.13.8
Bump mermaid from 8.13.5 to 8.13.8 in /vue
2022-01-07 10:18:45 +01:00
smilerz
983d66c197 change manifest paths to be relative 2022-01-06 15:11:24 -06:00
dependabot[bot]
ab2098151b Bump mermaid from 8.13.5 to 8.13.8 in /vue
Bumps [mermaid](https://github.com/knsv/mermaid) from 8.13.5 to 8.13.8.
- [Release notes](https://github.com/knsv/mermaid/releases)
- [Changelog](https://github.com/mermaid-js/mermaid/blob/develop/docs/CHANGELOG.md)
- [Commits](https://github.com/knsv/mermaid/compare/8.13.5...8.13.8)

---
updated-dependencies:
- dependency-name: mermaid
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-06 19:48:16 +00:00
vabene1111
6053b1419c fixed undefined var 2022-01-06 16:57:17 +01:00
vabene1111
5c98f06208 Merge branch 'develop' of https://github.com/vabene1111/recipes into develop 2022-01-06 16:34:53 +01:00
vabene1111
c141dc850f Merge pull request #1245 from TandoorRecipes/fix_scopes_subfolder
added prefix to request.path.startswith() conditionals
2022-01-06 16:30:27 +01:00
vabene1111
0283835a96 Merge pull request #1240 from TandoorRecipes/feature/shopping_list_v2
Feature/shopping list v2
2022-01-06 16:27:44 +01:00
vabene1111
724217f142 Merge branch 'develop' into feature/shopping_list_v2 2022-01-06 16:27:39 +01:00
vabene1111
0094fd28e2 Merge pull request #1247 from TandoorRecipes/feature/related_recipe_switcher
Feature/related recipe switcher
2022-01-06 16:22:54 +01:00
vabene1111
54b57a8bcb Merge branch 'develop' into feature/related_recipe_switcher 2022-01-06 16:22:44 +01:00
vabene1111
0778025a0c Merge branch 'develop' of https://github.com/vabene1111/recipes into develop 2022-01-06 16:08:17 +01:00
vabene1111
063a0dec24 Merge branch 'master' into develop
# Conflicts:
#	requirements.txt
2022-01-06 16:08:06 +01:00
smilerz
b09acefa6a fix 1244 2022-01-06 07:49:53 -06:00
smilerz
6a1fcabae0 added prefix to request.path.startswith() conditionals 2022-01-06 07:37:02 -06:00
smilerz
13115a1e53 fixes 1176 2022-01-05 17:49:38 -06:00
smilerz
f65b5d0733 clear unit after adding shopping list item 2022-01-05 16:41:26 -06:00
smilerz
922eb7402b fix tess 2022-01-05 15:20:10 -06:00
smilerz
2c76fb7b69 make food onhand when complete shopping entry 2022-01-05 15:20:10 -06:00
smilerz
7c89117e04 make on_hand multiuser 2022-01-05 15:20:10 -06:00
smilerz
b919fb4ae8 quick add shoppinglist 2022-01-05 15:20:10 -06:00
smilerz
29aa52aa3d fix saving old list 2022-01-05 15:20:10 -06:00
smilerz
214db80dac add category context menu 2022-01-05 15:20:10 -06:00
Hrachya Kocharyan
25c1689ca0 Translated using Weblate (Armenian)
Currently translated at 39.4% (82 of 208 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/hy/
2022-01-05 07:00:36 +00:00
Tiago Rascazzi
10001dde7b Fix default export 2022-01-04 13:55:13 -05:00
Tiago Rascazzi
578154510b Merge shopping_list develop 2022-01-04 13:19:34 -05:00
vabene1111
8a99907a51 reverted some updates 2022-01-04 17:32:17 +01:00
vabene1111
636fa8f318 Merge pull request #1200 from TandoorRecipes/dependabot/npm_and_yarn/vue/vue-simple-calendar-6.0.3
Bump vue-simple-calendar from 5.0.1 to 6.0.3 in /vue
2022-01-04 16:23:09 +01:00
vabene1111
7efbc9c42e Merge pull request #1197 from TandoorRecipes/dependabot/npm_and_yarn/vue/vue/eslint-config-typescript-10.0.0
Bump @vue/eslint-config-typescript from 9.1.0 to 10.0.0 in /vue
2022-01-04 16:23:03 +01:00
dependabot[bot]
b05639110a Bump vue-simple-calendar from 5.0.1 to 6.0.3 in /vue
Bumps [vue-simple-calendar](https://github.com/richardtallent/vue-simple-calendar) from 5.0.1 to 6.0.3.
- [Release notes](https://github.com/richardtallent/vue-simple-calendar/releases)
- [Changelog](https://github.com/richardtallent/vue-simple-calendar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/richardtallent/vue-simple-calendar/commits/v6.0.3)

---
updated-dependencies:
- dependency-name: vue-simple-calendar
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-04 15:22:08 +00:00
vabene1111
1fe673ba1e Merge pull request #1230 from TandoorRecipes/dependabot/pip/django-cors-headers-3.10.1
Bump django-cors-headers from 3.10.0 to 3.10.1
2022-01-04 16:21:54 +01:00
vabene1111
0a89bf4a10 Merge pull request #1229 from TandoorRecipes/dependabot/pip/django-4.0.1
Bump django from 3.2.10 to 4.0.1
2022-01-04 16:21:49 +01:00
vabene1111
049d218f7b Merge pull request #1228 from TandoorRecipes/dependabot/pip/requests-2.27.0
Bump requests from 2.26.0 to 2.27.0
2022-01-04 16:21:45 +01:00
vabene1111
0030775e55 Merge pull request #1227 from TandoorRecipes/dependabot/pip/recipe-scrapers-13.10.1
Bump recipe-scrapers from 13.7.0 to 13.10.1
2022-01-04 16:21:40 +01:00
dependabot[bot]
cd49311cba Bump django from 3.2.10 to 4.0.1
Bumps [django](https://github.com/django/django) from 3.2.10 to 4.0.1.
- [Release notes](https://github.com/django/django/releases)
- [Commits](https://github.com/django/django/compare/3.2.10...4.0.1)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-04 15:21:11 +00:00
dependabot[bot]
f7af4b9cd2 Bump requests from 2.26.0 to 2.27.0
Bumps [requests](https://github.com/psf/requests) from 2.26.0 to 2.27.0.
- [Release notes](https://github.com/psf/requests/releases)
- [Changelog](https://github.com/psf/requests/blob/main/HISTORY.md)
- [Commits](https://github.com/psf/requests/compare/v2.26.0...v2.27.0)

---
updated-dependencies:
- dependency-name: requests
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-04 15:21:03 +00:00
dependabot[bot]
6c205e2fc6 Bump django-cors-headers from 3.10.0 to 3.10.1
Bumps [django-cors-headers](https://github.com/adamchainz/django-cors-headers) from 3.10.0 to 3.10.1.
- [Release notes](https://github.com/adamchainz/django-cors-headers/releases)
- [Changelog](https://github.com/adamchainz/django-cors-headers/blob/main/HISTORY.rst)
- [Commits](https://github.com/adamchainz/django-cors-headers/compare/3.10.0...3.10.1)

---
updated-dependencies:
- dependency-name: django-cors-headers
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-04 15:21:01 +00:00
dependabot[bot]
938f5560fb Bump recipe-scrapers from 13.7.0 to 13.10.1
Bumps [recipe-scrapers](https://github.com/hhursev/recipe-scrapers) from 13.7.0 to 13.10.1.
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/13.7.0...13.10.1)

---
updated-dependencies:
- dependency-name: recipe-scrapers
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-04 15:20:53 +00:00
vabene1111
6791de94d7 Merge pull request #1220 from TandoorRecipes/dependabot/pip/pillow-9.0.0
Bump pillow from 8.4.0 to 9.0.0
2022-01-04 16:19:24 +01:00
dependabot[bot]
884dd6b8f8 Bump pillow from 8.4.0 to 9.0.0
Bumps [pillow](https://github.com/python-pillow/Pillow) from 8.4.0 to 9.0.0.
- [Release notes](https://github.com/python-pillow/Pillow/releases)
- [Changelog](https://github.com/python-pillow/Pillow/blob/main/CHANGES.rst)
- [Commits](https://github.com/python-pillow/Pillow/compare/8.4.0...9.0.0)

---
updated-dependencies:
- dependency-name: pillow
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-04 15:18:05 +00:00
vabene1111
d2bf0359c0 Merge pull request #1214 from TandoorRecipes/dependabot/pip/boto3-1.20.27
Bump boto3 from 1.20.19 to 1.20.27
2022-01-04 16:17:25 +01:00
vabene1111
f418d74639 Merge pull request #1218 from TandoorRecipes/dependabot/npm_and_yarn/vue/core-js-3.20.2
Bump core-js from 3.19.3 to 3.20.2 in /vue
2022-01-04 16:17:19 +01:00
vabene1111
68260a2929 Merge pull request #1219 from TandoorRecipes/dependabot/pip/lxml-4.7.1
Bump lxml from 4.6.5 to 4.7.1
2022-01-04 16:17:15 +01:00
vabene1111
0f5feac067 Merge pull request #1221 from TandoorRecipes/dependabot/pip/psycopg2-binary-2.9.3
Bump psycopg2-binary from 2.9.2 to 2.9.3
2022-01-04 16:17:05 +01:00
dependabot[bot]
fde892dd78 Bump boto3 from 1.20.19 to 1.20.27
Bumps [boto3](https://github.com/boto/boto3) from 1.20.19 to 1.20.27.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.20.19...1.20.27)

---
updated-dependencies:
- dependency-name: boto3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-04 07:29:59 +00:00
dependabot[bot]
e54d477b12 Bump psycopg2-binary from 2.9.2 to 2.9.3
Bumps [psycopg2-binary](https://github.com/psycopg/psycopg2) from 2.9.2 to 2.9.3.
- [Release notes](https://github.com/psycopg/psycopg2/releases)
- [Changelog](https://github.com/psycopg/psycopg2/blob/master/NEWS)
- [Commits](https://github.com/psycopg/psycopg2/commits)

---
updated-dependencies:
- dependency-name: psycopg2-binary
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-04 07:29:58 +00:00
dependabot[bot]
29411b5a74 Bump lxml from 4.6.5 to 4.7.1
Bumps [lxml](https://github.com/lxml/lxml) from 4.6.5 to 4.7.1.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-4.6.5...lxml-4.7.1)

---
updated-dependencies:
- dependency-name: lxml
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-04 07:29:50 +00:00
vabene1111
02fcf70ab2 Merge pull request #1215 from TandoorRecipes/dependabot/pip/django-prometheus-2.2.0
Bump django-prometheus from 2.1.0 to 2.2.0
2022-01-04 08:29:33 +01:00
vabene1111
b661ee2a23 Merge pull request #1216 from TandoorRecipes/dependabot/pip/django-auth-ldap-4.0.0
Bump django-auth-ldap from 3.0.0 to 4.0.0
2022-01-04 08:29:29 +01:00
vabene1111
b71c115194 Merge pull request #1217 from TandoorRecipes/dependabot/pip/django-allauth-0.47.0
Bump django-allauth from 0.46.0 to 0.47.0
2022-01-04 08:29:23 +01:00
dependabot[bot]
fc0f92eecc Bump core-js from 3.19.3 to 3.20.2 in /vue
Bumps [core-js](https://github.com/zloirock/core-js) from 3.19.3 to 3.20.2.
- [Release notes](https://github.com/zloirock/core-js/releases)
- [Changelog](https://github.com/zloirock/core-js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/zloirock/core-js/compare/v3.19.3...v3.20.2)

---
updated-dependencies:
- dependency-name: core-js
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-04 07:02:59 +00:00
dependabot[bot]
555451f64e Bump django-prometheus from 2.1.0 to 2.2.0
Bumps [django-prometheus](https://github.com/korfuri/django-prometheus) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/korfuri/django-prometheus/releases)
- [Changelog](https://github.com/korfuri/django-prometheus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/korfuri/django-prometheus/compare/2.1.0...v2.2.0)

---
updated-dependencies:
- dependency-name: django-prometheus
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-04 07:00:08 +00:00
dependabot[bot]
557c8ce3b9 Bump django-auth-ldap from 3.0.0 to 4.0.0
Bumps [django-auth-ldap](https://github.com/django-auth-ldap/django-auth-ldap) from 3.0.0 to 4.0.0.
- [Release notes](https://github.com/django-auth-ldap/django-auth-ldap/releases)
- [Changelog](https://github.com/django-auth-ldap/django-auth-ldap/blob/master/CHANGES)
- [Commits](https://github.com/django-auth-ldap/django-auth-ldap/compare/3.0.0...4.0.0)

---
updated-dependencies:
- dependency-name: django-auth-ldap
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-04 07:00:08 +00:00
vabene1111
b19190e9e2 Merge pull request #1199 from TandoorRecipes/dependabot/npm_and_yarn/vue/vue-i18n-8.26.8
Bump vue-i18n from 8.26.7 to 8.26.8 in /vue
2022-01-04 07:59:39 +01:00
dependabot[bot]
c9a01a001e Bump django-allauth from 0.46.0 to 0.47.0
Bumps [django-allauth](https://github.com/pennersr/django-allauth) from 0.46.0 to 0.47.0.
- [Release notes](https://github.com/pennersr/django-allauth/releases)
- [Changelog](https://github.com/pennersr/django-allauth/blob/master/ChangeLog.rst)
- [Commits](https://github.com/pennersr/django-allauth/compare/0.46.0...0.47.0)

---
updated-dependencies:
- dependency-name: django-allauth
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-04 06:59:33 +00:00
vabene1111
0a085bfafa Merge pull request #1193 from TandoorRecipes/dependabot/pip/cryptography-36.0.1
Bump cryptography from 36.0.0 to 36.0.1
2022-01-04 07:59:30 +01:00
vabene1111
84cd4671a2 Merge pull request #1195 from TandoorRecipes/dependabot/pip/djangorestframework-3.13.1
Bump djangorestframework from 3.12.4 to 3.13.1
2022-01-04 07:59:25 +01:00
vabene1111
c05e44fdce Merge pull request #1196 from TandoorRecipes/dependabot/pip/pytest-django-4.5.2
Bump pytest-django from 4.5.1 to 4.5.2
2022-01-04 07:59:21 +01:00
vabene1111
6478bb3bb8 Merge pull request #1192 from TandoorRecipes/dependabot/pip/boto3-1.20.26
Bump boto3 from 1.20.19 to 1.20.26
2022-01-04 07:59:16 +01:00
vabene1111
e99c3af5d6 Merge pull request #1145 from TandoorRecipes/feature/shopping_list_v2
Feature/shopping list v2
2022-01-04 07:58:43 +01:00
vabene1111
4047febec9 Merge branch 'develop' into feature/shopping_list_v2 2022-01-04 07:58:36 +01:00
TiagoRascazzi
d1c8515b77 Delete example.pdf 2022-01-03 15:21:37 -05:00
Tiago Rascazzi
0aafd8d8b2 Added Saffron export format 2022-01-03 13:28:21 -05:00
Tiago Rascazzi
56ee5671ea restructured integration do_export 2022-01-03 12:46:34 -05:00
Tiago Rascazzi
ba032e9353 Added PDF export format 2022-01-03 00:58:02 -05:00
Tiago Rascazzi
1c30e643c3 Print format avoid breaking Ingredient and step 2022-01-02 22:28:16 -05:00
dependabot[bot]
a5638ea8a1 Bump vue-i18n from 8.26.7 to 8.26.8 in /vue
Bumps [vue-i18n](https://github.com/kazupon/vue-i18n) from 8.26.7 to 8.26.8.
- [Release notes](https://github.com/kazupon/vue-i18n/releases)
- [Changelog](https://github.com/kazupon/vue-i18n/blob/v8.x/CHANGELOG.md)
- [Commits](https://github.com/kazupon/vue-i18n/compare/v8.26.7...v8.26.8)

---
updated-dependencies:
- dependency-name: vue-i18n
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-01 00:06:18 +00:00
dependabot[bot]
5b462d81b4 Bump @vue/eslint-config-typescript from 9.1.0 to 10.0.0 in /vue
Bumps [@vue/eslint-config-typescript](https://github.com/vuejs/eslint-config-typescript) from 9.1.0 to 10.0.0.
- [Release notes](https://github.com/vuejs/eslint-config-typescript/releases)
- [Commits](https://github.com/vuejs/eslint-config-typescript/compare/v9.1.0...v10.0.0)

---
updated-dependencies:
- dependency-name: "@vue/eslint-config-typescript"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-01 00:05:56 +00:00
dependabot[bot]
e7acecb16b Bump pytest-django from 4.5.1 to 4.5.2
Bumps [pytest-django](https://github.com/pytest-dev/pytest-django) from 4.5.1 to 4.5.2.
- [Release notes](https://github.com/pytest-dev/pytest-django/releases)
- [Changelog](https://github.com/pytest-dev/pytest-django/blob/master/docs/changelog.rst)
- [Commits](https://github.com/pytest-dev/pytest-django/compare/v4.5.1...v4.5.2)

---
updated-dependencies:
- dependency-name: pytest-django
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-01 00:03:42 +00:00
dependabot[bot]
58a0d96fbd Bump djangorestframework from 3.12.4 to 3.13.1
Bumps [djangorestframework](https://github.com/encode/django-rest-framework) from 3.12.4 to 3.13.1.
- [Release notes](https://github.com/encode/django-rest-framework/releases)
- [Commits](https://github.com/encode/django-rest-framework/compare/3.12.4...3.13.1)

---
updated-dependencies:
- dependency-name: djangorestframework
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-01 00:03:40 +00:00
dependabot[bot]
30b9ea7e9f Bump cryptography from 36.0.0 to 36.0.1
Bumps [cryptography](https://github.com/pyca/cryptography) from 36.0.0 to 36.0.1.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/36.0.0...36.0.1)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-01 00:03:32 +00:00
dependabot[bot]
d26a1b5698 Bump boto3 from 1.20.19 to 1.20.26
Bumps [boto3](https://github.com/boto/boto3) from 1.20.19 to 1.20.26.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.20.19...1.20.26)

---
updated-dependencies:
- dependency-name: boto3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-01-01 00:03:24 +00:00
smilerz
795f3084d9 Merge branch 'feature/related_recipe_switcher' of https://github.com/TandoorRecipes/recipes into feature/related_recipe_switcher 2021-12-31 09:01:36 -06:00
smilerz
931eae4361 fix switcher to be TZ sensitive 2021-12-31 09:01:31 -06:00
smilerz
80fc50e09b remove console message 2021-12-30 16:52:08 -06:00
smilerz
045a0b7d4f persist servings changes 2021-12-30 15:33:47 -06:00
smilerz
957c659a62 Squashed commit of shoppinglist_v2 2021-12-30 15:33:34 -06:00
smilerz
b282c46c1a Fix after rebase 2021-12-30 13:58:34 -06:00
smilerz
582e145a9f Fix after rebase 2021-12-30 13:55:38 -06:00
smilerz
79b4bc387e change ingore_inherit to inherit_fields 2021-12-30 12:54:39 -06:00
vabene1111
af9a2a89ec Merge branch 'develop' 2021-12-30 18:18:23 +01:00
vabene1111
c50a89c651 disabled tree fix at startup for now 2021-12-30 18:08:29 +01:00
vabene1111
f21587605a fixed sub recipe rendering 2021-12-30 18:03:08 +01:00
vabene1111
2e69a00fce improved recipe edit input validation 2021-12-30 17:57:04 +01:00
vabene1111
bddaa77f71 fixed space not honourd in invite link 2021-12-30 17:37:10 +01:00
vabene1111
3743a08996 marked required env fields 2021-12-30 09:47:36 +01:00
smilerz
3fafd43e58 merge ignore shopping with onhand 2021-12-29 16:32:19 -06:00
smilerz
2787b64a96 Merge branch 'feature/shopping_list_v2' of https://github.com/TandoorRecipes/recipes into feature/shopping_list_v2 2021-12-29 09:37:38 -06:00
smilerz
52d1069353 fix reactivity of detailed items 2021-12-29 09:36:18 -06:00
vabene1111
c961909342 fixed import 2021-12-29 15:54:20 +01:00
vabene1111
ccd0966d92 Merge branch 'feature/shopping_list_v2' of https://github.com/vabene1111/recipes into feature/shopping_list_v2
# Conflicts:
#	cookbook/static/django_js_reverse/reverse.js
#	cookbook/tests/api/test_api_shopping_recipe.py
#	vue/src/apps/ShoppingListView/ShoppingListView.vue
2021-12-29 15:26:22 +01:00
smilerz
a4f2c994a0 fix responsive view of add-to-shopping form 2021-12-28 16:32:26 -06:00
smilerz
c43b8e91da Fix after rebase 2021-12-28 12:05:14 -06:00
smilerz
58d025f1a5 change default status of shopping in recipe view 2021-12-28 12:03:36 -06:00
smilerz
c20e036d90 add path to generic cards for food/keywords 2021-12-28 12:03:36 -06:00
smilerz
2d0a7330f3 reset new list item after create 2021-12-28 12:03:36 -06:00
smilerz
279faadf46 pytest create recipe with ingredient as header 2021-12-28 12:03:36 -06:00
smilerz
5b287ad484 fix responsive display of detail shopping list 2021-12-28 12:03:35 -06:00
smilerz
e257a8d29b fix responsive display of shopping list 2021-12-28 12:03:35 -06:00
smilerz
889fa7b8ea update console messages 2021-12-28 12:03:35 -06:00
smilerz
a3008a6091 WIP 2021-12-28 12:03:35 -06:00
smilerz
24bef756e8 fix filter_to_supermarket setting 2021-12-28 12:03:35 -06:00
smilerz
b4510a2cc1 fix categories in supermarket edit modal 2021-12-28 12:03:35 -06:00
smilerz
63fe174070 fix add to shopping from MealPlan Modal 2021-12-28 12:03:35 -06:00
smilerz
0f4bd9972e delete supermarkets and categories from shopping list view 2021-12-28 12:03:35 -06:00
smilerz
9794d544cc Squashed commit of the following:
commit 7837467c30
Merge: aaaae5b1b 84759383f
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Sat Dec 18 23:14:24 2021 +0100

    Merge pull request #1146 from auanasgheps/patch-1

    Add documentation about swag by linuxserver

commit 84759383fa
Author: Oliver Cervera <cervera93-19@yahoo.it>
Date:   Sat Dec 18 13:49:09 2021 +0100

    Add documentation about swag by linuxserver

    Documents behaviour in #959

commit aaaae5b1ba
Merge: 4a747f5cd ea62c10d9
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Thu Dec 16 18:10:48 2021 +0100

    Merge pull request #1143 from smilerz/fix_get_facet_api

    fix bug in get_facet_api

commit ea62c10d9a
Author: smilerz <smilerz@gmail.com>
Date:   Thu Dec 16 09:20:56 2021 -0600

    remove console message

commit 3516505dd1
Author: smilerz <smilerz@gmail.com>
Date:   Thu Dec 16 09:08:32 2021 -0600

    fix bug in get_facet_api
2021-12-28 12:03:35 -06:00
smilerz
e66897c1ea fix Shopping Modal to filter onhand from initial list 2021-12-28 12:03:35 -06:00
smilerz
2d94cb70ab fix shopping list api 2021-12-28 12:03:35 -06:00
smilerz
f5e4adba8b fix get_facets_API 2021-12-28 12:03:35 -06:00
smilerz
b0705da1fe filter fields available to inherit in space settings 2021-12-28 12:03:35 -06:00
smilerz
a20a877dc7 fix after rebase 2021-12-28 12:03:35 -06:00
smilerz
ed50a27669 fix rounding on new shopping list 2021-12-28 12:03:35 -06:00
smilerz
b3f4f2c895 Update settings.py 2021-12-28 12:03:35 -06:00
smilerz
682f4a4297 fix post_save signal for sqlite 2021-12-28 12:03:35 -06:00
smilerz
e33ca876a6 delete yarn lock 2021-12-28 12:03:34 -06:00
smilerz
453b1eb5b9 rebase and fixes 2021-12-28 12:03:34 -06:00
smilerz
ee4ab41c1c test shoppingFood API 2021-12-28 12:03:34 -06:00
smilerz
1364f75f21 test userpreference food_inherit defaults 2021-12-28 12:03:34 -06:00
smilerz
3047c09e55 test rest food inheritance 2021-12-28 12:03:34 -06:00
smilerz
5bdcbb1d17 pytest shopping user preferences 2021-12-28 12:03:34 -06:00
smilerz
35e81f6247 update 2021-12-28 12:03:34 -06:00
smilerz
a51eb7a2cb pytest edit shopping list recipes 2021-12-28 12:03:34 -06:00
smilerz
262387da3e pytest shopping list from recipe methods 2021-12-28 12:03:34 -06:00
smilerz
ab968f225b test recent shopping list 2021-12-28 12:03:34 -06:00
smilerz
0e6685882c test shopping list sharing 2021-12-28 12:03:34 -06:00
smilerz
8f0c5e21ad basic tests with new factories 2021-12-28 12:03:34 -06:00
smilerz
b5bf0a4584 fixed userpref serializer 2021-12-28 12:03:34 -06:00
smilerz
c7ad9c8d15 WIP 2021-12-28 12:03:34 -06:00
smilerz
729aa51901 fix package.json 2021-12-28 12:03:34 -06:00
smilerz
2763eed5b2 minor cleanup 2021-12-28 12:03:34 -06:00
smilerz
2af7b64d4f visual indicator meal plan in shopping 2021-12-28 12:03:34 -06:00
smilerz
24b0643765 copy shopping as markdown 2021-12-28 12:03:34 -06:00
smilerz
df54b10610 download as CSV 2021-12-28 12:03:33 -06:00
smilerz
7ad088d953 fix after rebase 2021-12-28 12:03:33 -06:00
smilerz
fdd86b0c2d download shopping list PDF 2021-12-28 12:03:33 -06:00
smilerz
8dcdf00dc7 refresh shopping list when item is delayed 2021-12-28 12:03:33 -06:00
smilerz
0693d31550 WIP 2021-12-28 12:03:33 -06:00
smilerz
cae3773d5a Fix after rebase 2021-12-28 12:03:33 -06:00
smilerz
f2222fd7d5 pre-merge 2021-12-28 12:03:33 -06:00
smilerz
b8dfc00106 undo move 2021-12-28 12:03:33 -06:00
smilerz
1d224d8658 yarn build 2021-12-28 12:03:33 -06:00
smilerz
2b41fbc9f8 Fix after rebase 2021-12-28 12:03:33 -06:00
smilerz
a24f09c419 WIP 2021-12-28 12:03:33 -06:00
smilerz
450de740b6 RecipeFactory and all related models 2021-12-28 12:03:33 -06:00
smilerz
b92c027919 food inherit tests 2021-12-28 12:03:33 -06:00
smilerz
6c0e979909 finish refactoring test_api_food to use factoryboy 2021-12-28 12:03:33 -06:00
smilerz
a035e02288 refactor Food tests to use factory_boy fixture factories 2021-12-28 12:03:33 -06:00
smilerz
6eec3d18fe more fixes after rebase 2021-12-28 12:03:33 -06:00
smilerz
94b2e9b01c minor updates 2021-12-28 12:03:33 -06:00
smilerz
de7d2e27d9 update migrations 2021-12-28 12:03:32 -06:00
smilerz
dcfe4de61f Fix after rebase 2021-12-28 12:03:32 -06:00
smilerz
f245aa8b4f add to shopping from card context menu 2021-12-28 12:03:32 -06:00
smilerz
a217db5822 add new unit/food from shopping list 2021-12-28 12:03:32 -06:00
smilerz
6e9d609fe0 edit supermarket categories 2021-12-28 12:03:32 -06:00
smilerz
ecac3f3c2d related recipes included when adding mealplan to shopping list 2021-12-28 12:03:32 -06:00
smilerz
6135a6f26d fix apis 2021-12-28 12:03:32 -06:00
smilerz
7a0b395107 alpha shopping list 2021-12-28 12:03:32 -06:00
smilerz
1f41fa04a3 autosync 2021-12-28 12:03:32 -06:00
smilerz
7c598720d0 WIP 2021-12-28 12:03:32 -06:00
smilerz
5c9f5e0e1a fade-enter-active 2021-12-28 12:03:32 -06:00
smilerz
f400c7cd7c shopping line item 2021-12-28 12:03:32 -06:00
smilerz
2a138a852f inheritance works with object moves 2021-12-28 12:03:32 -06:00
smilerz
fbe748db62 food inherit attributes 2021-12-28 12:03:32 -06:00
smilerz
4377505b14 Fix after rebase 2021-12-28 12:03:31 -06:00
smilerz
c5c76cadea getUserPreference available for all UserPreferences 2021-12-28 12:03:31 -06:00
smilerz
fbd17b48fe Fix after rebase 2021-12-28 12:03:31 -06:00
smilerz
6eea7ac99b model changes and GenericAutoSchema 2021-12-28 12:03:31 -06:00
smilerz
f5f9380344 model migrations 2021-12-28 12:03:31 -06:00
smilerz
e243e089cc WIP 2021-12-28 12:03:31 -06:00
smilerz
0b1d8bbd5f WIP 2021-12-28 12:03:31 -06:00
smilerz
10a33add75 Fix after rebase 2021-12-28 12:03:31 -06:00
vabene1111
f16e457d14 Merge pull request #1160 from TandoorRecipes/logout_redirect_patch
fix logout redirect
2021-12-26 13:50:06 +01:00
smilerz
64f2787943 fix logout redirect 2021-12-23 14:48:30 -06:00
vabene1111
450923c0a4 Merge branch 'develop' into beta 2021-12-23 15:55:42 +01:00
vabene1111
3ff15b6766 added copy me that importer 2021-12-23 15:54:48 +01:00
smilerz
d67c5fcf1b change default status of shopping in recipe view 2021-12-23 08:38:43 -06:00
vabene1111
b8e0a7cf69 Merge pull request #1157 from TandoorRecipes/brand_button_patch
fixes 1123
2021-12-23 15:00:33 +01:00
vabene1111
e2915dde55 Merge pull request #1156 from TandoorRecipes/1129_patch
fixes 1129
2021-12-23 14:59:45 +01:00
smilerz
05f2fdecb3 fixes 1123 2021-12-23 07:44:11 -06:00
smilerz
5d33d82d70 fixes 1129 2021-12-23 07:38:30 -06:00
smilerz
17efc388ca fix 1129 2021-12-23 07:37:26 -06:00
vabene1111
e3a3220f00 Merge pull request #1150 from auanasgheps/patch-1
punctuation fixes
2021-12-23 12:50:17 +01:00
vabene1111
f15f34887a Merge pull request #1149 from smilerz/search_pagination
Search pagination
2021-12-23 12:49:15 +01:00
smilerz
20984d3dd6 add path to generic cards for food/keywords 2021-12-22 16:18:45 -06:00
smilerz
67e4c88be7 implement related recipes on home page 2021-12-22 15:23:16 -06:00
smilerz
2d01a2af47 implemented quick switch 2021-12-22 14:43:00 -06:00
smilerz
5272cf0a5c reset new list item after create 2021-12-22 10:19:15 -06:00
smilerz
6b848e27a8 pytest create recipe with ingredient as header 2021-12-22 08:31:32 -06:00
smilerz
efec416604 fix responsive display of detail shopping list 2021-12-21 20:41:49 -06:00
smilerz
e5a4f6b5bf fix responsive display of shopping list 2021-12-21 18:38:16 -06:00
smilerz
a55f975068 update console messages 2021-12-21 14:05:46 -06:00
smilerz
421ade7ad0 WIP 2021-12-21 13:53:40 -06:00
smilerz
c785b590a1 fix filter_to_supermarket setting 2021-12-21 13:53:16 -06:00
smilerz
42132568c4 fix categories in supermarket edit modal 2021-12-21 13:40:50 -06:00
smilerz
dfe414985b fix add to shopping from MealPlan Modal 2021-12-21 11:35:35 -06:00
smilerz
ee52092e24 delete supermarkets and categories from shopping list view 2021-12-21 11:05:24 -06:00
smilerz
75b45ba8eb Squashed commit of the following:
commit 7837467c30
Merge: aaaae5b1b 84759383f
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Sat Dec 18 23:14:24 2021 +0100

    Merge pull request #1146 from auanasgheps/patch-1

    Add documentation about swag by linuxserver

commit 84759383fa
Author: Oliver Cervera <cervera93-19@yahoo.it>
Date:   Sat Dec 18 13:49:09 2021 +0100

    Add documentation about swag by linuxserver

    Documents behaviour in #959

commit aaaae5b1ba
Merge: 4a747f5cd ea62c10d9
Author: vabene1111 <vabene1111@users.noreply.github.com>
Date:   Thu Dec 16 18:10:48 2021 +0100

    Merge pull request #1143 from smilerz/fix_get_facet_api

    fix bug in get_facet_api

commit ea62c10d9a
Author: smilerz <smilerz@gmail.com>
Date:   Thu Dec 16 09:20:56 2021 -0600

    remove console message

commit 3516505dd1
Author: smilerz <smilerz@gmail.com>
Date:   Thu Dec 16 09:08:32 2021 -0600

    fix bug in get_facet_api
2021-12-20 15:26:31 -06:00
smilerz
bf9e59d64c fix Shopping Modal to filter onhand from initial list 2021-12-20 14:59:56 -06:00
smilerz
132c48a490 fix shopping list api 2021-12-20 12:27:25 -06:00
Oliver Cervera
e470a70321 punctuation fixes
First commit was done in rush. Fixed a couple of punctuations.
2021-12-20 11:09:05 +01:00
smilerz
1a99a2d6f1 remove console.log 2021-12-19 11:31:16 -06:00
smilerz
cf3ddfc610 fix inconsistent pagination 2021-12-19 11:08:30 -06:00
smilerz
ecbd3edb97 WIP 2021-12-19 10:21:46 -06:00
vabene1111
7837467c30 Merge pull request #1146 from auanasgheps/patch-1
Add documentation about swag by linuxserver
2021-12-18 23:14:24 +01:00
Oliver Cervera
84759383fa Add documentation about swag by linuxserver
Documents behaviour in #959
2021-12-18 13:49:09 +01:00
vabene1111
aaaae5b1ba Merge pull request #1143 from smilerz/fix_get_facet_api
fix bug in get_facet_api
2021-12-16 18:10:48 +01:00
smilerz
ea62c10d9a remove console message 2021-12-16 09:20:56 -06:00
smilerz
3516505dd1 fix bug in get_facet_api 2021-12-16 09:08:32 -06:00
smilerz
d4553c05c2 fix get_facets_API 2021-12-16 08:13:10 -06:00
smilerz
edc670e87d filter fields available to inherit in space settings 2021-12-15 16:59:33 -06:00
smilerz
a313039b65 fix after rebase 2021-12-15 15:48:55 -06:00
smilerz
963dad39e8 fix rounding on new shopping list 2021-12-15 14:42:12 -06:00
smilerz
8f19ab6e5e Update settings.py 2021-12-15 13:29:08 -06:00
smilerz
0e20f679b3 fix post_save signal for sqlite 2021-12-15 13:23:22 -06:00
smilerz
46b83c8205 delete yarn lock 2021-12-15 12:37:40 -06:00
smilerz
8b28a47297 rebase and fixes 2021-12-15 12:37:40 -06:00
smilerz
e7e3a3083d test shoppingFood API 2021-12-15 12:37:40 -06:00
smilerz
ea7d34c8d2 test userpreference food_inherit defaults 2021-12-15 12:37:40 -06:00
smilerz
7e081d4389 test rest food inheritance 2021-12-15 12:37:40 -06:00
smilerz
2edb455bd6 pytest shopping user preferences 2021-12-15 12:37:40 -06:00
smilerz
c32a96fd6f update 2021-12-15 12:37:40 -06:00
smilerz
6d1476b2d8 pytest edit shopping list recipes 2021-12-15 12:37:40 -06:00
smilerz
5d79e4d3be pytest shopping list from recipe methods 2021-12-15 12:37:40 -06:00
smilerz
0866d21fa5 test recent shopping list 2021-12-15 12:37:40 -06:00
smilerz
6448c062f9 test shopping list sharing 2021-12-15 12:37:40 -06:00
smilerz
b146e75daa basic tests with new factories 2021-12-15 12:37:40 -06:00
smilerz
68927d141e fixed userpref serializer 2021-12-15 12:37:40 -06:00
smilerz
1e36e6cd5b WIP 2021-12-15 12:37:40 -06:00
smilerz
4877d69947 fix package.json 2021-12-15 12:37:23 -06:00
smilerz
f2f187a844 minor cleanup 2021-12-15 12:37:04 -06:00
smilerz
c2e84c1fa4 visual indicator meal plan in shopping 2021-12-15 12:37:04 -06:00
smilerz
ca93920f04 copy shopping as markdown 2021-12-15 12:37:04 -06:00
smilerz
903a721a1d download as CSV 2021-12-15 12:37:04 -06:00
smilerz
44e513ff2d fix after rebase 2021-12-15 12:37:03 -06:00
smilerz
2d7d160d1b download shopping list PDF 2021-12-15 12:37:03 -06:00
smilerz
54ca8b2bd0 refresh shopping list when item is delayed 2021-12-15 12:37:03 -06:00
smilerz
a972a757b2 WIP 2021-12-15 12:37:03 -06:00
smilerz
7c0d1236c2 Fix after rebase 2021-12-15 12:37:03 -06:00
smilerz
09b0dcb136 pre-merge 2021-12-15 12:37:03 -06:00
smilerz
5b4867d172 undo move 2021-12-15 12:37:03 -06:00
smilerz
d3d4c210c1 yarn build 2021-12-15 12:37:03 -06:00
smilerz
6cffee57fe Fix after rebase 2021-12-15 12:36:33 -06:00
smilerz
286595e03d WIP 2021-12-15 12:36:33 -06:00
smilerz
0d1c55d2e4 RecipeFactory and all related models 2021-12-15 12:36:33 -06:00
smilerz
fd8ca2e9ac food inherit tests 2021-12-15 12:36:33 -06:00
smilerz
9ef4c88d02 finish refactoring test_api_food to use factoryboy 2021-12-15 12:36:33 -06:00
smilerz
08d3c40200 refactor Food tests to use factory_boy fixture factories 2021-12-15 12:36:33 -06:00
smilerz
e229a70360 more fixes after rebase 2021-12-15 12:36:33 -06:00
smilerz
06b7ba809b minor updates 2021-12-15 12:36:06 -06:00
smilerz
099a5420d6 update migrations 2021-12-15 12:36:06 -06:00
smilerz
5a9543b4d8 Fix after rebase 2021-12-15 12:36:06 -06:00
smilerz
60d7e63da8 add to shopping from card context menu 2021-12-15 12:36:06 -06:00
smilerz
867e2d4fbf add new unit/food from shopping list 2021-12-15 12:36:06 -06:00
smilerz
757fa5e49c edit supermarket categories 2021-12-15 12:36:06 -06:00
smilerz
8b682c33f3 related recipes included when adding mealplan to shopping list 2021-12-15 12:35:48 -06:00
smilerz
27f358dd03 fix apis 2021-12-15 12:35:48 -06:00
smilerz
7c6a7ef6a4 alpha shopping list 2021-12-15 12:35:48 -06:00
smilerz
4c506750de autosync 2021-12-15 12:35:48 -06:00
smilerz
b84d77be15 WIP 2021-12-15 12:35:48 -06:00
smilerz
247dd30b20 fade-enter-active 2021-12-15 12:35:48 -06:00
smilerz
5e4e203dfb shopping line item 2021-12-15 12:35:48 -06:00
smilerz
79b6d4817e inheritance works with object moves 2021-12-15 12:35:48 -06:00
smilerz
6075ce50e7 food inherit attributes 2021-12-15 12:35:48 -06:00
smilerz
2ca7722afb Fix after rebase 2021-12-15 12:35:48 -06:00
smilerz
7a9e5b1e3f getUserPreference available for all UserPreferences 2021-12-15 12:35:48 -06:00
smilerz
7f87a9efed Fix after rebase 2021-12-15 12:35:48 -06:00
smilerz
3d674cfca6 model changes and GenericAutoSchema 2021-12-15 12:35:48 -06:00
smilerz
1642224205 model migrations 2021-12-15 12:35:48 -06:00
smilerz
3d359f844f WIP 2021-12-15 12:35:48 -06:00
smilerz
94c69271d3 WIP 2021-12-15 12:35:48 -06:00
smilerz
9827c3ffd5 Fix after rebase 2021-12-15 12:35:48 -06:00
vabene1111
4a747f5cd4 Revert "Revert "fixed vue build""
This reverts commit edde015b71.
2021-12-15 18:02:37 +01:00
vabene1111
0623a8ebc7 clear package cache in build 2021-12-15 17:59:22 +01:00
vabene1111
5941022b5e fixed markdown table extension 2021-12-15 17:46:01 +01:00
vabene1111
2559905a78 fixed empty fields breaking recipe update 2021-12-15 17:45:53 +01:00
vabene1111
edde015b71 Revert "fixed vue build"
This reverts commit 7e07508a31.
2021-12-15 17:26:06 +01:00
vabene1111
9b7b8beea4 addeed yarn lock 2021-12-15 17:22:24 +01:00
vabene1111
2eae8e5eeb Merge pull request #1141 from TandoorRecipes/dependabot/pip/django-3.2.10
Bump django from 3.2.9 to 3.2.10
2021-12-14 16:35:09 +01:00
dependabot[bot]
6d8bc396f8 Bump django from 3.2.9 to 3.2.10
Bumps [django](https://github.com/django/django) from 3.2.9 to 3.2.10.
- [Release notes](https://github.com/django/django/releases)
- [Commits](https://github.com/django/django/compare/3.2.9...3.2.10)

---
updated-dependencies:
- dependency-name: django
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-14 15:33:48 +00:00
vabene1111
4118c8d9e3 Merge pull request #1138 from TandoorRecipes/dependabot/pip/lxml-4.6.5
Bump lxml from 4.6.4 to 4.6.5
2021-12-14 16:27:23 +01:00
dependabot[bot]
78c2eacbd8 Bump lxml from 4.6.4 to 4.6.5
Bumps [lxml](https://github.com/lxml/lxml) from 4.6.4 to 4.6.5.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-4.6.4...lxml-4.6.5)

---
updated-dependencies:
- dependency-name: lxml
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-13 20:26:37 +00:00
vabene1111
01510f39e5 Merge pull request #1119 from TandoorRecipes/user_prefs_fix
fix package.json
2021-12-08 14:59:32 +01:00
smilerz
09cc5aafe9 fix package.json 2021-12-07 15:38:03 -06:00
vabene1111
e8b2f57812 Merge pull request #1111 from TandoorRecipes/dependabot/pip/simplejson-3.17.6
Bump simplejson from 3.17.5 to 3.17.6
2021-12-03 17:40:07 +01:00
vabene1111
664e83143f Merge pull request #1112 from TandoorRecipes/dependabot/pip/pytest-django-4.5.1
Bump pytest-django from 4.4.0 to 4.5.1
2021-12-03 17:39:56 +01:00
dependabot[bot]
f1309cc624 Bump simplejson from 3.17.5 to 3.17.6
Bumps [simplejson](https://github.com/simplejson/simplejson) from 3.17.5 to 3.17.6.
- [Release notes](https://github.com/simplejson/simplejson/releases)
- [Changelog](https://github.com/simplejson/simplejson/blob/master/CHANGES.txt)
- [Commits](https://github.com/simplejson/simplejson/compare/v3.17.5...v3.17.6)

---
updated-dependencies:
- dependency-name: simplejson
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-03 16:39:51 +00:00
vabene1111
6fb7f6bd1f Merge pull request #1109 from TandoorRecipes/dependabot/pip/boto3-1.20.19
Bump boto3 from 1.19.7 to 1.20.19
2021-12-03 17:39:44 +01:00
dependabot[bot]
158bb1bf03 Bump pytest-django from 4.4.0 to 4.5.1
Bumps [pytest-django](https://github.com/pytest-dev/pytest-django) from 4.4.0 to 4.5.1.
- [Release notes](https://github.com/pytest-dev/pytest-django/releases)
- [Changelog](https://github.com/pytest-dev/pytest-django/blob/master/docs/changelog.rst)
- [Commits](https://github.com/pytest-dev/pytest-django/compare/v4.4.0...v4.5.1)

---
updated-dependencies:
- dependency-name: pytest-django
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-03 16:39:32 +00:00
vabene1111
086e802873 Merge pull request #1106 from TandoorRecipes/dependabot/pip/python-dotenv-0.19.2
Bump python-dotenv from 0.19.1 to 0.19.2
2021-12-03 17:39:25 +01:00
dependabot[bot]
c94c8d3559 Bump python-dotenv from 0.19.1 to 0.19.2
Bumps [python-dotenv](https://github.com/theskumar/python-dotenv) from 0.19.1 to 0.19.2.
- [Release notes](https://github.com/theskumar/python-dotenv/releases)
- [Changelog](https://github.com/theskumar/python-dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/theskumar/python-dotenv/compare/v0.19.1...v0.19.2)

---
updated-dependencies:
- dependency-name: python-dotenv
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-03 16:39:15 +00:00
vabene1111
f99010aa1d Merge pull request #1107 from TandoorRecipes/dependabot/pip/django-allauth-0.46.0
Bump django-allauth from 0.45.0 to 0.46.0
2021-12-03 17:39:13 +01:00
vabene1111
32e00999f3 Merge pull request #1100 from TandoorRecipes/dependabot/pip/lxml-4.6.4
Bump lxml from 4.6.3 to 4.6.4
2021-12-03 17:39:03 +01:00
vabene1111
e3196a79a8 Merge pull request #1102 from TandoorRecipes/dependabot/npm_and_yarn/vue/typescript-4.5.2
Bump typescript from 4.4.4 to 4.5.2 in /vue
2021-12-03 17:38:53 +01:00
dependabot[bot]
e926b34bec Bump boto3 from 1.19.7 to 1.20.19
Bumps [boto3](https://github.com/boto/boto3) from 1.19.7 to 1.20.19.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.19.7...1.20.19)

---
updated-dependencies:
- dependency-name: boto3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-03 16:38:47 +00:00
vabene1111
a460123184 Merge pull request #1110 from TandoorRecipes/dependabot/pip/psycopg2-binary-2.9.2
Bump psycopg2-binary from 2.9.1 to 2.9.2
2021-12-03 17:38:37 +01:00
vabene1111
c89c88b981 Merge pull request #1101 from TandoorRecipes/dependabot/npm_and_yarn/vue/eslint-8.3.0
Bump eslint from 7.32.0 to 8.3.0 in /vue
2021-12-03 17:38:27 +01:00
dependabot[bot]
cf6ea04f30 Bump typescript from 4.4.4 to 4.5.2 in /vue
Bumps [typescript](https://github.com/Microsoft/TypeScript) from 4.4.4 to 4.5.2.
- [Release notes](https://github.com/Microsoft/TypeScript/releases)
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.4.4...v4.5.2)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-03 16:38:10 +00:00
dependabot[bot]
15c4609db3 Bump psycopg2-binary from 2.9.1 to 2.9.2
Bumps [psycopg2-binary](https://github.com/psycopg/psycopg2) from 2.9.1 to 2.9.2.
- [Release notes](https://github.com/psycopg/psycopg2/releases)
- [Changelog](https://github.com/psycopg/psycopg2/blob/master/NEWS)
- [Commits](https://github.com/psycopg/psycopg2/commits)

---
updated-dependencies:
- dependency-name: psycopg2-binary
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-03 16:38:03 +00:00
vabene1111
053804f8cb Merge pull request #1108 from TandoorRecipes/dependabot/pip/cryptography-36.0.0
Bump cryptography from 35.0.0 to 36.0.0
2021-12-03 17:37:58 +01:00
dependabot[bot]
da748995e7 Bump eslint from 7.32.0 to 8.3.0 in /vue
Bumps [eslint](https://github.com/eslint/eslint) from 7.32.0 to 8.3.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v7.32.0...v8.3.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-03 16:37:54 +00:00
vabene1111
1d80ba3a3b Merge pull request #1103 from TandoorRecipes/dependabot/npm_and_yarn/vue/axios-0.24.0
Bump axios from 0.21.4 to 0.24.0 in /vue
2021-12-03 17:37:48 +01:00
vabene1111
29fe6c7363 Merge pull request #1099 from TandoorRecipes/dependabot/npm_and_yarn/vue/vue-simple-calendar-6.0.3
Bump vue-simple-calendar from 5.0.1 to 6.0.3 in /vue
2021-12-03 17:37:38 +01:00
dependabot[bot]
42d4a32ffc Bump lxml from 4.6.3 to 4.6.4
Bumps [lxml](https://github.com/lxml/lxml) from 4.6.3 to 4.6.4.
- [Release notes](https://github.com/lxml/lxml/releases)
- [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt)
- [Commits](https://github.com/lxml/lxml/compare/lxml-4.6.3...lxml-4.6.4)

---
updated-dependencies:
- dependency-name: lxml
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-03 16:37:13 +00:00
dependabot[bot]
e8ae844fb0 Bump django-allauth from 0.45.0 to 0.46.0
Bumps [django-allauth](https://github.com/pennersr/django-allauth) from 0.45.0 to 0.46.0.
- [Release notes](https://github.com/pennersr/django-allauth/releases)
- [Changelog](https://github.com/pennersr/django-allauth/blob/master/ChangeLog.rst)
- [Commits](https://github.com/pennersr/django-allauth/compare/0.45.0...0.46.0)

---
updated-dependencies:
- dependency-name: django-allauth
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-03 16:37:12 +00:00
vabene1111
c93f68804a Merge pull request #1098 from TandoorRecipes/dependabot/pip/markdown-3.3.6
Bump markdown from 3.3.4 to 3.3.6
2021-12-03 17:36:45 +01:00
dependabot[bot]
b4ea236241 Bump cryptography from 35.0.0 to 36.0.0
Bumps [cryptography](https://github.com/pyca/cryptography) from 35.0.0 to 36.0.0.
- [Release notes](https://github.com/pyca/cryptography/releases)
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/35.0.0...36.0.0)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-03 16:36:38 +00:00
vabene1111
2bef5c3b51 Merge pull request #1096 from TandoorRecipes/dependabot/npm_and_yarn/vue/vue/eslint-config-typescript-9.1.0
Bump @vue/eslint-config-typescript from 7.0.0 to 9.1.0 in /vue
2021-12-03 17:36:36 +01:00
vabene1111
52f2086616 Merge pull request #1097 from TandoorRecipes/dependabot/pip/boto3-1.20.16
Bump boto3 from 1.19.7 to 1.20.16
2021-12-03 17:36:27 +01:00
vabene1111
03e1474113 Merge pull request #1095 from TandoorRecipes/dependabot/pip/jinja2-3.0.3
Bump jinja2 from 3.0.2 to 3.0.3
2021-12-03 17:36:19 +01:00
vabene1111
9829ab68a6 Merge pull request #1094 from TandoorRecipes/dependabot/pip/recipe-scrapers-13.7.0
Bump recipe-scrapers from 13.5.0 to 13.7.0
2021-12-03 17:36:07 +01:00
vabene1111
7e07508a31 fixed vue build 2021-12-03 11:47:04 +01:00
vabene1111
94b0438516 Merge branch 'develop' of https://github.com/vabene1111/recipes into develop 2021-12-03 11:41:22 +01:00
vabene1111
b97c90e22f fixed user pref serializer not having access to context 2021-12-03 11:41:00 +01:00
Kaibu
f78264620f Merge pull request #1104 from Nailik/patch-1
Update synology.me
2021-12-02 23:23:23 +01:00
Nailik
571a618818 Update synology.me
Added information to fix problems where container could not reach each other because firewall blocked it.
Added information how to setup ssl via reverse proxy.
2021-12-01 12:39:13 +01:00
dependabot[bot]
6c97594591 Bump axios from 0.21.4 to 0.24.0 in /vue
Bumps [axios](https://github.com/axios/axios) from 0.21.4 to 0.24.0.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/master/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v0.21.4...v0.24.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-01 00:08:38 +00:00
dependabot[bot]
5d353a0839 Bump vue-simple-calendar from 5.0.1 to 6.0.3 in /vue
Bumps [vue-simple-calendar](https://github.com/richardtallent/vue-simple-calendar) from 5.0.1 to 6.0.3.
- [Release notes](https://github.com/richardtallent/vue-simple-calendar/releases)
- [Changelog](https://github.com/richardtallent/vue-simple-calendar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/richardtallent/vue-simple-calendar/commits/v6.0.3)

---
updated-dependencies:
- dependency-name: vue-simple-calendar
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-01 00:07:33 +00:00
dependabot[bot]
0be1f6a170 Bump markdown from 3.3.4 to 3.3.6
Bumps [markdown](https://github.com/Python-Markdown/markdown) from 3.3.4 to 3.3.6.
- [Release notes](https://github.com/Python-Markdown/markdown/releases)
- [Commits](https://github.com/Python-Markdown/markdown/compare/3.3.4...3.3.6)

---
updated-dependencies:
- dependency-name: markdown
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-01 00:07:29 +00:00
dependabot[bot]
5cd042fa7c Bump boto3 from 1.19.7 to 1.20.16
Bumps [boto3](https://github.com/boto/boto3) from 1.19.7 to 1.20.16.
- [Release notes](https://github.com/boto/boto3/releases)
- [Changelog](https://github.com/boto/boto3/blob/develop/CHANGELOG.rst)
- [Commits](https://github.com/boto/boto3/compare/1.19.7...1.20.16)

---
updated-dependencies:
- dependency-name: boto3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-01 00:07:25 +00:00
dependabot[bot]
e02d2530aa Bump @vue/eslint-config-typescript from 7.0.0 to 9.1.0 in /vue
Bumps [@vue/eslint-config-typescript](https://github.com/vuejs/eslint-config-typescript) from 7.0.0 to 9.1.0.
- [Release notes](https://github.com/vuejs/eslint-config-typescript/releases)
- [Commits](https://github.com/vuejs/eslint-config-typescript/compare/v7.0.0...v9.1.0)

---
updated-dependencies:
- dependency-name: "@vue/eslint-config-typescript"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-01 00:07:24 +00:00
dependabot[bot]
b35f5047ab Bump jinja2 from 3.0.2 to 3.0.3
Bumps [jinja2](https://github.com/pallets/jinja) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/3.0.2...3.0.3)

---
updated-dependencies:
- dependency-name: jinja2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-01 00:07:19 +00:00
dependabot[bot]
f10bec8ab4 Bump recipe-scrapers from 13.5.0 to 13.7.0
Bumps [recipe-scrapers](https://github.com/hhursev/recipe-scrapers) from 13.5.0 to 13.7.0.
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/13.5.0...13.7.0)

---
updated-dependencies:
- dependency-name: recipe-scrapers
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-12-01 00:07:11 +00:00
vabene1111
3bc1daa72e fixed import 2021-11-30 18:48:07 +01:00
vabene1111
5d6574b8cc Merge pull request #1068 from rose-a/fix-recipe-step-template
Render separate ingredients flex row for each step
2021-11-30 17:23:47 +01:00
vabene1111
adc65baf9c Merge pull request #1086 from smilerz/generic_modal_v2
generic modal refactored
2021-11-30 17:23:33 +01:00
vabene1111
4d2e7eadb6 Merge branch 'develop' into generic_modal_v2 2021-11-30 17:23:27 +01:00
vabene1111
7c985cec23 Merge pull request #1088 from smilerz/search_troubleshooting
add search debug
2021-11-30 17:21:40 +01:00
vabene1111
2cd33ee40a fixed several tests 2021-11-30 17:20:36 +01:00
vabene1111
f61146123e fixed ci python install 2021-11-30 16:26:11 +01:00
vabene1111
4806bd63b6 updated ci to run under python 3.10 2021-11-30 16:23:04 +01:00
vabene1111
41242c8d09 updated microdata dependency 2021-11-30 16:16:40 +01:00
vabene1111
57a967b91d fixed view log user filter 2021-11-30 16:07:31 +01:00
vabene1111
fb931f4715 Merge pull request #1092 from TandoorRecipes/dependabot/pip/python-ldap-3.4.0
Bump python-ldap from 3.3.1 to 3.4.0
2021-11-30 09:05:37 +01:00
dependabot[bot]
e86b476b3a Bump python-ldap from 3.3.1 to 3.4.0
Bumps [python-ldap](https://github.com/python-ldap/python-ldap) from 3.3.1 to 3.4.0.
- [Release notes](https://github.com/python-ldap/python-ldap/releases)
- [Commits](https://github.com/python-ldap/python-ldap/compare/python-ldap-3.3.1...python-ldap-3.4.0)

---
updated-dependencies:
- dependency-name: python-ldap
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-29 18:00:46 +00:00
vabene1111
7f22e0a275 fixed duplicate results on cook book view api 2021-11-27 16:03:08 +01:00
Kaibu
1907223a8a reduced api calls 2021-11-25 12:51:55 +01:00
Kaibu
9b5fe8f4e7 prevent page jump due to href=# 2021-11-25 01:35:12 +01:00
Kaibu
d76fdd090a meal plan hotkeys and sharing 2021-11-25 01:28:07 +01:00
smilerz
55a0304700 add search debug 2021-11-24 12:10:15 -06:00
smilerz
5b6dd62f8e generic modal refactored 2021-11-23 19:18:10 -06:00
vabene1111
19f5684d26 fixed linebreak in release workflow 2021-11-23 21:38:52 +01:00
vabene1111
d6ad1354db Merge branch 'master' into develop 2021-11-23 18:18:10 +01:00
vabene1111
6faabe3759 compiled messages 2021-11-23 18:18:07 +01:00
vabene1111
69acca7de1 Merge branch 'develop' 2021-11-23 18:17:35 +01:00
vabene1111
9d8c08341f fixed doc links 2021-11-23 18:09:04 +01:00
vabene1111
d488559e42 added setting to disable tree fix 2021-11-23 18:02:44 +01:00
vabene1111
85f7740e9b Merge pull request #1081 from RickeyShideler/patch-2
EN Text: Various grammar corrections
2021-11-23 17:04:12 +01:00
vabene1111
72e831afcf Merge pull request #1082 from TomHutter/k8s-install
K8s install
2021-11-23 17:03:01 +01:00
Tom Hutter
cb59f046c0 added comments to 15-secrets.yaml 2021-11-21 20:24:07 +01:00
Tom Hutter
25d505161f Changed k8s installation files for a bit more sophisticated setup. 2021-11-21 20:14:02 +01:00
RickeyShideler
62aa62b90f EN Text: Various grammar corrections 2021-11-21 12:06:54 -06:00
vabene1111
3fe5340592 updated middleware 2021-11-18 16:43:44 +01:00
vabene1111
9233cb9cf9 fixed token auth request space variable 2021-11-18 13:08:29 +01:00
Luka
fd9f6f6dca Translated using Weblate (Slovenian)
Currently translated at 5.5% (28 of 509 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/sl/
2021-11-16 06:06:32 +00:00
vabene1111
7537c1a908 Merge branch 'develop' into beta 2021-11-15 08:41:15 +01:00
vabene1111
ecd4ce603c Merge branch 'develop' of https://github.com/vabene1111/recipes into develop 2021-11-14 15:33:44 +01:00
vabene1111
695cab29a1 fixed book sharing and added step page 2021-11-14 15:33:25 +01:00
Luka
7b6ca94d49 Translated using Weblate (Slovenian)
Currently translated at 11.5% (24 of 208 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/sl/
2021-11-14 14:06:36 +00:00
Job Putters
35e04f94c6 Translated using Weblate (Dutch)
Currently translated at 100.0% (509 of 509 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/nl/
2021-11-14 14:06:36 +00:00
vabene1111
7c4cd02dfa fixed startup failing if fix tree fails 2021-11-14 10:33:33 +01:00
Alexander Rose
4626af3505 render separate flex row for step ingredients 2021-11-13 14:12:10 +01:00
vabene1111
5ae440d5c9 fixed image on url importer 2021-11-13 12:30:23 +01:00
vabene1111
e88010310c Merge pull request #1061 from tuxuser/docs/inline_docker_yaml_proper
Docs: Inline docker yaml files (revises #1058)
2021-11-13 10:55:19 +01:00
tuxuser
b6eba9c5e7 Docs: Fix inline include of yaml files 2021-11-13 10:36:14 +01:00
tuxuser
9d827ac174 Docs: Inline docker-compose.yaml files in the documentation 2021-11-13 10:35:55 +01:00
vabene1111
27679ae8a5 Merge pull request #1060 from TandoorRecipes/revert-1058-docs/inline_docker_yaml
Revert "Docs: Inline docker-compose.yaml files in the documentation"
2021-11-13 09:19:45 +01:00
vabene1111
6cb9a7068e Revert "Docs: Inline docker-compose.yaml files in the documentation" 2021-11-13 09:19:34 +01:00
vabene1111
f41c2ee7bb Merge pull request #1058 from tuxuser/docs/inline_docker_yaml
Docs: Inline docker-compose.yaml files in the documentation
2021-11-13 09:13:56 +01:00
vabene1111
af581bb27c Added translation using Weblate (Slovenian) 2021-11-13 08:08:25 +00:00
vabene1111
885c8982c1 Added translation using Weblate (Slovenian) 2021-11-13 08:07:56 +00:00
Oliver Cervera
64a9f67802 Translated using Weblate (Italian)
Currently translated at 100.0% (208 of 208 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/it/
2021-11-12 20:06:33 +00:00
Henrique Silva
df45e1d523 Translated using Weblate (Portuguese)
Currently translated at 31.4% (160 of 509 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/pt/
2021-11-12 20:06:33 +00:00
Oliver Cervera
03d7aa37da Translated using Weblate (Italian)
Currently translated at 95.6% (487 of 509 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/it/
2021-11-12 20:06:33 +00:00
A. L
dd3d28ec75 Translated using Weblate (German)
Currently translated at 100.0% (509 of 509 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/
2021-11-12 20:06:29 +00:00
tuxuser
ea377c2f3b Docs: Inline docker-compose.yaml files in the documentation 2021-11-12 14:41:33 +01:00
Flavius Stan
6f0bf886f6 Translated using Weblate (Romanian)
Currently translated at 8.1% (17 of 208 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/ro/
2021-11-11 16:06:30 +00:00
SMunos
16fbd9fe48 Translated using Weblate (French)
Currently translated at 93.2% (194 of 208 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fr/
2021-11-11 16:06:30 +00:00
vabene1111
79cdb56f9a added create supersuser to faq 2021-11-10 14:25:51 +01:00
vabene1111
1e6ba924ab fixed plan to eat and mealmaster imports 2021-11-10 08:45:13 +01:00
vabene1111
9ae076e426 fixed png scaling algortihm 2021-11-09 17:59:31 +01:00
vabene1111
f346022d8b improved image compression and added it to import 2021-11-09 17:38:32 +01:00
vabene1111
c9cd5325c4 improved nextcloud importer 2021-11-09 16:38:50 +01:00
vabene1111
ba6c80e04a Added translation using Weblate (Romanian) 2021-11-09 14:27:40 +00:00
vabene1111
be3f860ba1 Added translation using Weblate (Romanian) 2021-11-09 14:27:23 +00:00
Oliver Cervera
1ac4020b3d Translated using Weblate (Italian)
Currently translated at 96.6% (201 of 208 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/it/
2021-11-09 12:06:30 +00:00
Jesse
5da535b8ac Translated using Weblate (Dutch)
Currently translated at 100.0% (208 of 208 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/nl/
2021-11-09 12:06:29 +00:00
Maximilian J
b8ed99a59a Translated using Weblate (German)
Currently translated at 100.0% (208 of 208 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2021-11-09 12:06:29 +00:00
Jesse
c199536fca Translated using Weblate (Dutch)
Currently translated at 100.0% (509 of 509 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/nl/
2021-11-09 12:06:29 +00:00
Oliver Cervera
d60a9f0379 Translated using Weblate (Italian)
Currently translated at 95.8% (488 of 509 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/it/
2021-11-09 12:06:29 +00:00
vabene1111
c5da006f4a Merge branch 'master' into develop 2021-11-08 18:44:29 +01:00
vabene1111
b72919dd42 compiled translations 2021-11-08 18:44:24 +01:00
vabene1111
020b102c5f Merge branch 'develop' 2021-11-08 18:44:03 +01:00
vabene1111
c02ea744ac testing with release bot again 2021-11-08 18:43:48 +01:00
vabene1111
df76791e1e fixed setp headers without ingredients loading in central list 2021-11-08 17:15:37 +01:00
vabene1111
086f8b4d62 made messages 2021-11-08 17:10:03 +01:00
vabene1111
409594a73a fixed rezkonv importer 2021-11-08 17:09:57 +01:00
vabene1111
5af687364f Merge pull request #1016 from StephenBrown2/patch-1
Add time unit hint to recipe edit view
2021-11-08 16:32:44 +01:00
vabene1111
1431be5cad Merge pull request #1020 from PastuDan/develop
Add KubeSail install method
2021-11-08 16:31:29 +01:00
vabene1111
769b53a309 Merge pull request #1038 from rose-a/fix-templating-docs
Fix Templating documentation
2021-11-08 16:28:08 +01:00
vabene1111
fd8752b298 fixed nextcloud image import 2021-11-07 22:19:46 +01:00
Kaibu
301f1cede4 updated translations 2021-11-07 18:17:49 +01:00
Kaibu
3f7aed995a Translated using Weblate (German)
Currently translated at 100.0% (509 of 509 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/
2021-11-07 17:14:14 +00:00
Kaibu
44d535301d Merge branch 'develop-weblate' into develop
# Conflicts:
#	cookbook/locale/de/LC_MESSAGES/django.po
2021-11-07 17:38:49 +01:00
Kaibu
15e36cc03f Translated using Weblate (German)
Currently translated at 100.0% (208 of 208 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/de/
2021-11-07 16:34:53 +00:00
Jens
f6cb5128f5 Translated using Weblate (German)
Currently translated at 97.9% (483 of 493 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/
2021-11-07 16:34:53 +00:00
Kaibu
83567c25aa Translated using Weblate (German)
Currently translated at 97.9% (483 of 493 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/
2021-11-07 16:34:53 +00:00
Kaibu
4288d76afd added more translations 2021-11-07 17:32:43 +01:00
Kaibu
195a13f825 hiding action buttons in plan settings view 2021-11-07 14:42:28 +01:00
vabene1111
f0335ebe40 updated translations 2021-11-07 13:48:18 +01:00
vabene1111
7fd2817014 fixed nextcloiud importer 2021-11-07 13:47:54 +01:00
Alexander Rose
0ab21f9941 Fix Templating documentation
Fix bad variable naming in docs
2021-11-06 17:39:23 +01:00
Nicklas Yli-Länttä
699edb6579 Translated using Weblate (Finnish)
Currently translated at 100.0% (208 of 208 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fi/
2021-11-06 14:06:29 +00:00
Nicklas Yli-Länttä
372a2e480e Translated using Weblate (Finnish)
Currently translated at 2.8% (14 of 493 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/fi/
2021-11-06 14:06:29 +00:00
retmas gh
06e54aed4b Translated using Weblate (Polish)
Currently translated at 100.0% (208 of 208 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pl/
2021-11-06 14:06:29 +00:00
retmas gh
e426cae091 Translated using Weblate (Polish)
Currently translated at 100.0% (362 of 362 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/pl/
2021-11-06 14:06:29 +00:00
Jan Brach
56e44ee3ff Translated using Weblate (German)
Currently translated at 94.7% (467 of 493 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/de/
2021-11-06 14:06:29 +00:00
Kaibu
e18737d254 Merge pull request #1025 from staeff/develop
Fix some typos in docs
2021-11-06 00:13:00 +01:00
vabene1111
dda2529f6f fixed plan share space filter 2021-11-05 19:42:41 +01:00
Stephan Klinger
5fdbedc924 Update manual.md 2021-11-05 14:45:54 +01:00
Stephan Klinger
a2e06a3099 Update manual.md 2021-11-05 14:43:33 +01:00
Stephan Klinger
6fadad1a5f Fix typo in manual.md 2021-11-05 14:43:08 +01:00
Stephan Klinger
cbc517b5da Fix typo in contribute.md 2021-11-05 14:41:32 +01:00
vabene1111
fb018ef9e2 Added translation using Weblate (Finnish) 2021-11-05 11:20:18 +00:00
vabene1111
1eac80942c Added translation using Weblate (Finnish) 2021-11-05 11:19:59 +00:00
Dan Pastusek
e611c095bb Update kubesail.md 2021-11-04 17:23:16 -06:00
Dan Pastusek
c418b7bbff Update kubesail.md 2021-11-04 17:23:00 -06:00
Dan Pastusek
c0417f0b5d Update kubesail.md 2021-11-04 17:22:44 -06:00
Dan Pastusek
aef73bc104 Update kubesail.md 2021-11-04 17:03:56 -06:00
Dan Pastusek
ca1ce40048 Create kubesail.md 2021-11-04 16:57:39 -06:00
Dan Pastusek
b2eef1ee30 Update mkdocs.yml 2021-11-04 16:42:53 -06:00
Stephen Brown II
b4f754e7d3 Add time unit hint to recipe edit view 2021-11-04 10:17:58 -06:00
vabene1111
d681e3ced3 disable external recipes in hosted version 2021-11-04 15:56:22 +01:00
vabene1111
6cfd1a495e Merge branch 'develop' into beta 2021-10-29 14:56:41 +02:00
vabene1111
17d4619c31 Merge branch 'develop' into beta 2021-10-29 11:49:17 +02:00
vabene1111
2c05e7e282 Merge branch 'develop' into beta 2021-10-26 14:53:31 +02:00
vabene1111
928be086e4 Merge branch 'develop' into beta 2021-10-14 09:03:26 +02:00
vabene1111
e3c86e8685 Merge branch 'develop' into beta 2021-10-11 16:30:28 +02:00
Christoph Schmatzler
e5607aff90 Add TANDOOR_PORT to .env.template 2021-09-02 16:08:39 +02:00
Christoph Schmatzler
a47d9d00fd Allow specifying port through TANDOOR_PORT environment variable 2021-09-01 19:46:55 +02:00
447 changed files with 96665 additions and 43145 deletions

View File

@@ -1,4 +1,4 @@
node_modules
**/node_modules
npm-debug.log
Dockerfile*
docker-compose*
@@ -12,6 +12,21 @@ LICENSE
.env.template
.github
.idea
.prettierignore
LICENSE.md
docs
update.sh
update.sh
.pytest_cache
cookbook/tests
mediafiles
staticfiles
db.sqlite3
pytest.ini
vue/**/*.vue
vue/**/*.ts
**/.openapi-generator
mkdocs.yml
vue/babel.config*
vue/package.json
vue/tsconfig.json
vue/src/utils/openapi

View File

@@ -3,11 +3,16 @@
DEBUG=0
SQL_DEBUG=0
# HTTP port to bind to
# TANDOOR_PORT=8080
# hosts the application can run under e.g. recipes.mydomain.com,cooking.mydomain.com,...
ALLOWED_HOSTS=*
# random secret key, use for example `base64 /dev/urandom | head -c50` to generate one
# ---------------------------- REQUIRED -------------------------
SECRET_KEY=
# ---------------------------------------------------------------
# your default timezone See https://timezonedb.com/time-zones for a list of timezones
TIMEZONE=Europe/Berlin
@@ -18,7 +23,9 @@ DB_ENGINE=django.db.backends.postgresql
POSTGRES_HOST=db_recipes
POSTGRES_PORT=5432
POSTGRES_USER=djangouser
# ---------------------------- REQUIRED -------------------------
POSTGRES_PASSWORD=
# ---------------------------------------------------------------
POSTGRES_DB=djangodb
# database connection string, when used overrides other database settings.
@@ -41,7 +48,8 @@ SHOPPING_MIN_AUTOSYNC_INTERVAL=5
# Default for user setting sticky navbar
# STICKY_NAV_PREF_DEFAULT=1
# If base URL is something other than just / (you are serving a subfolder in your proxy for instance http://recipe_app/recipes/)
# If base URL is something other than just / (you are serving a subfolder in your proxy for instance http://recipe_app/recipes/)
# Be sure to not have a trailing slash: e.g. '/recipes' instead of '/recipes/'
# SCRIPT_NAME=/recipes
# If staticfiles are stored at a different location uncomment and change accordingly, MUST END IN /
@@ -60,6 +68,10 @@ SHOPPING_MIN_AUTOSYNC_INTERVAL=5
# when unset: 1 (true) - this is temporary until an appropriate amount of time has passed for everyone to migrate
GUNICORN_MEDIA=0
# GUNICORN SERVER RELATED SETTINGS (see https://docs.gunicorn.org/en/stable/design.html#how-many-workers for recommended settings)
# GUNICORN_WORKERS=1
# GUNICORN_THREADS=1
# S3 Media settings: store mediafiles in s3 or any compatible storage backend (e.g. minio)
# as long as S3_ACCESS_KEY is not set S3 features are disabled
# S3_ACCESS_KEY=
@@ -69,6 +81,7 @@ GUNICORN_MEDIA=0
# S3_QUERYSTRING_AUTH=1 # default true, set to 0 to serve media from a public bucket without signed urls
# S3_QUERYSTRING_EXPIRE=3600 # number of seconds querystring are valid for
# S3_ENDPOINT_URL= # when using a custom endpoint like minio
# S3_CUSTOM_DOMAIN= # when using a CDN/proxy to S3 (see https://github.com/TandoorRecipes/recipes/issues/1943)
# Email Settings, see https://docs.djangoproject.com/en/3.2/ref/settings/#email-host
# Required for email confirmation and password reset (automatically activates if host is set)
@@ -78,8 +91,10 @@ GUNICORN_MEDIA=0
# EMAIL_HOST_PASSWORD=
# EMAIL_USE_TLS=0
# EMAIL_USE_SSL=0
# DEFAULT_FROM_EMAIL= # email sender address (default 'webmaster@localhost')
# ACCOUNT_EMAIL_SUBJECT_PREFIX= # prefix used for account related emails (default "[Tandoor Recipes] ")
# email sender address (default 'webmaster@localhost')
# DEFAULT_FROM_EMAIL=
# prefix used for account related emails (default "[Tandoor Recipes] ")
# ACCOUNT_EMAIL_SUBJECT_PREFIX=
# allow authentication via reverse proxy (e.g. authelia), leave off if you dont know what you are doing
# see docs for more information https://vabene1111.github.io/recipes/features/authentication/
@@ -141,3 +156,12 @@ REVERSE_PROXY_AUTH=0
#AUTH_LDAP_BIND_DN=
#AUTH_LDAP_BIND_PASSWORD=
#AUTH_LDAP_USER_SEARCH_BASE_DN=
#AUTH_LDAP_TLS_CACERTFILE=
# Enables exporting PDF (see export docs)
# Disabled by default, uncomment to enable
# ENABLE_PDF_EXPORT=1
# Recipe exports are cached for a certain time by default, adjust time if needed
# EXPORT_FILE_CACHE_DURATION=600

View File

@@ -1,15 +0,0 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
### Version
Please provide your current version (can be found on the system page since v0.8.4)
Version:
### Bug description
A clear and concise description of what the bug is.

View File

@@ -0,0 +1,81 @@
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''
---
## Version
<!-- Please provide your current version (can be found on the system page since v0.8.4). -->
**Tandoor-Version:**
## Setup configuration
<!--Please tick all boxes which apply to your configuration. Feel free to provide additional information below.
To tick boxes here, simply put an X inside the brackets below -->
### Setup
- [ ] Docker / Docker-Compose
- [ ] Unraid
- [ ] Synology
- [ ] Kubernetes
- [ ] Manual setup
- [ ] Others (please state below)
### Reverse Proxy
- [ ] No reverse proxy
- [ ] jwilder's nginx proxy
- [ ] Nginx proxy manager (NPM)
- [ ] SWAG
- [ ] Caddy
- [ ] Traefik
- [ ] Others (please state below)
<!-- Please provide additional information if possible -->
**Additional information:**
## Bug description
A clear and concise description of what the bug is.
## Logs
<!-- *(Remove this section entirely if no logs are available or necessary for your issue)*
To get the most information about your issue, set DEBUG=1 (e.g. in your `.env` file if using docker-compose) and try to reproduce the issue afterwards.
Please put your logs into the expandable section below and use code quotation for all logs! Usage: Put three backticks in front and after the log, like this:
` ``` <Many lines of log messages ``` `
Feel free to remove parts if you don't fill them out.
-->
<details>
<summary>Web-Container-Logs</summary>
<!-- *Put your logs inside here (leave the code quotations in takt):* -->
```
Replace me with logs
```
</details>
<details>
<summary>DB-Container-Logs</summary>
<!-- *Put your logs inside here (leave the code quotations in takt):* -->
```
Replace me with logs
```
</details>
<details>
<summary>Nginx-Container-Logs <!-- if you use one --></summary>
<!-- *Put your logs inside here (leave the code quotations in takt):* -->
```
Replace me with logs
```
</details>

64
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,64 @@
name: Bug Report
description: "Create a report to help us improve"
#title: ""
#labels: ["Bug"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: input
id: version
attributes:
label: Tandoor Version
description: "What version of Tandoor are you using? (can be found on the system page since v0.8.4)"
validations:
required: true
- type: dropdown
id: setup
attributes:
label: Setup
description: "How is your Tandoor instance set up?"
options:
- Docker / Docker-Compose
- Unraid
- Synology
- Kubernetes
- Manual Setup
- Others (please state below)
validations:
required: true
- type: dropdown
id: reverse-proxy
attributes:
label: "Reverse Proxy"
description: "What reverse proxy do you use with Tandoor?"
options:
- No reverse proxy
- jwilder's nginx proxy
- Nginx Proxy Manager (NPM)
- SWAG
- Caddy
- Traefik
- Apache2
- Others (please state below)
validations:
required: true
- type: input
id: other
attributes:
label: Other
description: "In case you chose 'Others' above, please provide more info here."
- type: textarea
id: bug-descr
attributes:
label: Bug description
description: "Please accurately describe the bug you encountered."
validations:
required: true
- type: textarea
id: logs
attributes:
label: Relevant logs
description: Please copy and paste any relevant logs. This will be automatically formatted into code, so no need for backticks.
render: shell

5
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: FAQs
url: https://docs.tandoor.dev/faq/
about: Please take a look at the FAQs before creating a bug ticket.

40
.github/ISSUE_TEMPLATE/doc_issue.yml vendored Normal file
View File

@@ -0,0 +1,40 @@
name: Documentation Issue
description: "Create a report to help us improve"
#title: ""
labels: ["documentation"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this documentation issue report!
- type: input
id: docs-link
attributes:
label: Documentation link
description: "Please provide a link to the corresponding documentation site on docs.tandoor.dev"
- type: dropdown
id: section
attributes:
label: Affected section
description: "What part of the documentation is the issue about?"
options:
- Installation
- Features
- System
- FAQ
- Does not exist yet
- Other (please state below)
validations:
required: true
- type: input
id: other
attributes:
label: Other
description: "In case you chose 'Other' above, please provide more info here."
- type: textarea
id: descr
attributes:
label: Issue description
description: "Please accurately describe the documentation issue you are seeing."
validations:
required: true

View File

@@ -0,0 +1,31 @@
name: Feature Request
description: "Suggest an idea for this project"
#title: ""
labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this feature request!
- type: textarea
id: problem
attributes:
label: "Is your feature request related to a problem? Please describe."
description: "A clear and concise description of what the problem is. Ex. I'm always frustrated when..."
- type: textarea
id: solution
attributes:
label: "Describe the solution you'd like"
description: "A clear and concise description of what you want to happen."
validations:
required: true
- type: textarea
id: alternatives
attributes:
label: "Describe alternatives you've considered"
description: "A clear and concise description of any alternative solutions or features you've considered."
- type: textarea
id: additional
attributes:
label: "Additional context"
description: "Add any other context or screenshots about the feature request here."

82
.github/ISSUE_TEMPLATE/help_request.yml vendored Normal file
View File

@@ -0,0 +1,82 @@
name: Help request
description: "If there is anything wrong with your setup"
#title: ""
labels: ["setup issue"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this help request!
- type: textarea
id: issue
attributes:
label: Issue
description: "Please describe your problem here."
validations:
required: true
- type: input
id: version
attributes:
label: Tandoor Version
description: "What version of Tandoor are you using? (can be found on the system page since v0.8.4)"
validations:
required: true
- type: input
id: os
attributes:
label: OS Version
description: "E.g. Ubuntu 20.02"
validations:
required: true
- type: dropdown
id: setup
attributes:
label: Setup
description: "How is your Tandoor instance set up?"
options:
- Docker / Docker-Compose
- Unraid
- Synology
- Kubernetes
- Manual Setup
- Others (please state below)
validations:
required: true
- type: dropdown
id: reverse-proxy
attributes:
label: "Reverse Proxy"
description: "What reverse proxy do you use with Tandoor?"
options:
- No reverse proxy
- jwilder's nginx proxy
- Nginx Proxy Manager (NPM)
- SWAG
- Caddy
- Traefik
- Others (please state below)
validations:
required: true
- type: input
id: other
attributes:
label: Other
description: "In case you chose 'Others' above or have more info, please provide additional details here."
- type: textarea
id: env
attributes:
label: Environment file
description: "Please include your `.env` config file (**make sure to remove/replace all secrets**)"
render: shell
- type: textarea
id: docker-compose
attributes:
label: Docker-Compose file
description: "When running with docker compose please provide your `docker-compose.yml`"
render: shell
- type: textarea
id: logs
attributes:
label: Relevant logs
description: "If you feel like there is anything interesting please post the output of `docker-compose logs` at container startup and when the issue happens."
render: shell

View File

@@ -0,0 +1,36 @@
name: Website Import
description: "Anything related to website imports"
#title: ""
#labels: ["enhancement"]
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this website import form!
- type: input
id: version
attributes:
label: Tandoor Version
description: "What version of Tandoor are you using? (can be found on the system page since v0.8.4)"
validations:
required: true
- type: input
id: url
attributes:
label: Import URL
description: "Exact URL you are trying to import from."
validations:
required: true
- type: textarea
id: bug-descr
attributes:
label: "When did the issue happen?"
description: "When pressing the search button with the url / when importing after the page has loaded / ..."
validations:
required: true
- type: textarea
id: logs
attributes:
label: Response / message shown
description: Please copy and paste any relevant logs or responses / messages which are shown in Tandoor. This will be automatically formatted into code, so no need for backticks.
render: shell

View File

@@ -1,4 +1,4 @@
name: Continous Integration
name: Continuous Integration
on: [push]
@@ -9,14 +9,14 @@ jobs:
strategy:
max-parallel: 4
matrix:
python-version: [3.9]
python-version: ['3.10']
steps:
- uses: actions/checkout@v1
- name: Set up Python 3.9
- name: Set up Python 3.10
uses: actions/setup-python@v1
with:
python-version: 3.9
python-version: '3.10'
# Build Vue frontend
- uses: actions/setup-node@v2
with:
@@ -29,6 +29,7 @@ jobs:
run: yarn build
- name: Install Django dependencies
run: |
sudo apt-get -y update
sudo apt-get install -y libsasl2-dev python-dev libldap2-dev libssl-dev
python -m pip install --upgrade pip
pip install -r requirements.txt

View File

@@ -0,0 +1,48 @@
name: publish beta raspi image docker
on:
push:
branches:
- 'beta'
jobs:
build:
if: github.repository_owner == 'TandoorRecipes'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
# Update Version number
- name: Update version file
uses: DamianReeves/write-file-action@v1.0
with:
path: recipes/version.py
contents: |
VERSION_NUMBER = 'beta'
BUILD_REF = '${{ github.sha }}'
write-mode: overwrite
# Build Vue frontend
- uses: actions/setup-node@v2
with:
node-version: '14'
- name: Install dependencies
working-directory: ./vue
run: yarn install
- name: Build dependencies
working-directory: ./vue
run: yarn build
# Build container
- name: Build and publish image
uses: ilteoood/docker_buildx@master
with:
publish: true
imageName: vabene1111/recipes
tag: beta-raspi
dockerFile: Dockerfile-raspi
platform: linux/arm/v7
dockerUser: ${{ secrets.DOCKER_USERNAME }}
dockerPassword: ${{ secrets.DOCKER_PASSWORD }}
# Send discord notification
- name: Discord notification
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_BETA_WEBHOOK }}
uses: Ilshidur/action-discord@0.3.2
with:
args: '🚀 The BETA Image has been updated! 🥳'

View File

@@ -35,8 +35,9 @@ jobs:
publish: true
imageName: vabene1111/recipes
tag: beta
dockerHubUser: ${{ secrets.DOCKER_USERNAME }}
dockerHubPassword: ${{ secrets.DOCKER_PASSWORD }}
platform: linux/amd64,linux/arm64
dockerUser: ${{ secrets.DOCKER_USERNAME }}
dockerPassword: ${{ secrets.DOCKER_PASSWORD }}
# Send discord notification
- name: Discord notification
env:

View File

@@ -24,6 +24,9 @@ jobs:
- uses: actions/setup-node@v2
with:
node-version: '14'
- name: Clear Cache
working-directory: ./vue
run: yarn cache clean --all
- name: Install dependencies
working-directory: ./vue
run: yarn install

View File

@@ -0,0 +1,45 @@
name: publish latest raspi image docker
on:
push:
tags:
- '*'
jobs:
build:
if: github.repository_owner == 'TandoorRecipes'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Get version number
id: get_version
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}-raspi
# Update Version number
- name: Update version file
uses: DamianReeves/write-file-action@v1.0
with:
path: recipes/version.py
contents: |
VERSION_NUMBER = '${{ steps.get_version.outputs.VERSION }}-raspi'
BUILD_REF = '${{ github.sha }}'
write-mode: overwrite
# Build Vue frontend
- uses: actions/setup-node@v2
with:
node-version: '14'
- name: Install dependencies
working-directory: ./vue
run: yarn install
- name: Build dependencies
working-directory: ./vue
run: yarn build
# Build container
- name: Build and publish image
uses: ilteoood/docker_buildx@master
with:
publish: true
imageName: vabene1111/recipes
dockerFile: Dockerfile-raspi
platform: linux/arm/v7
tag: latest-raspi
dockerUser: ${{ secrets.DOCKER_USERNAME }}
dockerPassword: ${{ secrets.DOCKER_PASSWORD }}

View File

@@ -38,6 +38,7 @@ jobs:
with:
publish: true
imageName: vabene1111/recipes
platform: linux/amd64,linux/arm64
tag: latest
dockerHubUser: ${{ secrets.DOCKER_USERNAME }}
dockerHubPassword: ${{ secrets.DOCKER_PASSWORD }}
dockerUser: ${{ secrets.DOCKER_USERNAME }}
dockerPassword: ${{ secrets.DOCKER_PASSWORD }}

View File

@@ -0,0 +1,47 @@
name: publish tagged raspi release docker
on:
release:
types: [published]
jobs:
build:
if: github.repository_owner == 'TandoorRecipes'
runs-on: ubuntu-latest
name: Build image job
steps:
- name: Checkout master
uses: actions/checkout@master
- name: Get version number
id: get_version
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\//}
# Update Version number
- name: Update version file
uses: DamianReeves/write-file-action@v1.0
with:
path: recipes/version.py
contents: |
VERSION_NUMBER = '${{ steps.get_version.outputs.VERSION }}'
BUILD_REF = '${{ github.sha }}'
write-mode: overwrite
# Build Vue frontend
- uses: actions/setup-node@v2
with:
node-version: '14'
- name: Install dependencies
working-directory: ./vue
run: yarn install
- name: Build dependencies
working-directory: ./vue
run: yarn build
# Build container
- name: Build and publish image
uses: ilteoood/docker_buildx@master
with:
publish: true
imageName: vabene1111/recipes
dockerFile: Dockerfile-raspi
platform: linux/arm/v7
tag: ${{ steps.get_version.outputs.VERSION }}-raspi
dockerUser: ${{ secrets.DOCKER_USERNAME }}
dockerPassword: ${{ secrets.DOCKER_PASSWORD }}

View File

@@ -40,13 +40,14 @@ jobs:
with:
publish: true
imageName: vabene1111/recipes
platform: linux/amd64,linux/arm64
tag: ${{ steps.get_version.outputs.VERSION }}
dockerHubUser: ${{ secrets.DOCKER_USERNAME }}
dockerHubPassword: ${{ secrets.DOCKER_PASSWORD }}
dockerUser: ${{ secrets.DOCKER_USERNAME }}
dockerPassword: ${{ secrets.DOCKER_PASSWORD }}
# Send discord notification
- name: Discord notification
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_RELEASE_WEBHOOK }}
uses: Ilshidur/action-discord@0.3.2
with:
args: '🚀 Version {{ EVENT_PAYLOAD.release.tag_name }} of tandoor has been released 🥳 \nCheck it out *https://github.com/vabene1111/recipes/releases/tag/{{ EVENT_PAYLOAD.release.tag_name }}*'
args: '🚀 Version {{ EVENT_PAYLOAD.release.tag_name }} of tandoor has been released 🥳 Check it out https://github.com/vabene1111/recipes/releases/tag/{{ EVENT_PAYLOAD.release.tag_name }}'

View File

@@ -3,7 +3,6 @@ on:
push:
branches:
- master
- develop
jobs:
deploy:
@@ -14,5 +13,5 @@ jobs:
- uses: actions/setup-python@v2
with:
python-version: 3.x
- run: pip install mkdocs-material
- run: pip install mkdocs-material mkdocs-include-markdown-plugin
- run: mkdocs gh-deploy --force

2
.gitignore vendored
View File

@@ -79,8 +79,8 @@ postgresql/
/docker-compose.override.yml
vue/node_modules
.vscode/
vue/yarn.lock
vetur.config.js
cookbook/static/vue
vue/webpack-stats.json
cookbook/templates/sw.js
.prettierignore

View File

@@ -6,6 +6,7 @@
<w>csrftoken</w>
<w>gunicorn</w>
<w>ical</w>
<w>invitelink</w>
<w>mealie</w>
<w>pepperplate</w>
<w>safron</w>

View File

@@ -1,58 +1,83 @@
# Contributers
Many thanks to everyone who contributed to this project! If you add something or help out feel free to add yourself
to this list.
## Code/Features
Please have a look at the [list of pull requests](https://github.com/vabene1111/recipes/pulls) for
a complete list of contributions.
Below are some of the larger contributions made yet.
- @tourn provided the serving feature and **several** other improvements!
- @l0c4lh057 provided a much improved ingredient text parser in [#277](https://github.com/vabene1111/recipes/pull/277)
- @sebimarkgraf added nutritional information [#199](https://github.com/vabene1111/recipes/pull/199)
- @cazier added reverse proxy authentication [#88](https://github.com/vabene1111/recipes/pull/88)
- [vabene1111]
- [Kaibu]
- [smilerz]
- [MaxJa4] Docker builds and other improvements
- [tourn] provided the serving feature and **several** other improvements!
- [l0c4lh057] provided a much improved ingredient text parser in [#277](https://github.com/vabene1111/recipes/pull/277)
- [sebimarkgraf] added nutritional information [#199](https://github.com/vabene1111/recipes/pull/199)
- [cazier] added reverse proxy authentication [#88](https://github.com/vabene1111/recipes/pull/88)
- [murphy83] added support for IPv6 #1490
- [TheHaf] added custom serving size component #1411
- [lostlont] added LDAP support #960
## Translations
### Catalan
### Catalan
[Rubenix](https://www.transifex.com/user/profile/rubenix/)
### Dutch
[D0T1X](https://www.transifex.com/user/profile/D0T1X/)
[ikbenfrank](https://www.transifex.com/user/profile/ikbenfrank/)
[kampsj](https://www.transifex.com/user/profile/kampsj/)
[D0T1X](https://www.transifex.com/user/profile/D0T1X/)
[ikbenfrank](https://www.transifex.com/user/profile/ikbenfrank/)
[kampsj](https://www.transifex.com/user/profile/kampsj/)
### French
[jt117](https://www.transifex.com/user/profile/jt117/)
[nerdinator](https://www.transifex.com/user/profile/nerdinator/)
[agaume](https://www.transifex.com/user/profile/agaume/)
[jt117](https://www.transifex.com/user/profile/jt117/)
[nerdinator](https://www.transifex.com/user/profile/nerdinator/)
[agaume](https://www.transifex.com/user/profile/agaume/)
### German
[eTaurus](https://www.transifex.com/user/profile/eTaurus/)
[l0c4lh057](https://www.transifex.com/user/profile/l0c4lh057/)
[hyperbit00](https://github.com/hyperbit00)
### Hungarian
[igazka](https://www.transifex.com/user/profile/igazka/)
### Italian
[SK3LA](https://www.transifex.com/user/profile/SK3LA/)
[auanasgheps](https://www.transifex.com/user/profile/auanasgheps/)
[SK3LA](https://www.transifex.com/user/profile/SK3LA/)
[auanasgheps](https://www.transifex.com/user/profile/auanasgheps/)
### Latvian
[melkypie](https://github.com/melkypie)
### Portuguese
[hds](https://www.transifex.com/user/profile/hds/)
[mlopezifu](https://www.transifex.com/user/profile/mlopezifu/)
[stormsz](https://www.transifex.com/user/profile/stormsz/)
[hds](https://www.transifex.com/user/profile/hds/)
[mlopezifu](https://www.transifex.com/user/profile/mlopezifu/)
[stormsz](https://www.transifex.com/user/profile/stormsz/)
### Russian
[amillerr](https://github.com/amillerr)
### Spanish
[albertocp](https://www.transifex.com/user/profile/albertocp/)
[alfa5](https://www.transifex.com/user/profile/alfa5/)
[mlopezifu](https://www.transifex.com/user/profile/mlopezifu/)
[sergio.laya](https://www.transifex.com/user/profile/sergio.laya/)
[albertocp](https://www.transifex.com/user/profile/albertocp/)
[alfa5](https://www.transifex.com/user/profile/alfa5/)
[mlopezifu](https://www.transifex.com/user/profile/mlopezifu/)
[sergio.laya](https://www.transifex.com/user/profile/sergio.laya/)
### Swedish
[makanz](https://github.com/makanz)
### Turkish
@@ -60,4 +85,4 @@ Below are some of the larger contributions made yet.
### Vietnamese
[vuongtrunghieu](https://www.transifex.com/user/profile/vuongtrunghieu/)
[vuongtrunghieu](https://www.transifex.com/user/profile/vuongtrunghieu/)

View File

@@ -1,7 +1,7 @@
FROM python:3.9-alpine3.12
FROM python:3.10-alpine3.15
#Install all dependencies.
RUN apk add --no-cache postgresql-libs gettext zlib libjpeg libwebp libxml2-dev libxslt-dev py-cryptography
RUN apk add --no-cache postgresql-libs postgresql-client gettext zlib libjpeg libwebp libxml2-dev libxslt-dev py-cryptography openldap
#Print all logs without buffering it.
ENV PYTHONUNBUFFERED 1
@@ -15,10 +15,12 @@ WORKDIR /opt/recipes
COPY requirements.txt ./
RUN apk add --no-cache --virtual .build-deps gcc musl-dev postgresql-dev zlib-dev jpeg-dev libwebp-dev libressl-dev libffi-dev cargo openssl-dev openldap-dev && \
RUN apk add --no-cache --virtual .build-deps gcc musl-dev postgresql-dev zlib-dev jpeg-dev libwebp-dev openssl-dev libffi-dev cargo openldap-dev python3-dev git && \
echo -n "INPUT ( libldap.so )" > /usr/lib/libldap_r.so && \
python -m venv venv && \
/opt/recipes/venv/bin/python -m pip install --upgrade pip && \
venv/bin/pip install wheel==0.36.2 && \
venv/bin/pip install wheel==0.37.1 && \
venv/bin/pip install setuptools_rust==1.1.2 && \
venv/bin/pip install -r requirements.txt --no-cache-dir &&\
apk --purge del .build-deps

33
Dockerfile-raspi Normal file
View File

@@ -0,0 +1,33 @@
# builds of cryptography for raspberry pi (or better arm v7) fail for some
FROM python:3.9-alpine3.15
#Install all dependencies.
RUN apk add --no-cache postgresql-libs postgresql-client gettext zlib libjpeg libwebp libxml2-dev libxslt-dev py-cryptography openldap gcompat
#Print all logs without buffering it.
ENV PYTHONUNBUFFERED 1
#This port will be used by gunicorn.
EXPOSE 8080
#Create app dir and install requirements.
RUN mkdir /opt/recipes
WORKDIR /opt/recipes
COPY requirements.txt ./
RUN \
if [ `apk --print-arch` = "armv7" ]; then \
printf "[global]\nextra-index-url=https://www.piwheels.org/simple\n" > /etc/pip.conf ; \
fi
RUN apk add --no-cache --virtual .build-deps gcc musl-dev zlib-dev jpeg-dev libwebp-dev python3-dev git && \
echo -n "INPUT ( libldap.so )" > /usr/lib/libldap_r.so && \
python -m venv venv && \
/opt/recipes/venv/bin/python -m pip install --upgrade pip && \
venv/bin/pip install wheel==0.37.1 && \
venv/bin/pip install -r requirements.txt --no-cache-dir --no-binary=Pillow && \
apk --purge del .build-deps
#Copy project and execute it.
COPY . ./
RUN chmod +x boot.sh
ENTRYPOINT ["/opt/recipes/boot.sh"]

View File

@@ -9,7 +9,7 @@
<h4 align="center">The recipe manager that allows you to manage your ever growing collection of digital recipes.</h4>
<p align="center">
<a href="https://github.com/vabene1111/recipes/actions" target="_blank" rel="noopener noreferrer"><img src="https://github.com/vabene1111/recipes/workflows/Continous%20Integration/badge.svg?branch=master" ></a>
<a href="https://github.com/vabene1111/recipes/actions" target="_blank" rel="noopener noreferrer"><img src="https://github.com/vabene1111/recipes/workflows/Continuous%20Integration/badge.svg?branch=master" ></a>
<a href="https://github.com/vabene1111/recipes/stargazers" target="_blank" rel="noopener noreferrer"><img src="https://img.shields.io/github/stars/vabene1111/recipes" ></a>
<a href="https://github.com/vabene1111/recipes/network/members" target="_blank" rel="noopener noreferrer"><img src="https://img.shields.io/github/forks/vabene1111/recipes" ></a>
<a href="https://discord.gg/RhzBrfWgtp" target="_blank" rel="noopener noreferrer"><img src="https://badgen.net/badge/icon/discord?icon=discord&label" ></a>
@@ -61,6 +61,15 @@ a public page.
Documentation can be found [here](https://docs.tandoor.dev/).
## Support our work
Tandoor is developed by volunteers in their free time just because its fun. That said earning
some money with the project allows us to spend more time on it and thus make improvements we otherwise couldn't.
Because of that there are several ways you can support us
- **GitHub Sponsors** You can sponsor contributors of this project on GitHub: [vabene1111](https://github.com/sponsors/vabene1111)
- **Host at Hetzner** We have been very happy customers of Hetzner for multiple years for all of our projects. If you want to get into self-hosting or are tired of the expensive big providers, their cloud servers are a great place to get started. When you sign up via our [referral link](https://hetzner.cloud/?ref=ISdlrLmr9kGj) you will get 20€ worth of cloud credits and we get a small kickback too.
- **Let us host for you** We are offering a [hosted version](https://app.tandoor.dev) where all profits support us and the development of tandoor (currently only available in germany).
## Contributing
You can help out with the ongoing development by looking for potential bugs in our code base, or by contributing new features. We are always welcoming new pull requests containing bug fixes, refactors and new features. We have a list of tasks and bugs on our issue tracker on Github. Please comment on issues if you want to contribute with, to avoid duplicating effort.

View File

@@ -7,4 +7,4 @@ Since this software is still considered beta/WIP support is always only given fo
## Reporting a Vulnerability
Please open a normal public issue if you have any security related concerns. If you feel like the issue should not be discussed in
public just open a generic issue and we will discuss further communitcation there (since GitHub does not allow everyone to create a security advisory :/).
public just open a generic issue and we will discuss further communication there (since GitHub does not allow everyone to create a security advisory :/).

60
boot.sh
View File

@@ -1,12 +1,68 @@
#!/bin/sh
source venv/bin/activate
echo "Updating database"
TANDOOR_PORT="${TANDOOR_PORT:-8080}"
GUNICORN_WORKERS="${GUNICORN_WORKERS:-3}"
GUNICORN_THREADS="${GUNICORN_THREADS:-2}"
NGINX_CONF_FILE=/opt/recipes/nginx/conf.d/Recipes.conf
display_warning() {
echo "[WARNING]"
echo -e "$1"
}
echo "Checking configuration..."
# Nginx config file must exist if gunicorn is not active
if [ ! -f "$NGINX_CONF_FILE" ] && [ $GUNICORN_MEDIA -eq 0 ]; then
display_warning "Nginx configuration file could not be found at the default location!\nPath: ${NGINX_CONF_FILE}"
fi
# SECRET_KEY must be set in .env file
if [ -z "${SECRET_KEY}" ]; then
display_warning "The environment variable 'SECRET_KEY' is not set but REQUIRED for running Tandoor!"
fi
echo "Waiting for database to be ready..."
attempt=0
max_attempts=20
if [ "${DB_ENGINE}" != 'django.db.backends.sqlite3' ]; then
# POSTGRES_PASSWORD must be set in .env file
if [ -z "${POSTGRES_PASSWORD}" ]; then
display_warning "The environment variable 'POSTGRES_PASSWORD' is not set but REQUIRED for running Tandoor!"
fi
while pg_isready --host=${POSTGRES_HOST} --port=${POSTGRES_PORT} --user=${POSTGRES_USER} -q; status=$?; attempt=$((attempt+1)); [ $status -ne 0 ] && [ $attempt -le $max_attempts ]; do
sleep 5
done
fi
if [ $attempt -gt $max_attempts ]; then
echo -e "\nDatabase not reachable. Maximum attempts exceeded."
echo "Please check logs above - misconfiguration is very likely."
echo "Make sure the DB container is up and POSTGRES_HOST is set properly."
echo "Shutting down container."
exit 1 # exit with error to make the container stop
fi
echo "Database is ready"
echo "Migrating database"
python manage.py migrate
echo "Generating static files"
python manage.py collectstatic_js_reverse
python manage.py collectstatic --noinput
echo "Done"
chmod -R 755 /opt/recipes/mediafiles
exec gunicorn -b :8080 --access-logfile - --error-logfile - --log-level INFO recipes.wsgi
exec gunicorn -b :$TANDOOR_PORT --workers $GUNICORN_WORKERS --threads $GUNICORN_THREADS --access-logfile - --error-logfile - --log-level INFO recipes.wsgi

View File

@@ -1,23 +1,22 @@
from django.conf import settings
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import Group, User
from django.contrib.postgres.search import SearchVector
from django.utils import translation
from django_scopes import scopes_disabled
from treebeard.admin import TreeAdmin
from treebeard.forms import movenodeform_factory
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User, Group
from django_scopes import scopes_disabled
from django.utils import translation
from .models import (Comment, CookLog, Food, Ingredient, InviteLink, Keyword,
MealPlan, MealType, NutritionInformation, Recipe,
RecipeBook, RecipeBookEntry, RecipeImport, ShareLink,
ShoppingList, ShoppingListEntry, ShoppingListRecipe,
Space, Step, Storage, Sync, SyncLog, Unit, UserPreference,
ViewLog, Supermarket, SupermarketCategory, SupermarketCategoryRelation,
ImportLog, TelegramBot, BookmarkletImport, UserFile, SearchPreference)
from cookbook.managers import DICTIONARY
from .models import (BookmarkletImport, Comment, CookLog, Food, FoodInheritField, ImportLog,
Ingredient, InviteLink, Keyword, MealPlan, MealType, NutritionInformation,
Recipe, RecipeBook, RecipeBookEntry, RecipeImport, SearchPreference, ShareLink,
ShoppingList, ShoppingListEntry, ShoppingListRecipe, Space, Step, Storage,
Supermarket, SupermarketCategory, SupermarketCategoryRelation, Sync, SyncLog,
TelegramBot, Unit, UserFile, UserPreference, ViewLog, Automation, UserSpace)
class CustomUserAdmin(UserAdmin):
def has_add_permission(self, request, obj=None):
@@ -30,25 +29,40 @@ admin.site.register(User, CustomUserAdmin)
admin.site.unregister(Group)
@admin.action(description='Delete all data from a space')
def delete_space_action(modeladmin, request, queryset):
for space in queryset:
space.save()
class SpaceAdmin(admin.ModelAdmin):
list_display = ('name', 'created_by', 'max_recipes', 'max_users', 'max_file_storage_mb', 'allow_sharing')
search_fields = ('name', 'created_by__username')
list_filter = ('max_recipes', 'max_users', 'max_file_storage_mb', 'allow_sharing')
date_hierarchy = 'created_at'
actions = [delete_space_action]
admin.site.register(Space, SpaceAdmin)
class UserSpaceAdmin(admin.ModelAdmin):
list_display = ('user', 'space',)
search_fields = ('user__username', 'space__name',)
admin.site.register(UserSpace, UserSpaceAdmin)
class UserPreferenceAdmin(admin.ModelAdmin):
list_display = ('name', 'space', 'theme', 'nav_color', 'default_page', 'search_style',) # TODO add new fields
search_fields = ('user__username', 'space__name')
list_filter = ('theme', 'nav_color', 'default_page', 'search_style')
list_display = ('name', 'theme', 'nav_color', 'default_page',)
search_fields = ('user__username',)
list_filter = ('theme', 'nav_color', 'default_page',)
date_hierarchy = 'created_at'
@staticmethod
def name(obj):
return obj.user.get_user_name()
return obj.user.get_user_display_name()
admin.site.register(UserPreference, UserPreferenceAdmin)
@@ -61,7 +75,7 @@ class SearchPreferenceAdmin(admin.ModelAdmin):
@staticmethod
def name(obj):
return obj.user.get_user_name()
return obj.user.get_user_display_name()
admin.site.register(SearchPreference, SearchPreferenceAdmin)
@@ -129,6 +143,7 @@ def sort_tree(modeladmin, request, queryset):
class KeywordAdmin(TreeAdmin):
form = movenodeform_factory(Keyword)
ordering = ('space', 'path',)
search_fields = ('name',)
actions = [sort_tree, enable_tree_sorting, disable_tree_sorting]
@@ -136,8 +151,8 @@ admin.site.register(Keyword, KeywordAdmin)
class StepAdmin(admin.ModelAdmin):
list_display = ('name', 'type', 'order')
search_fields = ('name', 'type')
list_display = ('name', 'order',)
search_fields = ('name',)
admin.site.register(Step, StepAdmin)
@@ -162,7 +177,7 @@ class RecipeAdmin(admin.ModelAdmin):
@staticmethod
def created_by(obj):
return obj.created_by.get_user_name()
return obj.created_by.get_user_display_name()
if settings.DATABASES['default']['ENGINE'] in ['django.db.backends.postgresql_psycopg2', 'django.db.backends.postgresql']:
actions = [rebuild_index]
@@ -173,9 +188,13 @@ admin.site.register(Recipe, RecipeAdmin)
admin.site.register(Unit)
# admin.site.register(FoodInheritField)
class FoodAdmin(TreeAdmin):
form = movenodeform_factory(Keyword)
ordering = ('space', 'path',)
search_fields = ('name',)
actions = [sort_tree, enable_tree_sorting, disable_tree_sorting]
@@ -192,12 +211,12 @@ admin.site.register(Ingredient, IngredientAdmin)
class CommentAdmin(admin.ModelAdmin):
list_display = ('recipe', 'name', 'created_at')
search_fields = ('text', 'user__username')
search_fields = ('text', 'created_by__username')
date_hierarchy = 'created_at'
@staticmethod
def name(obj):
return obj.created_by.get_user_name()
return obj.created_by.get_user_display_name()
admin.site.register(Comment, CommentAdmin)
@@ -216,7 +235,7 @@ class RecipeBookAdmin(admin.ModelAdmin):
@staticmethod
def user_name(obj):
return obj.created_by.get_user_name()
return obj.created_by.get_user_display_name()
admin.site.register(RecipeBook, RecipeBookAdmin)
@@ -234,7 +253,7 @@ class MealPlanAdmin(admin.ModelAdmin):
@staticmethod
def user(obj):
return obj.created_by.get_user_name()
return obj.created_by.get_user_display_name()
admin.site.register(MealPlan, MealPlanAdmin)
@@ -257,7 +276,7 @@ admin.site.register(ViewLog, ViewLogAdmin)
class InviteLinkAdmin(admin.ModelAdmin):
list_display = (
'group', 'valid_until',
'group', 'valid_until', 'space',
'created_by', 'created_at', 'used_by'
)
@@ -280,7 +299,7 @@ admin.site.register(ShoppingListRecipe, ShoppingListRecipeAdmin)
class ShoppingListEntryAdmin(admin.ModelAdmin):
list_display = ('id', 'food', 'unit', 'list_recipe', 'checked')
list_display = ('id', 'food', 'unit', 'list_recipe', 'created_by', 'created_at', 'checked')
admin.site.register(ShoppingListEntry, ShoppingListEntryAdmin)

View File

@@ -1,26 +1,37 @@
import traceback
from django.apps import AppConfig
from django.conf import settings
from django.db import OperationalError, ProgrammingError
from django_scopes import scopes_disabled
from recipes.settings import DEBUG
class CookbookConfig(AppConfig):
name = 'cookbook'
def ready(self):
# post_save signal is only necessary if using full-text search on postgres
if settings.DATABASES['default']['ENGINE'] in ['django.db.backends.postgresql_psycopg2', 'django.db.backends.postgresql']:
import cookbook.signals # noqa
import cookbook.signals # noqa
# when starting up run fix_tree to:
# a) make sure that nodes are sorted when switching between sort modes
# b) fix problems, if any, with tree consistency
with scopes_disabled():
try:
from cookbook.models import Keyword, Food
Keyword.fix_tree(fix_paths=True)
Food.fix_tree(fix_paths=True)
except OperationalError:
pass # if model does not exist there is no need to fix it
except ProgrammingError:
pass # if migration has not been run database cannot be fixed yet
# if not settings.DISABLE_TREE_FIX_STARTUP:
# # when starting up run fix_tree to:
# # a) make sure that nodes are sorted when switching between sort modes
# # b) fix problems, if any, with tree consistency
# with scopes_disabled():
# try:
# from cookbook.models import Food, Keyword
# Keyword.fix_tree(fix_paths=True)
# Food.fix_tree(fix_paths=True)
# except OperationalError:
# if DEBUG:
# traceback.print_exc()
# pass # if model does not exist there is no need to fix it
# except ProgrammingError:
# if DEBUG:
# traceback.print_exc()
# pass # if migration has not been run database cannot be fixed yet
# except Exception:
# if DEBUG:
# traceback.print_exc()
# pass # dont break startup just because fix could not run, need to investigate cases when this happens

View File

@@ -1,81 +0,0 @@
import django_filters
from django.conf import settings
from django.contrib.postgres.search import TrigramSimilarity
from django.db.models import Q
from django.utils.translation import gettext as _
from django_scopes import scopes_disabled
from cookbook.forms import MultiSelectWidget
from cookbook.models import Food, Keyword, Recipe, ShoppingList
with scopes_disabled():
class RecipeFilter(django_filters.FilterSet):
name = django_filters.CharFilter(method='filter_name')
keywords = django_filters.ModelMultipleChoiceFilter(
queryset=Keyword.objects.none(),
widget=MultiSelectWidget,
method='filter_keywords'
)
foods = django_filters.ModelMultipleChoiceFilter(
queryset=Food.objects.none(),
widget=MultiSelectWidget,
method='filter_foods',
label=_('Ingredients')
)
def __init__(self, data=None, *args, **kwargs):
space = kwargs.pop('space')
super().__init__(data, *args, **kwargs)
self.filters['foods'].queryset = Food.objects.filter(space=space).all()
self.filters['keywords'].queryset = Keyword.objects.filter(space=space).all()
@staticmethod
def filter_keywords(queryset, name, value):
if not name == 'keywords':
return queryset
for x in value:
queryset = queryset.filter(keywords=x)
return queryset
@staticmethod
def filter_foods(queryset, name, value):
if not name == 'foods':
return queryset
for x in value:
queryset = queryset.filter(steps__ingredients__food__name=x).distinct()
return queryset
@staticmethod
def filter_name(queryset, name, value):
if not name == 'name':
return queryset
if settings.DATABASES['default']['ENGINE'] in ['django.db.backends.postgresql_psycopg2',
'django.db.backends.postgresql']:
queryset = queryset.annotate(similarity=TrigramSimilarity('name', value), ).filter(
Q(similarity__gt=0.1) | Q(name__unaccent__icontains=value)).order_by('-similarity')
else:
queryset = queryset.filter(name__icontains=value)
return queryset
class Meta:
model = Recipe
fields = ['name', 'keywords', 'foods', 'internal']
# class FoodFilter(django_filters.FilterSet):
# name = django_filters.CharFilter(lookup_expr='icontains')
# class Meta:
# model = Food
# fields = ['name']
class ShoppingListFilter(django_filters.FilterSet):
def __init__(self, data=None, *args, **kwargs):
if data is not None:
data = data.copy()
data.setdefault("finished", False)
super().__init__(data, *args, **kwargs)
class Meta:
model = ShoppingList
fields = ['finished']

View File

@@ -1,16 +1,16 @@
from datetime import datetime
from django import forms
from django.conf import settings
from django.core.exceptions import ValidationError
from django.forms import widgets, NumberInput
from django.forms import NumberInput, widgets
from django.utils.translation import gettext_lazy as _
from django_scopes import scopes_disabled
from django_scopes.forms import SafeModelChoiceField, SafeModelMultipleChoiceField
from hcaptcha.fields import hCaptchaField
from .models import (Comment, InviteLink, Keyword, MealPlan, Recipe,
RecipeBook, RecipeBookEntry, Storage, Sync, User,
UserPreference, MealType, Space,
SearchPreference)
from .models import (Comment, Food, InviteLink, Keyword, MealPlan, MealType, Recipe, RecipeBook,
RecipeBookEntry, SearchPreference, Space, Storage, Sync, User, UserPreference)
class SelectWidget(widgets.Select):
@@ -36,42 +36,58 @@ class DateWidget(forms.DateInput):
class UserPreferenceForm(forms.ModelForm):
prefix = 'preference'
def __init__(self, *args, **kwargs):
space = kwargs.pop('space')
super().__init__(*args, **kwargs)
self.fields['plan_share'].queryset = User.objects.filter(userspace__space=space).all()
class Meta:
model = UserPreference
fields = (
'default_unit', 'use_fractions', 'use_kj', 'theme', 'nav_color',
'sticky_navbar', 'default_page', 'show_recent', 'search_style',
'plan_share', 'ingredient_decimals', 'shopping_auto_sync',
'comments'
'sticky_navbar', 'default_page', 'plan_share', 'ingredient_decimals', 'comments', 'left_handed',
)
labels = {
'use_kj': 'Use KJ'
'default_unit': _('Default unit'),
'use_fractions': _('Use fractions'),
'use_kj': _('Use KJ'),
'theme': _('Theme'),
'nav_color': _('Navbar color'),
'sticky_navbar': _('Sticky navbar'),
'default_page': _('Default page'),
'plan_share': _('Plan sharing'),
'ingredient_decimals': _('Ingredient decimal places'),
'shopping_auto_sync': _('Shopping list auto sync period'),
'comments': _('Comments'),
'left_handed': _('Left-handed mode')
}
help_texts = {
'nav_color': _('Color of the top navigation bar. Not all colors work with all themes, just try them out!'),
# noqa: E501
'default_unit': _('Default Unit to be used when inserting a new ingredient into a recipe.'), # noqa: E501
'default_unit': _('Default Unit to be used when inserting a new ingredient into a recipe.'),
'use_fractions': _(
'Enables support for fractions in ingredient amounts (e.g. convert decimals to fractions automatically)'),
# noqa: E501
'use_kj': _('Display nutritional energy amounts in joules instead of calories'), # noqa: E501
'plan_share': _(
'Users with whom newly created meal plan/shopping list entries should be shared by default.'),
# noqa: E501
'show_recent': _('Show recently viewed recipes on search page.'), # noqa: E501
'ingredient_decimals': _('Number of decimals to round ingredients.'), # noqa: E501
'comments': _('If you want to be able to create and see comments underneath recipes.'), # noqa: E501
'use_kj': _('Display nutritional energy amounts in joules instead of calories'),
'plan_share': _('Users with whom newly created meal plans should be shared by default.'),
'shopping_share': _('Users with whom to share shopping lists.'),
'ingredient_decimals': _('Number of decimals to round ingredients.'),
'comments': _('If you want to be able to create and see comments underneath recipes.'),
'shopping_auto_sync': _(
'Setting to 0 will disable auto sync. When viewing a shopping list the list is updated every set seconds to sync changes someone else might have made. Useful when shopping with multiple people but might use a little bit ' # noqa: E501
'of mobile data. If lower than instance limit it is reset when saving.' # noqa: E501
'Setting to 0 will disable auto sync. When viewing a shopping list the list is updated every set seconds to sync changes someone else might have made. Useful when shopping with multiple people but might use a little bit '
'of mobile data. If lower than instance limit it is reset when saving.'
),
'sticky_navbar': _('Makes the navbar stick to the top of the page.') # noqa: E501
'sticky_navbar': _('Makes the navbar stick to the top of the page.'),
'mealplan_autoadd_shopping': _('Automatically add meal plan ingredients to shopping list.'),
'mealplan_autoexclude_onhand': _('Exclude ingredients that are on hand.'),
'left_handed': _('Will optimize the UI for use with your left hand.')
}
widgets = {
'plan_share': MultiSelectWidget
'plan_share': MultiSelectWidget,
'shopping_share': MultiSelectWidget,
}
@@ -123,7 +139,7 @@ class ImportExportBase(forms.Form):
NEXTCLOUD = 'NEXTCLOUD'
MEALIE = 'MEALIE'
CHOWDOWN = 'CHOWDOWN'
SAFRON = 'SAFRON'
SAFFRON = 'SAFFRON'
CHEFTAP = 'CHEFTAP'
PEPPERPLATE = 'PEPPERPLATE'
RECIPEKEEPER = 'RECIPEKEEPER'
@@ -131,17 +147,22 @@ class ImportExportBase(forms.Form):
RECIPESAGE = 'RECIPESAGE'
DOMESTICA = 'DOMESTICA'
MEALMASTER = 'MEALMASTER'
MELARECIPES = 'MELARECIPES'
REZKONV = 'REZKONV'
OPENEATS = 'OPENEATS'
PLANTOEAT = 'PLANTOEAT'
COOKBOOKAPP = 'COOKBOOKAPP'
COPYMETHAT = 'COPYMETHAT'
COOKMATE = 'COOKMATE'
PDF = 'PDF'
type = forms.ChoiceField(choices=(
(DEFAULT, _('Default')), (PAPRIKA, 'Paprika'), (NEXTCLOUD, 'Nextcloud Cookbook'),
(MEALIE, 'Mealie'), (CHOWDOWN, 'Chowdown'), (SAFRON, 'Safron'), (CHEFTAP, 'ChefTap'),
(MEALIE, 'Mealie'), (CHOWDOWN, 'Chowdown'), (SAFFRON, 'Saffron'), (CHEFTAP, 'ChefTap'),
(PEPPERPLATE, 'Pepperplate'), (RECETTETEK, 'RecetteTek'), (RECIPESAGE, 'Recipe Sage'), (DOMESTICA, 'Domestica'),
(MEALMASTER, 'MealMaster'), (REZKONV, 'RezKonv'), (OPENEATS, 'Openeats'), (RECIPEKEEPER, 'Recipe Keeper'),
(PLANTOEAT, 'Plantoeat'), (COOKBOOKAPP, 'CookBookApp'),
(PLANTOEAT, 'Plantoeat'), (COOKBOOKAPP, 'CookBookApp'), (COPYMETHAT, 'CopyMeThat'), (PDF, 'PDF'), (MELARECIPES, 'Melarecipes'),
(COOKMATE, 'Cookmate')
))
@@ -153,8 +174,9 @@ class ImportForm(ImportExportBase):
class ExportForm(ImportExportBase):
recipes = forms.ModelMultipleChoiceField(widget=MultiSelectWidget, queryset=Recipe.objects.none())
recipes = forms.ModelMultipleChoiceField(widget=MultiSelectWidget, queryset=Recipe.objects.none(), required=False)
all = forms.BooleanField(required=False)
custom_filter = forms.IntegerField(required=False)
def __init__(self, *args, **kwargs):
space = kwargs.pop('space')
@@ -205,6 +227,7 @@ class StorageForm(forms.ModelForm):
}
# TODO: Deprecate
class RecipeBookEntryForm(forms.ModelForm):
prefix = 'bookmark'
@@ -237,7 +260,14 @@ class SyncForm(forms.ModelForm):
'storage': SafeModelChoiceField,
}
labels = {
'storage': _('Storage'),
'path': _('Path'),
'active': _('Active')
}
# TODO deprecate
class BatchEditForm(forms.Form):
search = forms.CharField(label=_('Search String'))
keywords = forms.ModelMultipleChoiceField(
@@ -274,6 +304,7 @@ class ImportRecipeForm(forms.ModelForm):
}
# TODO deprecate
class MealPlanForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
space = kwargs.pop('space')
@@ -300,9 +331,9 @@ class MealPlanForm(forms.ModelForm):
)
help_texts = {
'shared': _('You can list default users to share recipes with in the settings.'), # noqa: E501
'shared': _('You can list default users to share recipes with in the settings.'),
'note': _('You can use markdown to format this field. See the <a href="/docs/markdown/">docs here</a>')
# noqa: E501
}
widgets = {
@@ -325,7 +356,8 @@ class InviteLinkForm(forms.ModelForm):
def clean(self):
space = self.cleaned_data['space']
if space.max_users != 0 and (UserPreference.objects.filter(space=space).count() + InviteLink.objects.filter(space=space).count()) >= space.max_users:
if space.max_users != 0 and (UserPreference.objects.filter(space=space).count() +
InviteLink.objects.filter(valid_until__gte=datetime.today(), used_by=None, space=space).count()) >= space.max_users:
raise ValidationError(_('Maximum number of users for this space reached.'))
def clean_email(self):
@@ -340,7 +372,7 @@ class InviteLinkForm(forms.ModelForm):
model = InviteLink
fields = ('email', 'group', 'valid_until', 'space')
help_texts = {
'email': _('An email address is not required but if present the invite link will be send to the user.'),
'email': _('An email address is not required but if present the invite link will be sent to the user.'),
}
field_classes = {
'space': SafeModelChoiceField,
@@ -395,22 +427,31 @@ class UserCreateForm(forms.Form):
class SearchPreferenceForm(forms.ModelForm):
prefix = 'search'
trigram_threshold = forms.DecimalField(min_value=0.01, max_value=1, decimal_places=2, widget=NumberInput(attrs={'class': "form-control-range", 'type': 'range'}),
help_text=_('Determines how fuzzy a search is if it uses trigram similarity matching (e.g. low values mean more typos are ignored).'))
preset = forms.CharField(widget=forms.HiddenInput(),required=False)
trigram_threshold = forms.DecimalField(min_value=0.01, max_value=1, decimal_places=2,
widget=NumberInput(attrs={'class': "form-control-range", 'type': 'range'}),
help_text=_(
'Determines how fuzzy a search is if it uses trigram similarity matching (e.g. low values mean more typos are ignored).'))
preset = forms.CharField(widget=forms.HiddenInput(), required=False)
class Meta:
model = SearchPreference
fields = ('search', 'lookup', 'unaccent', 'icontains', 'istartswith', 'trigram', 'fulltext', 'trigram_threshold')
fields = (
'search', 'lookup', 'unaccent', 'icontains', 'istartswith', 'trigram', 'fulltext', 'trigram_threshold')
help_texts = {
'search': _('Select type method of search. Click <a href="/docs/search/">here</a> for full desciption of choices.'),
'search': _(
'Select type method of search. Click <a href="/docs/search/">here</a> for full description of choices.'),
'lookup': _('Use fuzzy matching on units, keywords and ingredients when editing and importing recipes.'),
'unaccent': _('Fields to search ignoring accents. Selecting this option can improve or degrade search quality depending on language'),
'icontains': _("Fields to search for partial matches. (e.g. searching for 'Pie' will return 'pie' and 'piece' and 'soapie')"),
'istartswith': _("Fields to search for beginning of word matches. (e.g. searching for 'sa' will return 'salad' and 'sandwich')"),
'trigram': _("Fields to 'fuzzy' search. (e.g. searching for 'recpie' will find 'recipe'.) Note: this option will conflict with 'web' and 'raw' methods of search."),
'fulltext': _("Fields to full text search. Note: 'web', 'phrase', and 'raw' search methods only function with fulltext fields."),
'unaccent': _(
'Fields to search ignoring accents. Selecting this option can improve or degrade search quality depending on language'),
'icontains': _(
"Fields to search for partial matches. (e.g. searching for 'Pie' will return 'pie' and 'piece' and 'soapie')"),
'istartswith': _(
"Fields to search for beginning of word matches. (e.g. searching for 'sa' will return 'salad' and 'sandwich')"),
'trigram': _(
"Fields to 'fuzzy' search. (e.g. searching for 'recpie' will find 'recipe'.) Note: this option will conflict with 'web' and 'raw' methods of search."),
'fulltext': _(
"Fields to full text search. Note: 'web', 'phrase', and 'raw' search methods only function with fulltext fields."),
}
labels = {
@@ -418,7 +459,7 @@ class SearchPreferenceForm(forms.ModelForm):
'lookup': _('Fuzzy Lookups'),
'unaccent': _('Ignore Accent'),
'icontains': _("Partial Match"),
'istartswith': _("Starts Wtih"),
'istartswith': _("Starts With"),
'trigram': _("Fuzzy Search"),
'fulltext': _("Full Text")
}
@@ -431,3 +472,73 @@ class SearchPreferenceForm(forms.ModelForm):
'trigram': MultiSelectWidget,
'fulltext': MultiSelectWidget,
}
class ShoppingPreferenceForm(forms.ModelForm):
prefix = 'shopping'
class Meta:
model = UserPreference
fields = (
'shopping_share', 'shopping_auto_sync', 'mealplan_autoadd_shopping', 'mealplan_autoexclude_onhand',
'mealplan_autoinclude_related', 'shopping_add_onhand', 'default_delay', 'filter_to_supermarket', 'shopping_recent_days', 'csv_delim', 'csv_prefix'
)
help_texts = {
'shopping_share': _('Users will see all items you add to your shopping list. They must add you to see items on their list.'),
'shopping_auto_sync': _(
'Setting to 0 will disable auto sync. When viewing a shopping list the list is updated every set seconds to sync changes someone else might have made. Useful when shopping with multiple people but might use a little bit '
'of mobile data. If lower than instance limit it is reset when saving.'
),
'mealplan_autoadd_shopping': _('Automatically add meal plan ingredients to shopping list.'),
'mealplan_autoinclude_related': _('When adding a meal plan to the shopping list (manually or automatically), include all related recipes.'),
'mealplan_autoexclude_onhand': _('When adding a meal plan to the shopping list (manually or automatically), exclude ingredients that are on hand.'),
'default_delay': _('Default number of hours to delay a shopping list entry.'),
'filter_to_supermarket': _('Filter shopping list to only include supermarket categories.'),
'shopping_recent_days': _('Days of recent shopping list entries to display.'),
'shopping_add_onhand': _("Mark food 'On Hand' when checked off shopping list."),
'csv_delim': _('Delimiter to use for CSV exports.'),
'csv_prefix': _('Prefix to add when copying list to the clipboard.'),
}
labels = {
'shopping_share': _('Share Shopping List'),
'shopping_auto_sync': _('Autosync'),
'mealplan_autoadd_shopping': _('Auto Add Meal Plan'),
'mealplan_autoexclude_onhand': _('Exclude On Hand'),
'mealplan_autoinclude_related': _('Include Related'),
'default_delay': _('Default Delay Hours'),
'filter_to_supermarket': _('Filter to Supermarket'),
'shopping_recent_days': _('Recent Days'),
'csv_delim': _('CSV Delimiter'),
"csv_prefix_label": _("List Prefix"),
'shopping_add_onhand': _("Auto On Hand"),
}
widgets = {
'shopping_share': MultiSelectWidget
}
class SpacePreferenceForm(forms.ModelForm):
prefix = 'space'
reset_food_inherit = forms.BooleanField(label=_("Reset Food Inheritance"), initial=False, required=False,
help_text=_("Reset all food to inherit the fields configured."))
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) # populates the post
self.fields['food_inherit'].queryset = Food.inheritable_fields
class Meta:
model = Space
fields = ('food_inherit', 'reset_food_inherit', 'show_facet_count')
help_texts = {
'food_inherit': _('Fields on food that should be inherited by default.'),
'show_facet_count': _('Show recipe counts on search filters'), }
widgets = {
'food_inherit': MultiSelectWidget
}

View File

@@ -14,7 +14,7 @@ class AllAuthCustomAdapter(DefaultAccountAdapter):
def is_open_for_signup(self, request):
"""
Whether to allow sign ups.
Whether to allow sign-ups.
"""
signup_token = False
if 'signup_token' in request.session and InviteLink.objects.filter(valid_until__gte=datetime.datetime.today(), used_by=None, uuid=request.session['signup_token']).exists():
@@ -31,7 +31,10 @@ class AllAuthCustomAdapter(DefaultAccountAdapter):
default = datetime.datetime.now()
c = caches['default'].get_or_set(email, default, timeout=360)
if c == default:
super(AllAuthCustomAdapter, self).send_mail(template_prefix, email, context)
try:
super(AllAuthCustomAdapter, self).send_mail(template_prefix, email, context)
except Exception: # dont fail signup just because confirmation mail could not be send
pass
else:
messages.add_message(self.request, messages.ERROR, _('In order to prevent spam, the requested email was not send. Please wait a few minutes and try again.'))
else:

View File

@@ -0,0 +1,13 @@
from django.db.models import Func
class Round(Func):
function = 'ROUND'
template = '%(function)s(%(expressions)s, 0)'
def str2bool(v):
if type(v) == bool or v is None:
return v
else:
return v.lower() in ("yes", "true", "1")

View File

@@ -10,4 +10,5 @@ def context_settings(request):
'TERMS_URL': settings.TERMS_URL,
'PRIVACY_URL': settings.PRIVACY_URL,
'IMPRINT_URL': settings.IMPRINT_URL,
'SHOPPING_MIN_AUTOSYNC_INTERVAL': settings.SHOPPING_MIN_AUTOSYNC_INTERVAL,
}

View File

@@ -5,7 +5,7 @@ from PIL import Image
from io import BytesIO
def rescale_image_jpeg(image_object, base_width=720):
def rescale_image_jpeg(image_object, base_width=1020):
img = Image.open(image_object)
icc_profile = img.info.get('icc_profile') # remember color profile to not mess up colors
width_percent = (base_width / float(img.size[0]))
@@ -13,20 +13,20 @@ def rescale_image_jpeg(image_object, base_width=720):
img = img.resize((base_width, height), Image.ANTIALIAS)
img_bytes = BytesIO()
img.save(img_bytes, 'JPEG', quality=75, optimize=True, icc_profile=icc_profile)
img.save(img_bytes, 'JPEG', quality=90, optimize=True, icc_profile=icc_profile)
return img_bytes
def rescale_image_png(image_object, base_width=720):
basewidth = 720
wpercent = (basewidth / float(image_object.size[0]))
def rescale_image_png(image_object, base_width=1020):
image_object = Image.open(image_object)
wpercent = (base_width / float(image_object.size[0]))
hsize = int((float(image_object.size[1]) * float(wpercent)))
img = image_object.resize((basewidth, hsize), Image.ANTIALIAS)
img = image_object.resize((base_width, hsize), Image.ANTIALIAS)
im_io = BytesIO()
img.save(im_io, 'PNG', quality=70)
return img
img.save(im_io, 'PNG', quality=90)
return im_io
def get_filetype(name):
@@ -36,10 +36,14 @@ def get_filetype(name):
return '.jpeg'
def handle_image(request, image_object, filetype='.jpeg'):
if sys.getsizeof(image_object) / 8 > 500:
if filetype == '.jpeg':
return rescale_image_jpeg(image_object), filetype
# TODO this whole file needs proper documentation, refactoring, and testing
# TODO also add env variable to define which images sizes should be compressed
# filetype argument can not be optional, otherwise this function will treat all images as if they were a jpeg
# Because it's no longer optional, no reason to return it
def handle_image(request, image_object, filetype):
if (image_object.size / 1000) > 500: # if larger than 500 kb compress
if filetype == '.jpeg' or filetype == '.jpg':
return rescale_image_jpeg(image_object)
if filetype == '.png':
return rescale_image_png(image_object), filetype
return image_object, filetype
return rescale_image_png(image_object)
return image_object

View File

@@ -4,7 +4,7 @@ import unicodedata
from django.core.cache import caches
from cookbook.models import Unit, Food, Automation
from cookbook.models import Unit, Food, Automation, Ingredient
class IngredientParser:
@@ -46,7 +46,7 @@ class IngredientParser:
def apply_food_automation(self, food):
"""
Apply food alias automations to passed foood
Apply food alias automations to passed food
:param food: unit as string
:return: food as string (possibly changed by automation)
"""
@@ -124,7 +124,7 @@ class IngredientParser:
def parse_amount(self, x):
amount = 0
unit = ''
unit = None
note = ''
did_check_frac = False
@@ -155,33 +155,36 @@ class IngredientParser:
except ValueError:
unit = x[end:]
if unit.startswith('(') or unit.startswith('-'): # i dont know any unit that starts with ( or - so its likely an alternative like 1L (500ml) Water or 2-3
unit = ''
if unit is not None and unit.strip() == '':
unit = None
if unit is not None and (unit.startswith('(') or unit.startswith('-')): # i dont know any unit that starts with ( or - so its likely an alternative like 1L (500ml) Water or 2-3
unit = None
note = x
return amount, unit, note
def parse_ingredient_with_comma(self, tokens):
ingredient = ''
def parse_food_with_comma(self, tokens):
food = ''
note = ''
start = 0
# search for first occurrence of an argument ending in a comma
while start < len(tokens) and not tokens[start].endswith(','):
start += 1
if start == len(tokens):
# no token ending in a comma found -> use everything as ingredient
ingredient = ' '.join(tokens)
# no token ending in a comma found -> use everything as food
food = ' '.join(tokens)
else:
ingredient = ' '.join(tokens[:start + 1])[:-1]
food = ' '.join(tokens[:start + 1])[:-1]
note = ' '.join(tokens[start + 1:])
return ingredient, note
return food, note
def parse_ingredient(self, tokens):
ingredient = ''
def parse_food(self, tokens):
food = ''
note = ''
if tokens[-1].endswith(')'):
# Check if the matching opening bracket is in the same token
if (not tokens[-1].startswith('(')) and ('(' in tokens[-1]):
return self.parse_ingredient_with_comma(tokens)
return self.parse_food_with_comma(tokens)
# last argument ends with closing bracket -> look for opening bracket
start = len(tokens) - 1
while not tokens[start].startswith('(') and not start == 0:
@@ -191,33 +194,51 @@ class IngredientParser:
raise ValueError
elif start < 0:
# no opening bracket anywhere -> just ignore the last bracket
ingredient, note = self.parse_ingredient_with_comma(tokens)
food, note = self.parse_food_with_comma(tokens)
else:
# opening bracket found -> split in ingredient and note, remove brackets from note # noqa: E501
# opening bracket found -> split in food and note, remove brackets from note # noqa: E501
note = ' '.join(tokens[start:])[1:-1]
ingredient = ' '.join(tokens[:start])
food = ' '.join(tokens[:start])
else:
ingredient, note = self.parse_ingredient_with_comma(tokens)
return ingredient, note
food, note = self.parse_food_with_comma(tokens)
return food, note
def parse(self, x):
def parse(self, ingredient):
"""
Main parsing function, takes an ingredient string (e.g. '1 l Water') and extracts amount, unit, food, ...
:param ingredient: string ingredient
:return: amount, unit (can be None), food, note (can be empty)
"""
# initialize default values
amount = 0
unit = ''
ingredient = ''
unit = None
food = ''
note = ''
unit_note = ''
if len(ingredient) == 0:
raise ValueError('string to parse cannot be empty')
# some people/languages put amount and unit at the end of the ingredient string
# if something like this is detected move it to the beginning so the parser can handle it
if len(ingredient) < 1000 and re.search(r'^([^\W\d_])+(.)*[1-9](\d)*\s*([^\W\d_])+', ingredient):
match = re.search(r'[1-9](\d)*\s*([^\W\d_])+', ingredient)
print(f'reording from {ingredient} to {ingredient[match.start():match.end()] + " " + ingredient.replace(ingredient[match.start():match.end()], "")}')
ingredient = ingredient[match.start():match.end()] + ' ' + ingredient.replace(ingredient[match.start():match.end()], '')
# if the string contains parenthesis early on remove it and place it at the end
# because its likely some kind of note
if re.match('(.){1,6}\s\((.[^\(\)])+\)\s', x):
match = re.search('\((.[^\(])+\)', x)
x = x[:match.start()] + x[match.end():] + ' ' + x[match.start():match.end()]
if re.match('(.){1,6}\s\((.[^\(\)])+\)\s', ingredient):
match = re.search('\((.[^\(])+\)', ingredient)
ingredient = ingredient[:match.start()] + ingredient[match.end():] + ' ' + ingredient[match.start():match.end()]
tokens = x.split()
# leading spaces before commas result in extra tokens, clean them out
ingredient = ingredient.replace(' ,', ',')
tokens = ingredient.split() # split at each space into tokens
if len(tokens) == 1:
# there only is one argument, that must be the ingredient
ingredient = tokens[0]
# there only is one argument, that must be the food
food = tokens[0]
else:
try:
# try to parse first argument as amount
@@ -227,48 +248,65 @@ class IngredientParser:
# a fraction for the amount
if len(tokens) > 2:
try:
if not unit == '':
if unit is not None:
# a unit is already found, no need to try the second argument for a fraction
# probably not the best method to do it, but I didn't want to make an if check and paste the exact same thing in the else as already is in the except # noqa: E501
# probably not the best method to do it, but I didn't want to make an if check and paste the exact same thing in the else as already is in the except
raise ValueError
# try to parse second argument as amount and add that, in case of '2 1/2' or '2 ½'
amount += self.parse_fraction(tokens[1])
# assume that units can't end with a comma
if len(tokens) > 3 and not tokens[2].endswith(','):
# try to use third argument as unit and everything else as ingredient, use everything as ingredient if it fails # noqa: E501
# try to use third argument as unit and everything else as food, use everything as food if it fails
try:
ingredient, note = self.parse_ingredient(tokens[3:])
food, note = self.parse_food(tokens[3:])
unit = tokens[2]
except ValueError:
ingredient, note = self.parse_ingredient(tokens[2:])
food, note = self.parse_food(tokens[2:])
else:
ingredient, note = self.parse_ingredient(tokens[2:])
food, note = self.parse_food(tokens[2:])
except ValueError:
# assume that units can't end with a comma
if not tokens[1].endswith(','):
# try to use second argument as unit and everything else as ingredient, use everything as ingredient if it fails # noqa: E501
# try to use second argument as unit and everything else as food, use everything as food if it fails
try:
ingredient, note = self.parse_ingredient(tokens[2:])
if unit == '':
food, note = self.parse_food(tokens[2:])
if unit is None:
unit = tokens[1]
else:
note = tokens[1]
except ValueError:
ingredient, note = self.parse_ingredient(tokens[1:])
food, note = self.parse_food(tokens[1:])
else:
ingredient, note = self.parse_ingredient(tokens[1:])
food, note = self.parse_food(tokens[1:])
else:
# only two arguments, first one is the amount
# which means this is the ingredient
ingredient = tokens[1]
# which means this is the food
food = tokens[1]
except ValueError:
try:
# can't parse first argument as amount
# -> no unit -> parse everything as ingredient
ingredient, note = self.parse_ingredient(tokens)
# -> no unit -> parse everything as food
food, note = self.parse_food(tokens)
except ValueError:
ingredient = ' '.join(tokens[1:])
food = ' '.join(tokens[1:])
if unit_note not in note:
note += ' ' + unit_note
return amount, self.apply_unit_automation(unit.strip()), self.apply_food_automation(ingredient.strip()), note.strip()
if unit:
unit = self.apply_unit_automation(unit.strip())
food = self.apply_food_automation(food.strip())
if len(food) > Food._meta.get_field('name').max_length: # test if food name is to long
# try splitting it at a space and taking only the first arg
if len(food.split()) > 1 and len(food.split()[0]) < Food._meta.get_field('name').max_length:
note = ' '.join(food.split()[1:]) + ' ' + note
food = food.split()[0]
else:
note = food + ' ' + note
food = food[:Food._meta.get_field('name').max_length]
if len(food.strip()) == 0:
raise ValueError(f'Error parsing string {ingredient}, food cannot be empty')
return amount, unit, food, note[:Ingredient._meta.get_field('note').max_length].strip()

View File

@@ -73,9 +73,9 @@ class UrlizePattern(markdown.inlinepatterns.Pattern):
class UrlizeExtension(markdown.Extension):
""" Urlize Extension for Python-Markdown. """
def extendMarkdown(self, md, md_globals):
def extendMarkdown(self, md):
""" Replace autolink with UrlizePattern """
md.inlinePatterns['autolink'] = UrlizePattern(URLIZE_RE, md)
md.inlinePatterns.register(UrlizePattern(URLIZE_RE, md), 'autolink', 120)
def makeExtension(*args, **kwargs):

View File

@@ -1,19 +1,20 @@
"""
Source: https://djangosnippets.org/snippets/1703/
"""
from django.conf import settings
from django.core.cache import caches
import inspect
from cookbook.models import ShareLink
from django.conf import settings
from django.contrib import messages
from django.contrib.auth.decorators import user_passes_test
from django.core.exceptions import ValidationError
from django.core.cache import cache
from django.core.exceptions import ValidationError, ObjectDoesNotExist
from django.http import HttpResponseRedirect
from django.urls import reverse, reverse_lazy
from django.utils.translation import gettext as _
from oauth2_provider.contrib.rest_framework import TokenHasScope, TokenHasReadWriteScope
from oauth2_provider.models import AccessToken
from rest_framework import permissions
from rest_framework.permissions import SAFE_METHODS
from cookbook.models import ShareLink, Recipe, UserSpace
def get_allowed_groups(groups_required):
"""
@@ -30,11 +31,12 @@ def get_allowed_groups(groups_required):
return groups_allowed
def has_group_permission(user, groups):
def has_group_permission(user, groups, no_cache=False):
"""
Tests if a given user is member of a certain group (or any higher group)
Superusers always bypass permission checks.
Unauthenticated users cant be member of any group thus always return false.
Unauthenticated users can't be member of any group thus always return false.
:param no_cache: (optional) do not return cached results, always check agains DB
:param user: django auth user object
:param groups: list or tuple of groups the user should be checked for
:return: True if user is in allowed groups, false otherwise
@@ -42,10 +44,24 @@ def has_group_permission(user, groups):
if not user.is_authenticated:
return False
groups_allowed = get_allowed_groups(groups)
CACHE_KEY = hash((inspect.stack()[0][3], (user.pk, user.username, user.email), groups_allowed))
if not no_cache:
cached_result = cache.get(CACHE_KEY, default=None)
if cached_result is not None:
return cached_result
result = False
print('running check', user, groups_allowed)
if user.is_authenticated:
if bool(user.groups.filter(name__in=groups_allowed)):
return True
return False
if user_space := user.userspace_set.filter(active=True):
if len(user_space) != 1:
result = False # do not allow any group permission if more than one space is active, needs to be changed when simultaneous multi-space-tenancy is added
elif bool(user_space.first().groups.filter(name__in=groups_allowed)):
result = True
cache.set(CACHE_KEY, result, timeout=10)
return result
def is_object_owner(user, obj):
@@ -53,7 +69,6 @@ def is_object_owner(user, obj):
Tests if a given user is the owner of a given object
test performed by checking user against the objects user
and create_by field (if exists)
superusers bypass all checks, unauthenticated users cannot own anything
:param user django auth user object
:param obj any object that should be tested
:return: true if user is owner of object, false otherwise
@@ -66,11 +81,25 @@ def is_object_owner(user, obj):
return False
def is_space_owner(user, obj):
"""
Tests if a given user is the owner the space of a given object
:param user django auth user object
:param obj any object that should be tested
:return: true if user is owner of the objects space, false otherwise
"""
if not user.is_authenticated:
return False
try:
return obj.get_space().get_owner() == user
except Exception:
return False
def is_object_shared(user, obj):
"""
Tests if a given user is shared for a given object
test performed by checking user against the objects shared table
superusers bypass all checks, unauthenticated users cannot own anything
:param user django auth user object
:param obj any object that should be tested
:return: true if user is shared for object, false otherwise
@@ -91,7 +120,7 @@ def share_link_valid(recipe, share):
"""
try:
CACHE_KEY = f'recipe_share_{recipe.pk}_{share}'
if c := caches['default'].get(CACHE_KEY, False):
if c := cache.get(CACHE_KEY, False):
return c
if link := ShareLink.objects.filter(recipe=recipe, uuid=share, abuse_blocked=False).first():
@@ -99,7 +128,7 @@ def share_link_valid(recipe, share):
return False
link.request_count += 1
link.save()
caches['default'].set(CACHE_KEY, True, timeout=3)
cache.set(CACHE_KEY, True, timeout=3)
return True
return False
except ValidationError:
@@ -166,7 +195,7 @@ class OwnerRequiredMixin(object):
try:
obj = self.get_object()
if obj.get_space() != request.space:
if not request.user.userspace.filter(space=obj.get_space()).exists():
messages.add_message(request, messages.ERROR,
_('You do not have the required permissions to view this page!'))
return HttpResponseRedirect(reverse_lazy('index'))
@@ -184,7 +213,7 @@ class CustomIsOwner(permissions.BasePermission):
verifies user has ownership over object
(either user or created_by or user is request user)
"""
message = _('You cannot interact with this object as it is not owned by you!') # noqa: E501
message = _('You cannot interact with this object as it is not owned by you!')
def has_permission(self, request, view):
return request.user.is_authenticated
@@ -193,6 +222,28 @@ class CustomIsOwner(permissions.BasePermission):
return is_object_owner(request.user, obj)
class CustomIsOwnerReadOnly(CustomIsOwner):
def has_permission(self, request, view):
return super().has_permission(request, view) and request.method in SAFE_METHODS
def has_object_permission(self, request, view, obj):
return super().has_object_permission(request, view) and request.method in SAFE_METHODS
class CustomIsSpaceOwner(permissions.BasePermission):
"""
Custom permission class for django rest framework views
verifies if the user is the owner of the space the object belongs to
"""
message = _('You cannot interact with this object as it is not owned by you!')
def has_permission(self, request, view):
return request.user.is_authenticated and request.space.created_by == request.user
def has_object_permission(self, request, view, obj):
return is_space_owner(request.user, obj)
# TODO function duplicate/too similar name
class CustomIsShared(permissions.BasePermission):
"""
@@ -205,6 +256,9 @@ class CustomIsShared(permissions.BasePermission):
return request.user.is_authenticated
def has_object_permission(self, request, view, obj):
# # temporary hack to make old shopping list work with new shopping list
# if obj.__class__.__name__ in ['ShoppingList', 'ShoppingListEntry']:
# return is_object_shared(request.user, obj) or obj.created_by in list(request.user.get_shopping_share())
return is_object_shared(request.user, obj)
@@ -259,3 +313,125 @@ class CustomIsShare(permissions.BasePermission):
if share:
return share_link_valid(obj, share)
return False
class CustomRecipePermission(permissions.BasePermission):
"""
Custom permission class for recipe api endpoint
"""
message = _('You do not have the required permissions to view this page!')
def has_permission(self, request, view): # user is either at least a guest or a share link is given and the request is safe
share = request.query_params.get('share', None)
return has_group_permission(request.user, ['guest']) or (share and request.method in SAFE_METHODS and 'pk' in view.kwargs)
def has_object_permission(self, request, view, obj):
share = request.query_params.get('share', None)
if share:
return share_link_valid(obj, share)
else:
if obj.private:
return ((obj.created_by == request.user) or (request.user in obj.shared.all())) and obj.space == request.space
else:
return has_group_permission(request.user, ['guest']) and obj.space == request.space
class CustomUserPermission(permissions.BasePermission):
"""
Custom permission class for user api endpoint
"""
message = _('You do not have the required permissions to view this page!')
def has_permission(self, request, view): # a space filtered user list is visible for everyone
return has_group_permission(request.user, ['guest'])
def has_object_permission(self, request, view, obj): # object write permissions are only available for user
if request.method in SAFE_METHODS and 'pk' in view.kwargs and has_group_permission(request.user, ['guest']) and request.space in obj.userspace_set.all():
return True
elif request.user == obj:
return True
else:
return False
class CustomTokenHasScope(TokenHasScope):
"""
Custom implementation of Django OAuth Toolkit TokenHasScope class
Only difference: if any other authentication method except OAuth2Authentication is used the scope check is ignored
IMPORTANT: do not use this class without any other permission class as it will not check anything besides token scopes
"""
def has_permission(self, request, view):
if type(request.auth) == AccessToken:
return super().has_permission(request, view)
else:
return request.user.is_authenticated
class CustomTokenHasReadWriteScope(TokenHasReadWriteScope):
"""
Custom implementation of Django OAuth Toolkit TokenHasReadWriteScope class
Only difference: if any other authentication method except OAuth2Authentication is used the scope check is ignored
IMPORTANT: do not use this class without any other permission class as it will not check anything besides token scopes
"""
def has_permission(self, request, view):
if type(request.auth) == AccessToken:
return super().has_permission(request, view)
else:
return True
def above_space_limit(space): # TODO add file storage limit
"""
Test if the space has reached any limit (e.g. max recipes, users, ..)
:param space: Space to test for limits
:return: Tuple (True if above or equal any limit else false, message)
"""
r_limit, r_msg = above_space_recipe_limit(space)
u_limit, u_msg = above_space_user_limit(space)
return r_limit or u_limit, (r_msg + ' ' + u_msg).strip()
def above_space_recipe_limit(space):
"""
Test if a space has reached its recipe limit
:param space: Space to test for limits
:return: Tuple (True if above or equal limit else false, message)
"""
limit = space.max_recipes != 0 and Recipe.objects.filter(space=space).count() >= space.max_recipes
if limit:
return True, _('You have reached the maximum number of recipes for your space.')
return False, ''
def above_space_user_limit(space):
"""
Test if a space has reached its user limit
:param space: Space to test for limits
:return: Tuple (True if above or equal limit else false, message)
"""
limit = space.max_users != 0 and UserSpace.objects.filter(space=space).count() > space.max_users
if limit:
return True, _('You have more users than allowed in your space.')
return False, ''
def switch_user_active_space(user, space):
"""
Switch the currently active space of a user by setting all spaces to inactive and activating the one passed
:param user: user to change active space for
:param space: space to activate user for
:return user space object or none if not found/no permission
"""
try:
us = UserSpace.objects.get(space=space, user=user)
if not us.active:
UserSpace.objects.filter(user=user).update(active=False)
us.active = True
us.save()
return us
else:
return us
except ObjectDoesNotExist:
return None

View File

@@ -1,193 +1,191 @@
import json
import re
# import json
# import re
# from json import JSONDecodeError
# from urllib.parse import unquote
from bs4 import BeautifulSoup
from bs4.element import Tag
from cookbook.helper import recipe_url_import as helper
from cookbook.helper.scrapers.scrapers import text_scraper
from json import JSONDecodeError
from recipe_scrapers._utils import get_host_name, normalize_string
from urllib.parse import unquote
# from bs4 import BeautifulSoup
# from bs4.element import Tag
# from recipe_scrapers import scrape_html, scrape_me
# from recipe_scrapers._exceptions import NoSchemaFoundInWildMode
# from recipe_scrapers._utils import get_host_name, normalize_string
# from cookbook.helper import recipe_url_import as helper
# from cookbook.helper.scrapers.scrapers import text_scraper
def get_recipe_from_source(text, url, request):
def build_node(k, v):
if isinstance(v, dict):
node = {
'name': k,
'value': k,
'children': get_children_dict(v)
}
elif isinstance(v, list):
node = {
'name': k,
'value': k,
'children': get_children_list(v)
}
else:
node = {
'name': k + ": " + normalize_string(str(v)),
'value': normalize_string(str(v))
}
return node
# def get_recipe_from_source(text, url, request):
# def build_node(k, v):
# if isinstance(v, dict):
# node = {
# 'name': k,
# 'value': k,
# 'children': get_children_dict(v)
# }
# elif isinstance(v, list):
# node = {
# 'name': k,
# 'value': k,
# 'children': get_children_list(v)
# }
# else:
# node = {
# 'name': k + ": " + normalize_string(str(v)),
# 'value': normalize_string(str(v))
# }
# return node
def get_children_dict(children):
kid_list = []
for k, v in children.items():
kid_list.append(build_node(k, v))
return kid_list
# def get_children_dict(children):
# kid_list = []
# for k, v in children.items():
# kid_list.append(build_node(k, v))
# return kid_list
def get_children_list(children):
kid_list = []
for kid in children:
if type(kid) == list:
node = {
'name': "unknown list",
'value': "unknown list",
'children': get_children_list(kid)
}
kid_list.append(node)
elif type(kid) == dict:
for k, v in kid.items():
kid_list.append(build_node(k, v))
else:
kid_list.append({
'name': normalize_string(str(kid)),
'value': normalize_string(str(kid))
})
return kid_list
# def get_children_list(children):
# kid_list = []
# for kid in children:
# if type(kid) == list:
# node = {
# 'name': "unknown list",
# 'value': "unknown list",
# 'children': get_children_list(kid)
# }
# kid_list.append(node)
# elif type(kid) == dict:
# for k, v in kid.items():
# kid_list.append(build_node(k, v))
# else:
# kid_list.append({
# 'name': normalize_string(str(kid)),
# 'value': normalize_string(str(kid))
# })
# return kid_list
recipe_json = {
'name': '',
'url': '',
'description': '',
'image': '',
'keywords': [],
'recipeIngredient': [],
'recipeInstructions': '',
'servings': '',
'prepTime': '',
'cookTime': ''
}
recipe_tree = []
parse_list = []
html_data = []
images = []
text = unquote(text)
# recipe_tree = []
# parse_list = []
# soup = BeautifulSoup(text, "html.parser")
# html_data = get_from_html(soup)
# images = get_images_from_source(soup, url)
# text = unquote(text)
# scrape = None
try:
parse_list.append(remove_graph(json.loads(text)))
if not url and 'url' in parse_list[0]:
url = parse_list[0]['url']
scrape = text_scraper("<script type='application/ld+json'>" + text + "</script>", url=url)
# if url and not text:
# try:
# scrape = scrape_me(url_path=url, wild_mode=True)
# except(NoSchemaFoundInWildMode):
# pass
except JSONDecodeError:
soup = BeautifulSoup(text, "html.parser")
html_data = get_from_html(soup)
images += get_images_from_source(soup, url)
for el in soup.find_all('script', type='application/ld+json'):
el = remove_graph(el)
if not url and 'url' in el:
url = el['url']
if type(el) == list:
for le in el:
parse_list.append(le)
elif type(el) == dict:
parse_list.append(el)
for el in soup.find_all(type='application/json'):
el = remove_graph(el)
if type(el) == list:
for le in el:
parse_list.append(le)
elif type(el) == dict:
parse_list.append(el)
scrape = text_scraper(text, url=url)
# if not scrape:
# try:
# parse_list.append(remove_graph(json.loads(text)))
# if not url and 'url' in parse_list[0]:
# url = parse_list[0]['url']
# scrape = text_scraper("<script type='application/ld+json'>" + text + "</script>", url=url)
recipe_json = helper.get_from_scraper(scrape, request)
# except JSONDecodeError:
# for el in soup.find_all('script', type='application/ld+json'):
# el = remove_graph(el)
# if not url and 'url' in el:
# url = el['url']
# if type(el) == list:
# for le in el:
# parse_list.append(le)
# elif type(el) == dict:
# parse_list.append(el)
# for el in soup.find_all(type='application/json'):
# el = remove_graph(el)
# if type(el) == list:
# for le in el:
# parse_list.append(le)
# elif type(el) == dict:
# parse_list.append(el)
# scrape = text_scraper(text, url=url)
for el in parse_list:
temp_tree = []
if isinstance(el, Tag):
try:
el = json.loads(el.string)
except TypeError:
continue
# recipe_json = helper.get_from_scraper(scrape, request)
for k, v in el.items():
if isinstance(v, dict):
node = {
'name': k,
'value': k,
'children': get_children_dict(v)
}
elif isinstance(v, list):
node = {
'name': k,
'value': k,
'children': get_children_list(v)
}
else:
node = {
'name': k + ": " + normalize_string(str(v)),
'value': normalize_string(str(v))
}
temp_tree.append(node)
# # TODO: DEPRECATE recipe_tree & html_data. first validate it isn't used anywhere
# for el in parse_list:
# temp_tree = []
# if isinstance(el, Tag):
# try:
# el = json.loads(el.string)
# except TypeError:
# continue
if '@type' in el and el['@type'] == 'Recipe':
recipe_tree += [{'name': 'ld+json', 'children': temp_tree}]
else:
recipe_tree += [{'name': 'json', 'children': temp_tree}]
# for k, v in el.items():
# if isinstance(v, dict):
# node = {
# 'name': k,
# 'value': k,
# 'children': get_children_dict(v)
# }
# elif isinstance(v, list):
# node = {
# 'name': k,
# 'value': k,
# 'children': get_children_list(v)
# }
# else:
# node = {
# 'name': k + ": " + normalize_string(str(v)),
# 'value': normalize_string(str(v))
# }
# temp_tree.append(node)
return recipe_json, recipe_tree, html_data, images
# if '@type' in el and el['@type'] == 'Recipe':
# recipe_tree += [{'name': 'ld+json', 'children': temp_tree}]
# else:
# recipe_tree += [{'name': 'json', 'children': temp_tree}]
# return recipe_json, recipe_tree, html_data, images
def get_from_html(soup):
INVISIBLE_ELEMS = ('style', 'script', 'head', 'title')
html = []
for s in soup.strings:
if ((s.parent.name not in INVISIBLE_ELEMS) and (len(s.strip()) > 0)):
html.append(s)
return html
# def get_from_html(soup):
# INVISIBLE_ELEMS = ('style', 'script', 'head', 'title')
# html = []
# for s in soup.strings:
# if ((s.parent.name not in INVISIBLE_ELEMS) and (len(s.strip()) > 0)):
# html.append(s)
# return html
def get_images_from_source(soup, url):
sources = ['src', 'srcset', 'data-src']
images = []
img_tags = soup.find_all('img')
if url:
site = get_host_name(url)
prot = url.split(':')[0]
# def get_images_from_source(soup, url):
# sources = ['src', 'srcset', 'data-src']
# images = []
# img_tags = soup.find_all('img')
# if url:
# site = get_host_name(url)
# prot = url.split(':')[0]
urls = []
for img in img_tags:
for src in sources:
try:
urls.append(img[src])
except KeyError:
pass
# urls = []
# for img in img_tags:
# for src in sources:
# try:
# urls.append(img[src])
# except KeyError:
# pass
for u in urls:
u = u.split('?')[0]
filename = re.search(r'/([\w_-]+[.](jpg|jpeg|gif|png))$', u)
if filename:
if (('http' not in u) and (url)):
# sometimes an image source can be relative
# if it is provide the base url
u = '{}://{}{}'.format(prot, site, u)
if 'http' in u:
images.append(u)
return images
# for u in urls:
# u = u.split('?')[0]
# filename = re.search(r'/([\w_-]+[.](jpg|jpeg|gif|png))$', u)
# if filename:
# if (('http' not in u) and (url)):
# # sometimes an image source can be relative
# # if it is provide the base url
# u = '{}://{}{}'.format(prot, site, u)
# if 'http' in u:
# images.append(u)
# return images
def remove_graph(el):
# recipes type might be wrapped in @graph type
if isinstance(el, Tag):
try:
el = json.loads(el.string)
if '@graph' in el:
for x in el['@graph']:
if '@type' in x and x['@type'] == 'Recipe':
el = x
except TypeError:
pass
return el
# def remove_graph(el):
# # recipes type might be wrapped in @graph type
# if isinstance(el, Tag):
# try:
# el = json.loads(el.string)
# if '@graph' in el:
# for x in el['@graph']:
# if '@type' in x and x['@type'] == 'Recipe':
# el = x
# except (TypeError, JSONDecodeError):
# pass
# return el

File diff suppressed because it is too large Load Diff

View File

@@ -1,20 +1,27 @@
import random
import re
from html import unescape
from unicodedata import decomposition
from django.utils.dateparse import parse_duration
from django.utils.translation import gettext as _
from isodate import parse_duration as iso_parse_duration
from isodate.isoerror import ISO8601Error
from pytube import YouTube
from recipe_scrapers._utils import get_host_name, get_minutes
from cookbook.helper import recipe_url_import as helper
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.models import Keyword
from django.utils.dateparse import parse_duration
from html import unescape
from recipe_scrapers._utils import get_minutes
# from recipe_scrapers._utils import get_minutes ## temporary until/unless upstream incorporates get_minutes() PR
def get_from_scraper(scrape, request):
# converting the scrape_me object to the existing json format based on ld+json
recipe_json = {}
try:
recipe_json['name'] = parse_name(scrape.title() or None)
recipe_json['name'] = parse_name(scrape.title()[:128] or None)
except Exception:
recipe_json['name'] = None
if not recipe_json['name']:
@@ -24,43 +31,46 @@ def get_from_scraper(scrape, request):
recipe_json['name'] = ''
try:
description = scrape.schema.data.get("description") or ''
description = scrape.description() or None
except Exception:
description = ''
recipe_json['description'] = parse_description(description)
try:
servings = scrape.yields() or None
except Exception:
servings = None
if not servings:
description = None
if not description:
try:
servings = scrape.schema.data.get('recipeYield') or 1
description = scrape.schema.data.get("description") or ''
except Exception:
servings = 1
if type(servings) != int:
description = ''
recipe_json['internal'] = True
try:
servings = scrape.schema.data.get('recipeYield') or 1 # dont use scrape.yields() as this will always return "x servings" or "x items", should be improved in scrapers directly
except Exception:
servings = 1
recipe_json['servings'] = parse_servings(servings)
recipe_json['servings_text'] = parse_servings_text(servings)
try:
recipe_json['working_time'] = get_minutes(scrape.prep_time()) or 0
except Exception:
try:
servings = int(re.findall(r'\b\d+\b', servings)[0])
recipe_json['working_time'] = get_minutes(scrape.schema.data.get("prepTime")) or 0
except Exception:
servings = 1
recipe_json['servings'] = max(servings, 1)
recipe_json['working_time'] = 0
try:
recipe_json['prepTime'] = get_minutes(scrape.schema.data.get("prepTime")) or 0
recipe_json['waiting_time'] = get_minutes(scrape.cook_time()) or 0
except Exception:
recipe_json['prepTime'] = 0
try:
recipe_json['cookTime'] = get_minutes(scrape.schema.data.get("cookTime")) or 0
except Exception:
recipe_json['cookTime'] = 0
if recipe_json['cookTime'] + recipe_json['prepTime'] == 0:
try:
recipe_json['prepTime'] = get_minutes(scrape.total_time()) or 0
recipe_json['waiting_time'] = get_minutes(scrape.schema.data.get("cookTime")) or 0
except Exception:
recipe_json['waiting_time'] = 0
if recipe_json['working_time'] + recipe_json['waiting_time'] == 0:
try:
recipe_json['working_time'] = get_minutes(scrape.total_time()) or 0
except Exception:
try:
get_minutes(scrape.schema.data.get("totalTime")) or 0
recipe_json['working_time'] = get_minutes(scrape.schema.data.get("totalTime")) or 0
except Exception:
pass
@@ -81,70 +91,123 @@ def get_from_scraper(scrape, request):
except Exception:
pass
try:
if scrape.schema.data.get('recipeCategory'):
keywords += listify_keywords(scrape.schema.data.get("recipeCategory"))
if scrape.category():
keywords += listify_keywords(scrape.category())
except Exception:
pass
try:
if scrape.schema.data.get('recipeCategory'):
keywords += listify_keywords(scrape.schema.data.get("recipeCategory"))
except Exception:
pass
try:
if scrape.schema.data.get('recipeCuisine'):
keywords += listify_keywords(scrape.schema.data.get("recipeCuisine"))
if scrape.cuisine():
keywords += listify_keywords(scrape.cuisine())
except Exception:
pass
try:
if scrape.schema.data.get('recipeCuisine'):
keywords += listify_keywords(scrape.schema.data.get("recipeCuisine"))
except Exception:
pass
try:
source_url = scrape.canonical_url()
except Exception:
try:
source_url = scrape.url
except Exception:
pass
if source_url:
recipe_json['source_url'] = source_url
try:
keywords.append(source_url.replace('http://', '').replace('https://', '').split('/')[0])
except Exception:
pass
try:
recipe_json['keywords'] = parse_keywords(list(set(map(str.casefold, keywords))), request.space)
except AttributeError:
recipe_json['keywords'] = keywords
ingredient_parser = IngredientParser(request, True)
recipe_json['steps'] = []
try:
for i in parse_instructions(scrape.instructions()):
recipe_json['steps'].append({'instruction': i, 'ingredients': [], })
except Exception:
pass
if len(recipe_json['steps']) == 0:
recipe_json['steps'].append({'instruction': '', 'ingredients': [], })
if len(parse_description(description)) > 256: # split at 256 as long descriptions dont look good on recipe cards
recipe_json['steps'][0]['instruction'] = f'*{parse_description(description)}* \n\n' + recipe_json['steps'][0]['instruction']
else:
recipe_json['description'] = parse_description(description)[:512]
try:
ingredients = []
for x in scrape.ingredients():
try:
amount, unit, ingredient, note = ingredient_parser.parse(x)
ingredients.append(
{
'amount': amount,
'unit': {
'text': unit,
'id': random.randrange(10000, 99999)
},
'ingredient': {
'text': ingredient,
'id': random.randrange(10000, 99999)
},
'note': note,
'original': x
}
)
ingredient = {
'amount': amount,
'food': {
'name': ingredient,
},
'unit': None,
'note': note,
'original_text': x
}
if unit:
ingredient['unit'] = {'name': unit, }
recipe_json['steps'][0]['ingredients'].append(ingredient)
except Exception:
ingredients.append(
recipe_json['steps'][0]['ingredients'].append(
{
'amount': 0,
'unit': {
'text': '',
'id': random.randrange(10000, 99999)
},
'ingredient': {
'text': x,
'id': random.randrange(10000, 99999)
'unit': None,
'food': {
'name': x,
},
'note': '',
'original': x
'original_text': x
}
)
recipe_json['recipeIngredient'] = ingredients
except Exception:
recipe_json['recipeIngredient'] = ingredients
pass
return recipe_json
def get_from_youtube_scraper(url, request):
"""A YouTube Information Scraper."""
kw, created = Keyword.objects.get_or_create(name='YouTube', space=request.space)
default_recipe_json = {
'name': '',
'internal': True,
'description': '',
'servings': 1,
'working_time': 0,
'waiting_time': 0,
'image': "",
'keywords': [{'name': kw.name, 'label': kw.name, 'id': kw.pk}],
'source_url': url,
'steps': [
{
'ingredients': [],
'instruction': ''
}
]
}
try:
recipe_json['recipeInstructions'] = parse_instructions(scrape.instructions())
video = YouTube(url=url)
default_recipe_json['name'] = video.title
default_recipe_json['image'] = video.thumbnail_url
default_recipe_json['steps'][0]['instruction'] = video.description
except Exception:
recipe_json['recipeInstructions'] = ""
pass
if scrape.url:
recipe_json['url'] = scrape.url
recipe_json['recipeInstructions'] += "\n\nImported from " + scrape.url
return recipe_json
return default_recipe_json
def parse_name(name):
@@ -156,102 +219,46 @@ def parse_name(name):
return normalize_string(name)
def parse_ingredients(ingredients):
# some pages have comma separated ingredients in a single array entry
try:
if type(ingredients[0]) == dict:
return ingredients
except (KeyError, IndexError):
pass
if (len(ingredients) == 1 and type(ingredients) == list):
ingredients = ingredients[0].split(',')
elif type(ingredients) == str:
ingredients = ingredients.split(',')
for x in ingredients:
if '\n' in x:
ingredients.remove(x)
for i in x.split('\n'):
ingredients.insert(0, i)
ingredient_list = []
for x in ingredients:
if x.replace(' ', '') != '':
x = x.replace('&frac12;', "0.5").replace('&frac14;', "0.25").replace('&frac34;', "0.75")
try:
amount, unit, ingredient, note = parse_single_ingredient(x)
if ingredient:
ingredient_list.append(
{
'amount': amount,
'unit': {
'text': unit,
'id': random.randrange(10000, 99999)
},
'ingredient': {
'text': ingredient,
'id': random.randrange(10000, 99999)
},
'note': note,
'original': x
}
)
except Exception:
ingredient_list.append(
{
'amount': 0,
'unit': {
'text': '',
'id': random.randrange(10000, 99999)
},
'ingredient': {
'text': x,
'id': random.randrange(10000, 99999)
},
'note': '',
'original': x
}
)
ingredients = ingredient_list
else:
ingredients = []
return ingredients
def parse_description(description):
return normalize_string(description)
def parse_instructions(instructions):
instruction_text = ''
# flatten instructions if they are in a list
if type(instructions) == list:
for i in instructions:
if type(i) == str:
instruction_text += i
else:
if 'text' in i:
instruction_text += i['text'] + '\n\n'
elif 'itemListElement' in i:
for ile in i['itemListElement']:
if type(ile) == str:
instruction_text += ile + '\n\n'
elif 'text' in ile:
instruction_text += ile['text'] + '\n\n'
else:
instruction_text += str(i)
instructions = instruction_text
normalized_string = normalize_string(instructions)
def clean_instruction_string(instruction):
normalized_string = normalize_string(instruction)
normalized_string = normalized_string.replace('\n', ' \n')
normalized_string = normalized_string.replace(' \n \n', '\n\n')
return normalized_string
def parse_instructions(instructions):
"""
Convert arbitrary instructions object from website import and turn it into a flat list of strings
:param instructions: any instructions object from import
:return: list of strings (from one to many elements depending on website)
"""
instruction_list = []
if type(instructions) == list:
for i in instructions:
if type(i) == str:
instruction_list.append(clean_instruction_string(i))
else:
if 'text' in i:
instruction_list.append(clean_instruction_string(i['text']))
elif 'itemListElement' in i:
for ile in i['itemListElement']:
if type(ile) == str:
instruction_list.append(clean_instruction_string(ile))
elif 'text' in ile:
instruction_list.append(clean_instruction_string(ile['text']))
else:
instruction_list.append(clean_instruction_string(str(i)))
else:
instruction_list.append(clean_instruction_string(instructions))
return instruction_list
def parse_image(image):
# check if list of images is returned, take first if so
if not image:
@@ -286,40 +293,31 @@ def parse_servings(servings):
return servings
def parse_cooktime(cooktime):
if type(cooktime) not in [int, float]:
def parse_servings_text(servings):
if type(servings) == str:
try:
cooktime = float(re.search(r'\d+', cooktime).group())
servings = re.sub("\d+", '', servings).strip()
except Exception:
servings = ''
return str(servings)[:32]
def parse_time(recipe_time):
if type(recipe_time) not in [int, float]:
try:
recipe_time = float(re.search(r'\d+', recipe_time).group())
except (ValueError, AttributeError):
try:
cooktime = round(iso_parse_duration(cooktime).seconds / 60)
recipe_time = round(iso_parse_duration(recipe_time).seconds / 60)
except ISO8601Error:
try:
if (type(cooktime) == list and len(cooktime) > 0):
cooktime = cooktime[0]
cooktime = round(parse_duration(cooktime).seconds / 60)
if (type(recipe_time) == list and len(recipe_time) > 0):
recipe_time = recipe_time[0]
recipe_time = round(parse_duration(recipe_time).seconds / 60)
except AttributeError:
cooktime = 0
recipe_time = 0
return cooktime
def parse_preptime(preptime):
if type(preptime) not in [int, float]:
try:
preptime = float(re.search(r'\d+', preptime).group())
except ValueError:
try:
preptime = round(iso_parse_duration(preptime).seconds / 60)
except ISO8601Error:
try:
if (type(preptime) == list and len(preptime) > 0):
preptime = preptime[0]
preptime = round(parse_duration(preptime).seconds / 60)
except AttributeError:
preptime = 0
return preptime
return recipe_time
def parse_keywords(keyword_json, space):
@@ -329,9 +327,9 @@ def parse_keywords(keyword_json, space):
kw = normalize_string(kw)
if len(kw) != 0:
if k := Keyword.objects.filter(name=kw, space=space).first():
keywords.append({'id': str(k.id), 'text': str(k)})
keywords.append({'label': str(k), 'name': k.name, 'id': k.id})
else:
keywords.append({'id': random.randrange(1111111, 9999999, 1), 'text': kw})
keywords.append({'label': kw, 'name': kw})
return keywords
@@ -369,3 +367,32 @@ def iso_duration_to_minutes(string):
string
).groupdict()
return int(match['days'] or 0) * 24 * 60 + int(match['hours'] or 0) * 60 + int(match['minutes'] or 0)
def get_images_from_soup(soup, url):
sources = ['src', 'srcset', 'data-src']
images = []
img_tags = soup.find_all('img')
if url:
site = get_host_name(url)
prot = url.split(':')[0]
urls = []
for img in img_tags:
for src in sources:
try:
urls.append(img[src])
except KeyError:
pass
for u in urls:
u = u.split('?')[0]
filename = re.search(r'/([\w_-]+[.](jpg|jpeg|gif|png))$', u)
if filename:
if (('http' not in u) and (url)):
# sometimes an image source can be relative
# if it is provide the base url
u = '{}://{}{}'.format(prot, site, u)
if 'http' in u:
images.append(u)
return images

View File

@@ -1,7 +1,12 @@
from django.urls import reverse
from django_scopes import scope, scopes_disabled
from oauth2_provider.contrib.rest_framework import OAuth2Authentication
from rest_framework.authentication import TokenAuthentication
from rest_framework.authtoken.models import Token
from rest_framework.exceptions import AuthenticationFailed
from cookbook.views import views
from recipes import settings
class ScopeMiddleware:
@@ -9,30 +14,57 @@ class ScopeMiddleware:
self.get_response = get_response
def __call__(self, request):
prefix = settings.JS_REVERSE_SCRIPT_PREFIX or ''
# need to disable scopes for writing requests into userpref and enable for loading ?
if request.path.startswith(prefix + '/api/user-preference/'):
with scopes_disabled():
return self.get_response(request)
if request.user.is_authenticated:
if request.path.startswith('/admin/'):
if request.path.startswith(prefix + '/admin/'):
with scopes_disabled():
return self.get_response(request)
if request.path.startswith('/signup/') or request.path.startswith('/invite/'):
if request.path.startswith(prefix + '/signup/') or request.path.startswith(prefix + '/invite/'):
return self.get_response(request)
if request.path.startswith('/accounts/'):
if request.path.startswith(prefix + '/accounts/'):
return self.get_response(request)
if request.path.startswith(prefix + '/switch-space/'):
return self.get_response(request)
with scopes_disabled():
if request.user.userpreference.space is None and not reverse('account_logout') in request.path:
return views.no_space(request)
if request.user.userspace_set.count() == 0 and not reverse('account_logout') in request.path:
return views.space_overview(request)
if request.user.groups.count() == 0 and not reverse('account_logout') in request.path:
# get active user space, if for some reason more than one space is active select first (group permission checks will fail, this is not intended at this point)
user_space = request.user.userspace_set.filter(active=True).first()
if not user_space:
return views.space_overview(request)
if user_space.groups.count() == 0 and not reverse('account_logout') in request.path:
return views.no_groups(request)
request.space = request.user.userpreference.space
request.space = user_space.space
# with scopes_disabled():
with scope(space=request.space):
return self.get_response(request)
else:
if request.path.startswith(prefix + '/api/'):
try:
if auth := OAuth2Authentication().authenticate(request):
user_space = auth[0].userspace_set.filter(active=True).first()
if user_space:
request.space = user_space.space
with scope(space=request.space):
return self.get_response(request)
except AuthenticationFailed:
pass
with scopes_disabled():
request.space = None
return self.get_response(request)

View File

@@ -1,5 +1,6 @@
from bs4 import BeautifulSoup
from json import JSONDecodeError
from bs4 import BeautifulSoup
from recipe_scrapers import SCRAPERS, get_host_name
from recipe_scrapers._factory import SchemaScraperFactory
from recipe_scrapers._schemaorg import SchemaOrg
@@ -26,17 +27,17 @@ def text_scraper(text, url=None):
class TextScraper(scraper_class):
def __init__(
self,
page_data,
url=None
html=None,
url=None,
):
self.wild_mode = False
self.meta_http_equiv = False
self.soup = BeautifulSoup(page_data, "html.parser")
self.soup = BeautifulSoup(html, "html.parser")
self.url = url
self.recipe = None
try:
self.schema = SchemaOrg(page_data)
self.schema = SchemaOrg(html)
except (JSONDecodeError, AttributeError):
pass
return TextScraper(text, url)
return TextScraper(url=url, html=text)

View File

@@ -0,0 +1,313 @@
from datetime import timedelta
from decimal import Decimal
from django.contrib.postgres.aggregates import ArrayAgg
from django.db.models import F, OuterRef, Q, Subquery, Value
from django.db.models.functions import Coalesce
from django.utils import timezone
from django.utils.translation import gettext as _
from cookbook.helper.HelperFunctions import Round, str2bool
from cookbook.models import (Ingredient, MealPlan, Recipe, ShoppingListEntry, ShoppingListRecipe,
SupermarketCategoryRelation)
from recipes import settings
def shopping_helper(qs, request):
supermarket = request.query_params.get('supermarket', None)
checked = request.query_params.get('checked', 'recent')
user = request.user
supermarket_order = [F('food__supermarket_category__name').asc(nulls_first=True), 'food__name']
# TODO created either scheduled task or startup task to delete very old shopping list entries
# TODO create user preference to define 'very old'
if supermarket:
supermarket_categories = SupermarketCategoryRelation.objects.filter(supermarket=supermarket, category=OuterRef('food__supermarket_category'))
qs = qs.annotate(supermarket_order=Coalesce(Subquery(supermarket_categories.values('order')), Value(9999)))
supermarket_order = ['supermarket_order'] + supermarket_order
if checked in ['false', 0, '0']:
qs = qs.filter(checked=False)
elif checked in ['true', 1, '1']:
qs = qs.filter(checked=True)
elif checked in ['recent']:
today_start = timezone.now().replace(hour=0, minute=0, second=0)
week_ago = today_start - timedelta(days=user.userpreference.shopping_recent_days)
qs = qs.filter(Q(checked=False) | Q(completed_at__gte=week_ago))
supermarket_order = ['checked'] + supermarket_order
return qs.distinct().order_by(*supermarket_order).select_related('unit', 'food', 'ingredient', 'created_by', 'list_recipe', 'list_recipe__mealplan', 'list_recipe__recipe')
class RecipeShoppingEditor():
def __init__(self, user, space, **kwargs):
self.created_by = user
self.space = space
self._kwargs = {**kwargs}
self.mealplan = self._kwargs.get('mealplan', None)
if type(self.mealplan) in [int, float]:
self.mealplan = MealPlan.objects.filter(id=self.mealplan, space=self.space)
self.id = self._kwargs.get('id', None)
self._shopping_list_recipe = self.get_shopping_list_recipe(self.id, self.created_by, self.space)
if self._shopping_list_recipe:
# created_by needs to be sticky to original creator as it is 'their' shopping list
# changing shopping list created_by can shift some items to new owner which may not share in the other direction
self.created_by = getattr(self._shopping_list_recipe.entries.first(), 'created_by', self.created_by)
self.recipe = getattr(self._shopping_list_recipe, 'recipe', None) or self._kwargs.get('recipe', None) or getattr(self.mealplan, 'recipe', None)
if type(self.recipe) in [int, float]:
self.recipe = Recipe.objects.filter(id=self.recipe, space=self.space)
try:
self.servings = float(self._kwargs.get('servings', None))
except (ValueError, TypeError):
self.servings = getattr(self._shopping_list_recipe, 'servings', None) or getattr(self.mealplan, 'servings', None) or getattr(self.recipe, 'servings', None)
@property
def _recipe_servings(self):
return getattr(self.recipe, 'servings', None) or getattr(getattr(self.mealplan, 'recipe', None), 'servings', None) or getattr(getattr(self._shopping_list_recipe, 'recipe', None), 'servings', None)
@property
def _servings_factor(self):
return Decimal(self.servings)/Decimal(self._recipe_servings)
@property
def _shared_users(self):
return [*list(self.created_by.get_shopping_share()), self.created_by]
@staticmethod
def get_shopping_list_recipe(id, user, space):
return ShoppingListRecipe.objects.filter(id=id).filter(Q(shoppinglist__space=space) | Q(entries__space=space)).filter(
Q(shoppinglist__created_by=user)
| Q(shoppinglist__shared=user)
| Q(entries__created_by=user)
| Q(entries__created_by__in=list(user.get_shopping_share()))
).prefetch_related('entries').first()
def get_recipe_ingredients(self, id, exclude_onhand=False):
if exclude_onhand:
return Ingredient.objects.filter(step__recipe__id=id, food__ignore_shopping=False, space=self.space).exclude(food__onhand_users__id__in=[x.id for x in self._shared_users])
else:
return Ingredient.objects.filter(step__recipe__id=id, food__ignore_shopping=False, space=self.space)
@property
def _include_related(self):
return self.created_by.userpreference.mealplan_autoinclude_related
@property
def _exclude_onhand(self):
return self.created_by.userpreference.mealplan_autoexclude_onhand
def create(self, **kwargs):
ingredients = kwargs.get('ingredients', None)
exclude_onhand = not ingredients and self._exclude_onhand
if servings := kwargs.get('servings', None):
self.servings = float(servings)
if mealplan := kwargs.get('mealplan', None):
self.mealplan = mealplan
self.recipe = mealplan.recipe
elif recipe := kwargs.get('recipe', None):
self.recipe = recipe
if not self.servings:
self.servings = getattr(self.mealplan, 'servings', None) or getattr(self.recipe, 'servings', 1.0)
self._shopping_list_recipe = ShoppingListRecipe.objects.create(recipe=self.recipe, mealplan=self.mealplan, servings=self.servings)
if ingredients:
self._add_ingredients(ingredients=ingredients)
else:
if self._include_related:
related = self.recipe.get_related_recipes()
self._add_ingredients(self.get_recipe_ingredients(self.recipe.id, exclude_onhand=exclude_onhand).exclude(food__recipe__in=related))
for r in related:
self._add_ingredients(self.get_recipe_ingredients(r.id, exclude_onhand=exclude_onhand).exclude(food__recipe__in=related))
else:
self._add_ingredients(self.get_recipe_ingredients(self.recipe.id, exclude_onhand=exclude_onhand))
return True
def add(self, **kwargs):
return
def edit(self, servings=None, ingredients=None, **kwargs):
if servings:
self.servings = servings
self._delete_ingredients(ingredients=ingredients)
if self.servings != self._shopping_list_recipe.servings:
self.edit_servings()
self._add_ingredients(ingredients=ingredients)
return True
def edit_servings(self, servings=None, **kwargs):
if servings:
self.servings = servings
if id := kwargs.get('id', None):
self._shopping_list_recipe = self.get_shopping_list_recipe(id, self.created_by, self.space)
if not self.servings:
raise ValueError(_("You must supply a servings size"))
if self._shopping_list_recipe.servings == self.servings:
return True
for sle in ShoppingListEntry.objects.filter(list_recipe=self._shopping_list_recipe):
sle.amount = sle.ingredient.amount * Decimal(self._servings_factor)
sle.save()
self._shopping_list_recipe.servings = self.servings
self._shopping_list_recipe.save()
return True
def delete(self, **kwargs):
try:
self._shopping_list_recipe.delete()
return True
except:
return False
def _add_ingredients(self, ingredients=None):
if not ingredients:
return
elif type(ingredients) == list:
ingredients = Ingredient.objects.filter(id__in=ingredients)
existing = self._shopping_list_recipe.entries.filter(ingredient__in=ingredients).values_list('ingredient__pk', flat=True)
add_ingredients = ingredients.exclude(id__in=existing)
for i in [x for x in add_ingredients if x.food]:
ShoppingListEntry.objects.create(
list_recipe=self._shopping_list_recipe,
food=i.food,
unit=i.unit,
ingredient=i,
amount=i.amount * Decimal(self._servings_factor),
created_by=self.created_by,
space=self.space,
)
# deletes shopping list entries not in ingredients list
def _delete_ingredients(self, ingredients=None):
if not ingredients:
return
to_delete = self._shopping_list_recipe.entries.exclude(ingredient__in=ingredients)
ShoppingListEntry.objects.filter(id__in=to_delete).delete()
self._shopping_list_recipe = self.get_shopping_list_recipe(self.id, self.created_by, self.space)
# # TODO refactor as class
# def list_from_recipe(list_recipe=None, recipe=None, mealplan=None, servings=None, ingredients=None, created_by=None, space=None, append=False):
# """
# Creates ShoppingListRecipe and associated ShoppingListEntrys from a recipe or a meal plan with a recipe
# :param list_recipe: Modify an existing ShoppingListRecipe
# :param recipe: Recipe to use as list of ingredients. One of [recipe, mealplan] are required
# :param mealplan: alternatively use a mealplan recipe as source of ingredients
# :param servings: Optional: Number of servings to use to scale shoppinglist. If servings = 0 an existing recipe list will be deleted
# :param ingredients: Ingredients, list of ingredient IDs to include on the shopping list. When not provided all ingredients will be used
# :param append: If False will remove any entries not included with ingredients, when True will append ingredients to the shopping list
# """
# r = recipe or getattr(mealplan, 'recipe', None) or getattr(list_recipe, 'recipe', None)
# if not r:
# raise ValueError(_("You must supply a recipe or mealplan"))
# created_by = created_by or getattr(ShoppingListEntry.objects.filter(list_recipe=list_recipe).first(), 'created_by', None)
# if not created_by:
# raise ValueError(_("You must supply a created_by"))
# try:
# servings = float(servings)
# except (ValueError, TypeError):
# servings = getattr(mealplan, 'servings', 1.0)
# servings_factor = servings / r.servings
# shared_users = list(created_by.get_shopping_share())
# shared_users.append(created_by)
# if list_recipe:
# created = False
# else:
# list_recipe = ShoppingListRecipe.objects.create(recipe=r, mealplan=mealplan, servings=servings)
# created = True
# related_step_ing = []
# if servings == 0 and not created:
# list_recipe.delete()
# return []
# elif ingredients:
# ingredients = Ingredient.objects.filter(pk__in=ingredients, space=space)
# else:
# ingredients = Ingredient.objects.filter(step__recipe=r, food__ignore_shopping=False, space=space)
# if exclude_onhand := created_by.userpreference.mealplan_autoexclude_onhand:
# ingredients = ingredients.exclude(food__onhand_users__id__in=[x.id for x in shared_users])
# if related := created_by.userpreference.mealplan_autoinclude_related:
# # TODO: add levels of related recipes (related recipes of related recipes) to use when auto-adding mealplans
# related_recipes = r.get_related_recipes()
# for x in related_recipes:
# # related recipe is a Step serving size is driven by recipe serving size
# # TODO once/if Steps can have a serving size this needs to be refactored
# if exclude_onhand:
# # if steps are used more than once in a recipe or subrecipe - I don' think this results in the desired behavior
# related_step_ing += Ingredient.objects.filter(step__recipe=x, space=space).exclude(food__onhand_users__id__in=[x.id for x in shared_users]).values_list('id', flat=True)
# else:
# related_step_ing += Ingredient.objects.filter(step__recipe=x, space=space).values_list('id', flat=True)
# x_ing = []
# if ingredients.filter(food__recipe=x).exists():
# for ing in ingredients.filter(food__recipe=x):
# if exclude_onhand:
# x_ing = Ingredient.objects.filter(step__recipe=x, food__ignore_shopping=False, space=space).exclude(food__onhand_users__id__in=[x.id for x in shared_users])
# else:
# x_ing = Ingredient.objects.filter(step__recipe=x, food__ignore_shopping=False, space=space).exclude(food__ignore_shopping=True)
# for i in [x for x in x_ing]:
# ShoppingListEntry.objects.create(
# list_recipe=list_recipe,
# food=i.food,
# unit=i.unit,
# ingredient=i,
# amount=i.amount * Decimal(servings_factor),
# created_by=created_by,
# space=space,
# )
# # dont' add food to the shopping list that are actually recipes that will be added as ingredients
# ingredients = ingredients.exclude(food__recipe=x)
# add_ingredients = list(ingredients.values_list('id', flat=True)) + related_step_ing
# if not append:
# existing_list = ShoppingListEntry.objects.filter(list_recipe=list_recipe)
# # delete shopping list entries not included in ingredients
# existing_list.exclude(ingredient__in=ingredients).delete()
# # add shopping list entries that did not previously exist
# add_ingredients = set(add_ingredients) - set(existing_list.values_list('ingredient__id', flat=True))
# add_ingredients = Ingredient.objects.filter(id__in=add_ingredients, space=space)
# # if servings have changed, update the ShoppingListRecipe and existing Entries
# if servings <= 0:
# servings = 1
# if not created and list_recipe.servings != servings:
# update_ingredients = set(ingredients.values_list('id', flat=True)) - set(add_ingredients.values_list('id', flat=True))
# list_recipe.servings = servings
# list_recipe.save()
# for sle in ShoppingListEntry.objects.filter(list_recipe=list_recipe, ingredient__id__in=update_ingredients):
# sle.amount = sle.ingredient.amount * Decimal(servings_factor)
# sle.save()
# # add any missing Entries
# for i in [x for x in add_ingredients if x.food]:
# ShoppingListEntry.objects.create(
# list_recipe=list_recipe,
# food=i.food,
# unit=i.unit,
# ingredient=i,
# amount=i.amount * Decimal(servings_factor),
# created_by=created_by,
# space=space,
# )
# # return all shopping list items
# return list_recipe

View File

@@ -1,10 +1,13 @@
from gettext import gettext as _
import bleach
import markdown as md
from bleach_allowlist import markdown_attrs, markdown_tags
from jinja2 import Template, TemplateSyntaxError, UndefinedError
from markdown.extensions.tables import TableExtension
from cookbook.helper.mdx_attributes import MarkdownFormatExtension
from cookbook.helper.mdx_urlize import UrlizeExtension
from jinja2 import Template, TemplateSyntaxError, UndefinedError
from gettext import gettext as _
class IngredientObject(object):
@@ -36,16 +39,16 @@ def render_instructions(step): # TODO deduplicate markdown cleanup code
instructions = step.instruction
tags = markdown_tags + [
'pre', 'table', 'td', 'tr', 'th', 'tbody', 'style', 'thead'
'pre', 'table', 'td', 'tr', 'th', 'tbody', 'style', 'thead', 'img'
]
parsed_md = md.markdown(
instructions,
extensions=[
'markdown.extensions.fenced_code', 'tables',
'markdown.extensions.fenced_code', TableExtension(),
UrlizeExtension(), MarkdownFormatExtension()
]
)
markdown_attrs['*'] = markdown_attrs['*'] + ['class']
markdown_attrs['*'] = markdown_attrs['*'] + ['class', 'width', 'height']
instructions = bleach.clean(parsed_md, tags, markdown_attrs)

View File

@@ -2,14 +2,14 @@ import re
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.integration.integration import Integration
from cookbook.models import Recipe, Step, Ingredient
from cookbook.models import Ingredient, Recipe, Step
class ChefTap(Integration):
def import_file_name_filter(self, zip_info_object):
print("testing", zip_info_object.filename)
return re.match(r'^cheftap_export/([A-Za-z\d\w\s-])+.txt$', zip_info_object.filename) or re.match(r'^([A-Za-z\d\w\s-])+.txt$', zip_info_object.filename)
return re.match(r'^cheftap_export/([A-Za-z\d\s\-_()\[\]\u00C0-\u017F])+.txt$', zip_info_object.filename) or re.match(r'^([A-Za-z\d\s\-_()\[\]\u00C0-\u017F])+.txt$', zip_info_object.filename)
def get_recipe_from_file(self, file):
source_url = ''
@@ -45,11 +45,11 @@ class ChefTap(Integration):
ingredient_parser = IngredientParser(self.request, True)
for ingredient in ingredients:
if len(ingredient.strip()) > 0:
amount, unit, ingredient, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(ingredient)
amount, unit, food, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(food)
u = ingredient_parser.get_unit(unit)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note, space=self.request.space,
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space,
))
recipe.steps.add(step)

View File

@@ -5,14 +5,14 @@ from zipfile import ZipFile
from cookbook.helper.image_processing import get_filetype
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.integration.integration import Integration
from cookbook.models import Recipe, Step, Ingredient, Keyword
from cookbook.models import Ingredient, Keyword, Recipe, Step
class Chowdown(Integration):
def import_file_name_filter(self, zip_info_object):
print("testing", zip_info_object.filename)
return re.match(r'^(_)*recipes/([A-Za-z\d\s-])+.md$', zip_info_object.filename)
return re.match(r'^(_)*recipes/([A-Za-z\d\s\-_()\[\]\u00C0-\u017F])+.md$', zip_info_object.filename)
def get_recipe_from_file(self, file):
ingredient_mode = False
@@ -60,12 +60,13 @@ class Chowdown(Integration):
ingredient_parser = IngredientParser(self.request, True)
for ingredient in ingredients:
amount, unit, ingredient, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(ingredient)
u = ingredient_parser.get_unit(unit)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note, space=self.request.space,
))
if len(ingredient.strip()) > 0:
amount, unit, food, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(food)
u = ingredient_parser.get_unit(unit)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space,
))
recipe.steps.add(step)
for f in self.files:

View File

@@ -2,17 +2,19 @@ import base64
import gzip
import json
import re
from gettext import gettext as _
from io import BytesIO
import requests
import validators
import yaml
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.helper.recipe_html_import import get_recipe_from_source
from cookbook.helper.recipe_url_import import iso_duration_to_minutes
from cookbook.helper.recipe_url_import import (get_from_scraper, get_images_from_soup,
iso_duration_to_minutes)
from cookbook.helper.scrapers.scrapers import text_scraper
from cookbook.integration.integration import Integration
from cookbook.models import Recipe, Step, Ingredient, Keyword
from gettext import gettext as _
from cookbook.models import Ingredient, Keyword, Recipe, Step
class CookBookApp(Integration):
@@ -23,7 +25,10 @@ class CookBookApp(Integration):
def get_recipe_from_file(self, file):
recipe_html = file.getvalue().decode("utf-8")
recipe_json, recipe_tree, html_data, images = get_recipe_from_source(recipe_html, 'CookBookApp', self.request)
# recipe_json, recipe_tree, html_data, images = get_recipe_from_source(recipe_html, 'CookBookApp', self.request)
scrape = text_scraper(text=recipe_html)
recipe_json = get_from_scraper(scrape, self.request)
images = list(dict.fromkeys(get_images_from_soup(scrape.soup, None)))
recipe = Recipe.objects.create(
name=recipe_json['name'].strip(),
@@ -41,7 +46,8 @@ class CookBookApp(Integration):
except Exception:
pass
step = Step.objects.create(instruction=recipe_json['recipeInstructions'], space=self.request.space, )
# assuming import files only contain single step
step = Step.objects.create(instruction=recipe_json['steps'][0]['instruction'], space=self.request.space, )
if 'nutrition' in recipe_json:
step.instruction = step.instruction + '\n\n' + recipe_json['nutrition']
@@ -50,17 +56,21 @@ class CookBookApp(Integration):
recipe.steps.add(step)
ingredient_parser = IngredientParser(self.request, True)
for ingredient in recipe_json['recipeIngredient']:
f = ingredient_parser.get_food(ingredient['ingredient']['text'])
u = ingredient_parser.get_unit(ingredient['unit']['text'])
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=ingredient['amount'], note=ingredient['note'], space=self.request.space,
))
for ingredient in recipe_json['steps'][0]['ingredients']:
f = ingredient_parser.get_food(ingredient['food']['name'])
u = None
if unit := ingredient.get('unit', None):
u = ingredient_parser.get_unit(unit.get('name', None))
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=ingredient.get('amount', None), note=ingredient.get('note', None), original_text=ingredient.get('original_text', None), space=self.request.space,
))
if len(images) > 0:
try:
response = requests.get(images[0])
self.import_recipe_image(recipe, BytesIO(response.content))
url = images[0]
if validators.url(url, public=True):
response = requests.get(url)
self.import_recipe_image(recipe, BytesIO(response.content))
except Exception as e:
print('failed to import image ', str(e))

View File

@@ -0,0 +1,88 @@
import base64
import json
from io import BytesIO
from gettext import gettext as _
import requests
import validators
from lxml import etree
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.helper.recipe_url_import import parse_servings, parse_time, parse_servings_text
from cookbook.integration.integration import Integration
from cookbook.models import Ingredient, Keyword, Recipe, Step
class Cookmate(Integration):
def import_file_name_filter(self, zip_info_object):
return zip_info_object.filename.endswith('.xml')
def get_files_from_recipes(self, recipes, el, cookie):
raise NotImplementedError('Method not implemented in storage integration')
def get_recipe_from_file(self, file):
recipe_xml = file
recipe = Recipe.objects.create(
name=recipe_xml.find('title').text.strip(),
created_by=self.request.user, internal=True, space=self.request.space)
if recipe_xml.find('preptime') is not None and recipe_xml.find('preptime').text is not None:
recipe.working_time = parse_time(recipe_xml.find('preptime').text.strip())
if recipe_xml.find('cooktime') is not None and recipe_xml.find('cooktime').text is not None:
recipe.waiting_time = parse_time(recipe_xml.find('cooktime').text.strip())
if recipe_xml.find('quantity') is not None and recipe_xml.find('quantity').text is not None:
recipe.servings = parse_servings(recipe_xml.find('quantity').text.strip())
recipe.servings_text = parse_servings_text(recipe_xml.find('quantity').text.strip())
if recipe_xml.find('url') is not None and recipe_xml.find('url').text is not None:
recipe.source_url = recipe_xml.find('url').text.strip()
if recipe_xml.find('description') is not None: # description is a list of <li>'s with text
if len(recipe_xml.find('description')) > 0:
recipe.description = recipe_xml.find('description')[0].text[:512]
if recipe_text := recipe_xml.find('recipetext'):
for step in recipe_text.getchildren():
if step.text:
step = Step.objects.create(
instruction=step.text.strip(), space=self.request.space,
)
recipe.steps.add(step)
ingredient_parser = IngredientParser(self.request, True)
if recipe_ingredients := recipe_xml.find('ingredient'):
ingredient_step = recipe.steps.first()
if ingredient_step is None:
ingredient_step = Step.objects.create(space=self.request.space, instruction='')
for ingredient in recipe_ingredients.getchildren():
if ingredient.text:
if ingredient.text.strip() != '':
amount, unit, food, note = ingredient_parser.parse(ingredient.text.strip())
f = ingredient_parser.get_food(food)
u = ingredient_parser.get_unit(unit)
ingredient_step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note, original_text=ingredient.text.strip(), space=self.request.space,
))
if recipe_xml.find('imageurl') is not None:
try:
url = recipe_xml.find('imageurl').text.strip()
if validators.url(url, public=True):
response = requests.get(url)
self.import_recipe_image(recipe, BytesIO(response.content))
except Exception as e:
print('failed to import image ', str(e))
recipe.save()
return recipe
def get_file_from_recipe(self, recipe):
raise NotImplementedError('Method not implemented in storage integration')

View File

@@ -0,0 +1,123 @@
import re
from io import BytesIO
from zipfile import ZipFile
from bs4 import BeautifulSoup, Tag
from django.utils.translation import gettext as _
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.helper.recipe_url_import import iso_duration_to_minutes, parse_servings
from cookbook.integration.integration import Integration
from cookbook.models import Ingredient, Keyword, Recipe, Step
from recipes.settings import DEBUG
class CopyMeThat(Integration):
def import_file_name_filter(self, zip_info_object):
if DEBUG:
print("testing", zip_info_object.filename, zip_info_object.filename == 'recipes.html')
return zip_info_object.filename == 'recipes.html'
def get_recipe_from_file(self, file):
# 'file' comes is as a beautifulsoup object
try:
source = file.find("a", {"id": "original_link"}).text
except AttributeError:
source = None
recipe = Recipe.objects.create(name=file.find("div", {"id": "name"}).text.strip()[:128], source_url=source, created_by=self.request.user, internal=True, space=self.request.space, )
for category in file.find_all("span", {"class": "recipeCategory"}):
keyword, created = Keyword.objects.get_or_create(name=category.text, space=self.request.space)
recipe.keywords.add(keyword)
try:
recipe.servings = parse_servings(file.find("a", {"id": "recipeYield"}).text.strip())
recipe.working_time = iso_duration_to_minutes(file.find("span", {"meta": "prepTime"}).text.strip())
recipe.waiting_time = iso_duration_to_minutes(file.find("span", {"meta": "cookTime"}).text.strip())
except AttributeError:
pass
try:
if len(file.find("span", {"id": "starred"}).text.strip()) > 0:
recipe.keywords.add(Keyword.objects.get_or_create(space=self.request.space, name=_('Favorite'))[0])
except AttributeError:
pass
try:
if len(file.find("span", {"id": "made_this"}).text.strip()) > 0:
recipe.keywords.add(Keyword.objects.get_or_create(space=self.request.space, name=_('I made this'))[0])
except AttributeError:
pass
step = Step.objects.create(instruction='', space=self.request.space, )
ingredient_parser = IngredientParser(self.request, True)
ingredients = file.find("ul", {"id": "recipeIngredients"})
if isinstance(ingredients, Tag):
for ingredient in ingredients.children:
if not isinstance(ingredient, Tag) or not ingredient.text.strip() or "recipeIngredient_spacer" in ingredient['class']:
continue
if any(x in ingredient['class'] for x in ["recipeIngredient_subheader", "recipeIngredient_note"]):
step.ingredients.add(Ingredient.objects.create(is_header=True, note=ingredient.text.strip()[:256], original_text=ingredient.text.strip(), space=self.request.space, ))
else:
amount, unit, food, note = ingredient_parser.parse(ingredient.text.strip())
f = ingredient_parser.get_food(food)
u = ingredient_parser.get_unit(unit)
step.ingredients.add(Ingredient.objects.create(food=f, unit=u, amount=amount, note=note, original_text=ingredient.text.strip(), space=self.request.space, ))
instructions = file.find("ol", {"id": "recipeInstructions"})
if isinstance(instructions, Tag):
for instruction in instructions.children:
if not isinstance(instruction, Tag) or instruction.text == "":
continue
if "instruction_subheader" in instruction['class']:
if step.instruction:
step.save()
recipe.steps.add(step)
step = Step.objects.create(instruction='', space=self.request.space, )
step.name = instruction.text.strip()[:128]
else:
step.instruction += instruction.text.strip() + ' \n\n'
notes = file.find_all("li", {"class": "recipeNote"})
if notes:
step.instruction += '*Notes:* \n\n'
for n in notes:
if n.text == "":
continue
step.instruction += '*' + n.text.strip() + '* \n\n'
description = ''
try:
description = file.find("div", {"id": "description"}).text.strip()
except AttributeError:
pass
if len(description) <= 512:
recipe.description = description
else:
recipe.description = description[:480] + ' ... (full description below)'
step.instruction += '*Description:* \n\n*' + description + '* \n\n'
step.save()
recipe.steps.add(step)
# import the Primary recipe image that is stored in the Zip
try:
for f in self.files:
if '.zip' in f['name']:
import_zip = ZipFile(f['file'])
self.import_recipe_image(recipe, BytesIO(import_zip.read(file.find("img", class_="recipeImage").get("src"))), filetype='.jpeg')
except Exception as e:
print(recipe.name, ': failed to import image ', str(e))
recipe.save()
return recipe
def split_recipe_file(self, file):
soup = BeautifulSoup(file, "html.parser")
return soup.find_all("div", {"class": "recipe"})

View File

@@ -1,5 +1,5 @@
import json
from io import BytesIO
from io import BytesIO, StringIO
from re import match
from zipfile import ZipFile
@@ -32,6 +32,39 @@ class Default(Integration):
return None
def get_file_from_recipe(self, recipe):
export = RecipeExportSerializer(recipe).data
return 'recipe.json', JSONRenderer().render(export).decode("utf-8")
def get_files_from_recipes(self, recipes, el, cookie):
export_zip_stream = BytesIO()
export_zip_obj = ZipFile(export_zip_stream, 'w')
for r in recipes:
if r.internal and r.space == self.request.space:
recipe_zip_stream = BytesIO()
recipe_zip_obj = ZipFile(recipe_zip_stream, 'w')
recipe_stream = StringIO()
filename, data = self.get_file_from_recipe(r)
recipe_stream.write(data)
recipe_zip_obj.writestr(filename, recipe_stream.getvalue())
recipe_stream.close()
try:
recipe_zip_obj.writestr(f'image{get_filetype(r.image.file.name)}', r.image.file.read())
except ValueError:
pass
recipe_zip_obj.close()
export_zip_obj.writestr(str(r.pk) + '.zip', recipe_zip_stream.getvalue())
el.exported_recipes += 1
el.msg += self.get_recipe_processed_msg(r)
el.save()
export_zip_obj.close()
return [[ self.get_export_file_name(), export_zip_stream.getvalue() ]]

View File

@@ -4,7 +4,7 @@ from io import BytesIO
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.integration.integration import Integration
from cookbook.models import Recipe, Step, Ingredient
from cookbook.models import Ingredient, Recipe, Step
class Domestica(Integration):
@@ -37,11 +37,11 @@ class Domestica(Integration):
ingredient_parser = IngredientParser(self.request, True)
for ingredient in file['ingredients'].split('\n'):
if len(ingredient.strip()) > 0:
amount, unit, ingredient, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(ingredient)
amount, unit, food, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(food)
u = ingredient_parser.get_unit(unit)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note, space=self.request.space,
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space,
))
recipe.steps.add(step)

View File

@@ -1,10 +1,16 @@
import time
import datetime
import json
import traceback
import uuid
from io import BytesIO, StringIO
from zipfile import ZipFile, BadZipFile
from zipfile import BadZipFile, ZipFile
import lxml
from django.core.cache import cache
import datetime
from bs4 import Tag
from django.core.exceptions import ObjectDoesNotExist
from django.core.files import File
from django.db import IntegrityError
@@ -12,11 +18,13 @@ from django.http import HttpResponse
from django.utils.formats import date_format
from django.utils.translation import gettext as _
from django_scopes import scope
from lxml import etree
from cookbook.forms import ImportExportBase
from cookbook.helper.image_processing import get_filetype
from cookbook.helper.image_processing import get_filetype, handle_image
from cookbook.models import Keyword, Recipe
from recipes.settings import DATABASES, DEBUG
from recipes.settings import DEBUG
from recipes.settings import EXPORT_FILE_CACHE_DURATION
class Integration:
@@ -35,13 +43,13 @@ class Integration:
self.export_type = export_type
self.ignored_recipes = []
description = f'Imported by {request.user.get_user_name()} at {date_format(datetime.datetime.now(), "DATETIME_FORMAT")}. Type: {export_type}'
description = f'Imported by {request.user.get_user_display_name()} at {date_format(datetime.datetime.now(), "DATETIME_FORMAT")}. Type: {export_type}'
icon = '📥'
try:
last_kw = Keyword.objects.filter(name__regex=r'^(Import [0-9]+)', space=request.space).latest('created_at')
name = f'Import {int(last_kw.name.replace("Import ", "")) + 1}'
except ObjectDoesNotExist:
except (ObjectDoesNotExist, ValueError):
name = 'Import 1'
parent, created = Keyword.objects.get_or_create(name='Import', space=request.space)
@@ -52,7 +60,7 @@ class Integration:
icon=icon,
space=request.space
)
except IntegrityError: # in case, for whatever reason, the name does exist append UUID to it. Not nice but works for now.
except (IntegrityError, ValueError): # in case, for whatever reason, the name does exist append UUID to it. Not nice but works for now.
self.keyword = parent.add_child(
name=f'{name} {str(uuid.uuid4())[0:8]}',
description=description,
@@ -60,49 +68,43 @@ class Integration:
space=request.space
)
def do_export(self, recipes):
"""
Perform the export based on a list of recipes
:param recipes: list of recipe objects
:return: HttpResponse with a ZIP file that is directly downloaded
"""
# TODO this is temporary, find a better solution for different export formats when doing other exporters
if self.export_type != ImportExportBase.RECIPESAGE:
export_zip_stream = BytesIO()
export_zip_obj = ZipFile(export_zip_stream, 'w')
for r in recipes:
if r.internal and r.space == self.request.space:
recipe_zip_stream = BytesIO()
recipe_zip_obj = ZipFile(recipe_zip_stream, 'w')
def do_export(self, recipes, el):
recipe_stream = StringIO()
filename, data = self.get_file_from_recipe(r)
recipe_stream.write(data)
recipe_zip_obj.writestr(filename, recipe_stream.getvalue())
recipe_stream.close()
try:
recipe_zip_obj.writestr(f'image{get_filetype(r.image.file.name)}', r.image.file.read())
except ValueError:
pass
with scope(space=self.request.space):
el.total_recipes = len(recipes)
el.cache_duration = EXPORT_FILE_CACHE_DURATION
el.save()
recipe_zip_obj.close()
export_zip_obj.writestr(str(r.pk) + '.zip', recipe_zip_stream.getvalue())
files = self.get_files_from_recipes(recipes, el, self.request.COOKIES)
export_zip_obj.close()
if len(files) == 1:
filename, file = files[0]
export_filename = filename
export_file = file
response = HttpResponse(export_zip_stream.getvalue(), content_type='application/force-download')
response['Content-Disposition'] = 'attachment; filename="export.zip"'
return response
else:
json_list = []
for r in recipes:
json_list.append(self.get_file_from_recipe(r))
else:
#zip the files if there is more then one file
export_filename = self.get_export_file_name()
export_stream = BytesIO()
export_obj = ZipFile(export_stream, 'w')
for filename, file in files:
export_obj.writestr(filename, file)
export_obj.close()
export_file = export_stream.getvalue()
cache.set('export_file_'+str(el.pk), {'filename': export_filename, 'file': export_file}, EXPORT_FILE_CACHE_DURATION)
el.running = False
el.save()
response = HttpResponse(export_file, content_type='application/force-download')
response['Content-Disposition'] = 'attachment; filename="' + export_filename + '"'
return response
response = HttpResponse(json.dumps(json_list), content_type='application/force-download')
response['Content-Disposition'] = 'attachment; filename="recipes.json"'
return response
def import_file_name_filter(self, zip_info_object):
"""
@@ -123,8 +125,6 @@ class Integration:
:return: HttpResponseRedirect to the recipe search showing all imported recipes
"""
with scope(space=self.request.space):
self.keyword.name = _('Import') + ' ' + str(il.pk)
self.keyword.save()
try:
self.files = files
@@ -142,12 +142,12 @@ class Integration:
for d in data_list:
recipe = self.get_recipe_from_file(d)
recipe.keywords.add(self.keyword)
il.msg += f'{recipe.pk} - {recipe.name} \n'
il.msg += self.get_recipe_processed_msg(recipe)
self.handle_duplicates(recipe, import_duplicates)
il.imported_recipes += 1
il.save()
import_zip.close()
elif '.zip' in f['name'] or '.paprikarecipes' in f['name']:
elif '.zip' in f['name'] or '.paprikarecipes' in f['name'] or '.mcb' in f['name']:
import_zip = ZipFile(f['file'])
file_list = []
for z in import_zip.filelist:
@@ -155,11 +155,26 @@ class Integration:
file_list.append(z)
il.total_recipes += len(file_list)
import cookbook
if isinstance(self, cookbook.integration.copymethat.CopyMeThat):
file_list = self.split_recipe_file(BytesIO(import_zip.read('recipes.html')))
il.total_recipes += len(file_list)
if isinstance(self, cookbook.integration.cookmate.Cookmate):
new_file_list = []
for file in file_list:
new_file_list += etree.parse(BytesIO(import_zip.read(file.filename))).getroot().getchildren()
il.total_recipes = len(new_file_list)
file_list = new_file_list
for z in file_list:
try:
recipe = self.get_recipe_from_file(BytesIO(import_zip.read(z.filename)))
if not hasattr(z, 'filename') or type(z) == Tag:
recipe = self.get_recipe_from_file(z)
else:
recipe = self.get_recipe_from_file(BytesIO(import_zip.read(z.filename)))
recipe.keywords.add(self.keyword)
il.msg += f'{recipe.pk} - {recipe.name} \n'
il.msg += self.get_recipe_processed_msg(recipe)
self.handle_duplicates(recipe, import_duplicates)
il.imported_recipes += 1
il.save()
@@ -167,14 +182,14 @@ class Integration:
traceback.print_exc()
self.handle_exception(e, log=il, message=f'-------------------- \nERROR \n{e}\n--------------------\n')
import_zip.close()
elif '.json' in f['name'] or '.txt' in f['name'] or '.mmf' in f['name']:
elif '.json' in f['name'] or '.txt' in f['name'] or '.mmf' in f['name'] or '.rk' in f['name'] or '.melarecipe' in f['name']:
data_list = self.split_recipe_file(f['file'])
il.total_recipes += len(data_list)
for d in data_list:
try:
recipe = self.get_recipe_from_file(d)
recipe.keywords.add(self.keyword)
il.msg += f'{recipe.pk} - {recipe.name} \n'
il.msg += self.get_recipe_processed_msg(recipe)
self.handle_duplicates(recipe, import_duplicates)
il.imported_recipes += 1
il.save()
@@ -191,7 +206,7 @@ class Integration:
try:
recipe = self.get_recipe_from_file(d)
recipe.keywords.add(self.keyword)
il.msg += f'{recipe.pk} - {recipe.name} \n'
il.msg += self.get_recipe_processed_msg(recipe)
self.handle_duplicates(recipe, import_duplicates)
il.imported_recipes += 1
il.save()
@@ -201,7 +216,7 @@ class Integration:
else:
recipe = self.get_recipe_from_file(f['file'])
recipe.keywords.add(self.keyword)
il.msg += f'{recipe.pk} - {recipe.name} \n'
il.msg += self.get_recipe_processed_msg(recipe)
self.handle_duplicates(recipe, import_duplicates)
except BadZipFile:
il.msg += 'ERROR ' + _(
@@ -231,15 +246,14 @@ class Integration:
self.ignored_recipes.append(recipe.name)
recipe.delete()
@staticmethod
def import_recipe_image(recipe, image_file, filetype='.jpeg'):
def import_recipe_image(self, recipe, image_file, filetype='.jpeg'):
"""
Adds an image to a recipe naming it correctly
:param recipe: Recipe object
:param image_file: ByteIO stream containing the image
:param filetype: type of file to write bytes to, default to .jpeg if unknown
"""
recipe.image = File(image_file, name=f'{uuid.uuid4()}_{recipe.pk}{filetype}')
recipe.image = File(handle_image(self.request, File(image_file, name='image'), filetype=filetype), name=f'{uuid.uuid4()}_{recipe.pk}{filetype}')
recipe.save()
def get_recipe_from_file(self, file):
@@ -269,6 +283,16 @@ class Integration:
"""
raise NotImplementedError('Method not implemented in integration')
def get_files_from_recipes(self, recipes, el, cookie):
"""
Takes a list of recipe object and converts it to a array containing each file.
Each file is represented as an array [filename, data] where data is a string of the content of the file.
:param recipe: Recipe object that should be converted
:returns:
[[filename, data], ...]
"""
raise NotImplementedError('Method not implemented in integration')
@staticmethod
def handle_exception(exception, log=None, message=''):
if log:
@@ -278,3 +302,10 @@ class Integration:
log.msg += exception.msg
if DEBUG:
traceback.print_exc()
def get_export_file_name(self, format='zip'):
return "export_{}.{}".format(datetime.datetime.now().strftime("%Y-%m-%d"), format)
def get_recipe_processed_msg(self, recipe):
return f'{recipe.pk} - {recipe.name} \n'

View File

@@ -6,13 +6,13 @@ from zipfile import ZipFile
from cookbook.helper.image_processing import get_filetype
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.integration.integration import Integration
from cookbook.models import Recipe, Step, Ingredient
from cookbook.models import Ingredient, Recipe, Step
class Mealie(Integration):
def import_file_name_filter(self, zip_info_object):
return re.match(r'^recipes/([A-Za-z\d-])+/([A-Za-z\d-])+.json$', zip_info_object.filename)
return re.match(r'^recipes/([A-Za-z\d\s\-_()\[\]\u00C0-\u017F])+/([A-Za-z\d\s\-_()\[\]\u00C0-\u017F])+.json$', zip_info_object.filename)
def get_recipe_from_file(self, file):
recipe_json = json.loads(file.getvalue().decode("utf-8"))
@@ -45,12 +45,14 @@ class Mealie(Integration):
u = ingredient_parser.get_unit(ingredient['unit'])
amount = ingredient['quantity']
note = ingredient['note']
original_text = None
else:
amount, unit, ingredient, note = ingredient_parser.parse(ingredient['note'])
f = ingredient_parser.get_food(ingredient)
amount, unit, food, note = ingredient_parser.parse(ingredient['note'])
f = ingredient_parser.get_food(food)
u = ingredient_parser.get_unit(unit)
original_text = ingredient['note']
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note, space=self.request.space,
food=f, unit=u, amount=amount, note=note, original_text=original_text, space=self.request.space,
))
except Exception:
pass
@@ -60,7 +62,8 @@ class Mealie(Integration):
if '.zip' in f['name']:
import_zip = ZipFile(f['file'])
try:
self.import_recipe_image(recipe, BytesIO(import_zip.read(f'recipes/{recipe_json["slug"]}/images/min-original.webp')), filetype=get_filetype(f'recipes/{recipe_json["slug"]}/images/original'))
self.import_recipe_image(recipe, BytesIO(import_zip.read(f'recipes/{recipe_json["slug"]}/images/min-original.webp')),
filetype=get_filetype(f'recipes/{recipe_json["slug"]}/images/original'))
except Exception:
pass

View File

@@ -2,7 +2,7 @@ import re
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.integration.integration import Integration
from cookbook.models import Recipe, Step, Ingredient, Keyword
from cookbook.models import Ingredient, Keyword, Recipe, Step
class MealMaster(Integration):
@@ -45,11 +45,11 @@ class MealMaster(Integration):
ingredient_parser = IngredientParser(self.request, True)
for ingredient in ingredients:
if len(ingredient.strip()) > 0:
amount, unit, ingredient, note = ingredient_parser.parse(ingredient)
amount, unit, food, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(ingredient)
u = ingredient_parser.get_unit(unit)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note, space=self.request.space,
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space,
))
recipe.steps.add(step)
@@ -63,7 +63,7 @@ class MealMaster(Integration):
current_recipe = ''
for fl in file.readlines():
line = fl.decode("ANSI")
line = fl.decode("windows-1250")
if (line.startswith('MMMMM') or line.startswith('-----')) and 'meal-master' in line.lower():
if current_recipe != '':
recipe_list.append(current_recipe)

View File

@@ -0,0 +1,83 @@
import base64
import json
from io import BytesIO
from gettext import gettext as _
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.helper.recipe_url_import import parse_servings, parse_time
from cookbook.integration.integration import Integration
from cookbook.models import Ingredient, Keyword, Recipe, Step
class MelaRecipes(Integration):
def split_recipe_file(self, file):
return [json.loads(file.getvalue().decode("utf-8"))]
def get_files_from_recipes(self, recipes, el, cookie):
raise NotImplementedError('Method not implemented in storage integration')
def get_recipe_from_file(self, file):
recipe_json = file
recipe = Recipe.objects.create(
name=recipe_json['title'].strip(),
created_by=self.request.user, internal=True, space=self.request.space)
if 'yield' in recipe_json:
recipe.servings = parse_servings(recipe_json['yield'])
if 'cookTime' in recipe_json:
recipe.waiting_time = parse_time(recipe_json['cookTime'])
if 'prepTime' in recipe_json:
recipe.working_time = parse_time(recipe_json['prepTime'])
if 'favorite' in recipe_json and recipe_json['favorite']:
recipe.keywords.add(Keyword.objects.get_or_create(space=self.request.space, name=_('Favorite'))[0])
if 'categories' in recipe_json:
try:
for x in recipe_json['categories']:
recipe.keywords.add(Keyword.objects.get_or_create(space=self.request.space, name=x)[0])
except Exception:
pass
instruction = ''
if 'text' in recipe_json:
instruction += f'*{recipe_json["text"].strip()}* \n'
if 'instructions' in recipe_json:
instruction += recipe_json["instructions"].strip() + ' \n'
if 'notes' in recipe_json:
instruction += recipe_json["notes"].strip() + ' \n'
if 'link' in recipe_json:
recipe.source_url = recipe_json['link']
step = Step.objects.create(
instruction=instruction, space=self.request.space,
)
ingredient_parser = IngredientParser(self.request, True)
for ingredient in recipe_json['ingredients'].split('\n'):
if ingredient.strip() != '':
amount, unit, food, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(food)
u = ingredient_parser.get_unit(unit)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space,
))
recipe.steps.add(step)
if recipe_json.get("images", None):
try:
self.import_recipe_image(recipe, BytesIO(base64.b64decode(recipe_json['images'][0])), filetype='.jpeg')
except Exception:
pass
return recipe
def get_file_from_recipe(self, recipe):
raise NotImplementedError('Method not implemented in storage integration')

View File

@@ -5,8 +5,9 @@ from zipfile import ZipFile
from cookbook.helper.image_processing import get_filetype
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.helper.recipe_url_import import iso_duration_to_minutes
from cookbook.integration.integration import Integration
from cookbook.models import Recipe, Step, Ingredient
from cookbook.models import Ingredient, Keyword, Recipe, Step
class NextcloudCookbook(Integration):
@@ -24,9 +25,28 @@ class NextcloudCookbook(Integration):
created_by=self.request.user, internal=True,
servings=recipe_json['recipeYield'], space=self.request.space)
# TODO parse times (given in PT2H3M )
# @vabene check recipe_url_import.iso_duration_to_minutes I think it does what you are looking for
# TODO parse keywords
try:
recipe.working_time = iso_duration_to_minutes(recipe_json['prepTime'])
recipe.waiting_time = iso_duration_to_minutes(recipe_json['cookTime'])
except Exception:
pass
if 'url' in recipe_json:
recipe.source_url = recipe_json['url'].strip()
if 'recipeCategory' in recipe_json:
try:
recipe.keywords.add(Keyword.objects.get_or_create(space=self.request.space, name=recipe_json['recipeCategory'])[0])
except Exception:
pass
if 'keywords' in recipe_json:
try:
for x in recipe_json['keywords'].split(','):
if x.strip() != '':
recipe.keywords.add(Keyword.objects.get_or_create(space=self.request.space, name=x)[0])
except Exception:
pass
ingredients_added = False
for s in recipe_json['recipeInstructions']:
@@ -41,19 +61,28 @@ class NextcloudCookbook(Integration):
ingredient_parser = IngredientParser(self.request, True)
for ingredient in recipe_json['recipeIngredient']:
amount, unit, ingredient, note = parse(ingredient)
f = get_food(ingredient, self.request.space)
u = get_unit(unit, self.request.space)
amount, unit, food, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(food)
u = ingredient_parser.get_unit(unit)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note, space=self.request.space,
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space,
))
recipe.steps.add(step)
if 'nutrition' in recipe_json:
try:
recipe.nutrition.calories = recipe_json['nutrition']['calories'].replace(' kcal', '').replace(' ', '')
recipe.nutrition.proteins = recipe_json['nutrition']['calories'].replace(' g', '').replace(',', '.').replace(' ', '')
recipe.nutrition.fats = recipe_json['nutrition']['calories'].replace(' g', '').replace(',', '.').replace(' ', '')
recipe.nutrition.carbohydrates = recipe_json['nutrition']['calories'].replace(' g', '').replace(',', '.').replace(' ', '')
except Exception:
pass
for f in self.files:
if '.zip' in f['name']:
import_zip = ZipFile(f['file'])
for z in import_zip.filelist:
if re.match(f'^Recipes/{recipe.name}/full.jpg$', z.filename):
if re.match(f'^(.)+{recipe.name}/full.jpg$', z.filename):
self.import_recipe_image(recipe, BytesIO(import_zip.read(z.filename)), filetype=get_filetype(z.filename))
return recipe

View File

@@ -2,7 +2,7 @@ import json
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.integration.integration import Integration
from cookbook.models import Recipe, Step, Ingredient
from cookbook.models import Ingredient, Recipe, Step
class OpenEats(Integration):

View File

@@ -2,12 +2,13 @@ import base64
import gzip
import json
import re
from gettext import gettext as _
from io import BytesIO
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.helper.recipe_url_import import parse_servings, parse_servings_text
from cookbook.integration.integration import Integration
from cookbook.models import Recipe, Step, Ingredient, Keyword
from gettext import gettext as _
from cookbook.models import Ingredient, Keyword, Recipe, Step
class Paprika(Integration):
@@ -26,10 +27,9 @@ class Paprika(Integration):
recipe.description = '' if len(recipe_json['description'].strip()) > 500 else recipe_json['description'].strip()
try:
if re.match(r'([0-9])+\s(.)*', recipe_json['servings']):
s = recipe_json['servings'].split(' ')
recipe.servings = s[0]
recipe.servings_text = s[1]
if 'servings' in recipe_json:
recipe.servings = parse_servings(recipe_json['servings'])
recipe.servings_text = parse_servings_text(recipe_json['servings'])
if len(recipe_json['cook_time'].strip()) > 0:
recipe.waiting_time = re.findall(r'\d+', recipe_json['cook_time'])[0]
@@ -70,11 +70,11 @@ class Paprika(Integration):
try:
for ingredient in recipe_json['ingredients'].split('\n'):
if len(ingredient.strip()) > 0:
amount, unit, ingredient, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(ingredient)
amount, unit, food, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(food)
u = ingredient_parser.get_unit(unit)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note, space=self.request.space,
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space,
))
except AttributeError:
pass

View File

@@ -0,0 +1,69 @@
import json
from io import BytesIO
from re import match
from zipfile import ZipFile
import asyncio
from pyppeteer import launch
from rest_framework.renderers import JSONRenderer
from cookbook.helper.image_processing import get_filetype
from cookbook.integration.integration import Integration
from cookbook.serializer import RecipeExportSerializer
from cookbook.models import ExportLog
from asgiref.sync import sync_to_async
import django.core.management.commands.runserver as runserver
import logging
class PDFexport(Integration):
def get_recipe_from_file(self, file):
raise NotImplementedError('Method not implemented in storage integration')
async def get_files_from_recipes_async(self, recipes, el, cookie):
cmd = runserver.Command()
browser = await launch(
handleSIGINT=False,
handleSIGTERM=False,
handleSIGHUP=False,
ignoreHTTPSErrors=True,
)
cookies = {'domain': cmd.default_addr, 'name': 'sessionid', 'value': cookie['sessionid'], }
options = {'format': 'letter',
'margin': {
'top': '0.75in',
'bottom': '0.75in',
'left': '0.75in',
'right': '0.75in',
}
}
files = []
for recipe in recipes:
page = await browser.newPage()
await page.emulateMedia('print')
await page.setCookie(cookies)
await page.goto('http://'+cmd.default_addr+':'+cmd.default_port+'/view/recipe/'+str(recipe.id), {'waitUntil': 'domcontentloaded'})
await page.waitForSelector('#printReady');
files.append([recipe.name + '.pdf', await page.pdf(options)])
await page.close();
el.exported_recipes += 1
el.msg += self.get_recipe_processed_msg(recipe)
await sync_to_async(el.save, thread_sensitive=True)()
await browser.close()
return files
def get_files_from_recipes(self, recipes, el, cookie):
return asyncio.run(self.get_files_from_recipes_async(recipes, el, cookie))

View File

@@ -1,6 +1,6 @@
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.integration.integration import Integration
from cookbook.models import Recipe, Step, Ingredient
from cookbook.models import Ingredient, Recipe, Step
class Pepperplate(Integration):
@@ -41,11 +41,11 @@ class Pepperplate(Integration):
ingredient_parser = IngredientParser(self.request, True)
for ingredient in ingredients:
if len(ingredient.strip()) > 0:
amount, unit, ingredient, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(ingredient)
amount, unit, food, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(food)
u = ingredient_parser.get_unit(unit)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note, space=self.request.space,
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space,
))
recipe.steps.add(step)

View File

@@ -4,7 +4,7 @@ import requests
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.integration.integration import Integration
from cookbook.models import Recipe, Step, Ingredient, Keyword
from cookbook.models import Ingredient, Keyword, Recipe, Step
class Plantoeat(Integration):
@@ -49,6 +49,7 @@ class Plantoeat(Integration):
)
if tags:
tags = tags.replace('^',',')
for k in tags.split(','):
keyword, created = Keyword.objects.get_or_create(name=k.strip(), space=self.request.space)
recipe.keywords.add(keyword)
@@ -56,11 +57,11 @@ class Plantoeat(Integration):
ingredient_parser = IngredientParser(self.request, True)
for ingredient in ingredients:
if len(ingredient.strip()) > 0:
amount, unit, ingredient, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(ingredient)
amount, unit, food, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(food)
u = ingredient_parser.get_unit(unit)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note, space=self.request.space,
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space,
))
recipe.steps.add(step)
@@ -78,7 +79,11 @@ class Plantoeat(Integration):
current_recipe = ''
for fl in file.readlines():
line = fl.decode("ANSI")
try:
line = fl.decode("utf-8")
except UnicodeDecodeError:
line = fl.decode("windows-1250")
if line.startswith('--------------'):
if current_recipe != '':
recipe_list.append(current_recipe)

View File

@@ -1,14 +1,17 @@
import re
import imghdr
import json
import requests
import re
from io import BytesIO
from zipfile import ZipFile
import imghdr
import requests
import validators
from django.utils.translation import gettext as _
from cookbook.helper.image_processing import get_filetype
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.integration.integration import Integration
from cookbook.models import Recipe, Step, Ingredient, Keyword
from cookbook.models import Ingredient, Keyword, Recipe, Step
class RecetteTek(Integration):
@@ -27,10 +30,10 @@ class RecetteTek(Integration):
def get_recipe_from_file(self, file):
# Create initial recipe with just a title and a decription
# Create initial recipe with just a title and a description
recipe = Recipe.objects.create(name=file['title'], created_by=self.request.user, internal=True, space=self.request.space, )
# set the description as an empty string for later use for the source URL, incase there is no description text.
# set the description as an empty string for later use for the source URL, in case there is no description text.
recipe.description = ''
try:
@@ -48,7 +51,7 @@ class RecetteTek(Integration):
# Append the original import url to the step (if it exists)
try:
if file['url'] != '':
step.instruction += '\n\nImported from: ' + file['url']
step.instruction += '\n\n' + _('Imported from') + ': ' + file['url']
step.save()
except Exception as e:
print(recipe.name, ': failed to import source url ', str(e))
@@ -58,11 +61,11 @@ class RecetteTek(Integration):
ingredient_parser = IngredientParser(self.request, True)
for ingredient in file['ingredients'].split('\n'):
if len(ingredient.strip()) > 0:
amount, unit, ingredient, note = ingredient_parser.parse(ingredient)
amount, unit, food, note = ingredient_parser.parse(food)
f = ingredient_parser.get_food(ingredient)
u = ingredient_parser.get_unit(unit)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note, space=self.request.space,
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space,
))
except Exception as e:
print(recipe.name, ': failed to parse recipe ingredients ', str(e))
@@ -121,11 +124,13 @@ class RecetteTek(Integration):
self.import_recipe_image(recipe, BytesIO(import_zip.read(image_file_name)), filetype=get_filetype(image_file_name))
else:
if file['originalPicture'] != '':
response = requests.get(file['originalPicture'])
if imghdr.what(BytesIO(response.content)) is not None:
self.import_recipe_image(recipe, BytesIO(response.content), filetype=get_filetype(file['originalPicture']))
else:
raise Exception("Original image failed to download.")
url = file['originalPicture']
if validators.url(url, public=True):
response = requests.get(url)
if imghdr.what(BytesIO(response.content)) is not None:
self.import_recipe_image(recipe, BytesIO(response.content), filetype=get_filetype(file['originalPicture']))
else:
raise Exception("Original image failed to download.")
except Exception as e:
print(recipe.name, ': failed to import image ', str(e))

View File

@@ -1,12 +1,14 @@
import re
from bs4 import BeautifulSoup
from io import BytesIO
from zipfile import ZipFile
from bs4 import BeautifulSoup
from django.utils.translation import gettext as _
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.helper.recipe_url_import import parse_servings, iso_duration_to_minutes
from cookbook.helper.recipe_url_import import iso_duration_to_minutes, parse_servings
from cookbook.integration.integration import Integration
from cookbook.models import Recipe, Step, Ingredient, Keyword
from cookbook.models import Ingredient, Keyword, Recipe, Step
class RecipeKeeper(Integration):
@@ -45,11 +47,11 @@ class RecipeKeeper(Integration):
for ingredient in file.find("div", {"itemprop": "recipeIngredients"}).findChildren("p"):
if ingredient.text == "":
continue
amount, unit, ingredient, note = ingredient_parser.parse(ingredient.text.strip())
f = ingredient_parser.get_food(ingredient)
amount, unit, food, note = ingredient_parser.parse(ingredient.text.strip())
f = ingredient_parser.get_food(food)
u = ingredient_parser.get_unit(unit)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note, space=self.request.space,
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space,
))
for s in file.find("div", {"itemprop": "recipeDirections"}).find_all("p"):
@@ -58,7 +60,7 @@ class RecipeKeeper(Integration):
step.instruction += s.text + ' \n'
if file.find("span", {"itemprop": "recipeSource"}).text != '':
step.instruction += "\n\nImported from: " + file.find("span", {"itemprop": "recipeSource"}).text
step.instruction += "\n\n" + _("Imported from") + ": " + file.find("span", {"itemprop": "recipeSource"}).text
step.save()
recipe.steps.add(step)

View File

@@ -2,10 +2,11 @@ import json
from io import BytesIO
import requests
import validators
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.integration.integration import Integration
from cookbook.models import Recipe, Step, Ingredient
from cookbook.models import Ingredient, Recipe, Step
class RecipeSage(Integration):
@@ -31,7 +32,7 @@ class RecipeSage(Integration):
except Exception as e:
print('failed to parse yield or time ', str(e))
ingredient_parser = IngredientParser(self.request,True)
ingredient_parser = IngredientParser(self.request, True)
ingredients_added = False
for s in file['recipeInstructions']:
step = Step.objects.create(
@@ -41,18 +42,20 @@ class RecipeSage(Integration):
ingredients_added = True
for ingredient in file['recipeIngredient']:
amount, unit, ingredient, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(ingredient)
amount, unit, food, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(food)
u = ingredient_parser.get_unit(unit)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note, space=self.request.space,
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space,
))
recipe.steps.add(step)
if len(file['image']) > 0:
try:
response = requests.get(file['image'][0])
self.import_recipe_image(recipe, BytesIO(response.content))
url = file['image'][0]
if validators.url(url, public=True):
response = requests.get(url)
self.import_recipe_image(recipe, BytesIO(response.content))
except Exception as e:
print('failed to import image ', str(e))
@@ -77,16 +80,26 @@ class RecipeSage(Integration):
}
for s in recipe.steps.all():
if s.type != Step.TIME:
data['recipeInstructions'].append({
'@type': 'HowToStep',
'text': s.instruction
})
data['recipeInstructions'].append({
'@type': 'HowToStep',
'text': s.instruction
})
for i in s.ingredients.all():
data['recipeIngredient'].append(f'{float(i.amount)} {i.unit} {i.food}')
for i in s.ingredients.all():
data['recipeIngredient'].append(f'{float(i.amount)} {i.unit} {i.food}')
return data
def get_files_from_recipes(self, recipes, el, cookie):
json_list = []
for r in recipes:
json_list.append(self.get_file_from_recipe(r))
el.exported_recipes += 1
el.msg += self.get_recipe_processed_msg(r)
el.save()
return [[self.get_export_file_name('json'), json.dumps(json_list)]]
def split_recipe_file(self, file):
return json.loads(file.read().decode("utf-8"))

View File

@@ -1,6 +1,6 @@
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.integration.integration import Integration
from cookbook.models import Recipe, Step, Ingredient, Keyword
from cookbook.models import Ingredient, Keyword, Recipe, Step
class RezKonv(Integration):
@@ -12,43 +12,43 @@ class RezKonv(Integration):
ingredients = []
directions = []
for line in file.replace('\r', '').split('\n'):
for line in file.replace('\r', '').replace('\n\n', '\n').split('\n'):
if 'Titel:' in line:
title = line.replace('Titel:', '').strip()
if 'Kategorien:' in line:
tags = line.replace('Kategorien:', '').strip()
if ingredient_mode and ('quelle' in line.lower() or 'source' in line.lower()):
if ingredient_mode and (
'quelle' in line.lower() or 'source' in line.lower() or (line == '' and len(ingredients) > 0)):
ingredient_mode = False
direction_mode = True
if ingredient_mode:
if line != '' and '===' not in line and 'Zubereitung' not in line:
ingredients.append(line.strip())
if direction_mode:
if line.strip() != '' and line.strip() != '=====':
directions.append(line.strip())
if 'Zutaten:' in line:
if 'Zutaten:' in line or 'Ingredients' in line or 'Menge:' in line:
ingredient_mode = True
if 'Zubereitung:' in line:
ingredient_mode = False
direction_mode = True
recipe = Recipe.objects.create(name=title, created_by=self.request.user, internal=True, space=self.request.space)
recipe = Recipe.objects.create(name=title, created_by=self.request.user, internal=True,
space=self.request.space)
for k in tags.split(','):
keyword, created = Keyword.objects.get_or_create(name=k.strip(), space=self.request.space)
recipe.keywords.add(keyword)
step = Step.objects.create(
instruction='\n'.join(directions) + '\n\n', space=self.request.space,
instruction=' \n'.join(directions) + '\n\n', space=self.request.space,
)
ingredient_parser = IngredientParser(self.request, True)
for ingredient in ingredients:
if len(ingredient.strip()) > 0:
amount, unit, ingredient, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(ingredient)
amount, unit, food, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(food)
u = ingredient_parser.get_unit(unit)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note, space=self.request.space,
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space,
))
recipe.steps.add(step)
@@ -60,9 +60,15 @@ class RezKonv(Integration):
def split_recipe_file(self, file):
recipe_list = []
current_recipe = ''
encoding_list = ['windows-1250',
'latin-1'] # TODO build algorithm to try trough encodings and fail if none work, use for all importers
encoding = 'windows-1250'
for fl in file.readlines():
line = fl.decode("ANSI")
try:
line = fl.decode(encoding)
except UnicodeDecodeError:
encoding = 'latin-1'
line = fl.decode(encoding)
if line.startswith('=====') and 'rezkonv' in line.lower():
if current_recipe != '':
recipe_list.append(current_recipe)

View File

@@ -2,10 +2,10 @@ from django.utils.translation import gettext as _
from cookbook.helper.ingredient_parser import IngredientParser
from cookbook.integration.integration import Integration
from cookbook.models import Recipe, Step, Ingredient
from cookbook.models import Ingredient, Recipe, Step
class Safron(Integration):
class Saffron(Integration):
def get_recipe_from_file(self, file):
ingredient_mode = False
@@ -47,15 +47,53 @@ class Safron(Integration):
ingredient_parser = IngredientParser(self.request, True)
for ingredient in ingredients:
amount, unit, ingredient, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(ingredient)
amount, unit, food, note = ingredient_parser.parse(ingredient)
f = ingredient_parser.get_food(food)
u = ingredient_parser.get_unit(unit)
step.ingredients.add(Ingredient.objects.create(
food=f, unit=u, amount=amount, note=note, space=self.request.space,
food=f, unit=u, amount=amount, note=note, original_text=ingredient, space=self.request.space,
))
recipe.steps.add(step)
return recipe
def get_file_from_recipe(self, recipe):
raise NotImplementedError('Method not implemented in storage integration')
data = "Title: "+recipe.name if recipe.name else ""+"\n"
data += "Description: "+recipe.description if recipe.description else ""+"\n"
data += "Source: \n"
data += "Original URL: \n"
data += "Yield: "+str(recipe.servings)+"\n"
data += "Cookbook: \n"
data += "Section: \n"
data += "Image: \n"
recipeInstructions = []
recipeIngredient = []
for s in recipe.steps.all():
recipeInstructions.append(s.instruction)
for i in s.ingredients.all():
recipeIngredient.append(f'{float(i.amount)} {i.unit} {i.food}')
data += "Ingredients: \n"
for ingredient in recipeIngredient:
data += ingredient+"\n"
data += "Instructions: \n"
for instruction in recipeInstructions:
data += instruction+"\n"
return recipe.name+'.txt', data
def get_files_from_recipes(self, recipes, el, cookie):
files = []
for r in recipes:
filename, data = self.get_file_from_recipe(r)
files.append([filename, data])
el.exported_recipes += 1
el.msg += self.get_recipe_processed_msg(r)
el.save()
return files

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -11,8 +11,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-02-09 18:01+0100\n"
"PO-Revision-Date: 2021-10-23 09:06+0000\n"
"Last-Translator: Tomasz Klimczak <klemensble@gmail.com>\n"
"PO-Revision-Date: 2021-11-06 14:06+0000\n"
"Last-Translator: retmas gh <tandoor@oppai.ovh>\n"
"Language-Team: Polish <http://translate.tandoor.dev/projects/tandoor/"
"recipes-backend/pl/>\n"
"Language: pl\n"
@@ -385,7 +385,7 @@ msgstr "Zabierz mnie na stronę główną"
#: .\cookbook\templates\404.html:35
msgid "Report a Bug"
msgstr "Raprtuj błąd"
msgstr "Raportuj błąd"
#: .\cookbook\templates\account\login.html:7
#: .\cookbook\templates\base.html:166

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More