Compare commits

..

630 Commits

Author SHA1 Message Date
smilerz
762b83934a Remove unsupported platform from Docker build 2025-12-12 09:26:52 -06:00
smilerz
ae820877d5 Merge pull request #4308 from smilerz/upstream-pr-20251212-043308
Sync 7 commits from fork: chore(deps): bump boto3 from 1.42.4 to 1.42.5 in the pip-patches group
2025-12-12 08:33:21 -06:00
GitHub Action
0d1b37997a Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-12-12 04:33:08 +00:00
dependabot[bot]
8990f4bbcb chore(deps): bump boto3 from 1.42.4 to 1.42.5 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.42.4 to 1.42.5
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.42.4...1.42.5)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.42.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-12 04:26:07 +00:00
dependabot[bot]
c265b9a729 chore(deps): bump recipe-scrapers in the pip-minors group
Bumps the pip-minors group with 1 update: [recipe-scrapers](https://github.com/hhursev/recipe-scrapers).


Updates `recipe-scrapers` from 15.10.0 to 15.11.0
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/15.10.0...15.11.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-11 04:33:49 +00:00
dependabot[bot]
6625943701 chore(deps): bump pytubefix in the pip-patches group
Bumps the pip-patches group with 1 update: [pytubefix](https://github.com/juanbindez/pytubefix).


Updates `pytubefix` from 10.3.5 to 10.3.6
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v10.3.5...v10.3.6)

---
updated-dependencies:
- dependency-name: pytubefix
  dependency-version: 10.3.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-11 04:28:08 +00:00
dependabot[bot]
788c2088f8 chore(deps): bump pytest from 9.0.0 to 9.0.2 in the pip-pytest group
Bumps the pip-pytest group with 1 update: [pytest](https://github.com/pytest-dev/pytest).


Updates `pytest` from 9.0.0 to 9.0.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/9.0.0...9.0.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-10 04:30:34 +00:00
dependabot[bot]
629e9dc881 chore(deps): bump django-treebeard in the pip-minors group
Bumps the pip-minors group with 1 update: [django-treebeard](https://github.com/django-treebeard/django-treebeard).


Updates `django-treebeard` from 4.7.1 to 4.8.0
- [Changelog](https://github.com/django-treebeard/django-treebeard/blob/master/CHANGES.md)
- [Commits](https://github.com/django-treebeard/django-treebeard/compare/4.7.1...4.8.0)

---
updated-dependencies:
- dependency-name: django-treebeard
  dependency-version: 4.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-10 04:25:58 +00:00
dependabot[bot]
ec2ee2bfad chore(deps): bump boto3 from 1.42.0 to 1.42.4 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.42.0 to 1.42.4
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.42.0...1.42.4)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.42.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-09 04:31:50 +00:00
dependabot[bot]
b24f1da8b5 chore(deps): bump pytest from 8.4.2 to 9.0.0
Bumps [pytest](https://github.com/pytest-dev/pytest) from 8.4.2 to 9.0.0.
- [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/8.4.2...9.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-09 04:26:28 +00:00
smilerz
88a1099f06 Merge pull request #4293 from smilerz/upstream-pr-20251208-043911
Sync 4 commits from fork: chore(deps): bump boto3 from 1.41.5 to 1.42.0 in the pip-minors group
2025-12-08 08:06:42 -06:00
GitHub Action
bf574c16f4 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-12-08 04:39:11 +00:00
dependabot[bot]
6cac9a71ed chore(deps): bump boto3 from 1.41.5 to 1.42.0 in the pip-minors group
Bumps the pip-minors group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.41.5 to 1.42.0
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.41.5...1.42.0)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.42.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 04:32:24 +00:00
dependabot[bot]
6858a60fb1 chore(deps): bump django from 4.2.26 to 4.2.27 in the pip-patches group
Bumps the pip-patches group with 1 update: [django](https://github.com/django/django).


Updates `django` from 4.2.26 to 4.2.27
- [Commits](https://github.com/django/django/compare/4.2.26...4.2.27)

---
updated-dependencies:
- dependency-name: django
  dependency-version: 4.2.27
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-08 04:27:00 +00:00
dependabot[bot]
01f1c8c5c8 chore(deps): bump beautifulsoup4 in the pip-patches group
Bumps the pip-patches group with 1 update: [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/).


Updates `beautifulsoup4` from 4.14.2 to 4.14.3

---
updated-dependencies:
- dependency-name: beautifulsoup4
  dependency-version: 4.14.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-04 04:23:22 +00:00
smilerz
e45d25beb4 Merge pull request #4278 from smilerz/upstream-pr-20251202-002017
Sync 20 commits from fork: regenerate yarn.lock
2025-12-01 18:27:14 -06:00
smilerz
bec1580991 Merge pull request #324 from smilerz/dependabot/npm_and_yarn/vue/codemirror/autocomplete-6.20.0
chore(deps): bump @codemirror/autocomplete from 6.19.1 to 6.20.0 in /vue
2025-12-01 18:22:41 -06:00
GitHub Action
f453995aa3 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-12-02 00:20:17 +00:00
dependabot[bot]
cfe163d5a6 chore(deps): bump @codemirror/autocomplete from 6.19.1 to 6.20.0 in /vue
Bumps [@codemirror/autocomplete](https://github.com/codemirror/autocomplete) from 6.19.1 to 6.20.0.
- [Changelog](https://github.com/codemirror/autocomplete/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/autocomplete/compare/6.19.1...6.20.0)

---
updated-dependencies:
- dependency-name: "@codemirror/autocomplete"
  dependency-version: 6.20.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-02 00:19:32 +00:00
smilerz
51c3ce4c56 regenerate yarn.lock 2025-12-01 18:13:43 -06:00
smilerz
77fd354a22 update yarn.lock 2025-12-01 18:13:00 -06:00
dependabot[bot]
c2a42c572c chore(deps-dev): bump workbox-webpack-plugin from 7.3.0 to 7.4.0 in /vue
Bumps [workbox-webpack-plugin](https://github.com/googlechrome/workbox) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/googlechrome/workbox/releases)
- [Commits](https://github.com/googlechrome/workbox/compare/v7.3.0...v7.4.0)

---
updated-dependencies:
- dependency-name: workbox-webpack-plugin
  dependency-version: 7.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 18:13:00 -06:00
smilerz
0bd53daed7 Merge pull request #328 from smilerz/dependabot/npm_and_yarn/vue/workbox-navigation-preload-7.4.0
chore(deps-dev): bump workbox-navigation-preload from 7.3.0 to 7.4.0 in /vue
2025-12-01 16:50:04 -06:00
smilerz
6358ac8b18 Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-navigation-preload-7.4.0 2025-12-01 16:46:58 -06:00
smilerz
02eca7a50c updated lock file 2025-12-01 16:37:17 -06:00
smilerz
f45e847ad2 Merge pull request #320 from smilerz/dependabot/npm_and_yarn/vue/workbox-window-7.4.0
chore(deps): bump workbox-window from 7.3.0 to 7.4.0 in /vue
2025-12-01 15:24:27 -06:00
smilerz
5555c48bcb Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-window-7.4.0 2025-12-01 15:21:03 -06:00
smilerz
295e0a12e7 Merge pull request #329 from smilerz/dependabot/npm_and_yarn/vue/workbox-background-sync-7.4.0
chore(deps-dev): bump workbox-background-sync from 7.3.0 to 7.4.0 in /vue
2025-12-01 15:19:43 -06:00
smilerz
b2402acccf Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-navigation-preload-7.4.0 2025-12-01 15:17:53 -06:00
smilerz
167cf1b693 Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-background-sync-7.4.0 2025-12-01 15:16:28 -06:00
smilerz
606ba1fa45 Merge pull request #339 from smilerz/dependabot/npm_and_yarn/vue/node-forge-1.3.2
chore(deps): bump node-forge from 1.3.1 to 1.3.2 in /vue
2025-12-01 15:16:08 -06:00
dependabot[bot]
c4ec9c9b0f chore(deps): bump node-forge from 1.3.1 to 1.3.2 in /vue
Bumps [node-forge](https://github.com/digitalbazaar/forge) from 1.3.1 to 1.3.2.
- [Changelog](https://github.com/digitalbazaar/forge/blob/main/CHANGELOG.md)
- [Commits](https://github.com/digitalbazaar/forge/compare/v1.3.1...v1.3.2)

---
updated-dependencies:
- dependency-name: node-forge
  dependency-version: 1.3.2
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 20:45:10 +00:00
smilerz
c2ec3b94a9 Merge pull request #327 from smilerz/dependabot/npm_and_yarn/vue/workbox-precaching-7.4.0
chore(deps-dev): bump workbox-precaching from 7.3.0 to 7.4.0 in /vue
2025-12-01 14:13:46 -06:00
smilerz
163deaff28 Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-window-7.4.0 2025-12-01 14:11:04 -06:00
smilerz
cf14bf2f68 Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-precaching-7.4.0 2025-12-01 14:10:22 -06:00
smilerz
12facb53e4 Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-navigation-preload-7.4.0 2025-12-01 14:09:59 -06:00
smilerz
89b8598cd7 Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-background-sync-7.4.0 2025-12-01 14:09:16 -06:00
smilerz
33db1e49a1 Merge pull request #319 from smilerz/dependabot/npm_and_yarn/vue/prettier-3.7.1
chore(deps-dev): bump prettier from 3.6.2 to 3.7.1 in /vue
2025-12-01 13:18:37 -06:00
dependabot[bot]
96c89f7def chore(deps-dev): bump prettier from 3.6.2 to 3.7.1 in /vue
Bumps [prettier](https://github.com/prettier/prettier) from 3.6.2 to 3.7.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.6.2...3.7.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 19:15:13 +00:00
smilerz
a536f58daa Merge pull request #318 from smilerz/dependabot/npm_and_yarn/vue/npm-patches-34df835779
chore(deps): bump the npm-patches group in /vue with 4 updates
2025-12-01 13:11:59 -06:00
dependabot[bot]
cb0372343f chore(deps): bump the npm-patches group in /vue with 4 updates
Bumps the npm-patches group in /vue with 4 updates: [@codemirror/view](https://github.com/codemirror/view), [axios](https://github.com/axios/axios), [@vue/compiler-sfc](https://github.com/vuejs/core/tree/HEAD/packages/compiler-sfc) and [webpack-bundle-tracker](https://github.com/django-webpack/webpack-bundle-tracker).


Updates `@codemirror/view` from 6.38.6 to 6.38.8
- [Changelog](https://github.com/codemirror/view/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/view/compare/6.38.6...6.38.8)

Updates `axios` from 1.13.1 to 1.13.2
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.13.1...v1.13.2)

Updates `@vue/compiler-sfc` from 3.5.22 to 3.5.25
- [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.5.25/packages/compiler-sfc)

Updates `webpack-bundle-tracker` from 3.2.1 to 3.2.2
- [Release notes](https://github.com/django-webpack/webpack-bundle-tracker/releases)
- [Commits](https://github.com/django-webpack/webpack-bundle-tracker/compare/v3.2.1...v3.2.2)

---
updated-dependencies:
- dependency-name: "@codemirror/view"
  dependency-version: 6.38.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: axios
  dependency-version: 1.13.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@vue/compiler-sfc"
  dependency-version: 3.5.25
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: webpack-bundle-tracker
  dependency-version: 3.2.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 19:08:39 +00:00
smilerz
748377b11c Merge pull request #321 from smilerz/dependabot/npm_and_yarn/vue/workbox-expiration-7.4.0
chore(deps-dev): bump workbox-expiration from 7.3.0 to 7.4.0 in /vue
2025-12-01 12:47:08 -06:00
smilerz
714d4f799b Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-expiration-7.4.0 2025-12-01 12:43:59 -06:00
smilerz
218d591f35 Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-window-7.4.0 2025-12-01 12:43:54 -06:00
smilerz
1bb92428a7 Merge pull request #322 from smilerz/dependabot/npm_and_yarn/vue/core-js-3.47.0
chore(deps): bump core-js from 3.46.0 to 3.47.0 in /vue
2025-12-01 12:33:22 -06:00
smilerz
ccf29db1d3 Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-background-sync-7.4.0 2025-12-01 12:30:25 -06:00
smilerz
de19818429 Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-navigation-preload-7.4.0 2025-12-01 12:30:21 -06:00
smilerz
01e736bccc Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-precaching-7.4.0 2025-12-01 12:30:18 -06:00
smilerz
5f717d4e70 Merge branch 'working' into dependabot/npm_and_yarn/vue/core-js-3.47.0 2025-12-01 12:30:07 -06:00
smilerz
f79fb4dbc1 Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-expiration-7.4.0 2025-12-01 12:30:03 -06:00
smilerz
bd1926c57b Merge branch 'working' into dependabot/npm_and_yarn/vue/workbox-window-7.4.0 2025-12-01 12:30:01 -06:00
dependabot[bot]
6bebb04015 chore(deps): bump django-tables2 in the pip-minors group
Bumps the pip-minors group with 1 update: [django-tables2](https://github.com/jieter/django-tables2).


Updates `django-tables2` from 2.7.5 to 2.8.0
- [Changelog](https://github.com/jieter/django-tables2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jieter/django-tables2/compare/v2.7.5...v2.8.0)

---
updated-dependencies:
- dependency-name: django-tables2
  dependency-version: 2.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 05:19:57 +00:00
dependabot[bot]
a72bc2ddd6 chore(deps): bump boto3 from 1.41.3 to 1.41.5 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.41.3 to 1.41.5
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.41.3...1.41.5)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.41.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 05:09:31 +00:00
dependabot[bot]
44951bf648 chore(deps-dev): bump workbox-background-sync in /vue
Bumps [workbox-background-sync](https://github.com/googlechrome/workbox) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/googlechrome/workbox/releases)
- [Commits](https://github.com/googlechrome/workbox/compare/v7.3.0...v7.4.0)

---
updated-dependencies:
- dependency-name: workbox-background-sync
  dependency-version: 7.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 04:59:40 +00:00
dependabot[bot]
b1fc780f44 chore(deps-dev): bump workbox-navigation-preload in /vue
Bumps [workbox-navigation-preload](https://github.com/googlechrome/workbox) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/googlechrome/workbox/releases)
- [Commits](https://github.com/googlechrome/workbox/compare/v7.3.0...v7.4.0)

---
updated-dependencies:
- dependency-name: workbox-navigation-preload
  dependency-version: 7.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 04:59:31 +00:00
dependabot[bot]
cfb20edb9f chore(deps-dev): bump workbox-precaching from 7.3.0 to 7.4.0 in /vue
Bumps [workbox-precaching](https://github.com/googlechrome/workbox) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/googlechrome/workbox/releases)
- [Commits](https://github.com/googlechrome/workbox/compare/v7.3.0...v7.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 04:59:24 +00:00
dependabot[bot]
0753be9d12 chore(deps): bump core-js from 3.46.0 to 3.47.0 in /vue
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.46.0 to 3.47.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/commits/v3.47.0/packages/core-js)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 04:58:26 +00:00
dependabot[bot]
db05479cbe chore(deps-dev): bump workbox-expiration from 7.3.0 to 7.4.0 in /vue
Bumps [workbox-expiration](https://github.com/googlechrome/workbox) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/googlechrome/workbox/releases)
- [Commits](https://github.com/googlechrome/workbox/compare/v7.3.0...v7.4.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 04:58:06 +00:00
dependabot[bot]
c850737d24 chore(deps): bump workbox-window from 7.3.0 to 7.4.0 in /vue
Bumps [workbox-window](https://github.com/googlechrome/workbox) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/googlechrome/workbox/releases)
- [Commits](https://github.com/googlechrome/workbox/compare/v7.3.0...v7.4.0)

---
updated-dependencies:
- dependency-name: workbox-window
  dependency-version: 7.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-01 04:57:59 +00:00
dependabot[bot]
333ba1b3f0 chore(deps): bump boto3 from 1.41.0 to 1.41.3 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.41.0 to 1.41.3
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.41.0...1.41.3)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.41.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-28 04:25:10 +00:00
dependabot[bot]
cf31d3aea4 chore(deps): bump the pip-minors group with 2 updates
Bumps the pip-minors group with 2 updates: [boto3](https://github.com/boto/boto3) and [redis](https://github.com/redis/redis-py).


Updates `boto3` from 1.40.76 to 1.41.0
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.76...1.41.0)

Updates `redis` from 7.0.1 to 7.1.0
- [Release notes](https://github.com/redis/redis-py/releases)
- [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES)
- [Commits](https://github.com/redis/redis-py/compare/v7.0.1...v7.1.0)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.41.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
- dependency-name: redis
  dependency-version: 7.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-27 04:27:04 +00:00
dependabot[bot]
27ad2b5a85 chore(deps): bump the pip-patches group with 2 updates
Bumps the pip-patches group with 2 updates: [pytubefix](https://github.com/juanbindez/pytubefix) and [redis](https://github.com/redis/redis-py).


Updates `pytubefix` from 10.3.4 to 10.3.5
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v10.3.4...v10.3.5)

Updates `redis` from 7.0.0 to 7.0.1
- [Release notes](https://github.com/redis/redis-py/releases)
- [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES)
- [Commits](https://github.com/redis/redis-py/compare/v7.0.0...v7.0.1)

---
updated-dependencies:
- dependency-name: pytubefix
  dependency-version: 10.3.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: redis
  dependency-version: 7.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-25 04:28:25 +00:00
dependabot[bot]
c76dfeefe4 chore(deps): bump redis from 6.4.0 to 7.0.0
Bumps [redis](https://github.com/redis/redis-py) from 6.4.0 to 7.0.0.
- [Release notes](https://github.com/redis/redis-py/releases)
- [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES)
- [Commits](https://github.com/redis/redis-py/compare/v6.4.0...v7.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 04:48:43 +00:00
dependabot[bot]
9caf1d4029 chore(deps): bump the pip-patches group with 3 updates
Bumps the pip-patches group with 3 updates: [boto3](https://github.com/boto/boto3), [django-allauth](https://github.com/sponsors/pennersr) and [pytubefix](https://github.com/juanbindez/pytubefix).


Updates `boto3` from 1.40.75 to 1.40.76
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.75...1.40.76)

Updates `django-allauth` from 65.13.0 to 65.13.1
- [Commits](https://github.com/sponsors/pennersr/commits)

Updates `pytubefix` from 10.3.3 to 10.3.4
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v10.3.3...v10.3.4)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.76
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: django-allauth
  dependency-version: 65.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: pytubefix
  dependency-version: 10.3.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-24 04:34:19 +00:00
smilerz
e432f6a625 Merge pull request #4244 from smilerz/upstream-pr-20251121-044244
Upstream pr 20251121 044244
2025-11-21 08:21:44 -06:00
smilerz
ade2c8c63a Merge branch 'tandoor-1' into upstream-pr-20251121-044244 2025-11-21 08:21:36 -06:00
GitHub Action
9c13a20cda Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-11-21 04:42:44 +00:00
dependabot[bot]
f9f0aed2d8 chore(deps): bump pytubefix in the pip-minors group
Bumps the pip-minors group with 1 update: [pytubefix](https://github.com/juanbindez/pytubefix).


Updates `pytubefix` from 10.2.1 to 10.3.3
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v10.2.1...v10.3.3)

---
updated-dependencies:
- dependency-name: pytubefix
  dependency-version: 10.3.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-21 04:36:11 +00:00
dependabot[bot]
1b4b2f401d chore(deps): bump boto3 from 1.40.74 to 1.40.75 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.74 to 1.40.75
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.74...1.40.75)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.75
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-21 04:30:15 +00:00
dependabot[bot]
a7bf8e452a chore(deps): bump pytest-asyncio in the pip-pytest group
Bumps the pip-pytest group with 1 update: [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio).


Updates `pytest-asyncio` from 1.2.0 to 1.3.0
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v1.2.0...v1.3.0)

---
updated-dependencies:
- dependency-name: pytest-asyncio
  dependency-version: 1.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-18 04:33:07 +00:00
dependabot[bot]
c00fe4ac68 chore(deps): bump boto3 from 1.40.73 to 1.40.74 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.73 to 1.40.74
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.73...1.40.74)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.74
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-18 04:28:18 +00:00
dependabot[bot]
14c439b8e7 chore(deps): bump pillow from 11.3.0 to 12.0.0
Bumps [pillow](https://github.com/python-pillow/Pillow) from 11.3.0 to 12.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/11.3.0...12.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 04:34:42 +00:00
dependabot[bot]
2c03451597 chore(deps): bump boto3 from 1.40.70 to 1.40.73 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.70 to 1.40.73
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.70...1.40.73)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.73
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-17 04:28:37 +00:00
dependabot[bot]
e85ebc0cab chore(deps): bump django-crispy-forms in the pip-minors group
Bumps the pip-minors group with 1 update: [django-crispy-forms](https://github.com/django-crispy-forms/django-crispy-forms).


Updates `django-crispy-forms` from 2.4 to 2.5
- [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/2.4...2.5)

---
updated-dependencies:
- dependency-name: django-crispy-forms
  dependency-version: '2.5'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-14 04:30:25 +00:00
dependabot[bot]
ea10333b23 chore(deps): bump boto3 from 1.40.69 to 1.40.70 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.69 to 1.40.70
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.69...1.40.70)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.70
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-14 04:25:02 +00:00
smilerz
e773cffa76 Merge pull request #4230 from smilerz/upstream-pr-20251113-043248
Sync 3 commits from fork: chore(deps): bump recipe-scrapers in the pip-minors group
2025-11-13 07:56:39 -06:00
GitHub Action
b795d72e39 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-11-13 04:32:48 +00:00
dependabot[bot]
be6c548ac1 chore(deps): bump recipe-scrapers in the pip-minors group
Bumps the pip-minors group with 1 update: [recipe-scrapers](https://github.com/hhursev/recipe-scrapers).


Updates `recipe-scrapers` from 15.9.0 to 15.10.0
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/15.9.0...15.10.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-13 04:26:12 +00:00
dependabot[bot]
23396821db chore(deps): bump markdown from 3.9 to 3.10 in the pip-minors group
Bumps the pip-minors group with 1 update: [markdown](https://github.com/Python-Markdown/markdown).


Updates `markdown` from 3.9 to 3.10
- [Release notes](https://github.com/Python-Markdown/markdown/releases)
- [Changelog](https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md)
- [Commits](https://github.com/Python-Markdown/markdown/compare/3.9.0...3.10.0)

---
updated-dependencies:
- dependency-name: markdown
  dependency-version: '3.10'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-11 04:32:59 +00:00
dependabot[bot]
78c04e4b2d chore(deps): bump boto3 from 1.40.68 to 1.40.69 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.68 to 1.40.69
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.68...1.40.69)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.69
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-11 04:27:28 +00:00
smilerz
61a1d72d7e Merge pull request #4221 from smilerz/upstream-pr-20251110-045354
Sync 2 commits from fork: chore(deps): bump the pip-patches group with 4 updates
2025-11-10 12:55:46 -06:00
GitHub Action
ede6c52d63 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-11-10 04:53:54 +00:00
dependabot[bot]
372c904a96 chore(deps): bump the pip-patches group with 4 updates
Bumps the pip-patches group with 4 updates: [boto3](https://github.com/boto/boto3), [django](https://github.com/django/django), [django-webpack-loader](https://github.com/django-webpack/django-webpack-loader) and [icalendar](https://github.com/collective/icalendar).


Updates `boto3` from 1.40.65 to 1.40.68
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.65...1.40.68)

Updates `django` from 4.2.25 to 4.2.26
- [Commits](https://github.com/django/django/compare/4.2.25...4.2.26)

Updates `django-webpack-loader` from 3.2.1 to 3.2.2
- [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/3.2.1...3.2.2)

Updates `icalendar` from 6.3.1 to 6.3.2
- [Release notes](https://github.com/collective/icalendar/releases)
- [Changelog](https://github.com/collective/icalendar/blob/main/CHANGES.rst)
- [Commits](https://github.com/collective/icalendar/compare/v6.3.1...v6.3.2)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.68
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: django
  dependency-version: 4.2.26
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: django-webpack-loader
  dependency-version: 3.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: icalendar
  dependency-version: 6.3.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-10 04:47:06 +00:00
dependabot[bot]
b500c97440 chore(deps): bump the pip-minors group with 2 updates
Bumps the pip-minors group with 2 updates: [django-allauth](https://github.com/sponsors/pennersr) and [pytubefix](https://github.com/juanbindez/pytubefix).


Updates `django-allauth` from 65.12.1 to 65.13.0
- [Commits](https://github.com/sponsors/pennersr/commits)

Updates `pytubefix` from 10.0.0 to 10.2.1
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v10.0.0...v10.2.1)

---
updated-dependencies:
- dependency-name: django-allauth
  dependency-version: 65.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
- dependency-name: pytubefix
  dependency-version: 10.2.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-10 04:38:32 +00:00
smilerz
daaf55c50f Merge pull request #4214 from smilerz/upstream-pr-20251107-043533
Sync 6 commits from fork: chore(deps): bump pytubefix from 9.5.1 to 10.0.0
2025-11-07 07:32:07 -06:00
GitHub Action
79358f0e58 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-11-07 04:35:33 +00:00
dependabot[bot]
e3fa6c656e chore(deps): bump pytubefix from 9.5.1 to 10.0.0
Bumps [pytubefix](https://github.com/juanbindez/pytubefix) from 9.5.1 to 10.0.0.
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v9.5.1...v10.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-07 04:29:05 +00:00
dependabot[bot]
1521810537 chore(deps): bump boto3 from 1.40.64 to 1.40.65 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.64 to 1.40.65
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.64...1.40.65)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.65
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-07 04:24:37 +00:00
dependabot[bot]
67e8a2a835 chore(deps): bump bleach from 6.2.0 to 6.3.0 in the pip-minors group
Bumps the pip-minors group with 1 update: [bleach](https://github.com/mozilla/bleach).


Updates `bleach` from 6.2.0 to 6.3.0
- [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES)
- [Commits](https://github.com/mozilla/bleach/compare/v6.2.0...v6.3.0)

---
updated-dependencies:
- dependency-name: bleach
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-04 04:54:40 +00:00
dependabot[bot]
f770048c99 chore(deps): bump boto3 from 1.40.63 to 1.40.64 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.63 to 1.40.64
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.63...1.40.64)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.64
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-04 04:49:17 +00:00
dependabot[bot]
4d2db238cb chore(deps): bump python-dotenv in the pip-minors group
Bumps the pip-minors group with 1 update: [python-dotenv](https://github.com/theskumar/python-dotenv).


Updates `python-dotenv` from 1.1.1 to 1.2.1
- [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/v1.1.1...v1.2.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 04:46:14 +00:00
dependabot[bot]
4e21d46120 chore(deps): bump the pip-patches group with 2 updates
---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.13.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: boto3
  dependency-version: 1.40.63
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-03 04:36:59 +00:00
smilerz
1c5c69ba5c Merge pull request #4208 from smilerz/upstream-pr-20251102-203440
Sync 8 commits from fork: chore(deps): bump axios from 1.12.2 to 1.13.1 in /vue
2025-11-02 15:09:20 -06:00
GitHub Action
ebc7e3c6ac Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-11-02 20:34:40 +00:00
smilerz
f260f3ffcb Merge pull request #268 from smilerz/dependabot/npm_and_yarn/vue/core-js-3.46.0
chore(deps): bump core-js from 3.45.1 to 3.46.0 in /vue
2025-11-02 14:28:54 -06:00
smilerz
ef12579ee8 Merge branch 'working' into dependabot/npm_and_yarn/vue/core-js-3.46.0 2025-11-02 14:25:48 -06:00
dependabot[bot]
82e70c39d3 chore(deps): bump axios from 1.12.2 to 1.13.1 in /vue
Bumps [axios](https://github.com/axios/axios) from 1.12.2 to 1.13.1.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.12.2...v1.13.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-02 20:05:35 +00:00
smilerz
7174a611ac Merge branch 'working' into dependabot/npm_and_yarn/vue/core-js-3.46.0 2025-11-02 14:03:44 -06:00
dependabot[bot]
75607c7835 chore(deps): bump @codemirror/commands from 6.8.1 to 6.10.0 in /vue
Bumps [@codemirror/commands](https://github.com/codemirror/commands) from 6.8.1 to 6.10.0.
- [Changelog](https://github.com/codemirror/commands/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/commands/compare/6.8.1...6.10.0)

---
updated-dependencies:
- dependency-name: "@codemirror/commands"
  dependency-version: 6.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-02 20:00:24 +00:00
smilerz
dc58f00106 Merge branch 'working' into dependabot/npm_and_yarn/vue/core-js-3.46.0 2025-11-02 13:55:28 -06:00
smilerz
74774b917a Merge pull request #267 from smilerz/dependabot/npm_and_yarn/vue/codemirror/lang-markdown-6.5.0
chore(deps): bump @codemirror/lang-markdown from 6.3.4 to 6.5.0 in /vue
2025-11-02 13:55:18 -06:00
dependabot[bot]
e9a0b5216d chore(deps): bump core-js from 3.45.1 to 3.46.0 in /vue
Bumps [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) from 3.45.1 to 3.46.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/commits/v3.46.0/packages/core-js)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-02 19:46:44 +00:00
dependabot[bot]
79997c5dd0 chore(deps): bump @codemirror/lang-markdown from 6.3.4 to 6.5.0 in /vue
Bumps [@codemirror/lang-markdown](https://github.com/codemirror/lang-markdown) from 6.3.4 to 6.5.0.
- [Changelog](https://github.com/codemirror/lang-markdown/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/lang-markdown/compare/6.3.4...6.5.0)

---
updated-dependencies:
- dependency-name: "@codemirror/lang-markdown"
  dependency-version: 6.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-02 19:46:41 +00:00
smilerz
d866e1e7e1 Merge pull request #266 from smilerz/dependabot/npm_and_yarn/vue/npm-patches-56ed010613
chore(deps): bump the npm-patches group in /vue with 4 updates
2025-11-02 13:44:36 -06:00
smilerz
46fdee0acb Merge branch 'working' into dependabot/npm_and_yarn/vue/npm-patches-56ed010613 2025-11-02 13:33:39 -06:00
smilerz
4829b9fe62 Merge pull request #244 from smilerz/dependabot/docker/python-3.12.12-alpine3.21
chore(deps): bump python from 3.12-alpine3.21 to 3.12.12-alpine3.21
2025-11-02 13:30:51 -06:00
smilerz
7b437a0383 Merge branch 'working' into dependabot/docker/python-3.12.12-alpine3.21 2025-11-02 13:27:20 -06:00
dependabot[bot]
d7def5a37a chore(deps): bump the npm-patches group in /vue with 4 updates
Bumps the npm-patches group in /vue with 4 updates: [@codemirror/autocomplete](https://github.com/codemirror/autocomplete), [@codemirror/view](https://github.com/codemirror/view), [@babel/eslint-parser](https://github.com/babel/babel/tree/HEAD/eslint/babel-eslint-parser) and [typescript](https://github.com/microsoft/TypeScript).


Updates `@codemirror/autocomplete` from 6.19.0 to 6.19.1
- [Changelog](https://github.com/codemirror/autocomplete/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/autocomplete/compare/6.19.0...6.19.1)

Updates `@codemirror/view` from 6.38.4 to 6.38.6
- [Changelog](https://github.com/codemirror/view/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/view/compare/6.38.4...6.38.6)

Updates `@babel/eslint-parser` from 7.28.4 to 7.28.5
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.28.5/eslint/babel-eslint-parser)

Updates `typescript` from 5.9.2 to 5.9.3
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.9.2...v5.9.3)

---
updated-dependencies:
- dependency-name: "@codemirror/autocomplete"
  dependency-version: 6.19.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@codemirror/view"
  dependency-version: 6.38.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@babel/eslint-parser"
  dependency-version: 7.28.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: typescript
  dependency-version: 5.9.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-11-02 19:20:01 +00:00
smilerz
13bb916c85 fixes syntax error in service worker file 2025-11-02 13:15:07 -06:00
smilerz
169522f401 updated sw.js to handle script_name correctly 2025-11-02 13:01:21 -06:00
smilerz
8774e7c2f0 Merge branch 'working' into dependabot/docker/python-3.12.12-alpine3.21 2025-11-02 12:59:14 -06:00
smilerz
7440a433ba Merge pull request #4207 from smilerz/upstream-pr-20251031-043335
Sync 7 commits from fork: chore(deps): bump boto3 from 1.40.59 to 1.40.60 in the pip-patches group
2025-11-02 12:58:07 -06:00
GitHub Action
72b9728540 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-10-31 04:33:35 +00:00
dependabot[bot]
d6224ac2e4 chore(deps): bump boto3 from 1.40.59 to 1.40.60 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.59 to 1.40.60
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.59...1.40.60)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.60
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-31 04:26:19 +00:00
smilerz
f8ddf6af72 Merge branch 'working' into dependabot/docker/python-3.12.12-alpine3.21 2025-10-28 07:56:10 -05:00
dependabot[bot]
665e208932 chore(deps): bump boto3 from 1.40.58 to 1.40.59 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.58 to 1.40.59
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.58...1.40.59)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.59
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-28 04:29:03 +00:00
dependabot[bot]
48616ebbcf chore(deps): bump boto3 from 1.40.55 to 1.40.58 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.55 to 1.40.58
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.55...1.40.58)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.58
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-27 04:47:47 +00:00
dependabot[bot]
4b0734c988 chore(deps): bump the pip-patches group with 2 updates
---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: boto3
  dependency-version: 1.40.55
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-21 04:34:23 +00:00
dependabot[bot]
28e7103dae chore(deps): bump the pip-patches group with 3 updates
Bumps the pip-patches group with 3 updates: [boto3](https://github.com/boto/boto3), [cryptography](https://github.com/pyca/cryptography) and [django-allauth](https://github.com/sponsors/pennersr).


Updates `boto3` from 1.40.51 to 1.40.54
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.51...1.40.54)

Updates `cryptography` from 46.0.1 to 46.0.3
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/46.0.1...46.0.3)

Updates `django-allauth` from 65.12.0 to 65.12.1
- [Commits](https://github.com/sponsors/pennersr/commits)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.54
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: cryptography
  dependency-version: 46.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: django-allauth
  dependency-version: 65.12.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-20 04:52:15 +00:00
dependabot[bot]
990e86f717 chore(deps): bump cryptography from 45.0.7 to 46.0.1
Bumps [cryptography](https://github.com/pyca/cryptography) from 45.0.7 to 46.0.1.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/45.0.7...46.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-17 04:42:38 +00:00
dependabot[bot]
85e93169b5 chore(deps): bump boto3 from 1.40.50 to 1.40.51 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.50 to 1.40.51
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.50...1.40.51)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.51
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-17 04:38:04 +00:00
smilerz
0e3a5611c6 Merge pull request #4164 from smilerz/upstream-pr-20251014-045347
Sync 4 commits from fork: chore(deps): bump aiohttp from 3.12.15 to 3.13.0 in the pip-minors group
2025-10-14 16:00:13 -05:00
GitHub Action
31b9fe1605 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-10-14 04:53:47 +00:00
dependabot[bot]
7963342574 chore(deps): bump aiohttp from 3.12.15 to 3.13.0 in the pip-minors group
---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-14 04:47:10 +00:00
dependabot[bot]
80264c2822 chore(deps): bump the pip-patches group with 3 updates
Bumps the pip-patches group with 3 updates: [boto3](https://github.com/boto/boto3), [psycopg2-binary](https://github.com/psycopg/psycopg2) and [python-ldap](https://github.com/python-ldap/python-ldap).


Updates `boto3` from 1.40.49 to 1.40.50
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.49...1.40.50)

Updates `psycopg2-binary` from 2.9.10 to 2.9.11
- [Changelog](https://github.com/psycopg/psycopg2/blob/master/NEWS)
- [Commits](https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11)

Updates `python-ldap` from 3.4.4 to 3.4.5
- [Release notes](https://github.com/python-ldap/python-ldap/releases)
- [Changelog](https://github.com/python-ldap/python-ldap/blob/python-ldap-3.4.5/CHANGES)
- [Commits](https://github.com/python-ldap/python-ldap/compare/python-ldap-3.4.4...python-ldap-3.4.5)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.50
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: psycopg2-binary
  dependency-version: 2.9.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: python-ldap
  dependency-version: 3.4.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-14 04:41:35 +00:00
dependabot[bot]
9be9c5874f chore(deps): bump the pip-minors group with 2 updates
Bumps the pip-minors group with 2 updates: [django-allauth](https://github.com/sponsors/pennersr) and [django-oauth-toolkit](https://github.com/django-oauth/django-oauth-toolkit).


Updates `django-allauth` from 65.11.2 to 65.12.0
- [Commits](https://github.com/sponsors/pennersr/commits)

Updates `django-oauth-toolkit` from 3.0.1 to 3.1.0
- [Release notes](https://github.com/django-oauth/django-oauth-toolkit/releases)
- [Changelog](https://github.com/django-oauth/django-oauth-toolkit/blob/master/CHANGELOG.md)
- [Commits](https://github.com/django-oauth/django-oauth-toolkit/compare/3.0.1...3.1.0)

---
updated-dependencies:
- dependency-name: django-allauth
  dependency-version: 65.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
- dependency-name: django-oauth-toolkit
  dependency-version: 3.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 04:52:04 +00:00
dependabot[bot]
8115ed383b chore(deps): bump boto3 from 1.40.46 to 1.40.49 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.46 to 1.40.49
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.46...1.40.49)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.49
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 04:46:25 +00:00
dependabot[bot]
81152f626e chore(deps): bump python from 3.12-alpine3.21 to 3.12.12-alpine3.21
Bumps python from 3.12-alpine3.21 to 3.12.12-alpine3.21.

---
updated-dependencies:
- dependency-name: python
  dependency-version: 3.12.12-alpine3.21
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-13 04:34:19 +00:00
smilerz
4f7c480a8a Merge pull request #4144 from smilerz/upstream-pr-20251010-045056
Sync 7 commits from fork: chore(deps): bump pytest-cov from 6.3.0 to 7.0.0
2025-10-10 07:40:54 -05:00
GitHub Action
9d30664c14 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-10-10 04:50:56 +00:00
dependabot[bot]
cca86956cd chore(deps): bump pytest-cov from 6.3.0 to 7.0.0
Bumps [pytest-cov](https://github.com/pytest-dev/pytest-cov) from 6.3.0 to 7.0.0.
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-cov/compare/v6.3.0...v7.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-10 04:43:46 +00:00
dependabot[bot]
bd0e06bdd6 chore(deps): bump boto3 from 1.40.45 to 1.40.46 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.45 to 1.40.46
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.45...1.40.46)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.46
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-10 04:39:24 +00:00
dependabot[bot]
e2581a3276 chore(deps): bump the pip-patches group with 2 updates
Bumps the pip-patches group with 2 updates: [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) and [boto3](https://github.com/boto/boto3).


Updates `beautifulsoup4` from 4.14.0 to 4.14.2

Updates `boto3` from 1.40.44 to 1.40.45
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.44...1.40.45)

---
updated-dependencies:
- dependency-name: beautifulsoup4
  dependency-version: 4.14.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: boto3
  dependency-version: 1.40.45
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-07 04:32:26 +00:00
dependabot[bot]
eef8d8d1be chore(deps): bump beautifulsoup4 in the pip-minors group
Bumps the pip-minors group with 1 update: [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/).


Updates `beautifulsoup4` from 4.13.5 to 4.14.0

---
updated-dependencies:
- dependency-name: beautifulsoup4
  dependency-version: 4.14.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 04:50:48 +00:00
dependabot[bot]
5fce383bb3 chore(deps): bump boto3 from 1.40.41 to 1.40.44 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.41 to 1.40.44
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.41...1.40.44)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.44
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-06 04:45:24 +00:00
dependabot[bot]
317c67d01c chore(deps): bump boto3 from 1.40.40 to 1.40.41 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.40 to 1.40.41
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.40...1.40.41)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.41
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-03 04:40:05 +00:00
smilerz
03e4904506 Merge pull request #4107 from smilerz/upstream-pr-20251002-002024
Sync 4 commits from fork: chore(deps): bump django in the pip group across 1 directory
2025-10-01 19:25:04 -05:00
smilerz
0461155b5d Merge pull request #225 from smilerz/dependabot/npm_and_yarn/vue/npm-patches-47266e4737
chore(deps): bump the npm-patches group in /vue with 4 updates
2025-10-01 19:21:39 -05:00
GitHub Action
cd3d3d3389 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-10-02 00:20:24 +00:00
dependabot[bot]
fde96522e8 chore(deps): bump the npm-patches group in /vue with 4 updates
Bumps the npm-patches group in /vue with 4 updates: [@codemirror/view](https://github.com/codemirror/view), [axios](https://github.com/axios/axios), [@babel/eslint-parser](https://github.com/babel/babel/tree/HEAD/eslint/babel-eslint-parser) and [@vue/compiler-sfc](https://github.com/vuejs/core/tree/HEAD/packages/compiler-sfc).


Updates `@codemirror/view` from 6.38.1 to 6.38.3
- [Changelog](https://github.com/codemirror/view/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/view/compare/6.38.1...6.38.3)

Updates `axios` from 1.12.0 to 1.12.2
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.12.0...v1.12.2)

Updates `@babel/eslint-parser` from 7.28.0 to 7.28.4
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.28.4/eslint/babel-eslint-parser)

Updates `@vue/compiler-sfc` from 3.5.20 to 3.5.22
- [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.5.22/packages/compiler-sfc)

---
updated-dependencies:
- dependency-name: "@codemirror/view"
  dependency-version: 6.38.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: axios
  dependency-version: 1.12.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@babel/eslint-parser"
  dependency-version: 7.28.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@vue/compiler-sfc"
  dependency-version: 3.5.22
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-02 00:18:25 +00:00
smilerz
9ccfa6732a Merge pull request #226 from smilerz/dependabot/npm_and_yarn/vue/codemirror/autocomplete-6.19.0
chore(deps): bump @codemirror/autocomplete from 6.18.6 to 6.19.0 in /vue
2025-10-01 19:14:47 -05:00
smilerz
244f63c07c Merge branch 'working' into dependabot/npm_and_yarn/vue/codemirror/autocomplete-6.19.0 2025-10-01 19:11:32 -05:00
dependabot[bot]
f3df30a727 chore(deps): bump django in the pip group across 1 directory
Bumps the pip group with 1 update in the / directory: [django](https://github.com/django/django).


Updates `django` from 4.2.24 to 4.2.25
- [Commits](https://github.com/django/django/compare/4.2.24...4.2.25)

---
updated-dependencies:
- dependency-name: django
  dependency-version: 4.2.25
  dependency-type: direct:production
  dependency-group: pip
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 23:04:42 +00:00
dependabot[bot]
de377e30b0 chore(deps): bump @codemirror/autocomplete from 6.18.6 to 6.19.0 in /vue
Bumps [@codemirror/autocomplete](https://github.com/codemirror/autocomplete) from 6.18.6 to 6.19.0.
- [Changelog](https://github.com/codemirror/autocomplete/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/autocomplete/compare/6.18.6...6.19.0)

---
updated-dependencies:
- dependency-name: "@codemirror/autocomplete"
  dependency-version: 6.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 04:26:02 +00:00
dependabot[bot]
ded9fd4223 chore(deps): bump boto3 from 1.40.39 to 1.40.40 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.39 to 1.40.40
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.39...1.40.40)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.40
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-30 04:33:27 +00:00
dependabot[bot]
b8e77668aa chore(deps): bump the pip-patches group with 2 updates
Bumps the pip-patches group with 2 updates: [boto3](https://github.com/boto/boto3) and [pyyaml](https://github.com/yaml/pyyaml).


Updates `boto3` from 1.40.36 to 1.40.39
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.36...1.40.39)

Updates `pyyaml` from 6.0.2 to 6.0.3
- [Release notes](https://github.com/yaml/pyyaml/releases)
- [Changelog](https://github.com/yaml/pyyaml/blob/6.0.3/CHANGES)
- [Commits](https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.39
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: pyyaml
  dependency-version: 6.0.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-29 05:29:41 +00:00
smilerz
1f0eea5789 Merge pull request #4075 from smilerz/upstream-pr-20250926-045524
Sync 6 commits from fork: chore(deps): bump whitenoise from 6.10.0 to 6.11.0
2025-09-26 07:35:20 -05:00
GitHub Action
49e50c2834 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-09-26 04:55:24 +00:00
dependabot[bot]
176172c262 chore(deps): bump whitenoise from 6.10.0 to 6.11.0
Bumps [whitenoise](https://github.com/evansd/whitenoise) from 6.10.0 to 6.11.0.
- [Changelog](https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst)
- [Commits](https://github.com/evansd/whitenoise/compare/6.10.0...6.11.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-26 04:48:32 +00:00
dependabot[bot]
ec1a32f126 chore(deps): bump django-cors-headers from 4.8.0 to 4.9.0
Bumps [django-cors-headers](https://github.com/adamchainz/django-cors-headers) from 4.8.0 to 4.9.0.
- [Changelog](https://github.com/adamchainz/django-cors-headers/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/adamchainz/django-cors-headers/compare/4.8.0...4.9.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-26 04:44:11 +00:00
dependabot[bot]
8c5c19fa81 chore(deps): bump boto3 from 1.40.35 to 1.40.36 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.35 to 1.40.36
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.35...1.40.36)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.36
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-26 04:39:35 +00:00
dependabot[bot]
d6ccec99b0 chore(deps): bump lxml from 6.0.1 to 6.0.2 in the pip-patches group
Bumps the pip-patches group with 1 update: [lxml](https://github.com/lxml/lxml).


Updates `lxml` from 6.0.1 to 6.0.2
- [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-6.0.1...lxml-6.0.2)

---
updated-dependencies:
- dependency-name: lxml
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-25 04:35:22 +00:00
dependabot[bot]
102a0976e5 chore(deps): bump boto3 from 1.40.34 to 1.40.35 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.34 to 1.40.35
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.34...1.40.35)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.35
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-23 04:34:40 +00:00
smilerz
1082f65e75 Merge pull request #4061 from smilerz/upstream-pr-20250922-044204
Sync 2 commits from fork: chore(deps): bump pytest-asyncio in the pip-pytest group
2025-09-22 07:24:30 -05:00
dependabot[bot]
a187331b6d chore(deps): bump boto3 from 1.40.31 to 1.40.34 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.31 to 1.40.34
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.31...1.40.34)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.34
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-22 12:22:45 +00:00
GitHub Action
9a5fb5cb80 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-09-22 04:42:04 +00:00
dependabot[bot]
42e4fe24b9 chore(deps): bump pytest-asyncio in the pip-pytest group
Bumps the pip-pytest group with 1 update: [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio).


Updates `pytest-asyncio` from 1.1.1 to 1.2.0
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v1.1.1...v1.2.0)

---
updated-dependencies:
- dependency-name: pytest-asyncio
  dependency-version: 1.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-22 04:36:00 +00:00
dependabot[bot]
fa33819414 chore(deps): bump the pip-patches group with 2 updates
Bumps the pip-patches group with 2 updates: [boto3](https://github.com/boto/boto3) and [pytubefix](https://github.com/juanbindez/pytubefix).


Updates `boto3` from 1.40.30 to 1.40.31
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.30...1.40.31)

Updates `pytubefix` from 9.5.0 to 9.5.1
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v9.5.0...v9.5.1)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.31
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: pytubefix
  dependency-version: 9.5.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-19 04:35:53 +00:00
smilerz
06351b0c16 Merge pull request #4049 from smilerz/upstream-pr-20250917-044956
Sync 1 commit from fork: chore(deps): bump whitenoise in the pip-minors group
2025-09-17 06:58:53 -05:00
GitHub Action
5285e6424f Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-09-17 04:49:56 +00:00
dependabot[bot]
3202a290dc chore(deps): bump whitenoise in the pip-minors group
Bumps the pip-minors group with 1 update: [whitenoise](https://github.com/evansd/whitenoise).


Updates `whitenoise` from 6.9.0 to 6.10.0
- [Changelog](https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst)
- [Commits](https://github.com/evansd/whitenoise/compare/6.9.0...6.10.0)

---
updated-dependencies:
- dependency-name: whitenoise
  dependency-version: 6.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-17 04:43:01 +00:00
smilerz
b70617eada Merge pull request #4045 from smilerz/upstream-pr-20250916-135127
Sync 4 commits from fork: chore(deps): bump pytest-asyncio in the pip-pytest group
2025-09-16 08:55:11 -05:00
GitHub Action
9ce924ce1f Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-09-16 13:51:27 +00:00
dependabot[bot]
60c85832d6 chore(deps): bump pytest-asyncio in the pip-pytest group
Bumps the pip-pytest group with 1 update: [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio).


Updates `pytest-asyncio` from 1.1.0 to 1.1.1
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v1.1.0...v1.1.1)

---
updated-dependencies:
- dependency-name: pytest-asyncio
  dependency-version: 1.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-16 13:50:35 +00:00
dependabot[bot]
0d96c6a380 chore(deps): bump django-cors-headers in the pip-minors group
Bumps the pip-minors group with 1 update: [django-cors-headers](https://github.com/adamchainz/django-cors-headers).


Updates `django-cors-headers` from 4.7.0 to 4.8.0
- [Changelog](https://github.com/adamchainz/django-cors-headers/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/adamchainz/django-cors-headers/compare/4.7.0...4.8.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-16 13:44:29 +00:00
dependabot[bot]
7225cbdd61 chore(deps): bump boto3 from 1.40.29 to 1.40.30 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.29 to 1.40.30
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.29...1.40.30)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.30
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-16 04:39:52 +00:00
smilerz
098d29deeb Merge pull request #196 from smilerz/dependabot/npm_and_yarn/vue/npm_and_yarn-16c0b19af7
chore(deps): bump axios from 1.11.0 to 1.12.0 in /vue in the npm_and_yarn group across 1 directory
2025-09-15 08:34:35 -05:00
dependabot[bot]
4ce8e0c6a1 chore(deps): bump axios
Bumps the npm_and_yarn group with 1 update in the /vue directory: [axios](https://github.com/axios/axios).


Updates `axios` from 1.11.0 to 1.12.0
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.11.0...v1.12.0)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.12.0
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 13:31:18 +00:00
smilerz
8d770217a2 Merge pull request #4037 from smilerz/upstream-pr-20250915-045713
Sync 2 commits from fork: chore(deps): bump pytest-cov from 6.2.1 to 6.3.0 in the pip-pytest group
2025-09-15 08:26:00 -05:00
GitHub Action
462f2aa10a Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-09-15 04:57:13 +00:00
dependabot[bot]
1d5af4e48a chore(deps): bump pytest-cov from 6.2.1 to 6.3.0 in the pip-pytest group
Bumps the pip-pytest group with 1 update: [pytest-cov](https://github.com/pytest-dev/pytest-cov).


Updates `pytest-cov` from 6.2.1 to 6.3.0
- [Changelog](https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst)
- [Commits](https://github.com/pytest-dev/pytest-cov/compare/v6.2.1...v6.3.0)

---
updated-dependencies:
- dependency-name: pytest-cov
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 04:51:09 +00:00
dependabot[bot]
e62d392eee chore(deps): bump the pip-patches group with 2 updates
Bumps the pip-patches group with 2 updates: [boto3](https://github.com/boto/boto3) and [django-allauth](https://github.com/sponsors/pennersr).


Updates `boto3` from 1.40.26 to 1.40.29
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.26...1.40.29)

Updates `django-allauth` from 65.11.1 to 65.11.2
- [Commits](https://github.com/sponsors/pennersr/commits)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.29
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: django-allauth
  dependency-version: 65.11.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-15 04:46:13 +00:00
smilerz
e0473b748d Merge pull request #4028 from smilerz/upstream-pr-20250912-132527
Sync 2 commits from fork: chore(deps): bump markdown from 3.8.2 to 3.9 in the pip-minors group
2025-09-12 08:46:53 -05:00
GitHub Action
1da214a53f Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-09-12 13:25:27 +00:00
smilerz
86f46297c6 fixed wildcard in dependabot config 2025-09-12 08:20:01 -05:00
smilerz
136bd9d848 add vue and vue* to ignore rule in dependabot 2025-09-12 08:20:00 -05:00
dependabot[bot]
4b7ddc263c chore(deps): bump markdown from 3.8.2 to 3.9 in the pip-minors group
Bumps the pip-minors group with 1 update: [markdown](https://github.com/Python-Markdown/markdown).


Updates `markdown` from 3.8.2 to 3.9
- [Release notes](https://github.com/Python-Markdown/markdown/releases)
- [Changelog](https://github.com/Python-Markdown/markdown/blob/master/docs/changelog.md)
- [Commits](https://github.com/Python-Markdown/markdown/compare/3.8.2...3.9.0)

---
updated-dependencies:
- dependency-name: markdown
  dependency-version: '3.9'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-12 04:37:47 +00:00
dependabot[bot]
f1f4e5f1a6 chore(deps): bump boto3 from 1.40.25 to 1.40.26 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.25 to 1.40.26
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.25...1.40.26)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.26
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-12 04:32:14 +00:00
smilerz
2a8c57ba10 Merge pull request #4020 from smilerz/upstream-pr-20250909-044442
Sync 1 commit from fork: chore(deps): bump boto3 from 1.40.24 to 1.40.25 in the pip-patches group
2025-09-09 08:15:34 -05:00
GitHub Action
280f8776c5 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-09-09 04:44:43 +00:00
dependabot[bot]
82d3f45090 chore(deps): bump boto3 from 1.40.24 to 1.40.25 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.24 to 1.40.25
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.24...1.40.25)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.25
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-09 04:37:08 +00:00
smilerz
edeb9b062a Merge pull request #4015 from smilerz/upstream-pr-20250908-150858
Sync 3 commits from fork: chore(deps): bump pytest from 8.4.1 to 8.4.2 in the pip-pytest group
2025-09-08 10:38:51 -05:00
GitHub Action
3b717664b8 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-09-08 15:08:58 +00:00
dependabot[bot]
bf3d5a8835 chore(deps): bump pytest from 8.4.1 to 8.4.2 in the pip-pytest group
Bumps the pip-pytest group with 1 update: [pytest](https://github.com/pytest-dev/pytest).


Updates `pytest` from 8.4.1 to 8.4.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/8.4.1...8.4.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 15:02:10 +00:00
dependabot[bot]
5cf061af30 chore(deps): bump django from 4.2.23 to 4.2.24
Bumps [django](https://github.com/django/django) from 4.2.23 to 4.2.24.
- [Commits](https://github.com/django/django/compare/4.2.23...4.2.24)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 14:57:25 +00:00
dependabot[bot]
f3c72dc102 chore(deps): bump boto3 from 1.40.21 to 1.40.24 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.21 to 1.40.24
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.21...1.40.24)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.24
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-08 14:52:49 +00:00
smilerz
0b771f49fd Merge pull request #175 from smilerz/smilerz-patch-1
Remove comments from CodeQL analysis configuration
2025-09-08 09:49:27 -05:00
smilerz
b072aa4f9a Merge branch 'working' into smilerz-patch-1 2025-09-08 09:44:40 -05:00
smilerz
3a782d8114 Refactor CodeQL analysis configuration
Removed paths-ignore configuration and updated query options for CodeQL analysis.
2025-09-08 09:35:47 -05:00
smilerz
81eccea140 Update codeql-analysis.yml 2025-09-08 09:30:05 -05:00
smilerz
0f33ee5052 Re-add security-extended queries for CodeQL analysis 2025-09-08 09:21:03 -05:00
smilerz
825efd4eb9 Add security-extended queries to CodeQL workflow 2025-09-08 09:15:43 -05:00
smilerz
3d2758c6ad Update CodeQL queries format in workflow 2025-09-08 09:11:18 -05:00
smilerz
2f52413a7c Update queries format in CodeQL workflow 2025-09-08 09:09:54 -05:00
smilerz
b1d3159bd8 Simplify queries configuration in CodeQL workflow 2025-09-08 09:07:00 -05:00
smilerz
fcdf564d2b Remove comments from CodeQL analysis configuration 2025-09-08 08:41:32 -05:00
smilerz
823efe5050 Fix syntax for using security-extended query 2025-09-08 08:36:06 -05:00
smilerz
b88e012759 Update syntax in codeql-analysis.yml 2025-09-08 08:23:51 -05:00
smilerz
82a00bd388 Merge pull request #4008 from smilerz/upstream-pr-20250905-044308
Sync 1 commit from fork: chore(deps): bump cryptography in the pip-patches group
2025-09-05 07:57:08 -05:00
smilerz
a187fa2c8c Merge branch 'tandoor-1' into upstream-pr-20250905-044308 2025-09-05 07:56:54 -05:00
GitHub Action
d8b786a25a Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-09-05 04:43:08 +00:00
dependabot[bot]
55485e105e chore(deps): bump cryptography in the pip-patches group
Bumps the pip-patches group with 1 update: [cryptography](https://github.com/pyca/cryptography).


Updates `cryptography` from 45.0.6 to 45.0.7
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/45.0.6...45.0.7)

---
updated-dependencies:
- dependency-name: cryptography
  dependency-version: 45.0.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-05 04:36:25 +00:00
smilerz
293d8d6680 Merge pull request #4001 from smilerz/upstream-pr-20250904-141319
Sync 4 commits from fork: chore(deps): bump boto3 from 1.40.20 to 1.40.21 in the pip-patches group
2025-09-04 09:17:21 -05:00
GitHub Action
2eacacb021 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-09-04 14:13:19 +00:00
smilerz
459586ff77 Merge pull request #163 from smilerz/dependabot/npm_and_yarn/vue/npm-patches-287502959c
chore(deps): bump the npm-patches group in /vue with 8 updates
2025-09-04 09:10:23 -05:00
smilerz
3ed8d8ae98 Merge branch 'working' into dependabot/npm_and_yarn/vue/npm-patches-287502959c 2025-09-04 09:06:59 -05:00
dependabot[bot]
d77d62e806 chore(deps): bump boto3 from 1.40.20 to 1.40.21 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.20 to 1.40.21
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.20...1.40.21)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.21
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-04 14:05:52 +00:00
dependabot[bot]
eab8db2734 chore(deps): bump pytubefix from 9.4.1 to 9.5.0 in the pip-minors group
Bumps the pip-minors group with 1 update: [pytubefix](https://github.com/juanbindez/pytubefix).


Updates `pytubefix` from 9.4.1 to 9.5.0
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v9.4.1...v9.5.0)

---
updated-dependencies:
- dependency-name: pytubefix
  dependency-version: 9.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-03 01:07:01 +00:00
dependabot[bot]
623ce16801 chore(deps): bump the npm-patches group in /vue with 8 updates
Bumps the npm-patches group in /vue with 8 updates:

| Package | From | To |
| --- | --- | --- |
| [@codemirror/lang-markdown](https://github.com/codemirror/lang-markdown) | `6.3.3` | `6.3.4` |
| [@vue/cli](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli) | `5.0.8` | `5.0.9` |
| [@vue/cli-plugin-babel](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-babel) | `5.0.8` | `5.0.9` |
| [@vue/cli-plugin-eslint](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-eslint) | `5.0.8` | `5.0.9` |
| [@vue/cli-plugin-pwa](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-pwa) | `5.0.8` | `5.0.9` |
| [@vue/cli-plugin-typescript](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-plugin-typescript) | `5.0.8` | `5.0.9` |
| [@vue/cli-service](https://github.com/vuejs/vue-cli/tree/HEAD/packages/@vue/cli-service) | `5.0.8` | `5.0.9` |
| [@vue/compiler-sfc](https://github.com/vuejs/core/tree/HEAD/packages/compiler-sfc) | `3.5.18` | `3.5.20` |


Updates `@codemirror/lang-markdown` from 6.3.3 to 6.3.4
- [Changelog](https://github.com/codemirror/lang-markdown/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/lang-markdown/compare/6.3.3...6.3.4)

Updates `@vue/cli` from 5.0.8 to 5.0.9
- [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.9/packages/@vue/cli)

Updates `@vue/cli-plugin-babel` from 5.0.8 to 5.0.9
- [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.9/packages/@vue/cli-plugin-babel)

Updates `@vue/cli-plugin-eslint` from 5.0.8 to 5.0.9
- [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.9/packages/@vue/cli-plugin-eslint)

Updates `@vue/cli-plugin-pwa` from 5.0.8 to 5.0.9
- [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.9/packages/@vue/cli-plugin-pwa)

Updates `@vue/cli-plugin-typescript` from 5.0.8 to 5.0.9
- [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.9/packages/@vue/cli-plugin-typescript)

Updates `@vue/cli-service` from 5.0.8 to 5.0.9
- [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.9/packages/@vue/cli-service)

Updates `@vue/compiler-sfc` from 3.5.18 to 3.5.20
- [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.5.20/packages/compiler-sfc)

---
updated-dependencies:
- dependency-name: "@codemirror/lang-markdown"
  dependency-version: 6.3.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@vue/cli"
  dependency-version: 5.0.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@vue/cli-plugin-babel"
  dependency-version: 5.0.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@vue/cli-plugin-eslint"
  dependency-version: 5.0.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@vue/cli-plugin-pwa"
  dependency-version: 5.0.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@vue/cli-plugin-typescript"
  dependency-version: 5.0.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@vue/cli-service"
  dependency-version: 5.0.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@vue/compiler-sfc"
  dependency-version: 3.5.20
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 11:21:23 +00:00
dependabot[bot]
dfac02cc53 chore(deps): bump the pip-patches group with 2 updates
Bumps the pip-patches group with 2 updates: [boto3](https://github.com/boto/boto3) and [django-allauth](https://github.com/sponsors/pennersr).


Updates `boto3` from 1.40.17 to 1.40.20
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.17...1.40.20)

Updates `django-allauth` from 65.11.0 to 65.11.1
- [Commits](https://github.com/sponsors/pennersr/commits)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.20
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: django-allauth
  dependency-version: 65.11.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-01 08:33:26 +00:00
smilerz
b99e461e10 Merge pull request #3979 from smilerz/upstream-pr-20250829-045007
Sync 2 commits from fork: chore(deps): bump django-allauth in the pip-minors group
2025-08-29 08:18:15 -05:00
GitHub Action
9f66ca34d9 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-29 04:50:07 +00:00
dependabot[bot]
53e075953d chore(deps): bump django-allauth in the pip-minors group
Bumps the pip-minors group with 1 update: [django-allauth](https://github.com/sponsors/pennersr).


Updates `django-allauth` from 65.10.0 to 65.11.0
- [Commits](https://github.com/sponsors/pennersr/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-29 04:43:29 +00:00
dependabot[bot]
d060629477 chore(deps): bump boto3 from 1.40.16 to 1.40.17 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.16 to 1.40.17
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.16...1.40.17)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.17
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-29 04:38:01 +00:00
smilerz
b7b34c775c Merge pull request #3976 from smilerz/upstream-pr-20250828-163118
Sync 7 commits from fork: chore(deps): bump the npm-minors group in /vue with 2 updates
2025-08-28 11:48:32 -05:00
GitHub Action
2f2b07cb4c Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-28 16:31:18 +00:00
smilerz
900e6abc6d Merge pull request #147 from smilerz/dependabot/npm_and_yarn/vue/npm-minors-010af39555
chore(deps): bump the npm-minors group in /vue with 2 updates
2025-08-28 11:26:02 -05:00
dependabot[bot]
63458261a8 chore(deps): bump the npm-minors group in /vue with 2 updates
Bumps the npm-minors group in /vue with 2 updates: [core-js](https://github.com/zloirock/core-js/tree/HEAD/packages/core-js) and [typescript](https://github.com/microsoft/TypeScript).


Updates `core-js` from 3.44.0 to 3.45.1
- [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/commits/v3.45.1/packages/core-js)

Updates `typescript` from 5.8.3 to 5.9.2
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.8.3...v5.9.2)

---
updated-dependencies:
- dependency-name: core-js
  dependency-version: 3.45.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: npm-minors
- dependency-name: typescript
  dependency-version: 5.9.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-28 16:18:50 +00:00
smilerz
65776080a6 updated brace-expansion 2025-08-28 11:05:32 -05:00
dependabot[bot]
1016a9b9dc chore(deps): bump the pip-patches group across 1 directory with 3 updates
Bumps the pip-patches group with 3 updates in the / directory: [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/), [boto3](https://github.com/boto/boto3) and [lxml](https://github.com/lxml/lxml).


Updates `beautifulsoup4` from 4.13.4 to 4.13.5

Updates `boto3` from 1.40.15 to 1.40.16
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.15...1.40.16)

Updates `lxml` from 6.0.0 to 6.0.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-6.0.0...lxml-6.0.1)

---
updated-dependencies:
- dependency-name: beautifulsoup4
  dependency-version: 4.13.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: boto3
  dependency-version: 1.40.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: lxml
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-28 15:25:30 +00:00
smilerz
c518bcde8f use freezegun to freeze time so that date based searches work consistently 2025-08-28 10:19:14 -05:00
smilerz
17f49c3827 Merge pull request #152 from smilerz/smilerz-patch-1
Disable warnings in Django testing step
2025-08-28 08:35:26 -05:00
smilerz
48e0cb6588 Disable warnings in Django testing step 2025-08-28 08:31:18 -05:00
smilerz
bb09928d73 supress warnings during CI 2025-08-28 08:27:41 -05:00
smilerz
2b8f10a2a7 Refactor test_search_date to use fixed UTC reference date
Because:
- Timezone-dependent tests caused inconsistent results
- CI and local runs could differ near day boundaries
- Workflow concurrency settings needed cleanup

Refactors test_search_date and found_recipe to use a fixed UTC reference date for all recipe creation and queries, eliminating timezone issues. Removes concurrency blocks from workflows for clarity and reliability. Affects .github/workflows/dependabot-automerge.yml, docker-publish.yml, push-orchestrator.yml, and test_recipe_full_text_search.py. No breaking changes, but test results now deterministic across environments.
2025-08-28 07:28:20 -05:00
smilerz
db0ddf2a60 added concurrency to workflows 2025-08-27 22:04:57 -05:00
smilerz
51849937bb added debug message to test 2025-08-27 21:50:58 -05:00
smilerz
e640ccb603 Merge pull request #3973 from smilerz/upstream-pr-20250828-023533
Sync 1 commit from fork: Refactor connector hooks to use DTOs, update manager and tests
2025-08-27 21:44:22 -05:00
GitHub Action
1e812a8ef5 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-28 02:35:33 +00:00
smilerz
2c186ab72e Refactor connector hooks to use DTOs, update manager and tests
Because:
- Connector hooks needed safe, serializable DTOs
- Manager and tests required updates for new DTO interface
- Code style and clarity improvements were needed
- Redundant date test logic removed

Refactors connector interface and manager to use UserDTO and ShoppingListEntryDTO.
Updates connector manager logic and tests to match new DTO signatures.
Improves code style in test_recipe_full_text_search.py and removes unnecessary date test block.
Breaking change: downstream connectors must update hook signatures.
2025-08-27 20:58:47 -05:00
smilerz
a6aa162527 Merge pull request #3969 from smilerz/upstream-pr-20250825-124428
Sync 3 commits from fork: chore(deps): bump django-allauth in the pip-minors group
2025-08-25 07:47:17 -05:00
GitHub Action
fd2be921d0 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-25 12:44:29 +00:00
dependabot[bot]
5710dcc85f chore(deps): bump django-allauth in the pip-minors group
Bumps the pip-minors group with 1 update: [django-allauth](https://github.com/sponsors/pennersr).


Updates `django-allauth` from 65.10.0 to 65.11.0
- [Commits](https://github.com/sponsors/pennersr/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-25 12:38:03 +00:00
dependabot[bot]
64bfd89225 chore(deps): bump django-debug-toolbar from 5.2.0 to 6.0.0
Bumps [django-debug-toolbar](https://github.com/django-commons/django-debug-toolbar) from 5.2.0 to 6.0.0.
- [Release notes](https://github.com/django-commons/django-debug-toolbar/releases)
- [Changelog](https://github.com/django-commons/django-debug-toolbar/blob/main/docs/changes.rst)
- [Commits](https://github.com/django-commons/django-debug-toolbar/compare/5.2.0...6.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-25 12:30:55 +00:00
dependabot[bot]
41fd7334dc chore(deps): bump boto3 from 1.40.12 to 1.40.15 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.12 to 1.40.15
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.12...1.40.15)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-25 09:03:03 +00:00
smilerz
1afae2b77c Merge pull request #3958 from smilerz/upstream-pr-20250822-053647
Sync 2 commits from fork: chore(deps): bump the pip-patches group with 2 updates
2025-08-22 06:46:07 -05:00
GitHub Action
9b1ff9fd6e Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-22 05:36:47 +00:00
dependabot[bot]
64b4f8c1d1 chore(deps): bump the pip-patches group with 2 updates
Bumps the pip-patches group with 2 updates: [boto3](https://github.com/boto/boto3) and [requests](https://github.com/psf/requests).


Updates `boto3` from 1.40.11 to 1.40.12
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.11...1.40.12)

Updates `requests` from 2.32.4 to 2.32.5
- [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.32.4...v2.32.5)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: requests
  dependency-version: 2.32.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-22 05:30:22 +00:00
dependabot[bot]
d03e991cdc chore(deps): bump boto3 from 1.40.10 to 1.40.11 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.10 to 1.40.11
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.10...1.40.11)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-19 17:16:01 +00:00
smilerz
dfe73d2f95 Merge pull request #3945 from smilerz/upstream-pr-20250818-081648
Sync 1 commit from fork: chore(deps): bump boto3 from 1.40.7 to 1.40.10 in the pip-patches group
2025-08-18 08:26:32 -05:00
GitHub Action
dfb0aa9609 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-18 08:16:48 +00:00
dependabot[bot]
79805cea66 chore(deps): bump boto3 from 1.40.7 to 1.40.10 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.7 to 1.40.10
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.7...1.40.10)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-18 08:10:11 +00:00
smilerz
89130998a4 Merge pull request #3939 from smilerz/upstream-pr-20250815-052458
Sync 2 commits from fork: chore(deps): bump redis from 6.3.0 to 6.4.0 in the pip-minors group
2025-08-15 08:14:15 -05:00
GitHub Action
ec11a81d1e Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-15 05:24:58 +00:00
dependabot[bot]
92d7993137 chore(deps): bump redis from 6.3.0 to 6.4.0 in the pip-minors group
Bumps the pip-minors group with 1 update: [redis](https://github.com/redis/redis-py).


Updates `redis` from 6.3.0 to 6.4.0
- [Release notes](https://github.com/redis/redis-py/releases)
- [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES)
- [Commits](https://github.com/redis/redis-py/compare/v6.3.0...v6.4.0)

---
updated-dependencies:
- dependency-name: redis
  dependency-version: 6.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-15 05:18:12 +00:00
dependabot[bot]
2ea8792568 chore(deps): bump boto3 from 1.40.6 to 1.40.7 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.6 to 1.40.7
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.6...1.40.7)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-15 05:12:39 +00:00
smilerz
4148fe6d28 Merge pull request #3936 from smilerz/upstream-pr-20250813-135943
Sync 3 commits from fork: chore(deps): bump the npm-patches group in /vue with 2 updates (#104)
2025-08-13 09:27:04 -05:00
GitHub Action
7aea9e2927 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-13 13:59:43 +00:00
dependabot[bot]
37df1ddccd chore(deps): bump the npm-patches group in /vue with 2 updates (#104)
Bumps the npm-patches group in /vue with 2 updates: [@codemirror/view](https://github.com/codemirror/view) and [@vue/compiler-sfc](https://github.com/vuejs/core/tree/HEAD/packages/compiler-sfc).


Updates `@codemirror/view` from 6.38.0 to 6.38.1
- [Changelog](https://github.com/codemirror/view/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codemirror/view/compare/6.38.0...6.38.1)

Updates `@vue/compiler-sfc` from 3.5.17 to 3.5.18
- [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.5.18/packages/compiler-sfc)

---
updated-dependencies:
- dependency-name: "@codemirror/view"
  dependency-version: 6.38.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: npm-patches
- dependency-name: "@vue/compiler-sfc"
  dependency-version: 3.5.18
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: npm-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: smilerz <smilerz@gmail.com>
2025-08-13 08:54:07 -05:00
dependabot[bot]
df64277c7f chore(deps): bump the npm-minors group in /vue with 2 updates (#105)
Bumps the npm-minors group in /vue with 2 updates: [axios](https://github.com/axios/axios) and [typescript](https://github.com/microsoft/TypeScript).


Updates `axios` from 1.10.0 to 1.11.0
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.10.0...v1.11.0)

Updates `typescript` from 5.1.6 to 5.8.3
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.1.6...v5.8.3)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: npm-minors
- dependency-name: typescript
  dependency-version: 5.8.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: npm-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: smilerz <smilerz@gmail.com>
2025-08-13 13:05:10 +00:00
dependabot[bot]
0505da4f83 chore(deps): bump redis from 6.2.0 to 6.3.0 in the pip-minors group
Bumps the pip-minors group with 1 update: [redis](https://github.com/redis/redis-py).


Updates `redis` from 6.2.0 to 6.3.0
- [Release notes](https://github.com/redis/redis-py/releases)
- [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES)
- [Commits](https://github.com/redis/redis-py/compare/v6.2.0...v6.3.0)

---
updated-dependencies:
- dependency-name: redis
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-13 05:15:34 +00:00
smilerz
b268ccedd8 Merge pull request #3934 from smilerz/upstream-pr-20250812-125815
Sync 1 commit from fork: chore(deps): bump boto3 from 1.40.5 to 1.40.6 in the pip-patches group
2025-08-12 07:59:11 -05:00
GitHub Action
80a60a5b13 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-12 12:58:15 +00:00
dependabot[bot]
46ace24f53 chore(deps): bump boto3 from 1.40.5 to 1.40.6 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.40.5 to 1.40.6
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.5...1.40.6)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-12 12:52:00 +00:00
smilerz
d0542d02da Merge pull request #3931 from smilerz/upstream-pr-20250811-130526
Sync 1 commit from fork: chore(deps): bump recipe-scrapers in the pip-minors group
2025-08-11 08:07:36 -05:00
GitHub Action
b050ca7714 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-11 13:05:26 +00:00
dependabot[bot]
b0684d679c chore(deps): bump recipe-scrapers in the pip-minors group
Bumps the pip-minors group with 1 update: [recipe-scrapers](https://github.com/hhursev/recipe-scrapers).


Updates `recipe-scrapers` from 15.8.0 to 15.9.0
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/15.8.0...15.9.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-11 12:58:42 +00:00
smilerz
76c642239f Merge pull request #3930 from smilerz/upstream-pr-20250811-072606
Sync 1 commit from fork: chore(deps): bump the pip-patches group with 3 updates
2025-08-11 07:50:18 -05:00
GitHub Action
2542a0c6f8 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-11 07:26:07 +00:00
dependabot[bot]
dbacb315da chore(deps): bump the pip-patches group with 3 updates
Bumps the pip-patches group with 3 updates: [boto3](https://github.com/boto/boto3), [cryptography](https://github.com/pyca/cryptography) and [djangorestframework](https://github.com/encode/django-rest-framework).


Updates `boto3` from 1.40.0 to 1.40.5
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.40.0...1.40.5)

Updates `cryptography` from 45.0.5 to 45.0.6
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/45.0.5...45.0.6)

Updates `djangorestframework` from 3.16.0 to 3.16.1
- [Release notes](https://github.com/encode/django-rest-framework/releases)
- [Commits](https://github.com/encode/django-rest-framework/compare/3.16.0...3.16.1)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: cryptography
  dependency-version: 45.0.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: djangorestframework
  dependency-version: 3.16.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-11 07:19:44 +00:00
smilerz
66ec659354 Merge pull request #3918 from smilerz/upstream-pr-20250808-051522
Sync 1 commit from fork: chore(deps): bump boto3 from 1.39.17 to 1.40.0 in the pip-minors group
2025-08-08 07:18:36 -05:00
GitHub Action
25f9188fc1 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-08 05:15:22 +00:00
dependabot[bot]
aaf297e63f chore(deps): bump boto3 from 1.39.17 to 1.40.0 in the pip-minors group
Bumps the pip-minors group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.39.17 to 1.40.0
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.39.17...1.40.0)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.40.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-08 05:08:51 +00:00
smilerz
03a74ec5ec Merge pull request #3900 from smilerz/upstream-pr-20250804-065404
Sync 2 commits from fork: chore(deps): bump the pip-patches group with 2 updates
2025-08-04 07:49:34 -05:00
GitHub Action
83f3c4f657 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-08-04 06:54:04 +00:00
dependabot[bot]
3725f4ea0e chore(deps): bump the pip-patches group with 2 updates
---
updated-dependencies:
- dependency-name: aiohttp
  dependency-version: 3.12.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: boto3
  dependency-version: 1.39.17
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-04 06:47:38 +00:00
dependabot[bot]
debc8aef69 chore(deps): bump boto3 from 1.39.14 to 1.39.15 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.39.14 to 1.39.15
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.39.14...1.39.15)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.39.15
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-01 04:50:08 +00:00
smilerz
b3e0235a9e Merge pull request #3857 from smilerz/upstream-pr-20250730-052740
Sync 4 commits from fork: chore(deps): bump pytubefix from 9.3.0 to 9.4.1 in the pip-minors group
2025-07-31 11:27:21 -05:00
GitHub Action
c0972dd390 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-07-30 05:27:40 +00:00
dependabot[bot]
d90cadcb9c chore(deps): bump pytubefix from 9.3.0 to 9.4.1 in the pip-minors group
Bumps the pip-minors group with 1 update: [pytubefix](https://github.com/juanbindez/pytubefix).


Updates `pytubefix` from 9.3.0 to 9.4.1
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v9.3.0...v9.4.1)

---
updated-dependencies:
- dependency-name: pytubefix
  dependency-version: 9.4.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-30 05:21:26 +00:00
dependabot[bot]
e40d61c7ef chore(deps): bump lxml from 5.4.0 to 6.0.0
Bumps [lxml](https://github.com/lxml/lxml) from 5.4.0 to 6.0.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-5.4.0...lxml-6.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-29 06:36:04 +00:00
dependabot[bot]
6aaac55017 chore(deps): bump boto3 from 1.39.13 to 1.39.14 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.39.13 to 1.39.14
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.39.13...1.39.14)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.39.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-29 06:31:46 +00:00
dependabot[bot]
d28a4ef3a0 chore(deps): bump boto3 from 1.39.10 to 1.39.13 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.39.10 to 1.39.13
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.39.10...1.39.13)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.39.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-28 06:22:21 +00:00
smilerz
09c8271289 include body in PR link 2025-07-25 17:02:52 -05:00
smilerz
57fea5698e Merge pull request #3850 from smilerz/upstream-pr-20250725-215052
Sync 1 commit from fork: Refactor requirements.txt and workflow automation
2025-07-25 16:56:20 -05:00
GitHub Action
30930734d8 Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-07-25 21:50:52 +00:00
smilerz
50db2e31cf fixed link for PR 2025-07-25 16:45:26 -05:00
smilerz
ec5b8e93a9 Rename workflow to Stage Branch for PR and update file name
Because:
- Workflow now stages a branch and opens an issue for manual PR
- Name and file should reflect current function

Renames workflow to 'Stage Branch for PR' and file to stage-branch-for-pr.yml. No breaking changes. Affects: .github/workflows/stage-branch-for-pr.yml
2025-07-25 16:34:19 -05:00
smilerz
8f0ff70813 Refactor requirements.txt and workflow automation
Because:
- requirements.txt was unsorted, making review and maintenance harder
- Workflow PR instructions were manual and unclear

Alphabetized requirements.txt main and dev sections, preserving all version pins and comments. Updated .github/workflows/create-upstream-pr.yml to open a GitHub issue for manual PR tracking, replacing console instructions. No breaking changes. requirements.txt, .github/workflows/create-upstream-pr.yml.
2025-07-25 16:18:15 -05:00
smilerz
99c5b22745 Fix: filter infra files and skip PR if no code changes or commits
Because:
- Infra-only changes should not trigger PRs
- PRs should only be created for real code changes

Filters infra files from file count and summary. Skips PR creation if no code files or commits. Affects create-upstream-pr.yml. No breaking changes.
2025-07-25 11:01:35 -05:00
smilerz
6678b3ccfe Fix multi-line output for changes_summary in workflow
Because:
- GitHub Actions requires heredoc for multi-line outputs
- Previous output format caused file command errors

Uses heredoc for changes_summary in summarize_changes step. Affects create-upstream-pr.yml. No breaking changes.
2025-07-25 10:40:52 -05:00
smilerz
41d95bc0f5 Update PR summary to list changed files
Because:
- PR summary did not enumerate changed files
- Improved clarity for reviewers

Adds formatted file list to changes summary in create-upstream-pr.yml. Removes redundant separator in PR body. No breaking changes. Affects only workflow file.
2025-07-25 10:20:35 -05:00
smilerz
d58a2a2823 Merge pull request #3849 from smilerz/upstream-pr-20250725-130828
Sync 26 commits from fork: chore(deps): bump boto3 from 1.39.9 to 1.39.10 in the pip-patches group
2025-07-25 08:24:34 -05:00
GitHub Action
47569858fb Restore upstream infrastructure files for PR
- Removed fork-specific .gitattributes
- Restored upstream .github/workflows/
- Restored upstream cookbook/version_info.py
2025-07-25 13:08:28 +00:00
smilerz
33c161c836 Update upstream PR workflow to filter infra-only commits
Because:
- Commits touching only infra files (all .github, cookbook/version_info.py, .gitattributes) should not be included in PR content
- Only commits with non-infra file changes still different from upstream should be included

Affects .github/workflows/create-upstream-pr.yml. No breaking changes. No test code affected.
2025-07-25 08:02:28 -05:00
dependabot[bot]
8f568c0425 chore(deps): bump boto3 from 1.39.9 to 1.39.10 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.39.9 to 1.39.10
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.39.9...1.39.10)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.39.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-25 04:36:50 +00:00
smilerz
2e36378f2d use github app token everywhere 2025-07-24 16:32:54 -05:00
smilerz
143bfa97b6 fix syntax error in create-upstream-pr.yml 2025-07-24 16:08:18 -05:00
smilerz
70285d8b14 Update streamline upstream PR workflow and remove file filter
Because:
- Infra file restore must occur before merge to avoid conflicts
- Redundant code file filtering step was unnecessary after infra reset

Moves infra file restore before merge in .github/workflows/create-upstream-pr.yml.
Removes filter step and updates downstream logic to use all changed files.
Improves comments and step clarity. No breaking changes.
2025-07-24 15:57:57 -05:00
smilerz
7fb6379d71 Update create-upstream-pr workflow for correct branch and infra sync
Because:
- Previous workflow had duplicate and out-of-order steps
- Needed to ensure correct branch creation, upstream merge, and infra file reset

Refactors workflow to:
- Create branch and push to fork
- Merge upstream/tandoor-1 into new branch
- Restore infra files from upstream and push again
- Removes duplicate and redundant steps

Affects: .github/workflows/create-upstream-pr.yml
No breaking changes. No test code affected.
2025-07-24 13:51:51 -05:00
smilerz
a4aff4551f dewubgging output added 2025-07-24 11:36:41 -05:00
dependabot[bot]
000395fbd2 chore(deps): bump form-data in /vue in the npm_and_yarn group (#89)
Bumps the npm_and_yarn group in /vue with 1 update: [form-data](https://github.com/form-data/form-data).


Updates `form-data` from 4.0.3 to 4.0.4
- [Release notes](https://github.com/form-data/form-data/releases)
- [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md)
- [Commits](https://github.com/form-data/form-data/compare/v4.0.3...v4.0.4)

---
updated-dependencies:
- dependency-name: form-data
  dependency-version: 4.0.4
  dependency-type: indirect
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: smilerz <smilerz@gmail.com>
2025-07-24 16:25:12 +00:00
smilerz
339032de14 disable fine grained permissions for troubleshooting 2025-07-24 11:04:45 -05:00
smilerz
30f5071e37 force actions to run 2025-07-24 10:50:15 -05:00
smilerz
701a74b68c Update PR workflow to use GitHub App token for branch push
Because:
- GitHub Actions cannot push workflow file changes with default GITHUB_TOKEN
- GitHub App token is required for workflow file updates

Adds a step to generate a GitHub App token and uses it for pushing the branch. Follows the pattern from dependabot-automerge.yml. Affects create-upstream-pr.yml. No breaking changes. All PRs will now be able to push workflow file changes if needed.
2025-07-24 10:23:05 -05:00
smilerz
6a6ef9b13e update actions permissions to write 2025-07-24 10:03:09 -05:00
smilerz
8c333063be add workflow write permissions to create-upstream-pr.yml 2025-07-24 08:27:02 -05:00
smilerz
1ea59a76c2 Refactor PR workflow to exclude infra files
Because:
- PRs must never add, modify, or delete infrastructure files
- Infra file logic, counting, and removal is not needed
- Reset infra files to upstream state before push

Removes all logic for infra file tracking, counting, and removal. Now only code files are included in PRs. Infra files are always reset to upstream/tandoor-1 before push. Affects create-upstream-pr.yml. No breaking changes. All PRs will now be infra-clean by construction.
2025-07-24 07:31:42 -05:00
dependabot[bot]
dcfbb71d89 chore(deps): bump pytest-asyncio in the pip-pytest group
Bumps the pip-pytest group with 1 update: [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio).


Updates `pytest-asyncio` from 1.0.0 to 1.1.0
- [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases)
- [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v1.0.0...v1.1.0)

---
updated-dependencies:
- dependency-name: pytest-asyncio
  dependency-version: 1.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-pytest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-23 05:10:38 +00:00
dependabot[bot]
74a0650f11 chore(deps): bump boto3 from 1.39.8 to 1.39.9 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.39.8 to 1.39.9
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.39.8...1.39.9)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.39.9
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-22 06:07:42 +00:00
dependabot[bot]
a870cafd2c chore(deps): bump boto3 from 1.39.4 to 1.39.8 in the pip-patches group
Bumps the pip-patches group with 1 update: [boto3](https://github.com/boto/boto3).


Updates `boto3` from 1.39.4 to 1.39.8
- [Release notes](https://github.com/boto/boto3/releases)
- [Commits](https://github.com/boto/boto3/compare/1.39.4...1.39.8)

---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.39.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-21 05:56:50 +00:00
smilerz
7b856e4556 fixed syntax error 2025-07-20 11:22:46 -05:00
smilerz
d28918df94 Fix PR title/body output propagation in workflow
Because:
- PR title and body were not set as outputs in github-script step
- Downstream steps require outputs for correct PR instructions
- Each line under 72 chars

Adds core.setOutput for prTitle and prBody in build_pr_content. Affects .github/workflows/create-upstream-pr.yml. No breaking changes.
2025-07-20 11:06:12 -05:00
smilerz
5d3a93e4c4 Refactor PR title and body generation in workflow
Because:
- Old logic tried to find a PR for the triggering commit, which never exists
- Upstream maintainers need a summary of all commits in the branch
- Each line under 72 chars

Removes get_trigger_pr step and builds PR title/body from commit list. Affects .github/workflows/create-upstream-pr.yml. No breaking changes.
2025-07-20 10:36:18 -05:00
smilerz
9703d9db35 Update workflow to guide manual PR creation after branch push
Because:
- Automated PR creation from forks is blocked by GitHub permissions
- Users need clear, actionable instructions to open PRs manually

Removes automated PR creation and related steps. Adds a step to print a direct PR link and suggested title/body after branch push. Only .github/workflows/create-upstream-pr.yml affected. No breaking changes.
2025-07-18 14:43:00 -05:00
smilerz
c6ff2e3c58 Fix jq array output in file filter step
Because:
- Downstream steps require valid JSON arrays for code/infrastructure files
- Previous jq usage could produce malformed output

Updates .github/workflows/create-upstream-pr.yml to use 'jq -sc' for correct array output in code/infrastructure file filtering. No breaking changes. No follow-up required.
2025-07-18 14:01:58 -05:00
smilerz
813aa85554 Fix: Output code_files and infra_files as JSON arrays
Because:
- GitHub Actions scripts require valid JSON for file lists
- Prevents JSON.parse errors in github-script steps

Now uses jq to emit code_files and infra_files as JSON arrays in filter_files step. Affects .github/workflows/create-upstream-pr.yml. No breaking changes.
2025-07-18 12:56:57 -05:00
smilerz
61b18c9442 Update workflow to remove infrastructure files before fork push
Because:
- GitHub Actions cannot push workflow files from forks due to permission restrictions
- Prevents workflow errors and keeps upstream infrastructure intact

Adds a step to remove .github, cookbook/version_info.py, and .gitattributes before pushing to fork. Only code changes are pushed for upstream PR. Affects .github/workflows/create-upstream-pr.yml. No breaking changes.
2025-07-18 12:31:15 -05:00
smilerz
d4d968f399 Remove legacy upstream-pr workflow
Because:
- Only create-upstream-pr.yml should be used for upstream PR automation
- upstream-pr.yml enforced divergence checks and manual sync, causing confusion

Deletes .github/workflows/upstream-pr.yml. Ensures only the updated workflow logic is used. No breaking changes. No impact on code or tests.
2025-07-18 11:32:03 -05:00
smilerz
d22669272a Fix workflow to only block on merge conflicts
Because:
- Diverged branches are not a blocker if merge is clean
- Previous logic blocked on divergence, not actual conflicts

Updates .github/workflows/create-upstream-pr.yml to only fail if a merge conflict occurs during upstream merge. No longer blocks or warns on branch divergence alone. No breaking changes. Workflow now matches real merge safety requirements.
2025-07-18 11:16:35 -05:00
smilerz
871074ef45 Fix workflow: restore infra files before merge
Because:
- Merge conflicts in infrastructure files caused manual intervention
- Upstream infra files must always be preferred to avoid drift

Moves 'Restore upstream infrastructure files' step before 'Merge upstream branch' in create-upstream-pr.yml. Ensures .github/workflows/ and cookbook/version_info.py are always restored from upstream before merging. No breaking changes. Affects .github/workflows/create-upstream-pr.yml only.
2025-07-18 11:00:08 -05:00
smilerz
2954334e1f refactored: update create-upstream-pr workflow 2025-07-18 07:45:07 -05:00
dependabot[bot]
1879cb20bc chore(deps): bump django-allauth in the pip-minors group
Bumps the pip-minors group with 1 update: [django-allauth](https://github.com/sponsors/pennersr).


Updates `django-allauth` from 65.9.0 to 65.10.0
- [Commits](https://github.com/sponsors/pennersr/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-18 05:51:13 +00:00
smilerz
42b36e4bee add ingredient context setting to UserPreferenceStore 2025-07-14 19:15:53 -05:00
smilerz
4370232031 reverted updated pluralization on DRF Autoschema 2025-07-14 18:40:34 -05:00
smilerz
4bbf408a68 Fix infra-only divergence detection in workflow
Because:
- Previous logic did not strictly list files ahead in upstream
- Needed accurate detection for infra-only divergence

Updates .github/workflows/create-upstream-pr.yml to use git log --name-only refs/remotes/upstream/tandoor-1 ^working for correct file listing. No breaking changes. Infra-only divergence now correctly detected.
2025-07-14 14:32:37 -05:00
smilerz
cb06de7f89 Update infra divergence logic and sync dependencies
Because:
- Divergence in infra files should not block PRs
- Dependency tree needed deduplication and updates
- Each line under 72 chars

.github/workflows/create-upstream-pr.yml: Adds logic to skip divergence errors if only infrastructure files differ. vue/package.json, vue/yarn.lock: Adds/updates several dependencies and synchronizes lockfile. No breaking changes. No test code affected.
2025-07-14 14:07:54 -05:00
smilerz
763f53f579 update accidentally changed files during rebase 2025-07-14 12:33:13 -05:00
smilerz
69fb501b37 rebase fixes 2025-07-14 12:03:46 -05:00
smilerz
ee027863ed Update upgrade for body-parser, brace-expansion, lodash.template
Because:
- Security advisories for these packages
- Vue 2 compatibility limits further upgrades

Upgrades body-parser to 1.20.3, brace-expansion to 1.1.12, lodash.template to 4.5.0
in vue/package.json and vue/yarn.lock. No breaking changes. Remaining advisories
require major upgrades incompatible with Vue 2.
2025-07-14 11:58:17 -05:00
smilerz
7e9abcc3ee update create-upstream-pr.yml workflow 2025-07-14 11:58:17 -05:00
smilerz
f5fe770991 Update Node.js to 20 in CI and Docker workflows
Because:
- Node.js 18 is deprecated and no longer supported
- Ensures CI and Docker builds use the latest LTS version

Updates .github/workflows/ci.yml and docker-publish.yml to use only Node.js 20. Removes Node.js 18 from matrix and build steps. No breaking changes expected. All CI and container builds now standardized on Node.js 20.
2025-07-14 11:58:16 -05:00
smilerz
91921d2179 refine upstream PR workflow 2025-07-14 11:58:16 -05:00
dependabot[bot]
cba0ad2862 chore(deps): bump the pip-patches group with 2 updates
---
updated-dependencies:
- dependency-name: boto3
  dependency-version: 1.39.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
- dependency-name: aiohttp
  dependency-version: 3.12.14
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: pip-patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:58:16 -05:00
dependabot[bot]
d613e8c5d2 chore(deps): bump pytubefix from 9.2.2 to 9.3.0 in the pip-minors group
---
updated-dependencies:
- dependency-name: pytubefix
  dependency-version: 9.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:58:15 -05:00
smilerz
92b06c47d5 Merge upstream changes while preserving custom workflows and version info
- Updated all upstream changes from tandoor-1
- Preserved custom GitHub workflows and version_info.py
- Comprehensive sync excluding only protected files
2025-07-14 11:58:15 -05:00
smilerz
d547607feb Update .gitattributes with custom merge driver for complete file protection 2025-07-14 11:58:14 -05:00
smilerz
400f025169 Add .gitattributes for selective merge control 2025-07-14 11:58:14 -05:00
smilerz
7372f7513c WIP: build workflow to create upstream PR on docker publish 2025-07-14 11:58:13 -05:00
smilerz
de509aca9f Update auto-merge workflow to use official actions/create-github-app-token
Because:
- Primary GitHub action is preferred over 3rd party for token generation
- actions/create-github-app-token is not deprecated and is the recommended approach

Replaces tibdex/github-app-token with actions/create-github-app-token in dependabot-automerge.yml. Updates input keys to match official action. No breaking changes. Only .github/workflows/dependabot-automerge.yml affected.
2025-07-14 11:58:12 -05:00
smilerz
46abee647f remove devcontainer updates in dependabot.yml 2025-07-14 11:58:12 -05:00
smilerz
378e503ea4 update offical github actions to pinned versions 2025-07-14 11:58:11 -05:00
smilerz
a7c54c4b96 remvoe labels from npm-patches 2025-07-14 11:58:10 -05:00
smilerz
71b64f61d0 update github workflow permissions 2025-07-14 11:58:10 -05:00
smilerz
6ae3245a79 Update GitHub Actions security with SHA pinning and minimal permissions
Because:
- Actions used version tags vulnerable to supply chain attacks
- Workflows lacked minimal permission scoping for security
- Required immutable references per security best practices

Pins all GitHub Actions to latest SHA commits with version comments across 5 workflow files. Adds minimal permissions at workflow and job levels following principle of least privilege. Updates ci.yml, codeql-analysis.yml, dependabot-automerge.yml, docker-publish.yml, push-orchestrator.yml. Enhances dependabot.yml with automerge labels for npm patches. No breaking changes.
2025-07-14 11:58:08 -05:00
smilerz
e2c058db1c update dependabot configuration 2025-07-14 11:58:06 -05:00
dependabot[bot]
7aa476f822 chore(deps): bump recipe-scrapers in the pip-minors group
Bumps the pip-minors group with 1 update: [recipe-scrapers](https://github.com/hhursev/recipe-scrapers).


Updates `recipe-scrapers` from 15.7.0 to 15.8.0
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/15.7.0...15.8.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:58:06 -05:00
smilerz
77e60643f9 update dependabot 2025-07-14 11:58:05 -05:00
smilerz
85e5613254 fixed tibdex/github-app-token@v2.1.0 2025-07-14 11:58:05 -05:00
smilerz
04f5fe02d5 Refactor GitHub Actions workflow architecture
Because:
- Push events triggered CI on every push causing redundant runs
- Docker builds ran unnecessarily when CI failed
- Dependabot automerge lacked proper validation and security
- Workflow files had inconsistent naming and structure

Restructures CI/CD pipeline with push orchestrator controlling workflow execution.
Adds conditional CI execution based on PR merge detection. Updates dependabot
automerge with enhanced validation, bot token usage, and security restrictions.
Renames docker-publish-fork.yml to docker-publish.yml for clarity. Removes
duplicate validate-pr-labels.yml logic now handled in dependabot workflow.
Downgrades recipe-scrapers to 15.7.0 for compatibility. Affects all GitHub
Actions workflows and requirements.txt.
2025-07-14 11:58:02 -05:00
dependabot[bot]
b0b773fe44 chore(deps): bump recipe-scrapers in the pip-minors group
Bumps the pip-minors group with 1 update: [recipe-scrapers](https://github.com/hhursev/recipe-scrapers).


Updates `recipe-scrapers` from 15.7.0 to 15.8.0
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/15.7.0...15.8.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:58:01 -05:00
smilerz
75f884161e Update requirements.txt 2025-07-14 11:58:01 -05:00
smilerz
658f9e0c7b downgrade to python 3.12 2025-07-14 11:58:00 -05:00
dependabot[bot]
2e15a91c08 chore(deps): bump recipe-scrapers in the pip-minors group
Bumps the pip-minors group with 1 update: [recipe-scrapers](https://github.com/hhursev/recipe-scrapers).


Updates `recipe-scrapers` from 15.7.0 to 15.8.0
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/15.7.0...15.8.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:58:00 -05:00
smilerz
29b463fa4a testing 2025-07-14 11:58:00 -05:00
dependabot[bot]
eea53c71ab chore(deps): bump the pip-minors group with 2 updates
Bumps the pip-minors group with 2 updates: [recipe-scrapers](https://github.com/hhursev/recipe-scrapers) and [pytubefix](https://github.com/juanbindez/pytubefix).


Updates `recipe-scrapers` from 15.7.0 to 15.8.0
- [Release notes](https://github.com/hhursev/recipe-scrapers/releases)
- [Commits](https://github.com/hhursev/recipe-scrapers/compare/15.7.0...15.8.0)

Updates `pytubefix` from 9.1.1 to 9.2.2
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v9.1.1...v9.2.2)

---
updated-dependencies:
- dependency-name: recipe-scrapers
  dependency-version: 15.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
- dependency-name: pytubefix
  dependency-version: 9.2.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: pip-minors
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:57:59 -05:00
smilerz
a6ca6075ad troubleshooting tasks 2025-07-14 11:57:59 -05:00
smilerz
811c5e51ba test behavior of push trigger with file filter 2025-07-14 11:57:58 -05:00
dependabot[bot]
e4e2da8790 chore(deps)(deps): bump python from 3.12-alpine3.21 to 3.13-alpine3.21
Bumps python from 3.12-alpine3.21 to 3.13-alpine3.21.

---
updated-dependencies:
- dependency-name: python
  dependency-version: 3.13-alpine3.21
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:57:58 -05:00
smilerz
a3c3740805 Update dependabot.yml 2025-07-14 11:57:57 -05:00
smilerz
abf203db7e Add push trigger for Dependabot Docker builds
Because:
- Dependabot dependency updates need immediate Docker builds
- Workflow_run trigger has delays and complexity
- Direct push events are more reliable for automation

Adds push trigger on working branch for dependency files and workflows. Updates conditional logic to handle push events from dependabot[bot]. Removes comment header from dependabot.yml and adds dependencies label.
2025-07-14 11:57:57 -05:00
dependabot[bot]
b824b1112c chore(deps): bump peter-evans/create-or-update-comment
Bumps [peter-evans/create-or-update-comment](https://github.com/peter-evans/create-or-update-comment) from 3.1.0 to 4.0.0.
- [Release notes](https://github.com/peter-evans/create-or-update-comment/releases)
- [Commits](23ff15729e...71345be026)

---
updated-dependencies:
- dependency-name: peter-evans/create-or-update-comment
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:57:56 -05:00
smilerz
d75e568ad6 Fix Dependabot workflow trigger events
Because:
- Workflow only ran on labeled/opened events
- PR updates (synchronize) weren't triggering auto-merge
- Reopened PRs needed workflow re-execution

Adds synchronize and reopened events to pull_request_target trigger in dependabot-automerge.yml. Ensures workflow runs when Dependabot updates PRs with new commits or when PRs are reopened.
2025-07-14 11:57:56 -05:00
smilerz
555e3aa095 Update Dependabot automerge workflow and config
Because:
- Auto-approve action needed integrated review message
- Previous automerge action was suboptimal
- Dependabot label naming inconsistency

Replaces alexwilson/enable-github-automerge-action with daneden/enable-automerge-action for better author validation. Adds review message to hmarr/auto-approve-action. Updates dependabot.yml label from github-actions to github_actions for consistency.
2025-07-14 11:57:55 -05:00
smilerz
cc2dc072a0 Optimize Docker workflow to prevent skipped jobs
Because:
- Workflow triggered on all branches creating many skipped jobs
- Branch filtering at trigger level is more efficient
- Redundant head_branch check was unnecessary

Adds branches filter to workflow_run trigger and simplifies conditional logic in docker-publish-fork.yml. Prevents workflow from starting on non-working branches, eliminating skipped job clutter.
2025-07-14 11:57:55 -05:00
smilerz
f47142acbe Update Dependabot merge method from SQUASH to REBASE
Because:
- SQUASH blocks sequential PRs when branches become out-of-date
- REBASE provides linear history without blocking issues
- GitHub auto-merge handles branch updates automatically with REBASE

Changes merge-method in dependabot-automerge.yml workflow. Eliminates need for manual branch update logic and prevents sequential PR conflicts.
2025-07-14 11:57:54 -05:00
smilerz
b3deccc8ea Fix Dependabot merge method parameter
Because:
- API expects uppercase merge method value
- squash was invalid, causing workflow failures
- GitHub GraphQL requires SQUASH not squash

Changes merge-method from squash to SQUASH in dependabot-automerge.yml workflow. Fixes PullRequestMergeMethod validation error.
2025-07-14 11:57:54 -05:00
smilerz
4609d25c32 Update Dependabot to run daily for pip packages
Because:
- Weekly updates were too slow for critical dependencies
- Recipe-scrapers needed faster patch deployment
- Custom workflow was security risk with manual approval

Changes Dependabot pip schedule from weekly to daily in dependabot.yml. Reduces patch cooldown to 1 day. Removes custom auto-update-recipe-scrapers.yml workflow to consolidate all updates through secure Dependabot flow. Adds artifact retention to CI workflow.
2025-07-14 11:57:53 -05:00
smilerz
90f018479a Fix Dependabot workflow permissions error
Because:
- pull_request events have read-only token permissions
- Dependabot auto-merge was failing with access errors
- Workflow needs write permissions for PR approval

Changes pull_request to pull_request_target in dependabot-automerge.yml workflow. This provides necessary write permissions for auto-approval and merge actions triggered by Dependabot PRs.
2025-07-14 11:57:52 -05:00
smilerz
c5f78aebdc pin peter-evans/create-or-update-comment version to v4.0.0 2025-07-14 11:57:52 -05:00
smilerz
9572211cac Update GitHub workflows and dependency management
Because:
- Dependabot automerge needed dedicated workflow
- Recipe scrapers automation was complex and error-prone
- CodeQL analysis had unnecessary matrix complexity
- Development dependencies needed proper separation

Adds dependabot-automerge.yml and validate-pr-labels.yml workflows.
Refactors auto-update-recipe-scrapers.yml to simplify update logic.
Removes matrix strategy from codeql-analysis.yml for clarity.
Updates dependabot.yml to exclude pytest from grouped updates.
Moves django-debug-toolbar to development section in requirements.txt.
Adds Python 3.13 to CI test matrix.
2025-07-14 11:57:50 -05:00
dependabot[bot]
09e82be391 chore(deps)(deps): bump stefanzweifel/git-auto-commit-action from 5 to 6 (#33)
Bumps [stefanzweifel/git-auto-commit-action](https://github.com/stefanzweifel/git-auto-commit-action) from 5 to 6.
- [Release notes](https://github.com/stefanzweifel/git-auto-commit-action/releases)
- [Changelog](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stefanzweifel/git-auto-commit-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: stefanzweifel/git-auto-commit-action
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:57:50 -05:00
smilerz
8258c6ee53 enable dependabot 2025-07-14 11:57:49 -05:00
smilerz
9b7529956e disable dependabot 2025-07-14 11:57:48 -05:00
smilerz
876f477005 Fix factory datetime fields and update test deps
Because:
- MealPlan factory used future_date for DateTimeField model
- Deprecated Faker API caused test failures
- Arithmetic error in recipe factory loop
- Test dependencies needed compatibility updates

Fixes cookbook/tests/factories/__init__.py to use proper datetime
methods for MealPlan from_date/to_date fields. Updates deprecated
FakerFactory to modern Faker instance. Corrects arithmetic bug in
RecipeFactory step generation. Updates test dependencies including
pytest 8.3.5 and pytest-factoryboy 2.6.0. Improves code formatting
across test files. Adds pytest-specific dependabot grouping.
2025-07-14 11:57:47 -05:00
smilerz
1f16cd9bf4 Re-enable dependabot updates by removing global ignores
Because:
- Universal ignore patterns block all dependency management
- Testing configuration changes now complete
- Selective Vue major version blocks still needed

Removes global "dependency-name: *" ignore patterns from all ecosystems in .github/dependabot.yml. Restores automatic dependency updates while preserving Vue/Pinia major version restrictions.
2025-07-14 11:57:46 -05:00
smilerz
9c90bb67c2 Disable all dependabot updates and reorganize config
Because:
- All dependency updates need temporary blocking for testing
- Configuration sections lack consistent ordering
- Ecosystem-specific settings scattered throughout

Adds universal ignore pattern to all package ecosystems in .github/dependabot.yml. Reorders configuration blocks for consistency and removes redundant vue label from npm ecosystem.
2025-07-14 11:57:46 -05:00
smilerz
e6ba81cb9c Update dependabot.yml 2025-07-14 11:57:45 -05:00
smilerz
aa5d3e4a5c Fix dependabot config by removing unsupported cooldowns
Because:
- GitHub Actions ecosystem doesn't support cooldown feature
- Docker ecosystem doesn't support cooldown configuration
- Unsupported options cause dependabot validation errors

Removes cooldown blocks from github-actions and docker ecosystems in .github/dependabot.yml. Fixes configuration validation errors for ecosystems that don't support cooldown timing controls.
2025-07-14 11:57:45 -05:00
smilerz
9f3c24cb6a Fix invalid dependabot syntax with Vue ignore pattern
Because:
- update-types array syntax invalid in allow configuration
- Complex allow rules failed to constrain major updates
- Single ignore rule provides clearer dependency control

Removes invalid allow rules with update-types arrays and adds vue* major version ignore in .github/dependabot.yml. Fixes syntax error while preventing breaking Vue upgrades.
2025-07-14 11:57:45 -05:00
smilerz
a11c1b9ffe Optimize dependabot and CI workflow configurations
Because:
- Unlimited PRs create review bottlenecks
- Ungrouped updates generate excessive notifications
- Missing cooldowns cause rapid-fire dependency updates
- CI needs to validate PRs against working branch

Adds PR limits, dependency grouping, and cooldowns to .github/dependabot.yml. Updates ci.yml to test PRs against working branch. Adds docker build concurrency control.
2025-07-14 11:57:43 -05:00
smilerz
6d157e9129 Refactor recipe-scrapers updates to daily automation
Because:
- Manual merge workflow creates unnecessary review overhead
- Daily checks ensure faster security and feature updates
- Single workflow eliminates dependabot conflicts

Replaces auto-merge-recipe-scrapers.yml with auto-update-recipe-scrapers.yml. Implements daily PyPI checks, automatic requirements.txt updates, and PR creation with automerge labels.
2025-07-14 11:57:42 -05:00
smilerz
245925f2e0 Add comprehensive dependabot automation config
Because:
- Inconsistent commit messages break automation workflows
- Missing labels prevent automated categorization
- Limited ecosystems lack Docker dependency updates
- Need unlimited PRs for complete dependency coverage

Adds unlimited PR limits, standardized commit prefixes, automerge labels, and Docker ecosystem to .github/dependabot.yml. Removes recipe-scrapers ignore and enables full automation support.
2025-07-14 11:57:42 -05:00
smilerz
11067cb9ff Fix dependabot config with duplicate pip ecosystems
Because:
- GitHub Dependabot rejects overlapping package ecosystems
- Multiple pip configs for same directory cause failures
- Consolidated config maintains functionality

Removes duplicate pip ecosystem from .github/dependabot.yml. Eliminates daily recipe-scrapers config in favor of single weekly pip ecosystem with ignore pattern.
2025-07-14 11:57:41 -05:00
smilerz
ad38afe1f0 Refactor Docker workflow to run only after CI success
Because:
- Unnecessary Docker builds on every push waste resources
- Docker builds should only trigger after passing CI
- Workflow naming should reflect fork-specific purpose

Renames docker-publish-beta.yml to docker-publish-fork.yml and changes trigger from push events to workflow_run completion. Adds conditional logic to build only when CI passes on working branch.
2025-07-14 11:57:41 -05:00
smilerz
ef8d2cc743 Add CI workflows and update dependency management
Because:
- Repository lacked automated testing infrastructure
- Dependabot needed recipe-scrapers daily updates
- CodeQL security scanning was missing
- Alpine base image needed update

Adds comprehensive CI workflow with Python/Node matrix testing, caching for staticfiles,
and Vue unit tests in .github/workflows/ci.yml. Adds CodeQL security analysis workflow
with JavaScript and Python language support in .github/workflows/codeql-analysis.yml.
Adds auto-merge workflow for recipe-scrapers Dependabot PRs in
.github/workflows/auto-merge-recipe-scrapers.yml. Updates .github/dependabot.yml to
enable daily recipe-scrapers updates and weekly updates for other dependencies.
Updates Dockerfile to use Alpine 3.21 base image. Reverts recipe-scrapers to 15.5.0.

Affected files: .github/dependabot.yml, .github/workflows/*, Dockerfile, requirements.txt
2025-07-14 11:57:40 -05:00
dependabot[bot]
4a398181ec Bump docker/build-push-action from 5 to 6 (#4)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:57:39 -05:00
dependabot[bot]
809364090d Bump actions/setup-node from 3 to 4 (#3)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 3 to 4.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:57:38 -05:00
dependabot[bot]
f5531894e5 Bump actions/checkout from 3 to 4 (#5)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 11:57:38 -05:00
smilerz
019e507f6e add dependabot configuration file 2025-07-14 11:57:37 -05:00
smilerz
5cdb49b870 update formating 2025-07-14 11:57:36 -05:00
smilerz
61e3fa5b4f more twiddling 2025-07-14 11:57:34 -05:00
smilerz
bdfeef3763 remove pre-generating staticfiles 2025-07-14 11:57:34 -05:00
smilerz
b665811a5e add console statements for SCRIPT_NAME variables 2025-07-14 11:57:33 -05:00
smilerz
7218ab7870 update migrations 2025-07-14 11:57:33 -05:00
smilerz
dad03c8e3d regen openapi 2025-07-14 11:57:32 -05:00
smilerz
02ba32cade update API name 2025-07-14 11:57:30 -05:00
smilerz
0fe1ff0e1b python client generation 2025-07-14 11:57:29 -05:00
smilerz
5784abbd9d regen openapi
fix various merge errors
2025-07-14 11:57:28 -05:00
smilerz
a25dac0ad5 allow passing PK to nested serializer instead of object 2025-07-14 11:57:27 -05:00
smilerz
5766d2a6cb reorder migration 2025-07-14 11:57:27 -05:00
smilerz
299f48eb8e commented out DB settings for testing 2025-07-14 11:57:26 -05:00
smilerz
bd7011c0ef commented out testing config in settings.py 2025-07-14 11:57:26 -05:00
smilerz
b8e7ff7ea5 rebase 2025-07-14 11:57:25 -05:00
smilerz
4646b441ae regen openapi and migrations after rebase 2025-07-14 11:57:23 -05:00
smilerz
0db0905a89 fixed substitute display 2025-07-14 11:57:23 -05:00
smilerz
24f1ed585a fixed displaying substitutes 2025-07-14 11:57:22 -05:00
smilerz
2148fd95d2 added ignore shopping to ingredient context menu 2025-07-14 11:57:21 -05:00
smilerz
6e0d478e8e added SubstiteBadge on Cookbook Slider 2025-07-14 11:57:21 -05:00
smilerz
e6e86af878 temporarily removing migration until ready to merge 2025-07-14 11:57:20 -05:00
smilerz
5a57672c86 fixed context menu display on ShoppingModal 2025-07-14 11:57:20 -05:00
smilerz
bfea4f3483 added stub for ingredient context menu and preference to toggle it on 2025-07-14 11:57:18 -05:00
smilerz
7af970de0a fixed substitute display 2025-07-14 11:57:18 -05:00
smilerz
37c36eb673 added SubstiteBadge on Cookbook Slider 2025-07-14 11:57:17 -05:00
smilerz
2639c3ba6b temporarily removing migration until ready to merge 2025-07-14 11:57:17 -05:00
smilerz
d6f2610fa1 fixed context menu display on ShoppingModal 2025-07-14 11:57:16 -05:00
smilerz
7fc46aae45 added stub for ingredient context menu and preference to toggle it on 2025-07-14 11:57:15 -05:00
smilerz
8aacd9f2b3 created never_used_food filter 2025-07-14 11:57:13 -05:00
smilerz
7deca69075 rebase from develop 2025-07-14 11:57:12 -05:00
smilerz
e07dc34bf2 created never_used_food filter 2025-07-14 11:57:11 -05:00
smilerz
1412c5912b changed never_used_food to ignore substitutions when filtering onhand 2025-07-14 11:57:10 -05:00
smilerz
427e20a0b2 rebase from develop 2025-07-14 11:57:09 -05:00
smilerz
4febdeb2bf rebase 2025-07-14 11:57:08 -05:00
smilerz
036fe20cfd regen openapi and migrations after rebase 2025-07-14 11:57:06 -05:00
smilerz
cd106d28d0 fixed substitute display 2025-07-14 11:57:06 -05:00
smilerz
abbba50c1e fixed displaying substitutes 2025-07-14 11:57:05 -05:00
smilerz
6c0f2cf1e8 added ignore shopping to ingredient context menu 2025-07-14 11:57:04 -05:00
smilerz
b505821b29 added SubstiteBadge on Cookbook Slider 2025-07-14 11:57:03 -05:00
smilerz
00734f12e6 temporarily removing migration until ready to merge 2025-07-14 11:57:03 -05:00
smilerz
a8819e7f42 fixed context menu display on ShoppingModal 2025-07-14 11:57:02 -05:00
smilerz
fad9989a18 added stub for ingredient context menu and preference to toggle it on 2025-07-14 11:57:01 -05:00
smilerz
be5e2e2d66 fixed substitute display 2025-07-14 11:57:00 -05:00
smilerz
36a5802c91 added SubstiteBadge on Cookbook Slider 2025-07-14 11:57:00 -05:00
smilerz
cee95719d4 temporarily removing migration until ready to merge 2025-07-14 11:56:59 -05:00
smilerz
4dab2be02d fixed context menu display on ShoppingModal 2025-07-14 11:56:59 -05:00
smilerz
f168e09cf4 added stub for ingredient context menu and preference to toggle it on 2025-07-14 11:56:58 -05:00
smilerz
c3873754fc regen openapi 2025-07-14 11:56:47 -05:00
smilerz
9916e58b37 prettier, isort, black, flake8 configured with rational defaults
instructions for VSCode written
2025-07-14 11:56:46 -05:00
smilerz
2196c1dfa5 autoformat and linting for python (autopep8 and flake8)
instructions to setup for VSCode
2025-07-14 11:56:45 -05:00
smilerz
3da2c6c279 fix docker build action 2025-07-14 11:56:43 -05:00
smilerz
f54a58ebbb updated docker build 2025-07-14 11:56:43 -05:00
smilerz
e9f46f7088 updated actions 2025-07-14 11:56:42 -05:00
smilerz
f06cf23111 updated docker build action 2025-07-14 11:56:42 -05:00
smilerz
a4b582b4cc fix docker build action 2025-07-14 11:56:42 -05:00
smilerz
56b4b01038 updated docker build 2025-07-14 11:56:41 -05:00
smilerz
9aba66634e add manual docker build to gihub actions 2025-07-14 11:56:41 -05:00
smilerz
63ddd66306 updated actions 2025-07-14 11:56:40 -05:00
smilerz
232e832c1d updated docker build action 2025-07-14 11:56:40 -05:00
smilerz
5e91709421 regen openapi and migrations after rebase 2025-07-14 11:56:38 -05:00
smilerz
d37ea1e473 fixed substitute display 2025-07-14 11:56:38 -05:00
smilerz
096ff5d0d8 fixed displaying substitutes 2025-07-14 11:56:37 -05:00
smilerz
e20f59a66a added ignore shopping to ingredient context menu 2025-07-14 11:56:29 -05:00
smilerz
2cb44c8933 added SubstiteBadge on Cookbook Slider 2025-07-14 11:56:28 -05:00
smilerz
64703c8497 temporarily removing migration until ready to merge 2025-07-14 11:56:28 -05:00
smilerz
d6e74a2ef5 fixed context menu display on ShoppingModal 2025-07-14 11:56:27 -05:00
smilerz
b1d491165e added stub for ingredient context menu and preference to toggle it on 2025-07-14 11:56:26 -05:00
smilerz
e94c3a2355 fixed substitute display 2025-07-14 11:56:25 -05:00
smilerz
71b05e16f8 change shopping status on api to SerialMethod over annotation 2025-07-14 11:56:24 -05:00
smilerz
4beed65983 added SubstiteBadge on Cookbook Slider 2025-07-14 11:56:23 -05:00
smilerz
ca03fcff33 temporarily removing migration until ready to merge 2025-07-14 11:56:23 -05:00
smilerz
d3333322c4 fixed context menu display on ShoppingModal 2025-07-14 11:56:22 -05:00
smilerz
2b8172f25c added get_substitutes api, finished context menu 2025-07-14 11:56:21 -05:00
smilerz
9496292816 added stub for ingredient context menu and preference to toggle it on 2025-07-14 11:56:19 -05:00
smilerz
cf32549a22 changed never_used_food to ignore substitutions when filtering onhand 2025-07-14 11:56:18 -05:00
smilerz
13abf6da82 rebase from develop 2025-07-14 11:56:17 -05:00
smilerz
c72f697d57 personal changes to github actions 2025-07-14 11:56:15 -05:00
vabene1111
03cfe18acd reverted api plan ical having optional parameters 2025-07-14 11:56:14 -05:00
smilerz
9939ef76c1 change all naive datetimes to timezone aware dateimes 2025-07-14 11:56:11 -05:00
smilerz
ae387507f7 Update build-docker.yml
update docker build to use node 20
2025-07-14 11:07:00 -05:00
smilerz
969443acd1 Merge pull request #3823 from smilerz/upstream/tandoor-1
Prepare tandoor-1 branch for maintenance updates
2025-07-14 11:01:40 -05:00
smilerz
3606612135 Add ingredient context features and update dependencies
Because:
- Missing never_used_food parameter broke recipe search filtering
- Users needed ingredient substitute functionality
- Ingredient context menu was incomplete for recipe management
- PDF viewer and dependencies required updates for compatibility
- Development tools needed formatting and linting improvements

Adds never_used_food QueryParam to RecipeViewSet for proper search filtering. Implements ingredient substitutes API endpoint and ingredient_context user preference field. Creates IngredientContextMenu component and Substitute badge for enhanced recipe management. Updates PDF.js from legacy version to modern web-based implementation with SVG icons and improved localization. Refreshes Vue dependencies including security updates and formatting tools. Adds comprehensive test coverage for nested serializers and search functionality. Updates VS Code settings for better development workflow.
2025-07-13 17:02:21 -05:00
smilerz
1ee48edfb5 Update Docker workflow for tandoor-v1 maintenance branch
Because:
- Workflow needed to target specific tandoor-1 branch
- Maintenance builds required different notification messaging
- Multiple workflows needed to be disabled for focused maintenance

Updates build-docker.yml to trigger only on tandoor-1 branch pushes with tandoor-v1 tags.
Adds maintenance-specific Discord notification job. Disables other CI workflows by
restricting to 'disabled' branch. Affects .github/workflows/ files for Docker builds,
CI, and CodeQL analysis.
2025-07-13 13:44:46 -05:00
vabene1111
cd2c4b35df Merge pull request #3742 from TandoorRecipes/dependabot/pip/psycopg2-binary-2.9.10
Bump psycopg2-binary from 2.9.9 to 2.9.10
2025-06-11 19:34:54 +02:00
dependabot[bot]
d1d4cec00f Bump psycopg2-binary from 2.9.9 to 2.9.10
Bumps [psycopg2-binary](https://github.com/psycopg/psycopg2) from 2.9.9 to 2.9.10.
- [Changelog](https://github.com/psycopg/psycopg2/blob/master/NEWS)
- [Commits](https://github.com/psycopg/psycopg2/compare/2.9.9...2.9.10)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-11 17:33:27 +00:00
vabene1111
6940f405eb Merge pull request #3757 from TandoorRecipes/dependabot/pip/requests-2.32.4
Bump requests from 2.32.3 to 2.32.4
2025-06-11 19:32:20 +02:00
dependabot[bot]
3e6f7a554a Bump requests from 2.32.3 to 2.32.4
Bumps [requests](https://github.com/psf/requests) from 2.32.3 to 2.32.4.
- [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.32.3...v2.32.4)

---
updated-dependencies:
- dependency-name: requests
  dependency-version: 2.32.4
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-10 10:03:22 +00:00
vabene1111
4df451a540 Merge pull request #3752 from TandoorRecipes/dependabot/pip/django-4.2.22
Bump django from 4.2.21 to 4.2.22
2025-06-09 11:07:17 +02:00
dependabot[bot]
fd06d67218 Bump django from 4.2.21 to 4.2.22
Bumps [django](https://github.com/django/django) from 4.2.21 to 4.2.22.
- [Commits](https://github.com/django/django/compare/4.2.21...4.2.22)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-06 23:32:28 +00:00
Hennadii Lysenko
f546a4d382 Translated using Weblate (Ukrainian)
Currently translated at 53.6% (306 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/uk/
2025-05-21 14:58:39 +00:00
querty
c2ecf7ef57 Translated using Weblate (Portuguese)
Currently translated at 60.0% (342 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pt/
2025-05-18 10:58:40 +00:00
querty
b9771d7c11 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (488 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/pt_BR/
2025-05-18 10:58:39 +00:00
querty
d5b53d2bca Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (570 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pt_BR/
2025-05-18 10:58:39 +00:00
Vincenzo Reale
f502cd47e1 Translated using Weblate (Italian)
Currently translated at 100.0% (488 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/it/
2025-05-18 10:58:39 +00:00
Anna Kh
358fab9a8f Translated using Weblate (Russian)
Currently translated at 84.9% (484 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/ru/
2025-05-16 13:58:39 +00:00
Tales Garcia Fernandes
445e78825a Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (488 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/pt_BR/
2025-05-15 10:58:40 +00:00
vabene1111
e7d9824520 Merge pull request #3691 from TandoorRecipes/dependabot/pip/pytubefix-8.13.1
Bump pytubefix from 8.12.2 to 8.13.1
2025-05-14 07:08:37 +02:00
vabene1111
c9ebbdd4ec Merge pull request #3707 from EifX/fix-doc-updating
Fix doc updating postgress
2025-05-14 07:07:07 +02:00
vabene1111
85fa211390 Merge pull request #3695 from tpansino/s3-secret-access-key-file
Support reading S3_SECRET_ACCESS_KEY from file
2025-05-14 07:05:42 +02:00
EifX
3f5db2cb03 fix: removing sudo 2025-05-10 20:42:10 +02:00
EifX
79227b347e fix: Documentation around updating postgres 2025-05-10 20:39:14 +02:00
vabene1111
ffe0c22b3e Merge pull request #3704 from TandoorRecipes/dependabot/pip/django-4.2.21
Bump django from 4.2.20 to 4.2.21
2025-05-09 11:07:02 +02:00
dependabot[bot]
25e5faf135 Bump django from 4.2.20 to 4.2.21
Bumps [django](https://github.com/django/django) from 4.2.20 to 4.2.21.
- [Commits](https://github.com/django/django/compare/4.2.20...4.2.21)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-08 15:44:57 +00:00
Tom Pansino
a6f8a9ef06 Support reading S3_SECRET_ACCESS_KEY from file 2025-05-03 09:07:14 -07:00
dependabot[bot]
05b51e83a6 Bump pytubefix from 8.12.2 to 8.13.1
Bumps [pytubefix](https://github.com/juanbindez/pytubefix) from 8.12.2 to 8.13.1.
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v8.12.2...v8.13.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-01 00:42:16 +00:00
Nico G
5625a9ae4f Translated using Weblate (Catalan)
Currently translated at 100.0% (488 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/ca/
2025-04-29 02:39:17 +00:00
Nico G
8e60a1954b Translated using Weblate (Catalan)
Currently translated at 96.3% (470 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/ca/
2025-04-26 11:58:40 +00:00
vabene1111
52d2d75fe9 Merge pull request #3653 from TandoorRecipes/dependabot/npm_and_yarn/vue/http-proxy-middleware-2.0.9
Bump http-proxy-middleware from 2.0.6 to 2.0.9 in /vue
2025-04-25 16:12:56 +02:00
Nico G
edb669ab36 Translated using Weblate (Catalan)
Currently translated at 95.6% (467 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/ca/
2025-04-25 09:58:39 +00:00
Nico G
e9ed28b44d Translated using Weblate (Catalan)
Currently translated at 94.2% (460 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/ca/
2025-04-24 07:58:39 +00:00
Nico G
343373bf4d Translated using Weblate (Catalan)
Currently translated at 93.4% (456 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/ca/
2025-04-22 10:12:51 +00:00
dependabot[bot]
698ede9eb6 Bump http-proxy-middleware from 2.0.6 to 2.0.9 in /vue
Bumps [http-proxy-middleware](https://github.com/chimurai/http-proxy-middleware) from 2.0.6 to 2.0.9.
- [Release notes](https://github.com/chimurai/http-proxy-middleware/releases)
- [Changelog](https://github.com/chimurai/http-proxy-middleware/blob/v2.0.9/CHANGELOG.md)
- [Commits](https://github.com/chimurai/http-proxy-middleware/compare/v2.0.6...v2.0.9)

---
updated-dependencies:
- dependency-name: http-proxy-middleware
  dependency-version: 2.0.9
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-16 15:34:33 +00:00
Nico G
3ae73f7cad Translated using Weblate (Catalan)
Currently translated at 100.0% (570 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/ca/
2025-04-16 07:58:39 +00:00
Nico G
340d36c628 Translated using Weblate (Catalan)
Currently translated at 88.1% (430 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/ca/
2025-04-16 07:58:39 +00:00
Nico G
703f782be1 Translated using Weblate (Catalan)
Currently translated at 87.3% (498 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/ca/
2025-04-11 13:58:39 +00:00
Nico G
2ef4514987 Translated using Weblate (Catalan)
Currently translated at 84.5% (482 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/ca/
2025-04-08 08:58:38 +00:00
Nico G
a89411aeec Translated using Weblate (Catalan)
Currently translated at 85.4% (417 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/ca/
2025-04-01 12:58:40 +00:00
vabene1111
0cf89ca33c Merge pull request #3614 from stritti/feature/mobile-apps-update
docs: mobile apps updated
2025-03-27 17:14:03 +01:00
Stephan Strittmatter
68ceada28b chore: mobile apps updated 2025-03-25 11:16:18 +00:00
Vlad
192ca44d89 Translated using Weblate (Ukrainian)
Currently translated at 44.7% (255 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/uk/
2025-03-23 15:07:19 +00:00
vabene1111
3204aaf161 Merge pull request #3607 from TandoorRecipes/dependabot/pip/gunicorn-23.0.0
Bump gunicorn from 22.0.0 to 23.0.0
2025-03-22 09:33:08 +01:00
dependabot[bot]
6cf6791fe6 Bump gunicorn from 22.0.0 to 23.0.0
Bumps [gunicorn](https://github.com/benoitc/gunicorn) from 22.0.0 to 23.0.0.
- [Release notes](https://github.com/benoitc/gunicorn/releases)
- [Commits](https://github.com/benoitc/gunicorn/compare/22.0.0...23.0.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-22 03:20:08 +00:00
vabene1111
6ebb18a932 more ci dependency tests 2025-03-16 13:11:28 +01:00
vabene1111
7bde1bf44f split migrations, CI denendencies 2025-03-16 13:08:06 +01:00
vabene1111
3075ec066f Merge pull request #3595 from TandoorRecipes/dependabot/npm_and_yarn/vue/babel/runtime-7.26.10
Bump @babel/runtime from 7.22.15 to 7.26.10 in /vue
2025-03-16 12:53:55 +01:00
vabene1111
3ddc3c3768 Merge pull request #3594 from TandoorRecipes/dependabot/npm_and_yarn/vue/babel/helpers-7.26.10
Bump @babel/helpers from 7.22.15 to 7.26.10 in /vue
2025-03-16 12:53:46 +01:00
vabene1111
7b7b726ec5 migration to store space and created_by on ShoppingListRecipe
ATTENTION: This deletes all old shopping list recipes that do not have entries associated with it. This should not matter but just for the record
2025-03-14 13:51:49 +01:00
vabene1111
5484506bc3 build requirements 2025-03-14 10:41:03 +01:00
vabene1111
136f05b886 requirments for django allauth 2025-03-14 10:31:42 +01:00
dependabot[bot]
83cf03a10b Bump @babel/runtime from 7.22.15 to 7.26.10 in /vue
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.22.15 to 7.26.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.26.10/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-14 09:17:29 +00:00
dependabot[bot]
7b56719716 Bump @babel/helpers from 7.22.15 to 7.26.10 in /vue
Bumps [@babel/helpers](https://github.com/babel/babel/tree/HEAD/packages/babel-helpers) from 7.22.15 to 7.26.10.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.26.10/packages/babel-helpers)

---
updated-dependencies:
- dependency-name: "@babel/helpers"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-14 09:17:26 +00:00
vabene1111
348296763d Merge branch 'develop' 2025-03-14 10:15:46 +01:00
vabene1111
5c7a57ac32 added missing dependency 2025-03-14 10:15:40 +01:00
Jader Moraes
0c0b8ea455 Translated using Weblate (Portuguese (Brazil))
Currently translated at 66.5% (325 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/pt_BR/
2025-03-13 22:58:38 +00:00
Jader Moraes
2f20f43efe Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (570 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pt_BR/
2025-03-13 22:58:38 +00:00
Nico G
1662b793a5 Translated using Weblate (Catalan)
Currently translated at 84.8% (414 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/ca/
2025-03-12 09:58:39 +00:00
vabene1111
2e4efe2500 Merge branch 'develop' 2025-03-11 17:42:32 +01:00
vabene1111
3d01faed5f updated recipe scrapers 2025-03-11 17:21:47 +01:00
vabene1111
9bc3443a3c Merge pull request #3565 from TandoorRecipes/dependabot/pip/bleach-6.2.0
Bump bleach from 6.0.0 to 6.2.0
2025-03-11 17:18:36 +01:00
vabene1111
87dc32210e Merge pull request #3566 from TandoorRecipes/dependabot/pip/django-treebeard-4.7.1
Bump django-treebeard from 4.7 to 4.7.1
2025-03-11 17:18:07 +01:00
vabene1111
671216488e Merge pull request #3562 from TandoorRecipes/dependabot/pip/lxml-5.3.1
Bump lxml from 5.3.0 to 5.3.1
2025-03-11 17:17:50 +01:00
vabene1111
f596fc33a1 Merge pull request #3564 from TandoorRecipes/dependabot/pip/pytest-django-4.10.0
Bump pytest-django from 4.9.0 to 4.10.0
2025-03-11 17:17:43 +01:00
vabene1111
82756923ad Merge pull request #3563 from TandoorRecipes/dependabot/pip/pytubefix-8.12.2
Bump pytubefix from 8.12.0 to 8.12.2
2025-03-11 17:17:27 +01:00
vabene1111
14042563bf Merge pull request #3576 from racehd/develop
Revise Synology Guide
2025-03-11 17:16:07 +01:00
vabene1111
06e12396e8 Merge pull request #3574 from JiDW/develop
Add webp file as allowed file type
2025-03-11 17:14:18 +01:00
vabene1111
b698eee3a1 Merge pull request #3590 from TandoorRecipes/dependabot/pip/django-4.2.20
Bump django from 4.2.18 to 4.2.20
2025-03-11 17:13:51 +01:00
vabene1111
9d15634dc8 Merge pull request #3589 from TandoorRecipes/dependabot/pip/jinja2-3.1.6
Bump jinja2 from 3.1.5 to 3.1.6
2025-03-11 17:13:40 +01:00
dependabot[bot]
5f6c298d04 Bump django from 4.2.18 to 4.2.20
Bumps [django](https://github.com/django/django) from 4.2.18 to 4.2.20.
- [Commits](https://github.com/django/django/compare/4.2.18...4.2.20)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-11 16:13:19 +00:00
dependabot[bot]
f20a2ca781 Bump jinja2 from 3.1.5 to 3.1.6
Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.5 to 3.1.6.
- [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.5...3.1.6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-11 16:13:12 +00:00
vabene1111
6dcfbc24a9 Merge pull request #3588 from TandoorRecipes/dependabot/npm_and_yarn/vue/prismjs-1.30.0
Bump prismjs from 1.29.0 to 1.30.0 in /vue
2025-03-11 17:12:18 +01:00
vabene1111
ea9404301b Merge pull request #3580 from TandoorRecipes/dependabot/npm_and_yarn/vue/axios-1.8.2
Bump axios from 1.6.7 to 1.8.2 in /vue
2025-03-11 17:12:12 +01:00
dependabot[bot]
da268b4429 Bump prismjs from 1.29.0 to 1.30.0 in /vue
Bumps [prismjs](https://github.com/PrismJS/prism) from 1.29.0 to 1.30.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.29.0...v1.30.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-10 22:29:43 +00:00
Nico G
2775960cf7 Translated using Weblate (Catalan)
Currently translated at 77.8% (444 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/ca/
2025-03-10 12:39:16 +00:00
dependabot[bot]
bff6b2ffb0 Bump axios from 1.6.7 to 1.8.2 in /vue
Bumps [axios](https://github.com/axios/axios) from 1.6.7 to 1.8.2.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.6.7...v1.8.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-07 20:47:21 +00:00
yonatan ben-menachem
193600564e Translated using Weblate (Hebrew)
Currently translated at 18.4% (90 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/he/
2025-03-07 15:08:51 +00:00
Nico G
2abd683759 Translated using Weblate (Catalan)
Currently translated at 72.4% (413 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/ca/
2025-03-06 03:42:27 +00:00
Toni Miquel
0163800a05 Translated using Weblate (Spanish)
Currently translated at 99.2% (566 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/es/
2025-03-04 17:58:38 +00:00
racehd
958ccd7f7d Revise Synology Guide
- Rewrote/revised most of the guide to bring it to current
- Previous guide was last updated several years ago and was largely depreciated. I moved the prior guide references to the end for historical purposes
- Added a depreciated warning under the Firewall section. I have been using the project for a week so far without a firewall rule set-up and have not had any issues.
2025-03-03 22:50:07 +00:00
Mathias Latournerie
a0eb1df4fa Add webp file as allowed file type 2025-03-03 01:30:36 +01:00
fabio souza jr
3f1c6d1dd0 Translated using Weblate (Portuguese (Brazil))
Currently translated at 66.1% (323 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/pt_BR/
2025-03-02 16:58:38 +00:00
Nico G
87a80e0caa Translated using Weblate (Catalan)
Currently translated at 69.8% (398 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/ca/
2025-03-01 07:58:38 +00:00
dependabot[bot]
debdd03a7a Bump django-treebeard from 4.7 to 4.7.1
Bumps [django-treebeard](https://github.com/django-treebeard/django-treebeard) from 4.7 to 4.7.1.
- [Changelog](https://github.com/django-treebeard/django-treebeard/blob/master/CHANGES.md)
- [Commits](https://github.com/django-treebeard/django-treebeard/compare/4.7...4.7.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-01 00:11:59 +00:00
dependabot[bot]
c58697aecd Bump bleach from 6.0.0 to 6.2.0
Bumps [bleach](https://github.com/mozilla/bleach) from 6.0.0 to 6.2.0.
- [Changelog](https://github.com/mozilla/bleach/blob/main/CHANGES)
- [Commits](https://github.com/mozilla/bleach/compare/v6.0.0...v6.2.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-01 00:11:56 +00:00
dependabot[bot]
3b3ad37d64 Bump pytest-django from 4.9.0 to 4.10.0
Bumps [pytest-django](https://github.com/pytest-dev/pytest-django) from 4.9.0 to 4.10.0.
- [Release notes](https://github.com/pytest-dev/pytest-django/releases)
- [Changelog](https://github.com/pytest-dev/pytest-django/blob/main/docs/changelog.rst)
- [Commits](https://github.com/pytest-dev/pytest-django/compare/v4.9.0...v4.10.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-01 00:11:54 +00:00
dependabot[bot]
d392b06e98 Bump pytubefix from 8.12.0 to 8.12.2
Bumps [pytubefix](https://github.com/juanbindez/pytubefix) from 8.12.0 to 8.12.2.
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v8.12.0...v8.12.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-01 00:11:52 +00:00
dependabot[bot]
99a9f594e2 Bump lxml from 5.3.0 to 5.3.1
Bumps [lxml](https://github.com/lxml/lxml) from 5.3.0 to 5.3.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-5.3.0...lxml-5.3.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-01 00:11:48 +00:00
Nico G
549a5b764d Translated using Weblate (Catalan)
Currently translated at 63.8% (364 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/ca/
2025-02-27 10:58:38 +00:00
Nico G
26592c31a9 Translated using Weblate (Catalan)
Currently translated at 82.5% (403 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/ca/
2025-02-27 10:58:38 +00:00
Nico G
378eb924e9 Translated using Weblate (Catalan)
Currently translated at 58.5% (334 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/ca/
2025-02-26 08:58:38 +00:00
Andre Bovendorp
f8f4a87a99 Translated using Weblate (Portuguese (Brazil))
Currently translated at 65.7% (321 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/pt_BR/
2025-02-26 08:58:38 +00:00
Nico G
55289e6837 Translated using Weblate (Catalan)
Currently translated at 52.6% (300 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/ca/
2025-02-21 10:58:38 +00:00
Filipe Neves
60efbd0389 Translated using Weblate (Portuguese)
Currently translated at 32.9% (161 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/pt/
2025-02-21 10:58:38 +00:00
Nico G
f3903c1aa5 Translated using Weblate (Catalan)
Currently translated at 47.5% (271 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/ca/
2025-02-20 08:58:38 +00:00
Nico G
b01e62007f Translated using Weblate (Catalan)
Currently translated at 78.2% (382 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/ca/
2025-02-20 08:58:38 +00:00
Cots Partier
7730890525 Translated using Weblate (Romanian)
Currently translated at 89.9% (439 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/ro/
2025-02-16 14:58:38 +00:00
Cots Partier
29977609aa Translated using Weblate (Dutch)
Currently translated at 100.0% (488 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/nl/
2025-02-16 14:58:38 +00:00
Elvis Gosselin
88c3a7d0bf Translated using Weblate (French)
Currently translated at 89.3% (436 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/fr/
2025-02-16 14:58:38 +00:00
Juha Antikainen
ba0335bb28 Translated using Weblate (Finnish)
Currently translated at 90.5% (516 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fi/
2025-02-14 23:58:39 +00:00
Juha Antikainen
51e01ee40c Translated using Weblate (Finnish)
Currently translated at 37.0% (181 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/fi/
2025-02-14 23:58:39 +00:00
vabene1111
b55ceda978 Merge pull request #3549 from TandoorRecipes/dependabot/pip/cryptography-44.0.1
Bump cryptography from 44.0.0 to 44.0.1
2025-02-12 09:15:10 +01:00
dependabot[bot]
37b4f5c896 Bump cryptography from 44.0.0 to 44.0.1
Bumps [cryptography](https://github.com/pyca/cryptography) from 44.0.0 to 44.0.1.
- [Changelog](https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pyca/cryptography/compare/44.0.0...44.0.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-11 19:36:25 +00:00
Mattias G
a78b42d9ab Translated using Weblate (Swedish)
Currently translated at 65.3% (319 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/sv/
2025-02-07 08:58:37 +00:00
Domagoj Levanić
d1b6a4eb43 Translated using Weblate (Croatian)
Currently translated at 54.5% (266 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/hr/
2025-02-03 16:58:38 +00:00
Juha Antikainen
61bfaf012b Translated using Weblate (Finnish)
Currently translated at 87.0% (496 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fi/
2025-02-03 16:58:38 +00:00
Juha Antikainen
92adc9b610 Translated using Weblate (Finnish)
Currently translated at 36.8% (180 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/fi/
2025-02-03 16:58:37 +00:00
Juha Antikainen
feb4a63bb0 Translated using Weblate (Finnish)
Currently translated at 81.7% (466 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fi/
2025-02-02 09:58:38 +00:00
Juha Antikainen
30f8318531 Translated using Weblate (Finnish)
Currently translated at 35.2% (172 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/fi/
2025-02-02 09:58:37 +00:00
Domagoj Levanić
5b040900a7 Translated using Weblate (Croatian)
Currently translated at 33.1% (162 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/hr/
2025-02-01 08:58:39 +00:00
Juha Antikainen
717666fc14 Translated using Weblate (Finnish)
Currently translated at 72.1% (411 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/fi/
2025-02-01 08:58:39 +00:00
Juha Antikainen
a012a6f0d5 Translated using Weblate (Finnish)
Currently translated at 28.6% (140 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/fi/
2025-02-01 08:58:39 +00:00
vabene1111
3341c6db19 Merge pull request #3523 from Honza-m/default-debug-variables
Disable DEBUG and DEBUG_TOOLBAR by default
2025-02-01 08:12:50 +01:00
vabene1111
206d13594a Merge pull request #3530 from TandoorRecipes/dependabot/pip/pillow-11.1.0
Bump pillow from 10.4.0 to 11.1.0
2025-02-01 08:11:59 +01:00
vabene1111
37af406831 Merge pull request #3531 from TandoorRecipes/dependabot/pip/drf-writable-nested-0.7.1
Bump drf-writable-nested from 0.7.0 to 0.7.1
2025-02-01 08:11:51 +01:00
vabene1111
88f18a1b24 Merge pull request #3532 from TandoorRecipes/dependabot/pip/django-allauth-65.3.1
Bump django-allauth from 0.61.1 to 65.3.1
2025-02-01 08:11:43 +01:00
vabene1111
8bf410dbca Merge pull request #3533 from TandoorRecipes/dependabot/pip/django-prometheus-2.3.1
Bump django-prometheus from 2.2.0 to 2.3.1
2025-02-01 08:11:35 +01:00
vabene1111
c98411ca0e Merge pull request #3534 from TandoorRecipes/dependabot/pip/autopep8-2.3.2
Bump autopep8 from 2.0.4 to 2.3.2
2025-02-01 08:11:25 +01:00
vabene1111
fcfb404edf Merge pull request #3535 from TandoorRecipes/dependabot/github_actions/awalsh128/cache-apt-pkgs-action-1.4.3
Bump awalsh128/cache-apt-pkgs-action from 1.4.2 to 1.4.3
2025-02-01 08:10:40 +01:00
vabene1111
a0c8b39f0c Merge branch 'develop' 2025-02-01 08:08:55 +01:00
dependabot[bot]
3a1f2540b1 Bump awalsh128/cache-apt-pkgs-action from 1.4.2 to 1.4.3
Bumps [awalsh128/cache-apt-pkgs-action](https://github.com/awalsh128/cache-apt-pkgs-action) from 1.4.2 to 1.4.3.
- [Release notes](https://github.com/awalsh128/cache-apt-pkgs-action/releases)
- [Commits](https://github.com/awalsh128/cache-apt-pkgs-action/compare/v1.4.2...v1.4.3)

---
updated-dependencies:
- dependency-name: awalsh128/cache-apt-pkgs-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-01 00:48:21 +00:00
dependabot[bot]
9c680bc59c Bump autopep8 from 2.0.4 to 2.3.2
Bumps [autopep8](https://github.com/hhatto/autopep8) from 2.0.4 to 2.3.2.
- [Release notes](https://github.com/hhatto/autopep8/releases)
- [Commits](https://github.com/hhatto/autopep8/compare/v2.0.4...v2.3.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-01 00:30:40 +00:00
dependabot[bot]
fde95a6a8e Bump django-prometheus from 2.2.0 to 2.3.1
Bumps [django-prometheus](https://github.com/korfuri/django-prometheus) from 2.2.0 to 2.3.1.
- [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/v2.2.0...v2.3.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-01 00:30:37 +00:00
dependabot[bot]
150a0332f6 Bump django-allauth from 0.61.1 to 65.3.1
Bumps [django-allauth](https://github.com/sponsors/pennersr) from 0.61.1 to 65.3.1.
- [Commits](https://github.com/sponsors/pennersr/commits)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-01 00:30:34 +00:00
dependabot[bot]
618c32bdb8 Bump drf-writable-nested from 0.7.0 to 0.7.1
Bumps [drf-writable-nested](https://github.com/beda-software/drf-writable-nested) from 0.7.0 to 0.7.1.
- [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.7.0...v0.7.1)

---
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>
2025-02-01 00:30:30 +00:00
dependabot[bot]
ea35850b71 Bump pillow from 10.4.0 to 11.1.0
Bumps [pillow](https://github.com/python-pillow/Pillow) from 10.4.0 to 11.1.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/10.4.0...11.1.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-01 00:30:28 +00:00
Neuri Jr
87561943f9 Translated using Weblate (Portuguese)
Currently translated at 53.8% (307 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pt/
2025-01-31 01:58:38 +00:00
Jan Morawiec
5fd8d4e847 Disable DEBUG and DEBUG_TOOLBAR by default 2025-01-30 23:13:54 +00:00
Vinicius José Fritzen
eb6d0d7922 Translated using Weblate (Portuguese (Brazil))
Currently translated at 57.5% (281 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/pt_BR/
2025-01-29 13:44:16 +00:00
Ángel
d3dd9099f6 Translated using Weblate (Spanish)
Currently translated at 52.8% (258 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/es/
2025-01-29 13:44:16 +00:00
Vinicius José Fritzen
a112b23d07 Translated using Weblate (Portuguese (Brazil))
Currently translated at 48.3% (236 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/pt_BR/
2025-01-28 23:17:34 +00:00
Vinicius José Fritzen
4c591f3827 Translated using Weblate (Spanish)
Currently translated at 52.6% (257 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/es/
2025-01-28 23:17:34 +00:00
Ángel
62a28f57f6 Translated using Weblate (Spanish)
Currently translated at 52.6% (257 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/es/
2025-01-28 23:17:34 +00:00
Vinicius José Fritzen
ef689b0857 Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.2% (566 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pt_BR/
2025-01-28 19:08:20 +00:00
vabene1111
aa903da042 fixed file type check case sensitivity 2025-01-28 07:37:37 +01:00
Anders
9587d8832d Translated using Weblate (Norwegian Bokmål)
Currently translated at 70.5% (402 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/nb_NO/
2025-01-28 02:08:22 +00:00
Ole Martin Ruud
f125be1347 Translated using Weblate (Norwegian Bokmål)
Currently translated at 65.9% (376 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/nb_NO/
2025-01-26 05:58:39 +00:00
Dominik Ruczajewski
269301852a Translated using Weblate (Polish)
Currently translated at 100.0% (570 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/pl/
2025-01-26 05:58:39 +00:00
Ole Martin Ruud
8e5dcd57ce Translated using Weblate (Norwegian Bokmål)
Currently translated at 31.3% (153 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/nb_NO/
2025-01-26 05:58:39 +00:00
Dominik Ruczajewski
920273197d Translated using Weblate (Polish)
Currently translated at 56.9% (278 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/pl/
2025-01-26 05:58:39 +00:00
vabene1111
1be2e9fbb2 Merge branch 'develop' 2025-01-21 16:34:26 +01:00
vabene1111
7c93eededf fixed RecipeImageSerializer 2025-01-20 09:43:43 +01:00
Yigit
1b17031523 Translated using Weblate (Turkish)
Currently translated at 100.0% (570 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/tr/
2025-01-20 05:20:47 +00:00
Yigit
2d76c3e84c Translated using Weblate (Turkish)
Currently translated at 13.7% (67 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/tr/
2025-01-20 05:20:47 +00:00
vabene1111
03dd4370b9 update nextcloud import docs 2025-01-19 18:44:09 +01:00
smilerz
157af15a2a added (',', ';', ':') to notes tokenization in ingredient_parser.py 2025-01-18 09:29:09 -06:00
vabene1111
b930ecdcd0 Merge branch 'develop' 2025-01-18 12:49:49 +01:00
vabene1111
100242f0a6 Merge pull request #3498 from TandoorRecipes/dependabot/pip/pytubefix-8.12.0
Bump pytubefix from 8.9.0 to 8.12.0
2025-01-18 12:48:23 +01:00
vabene1111
d695f71d36 Merge pull request #3497 from mitcdh/develop
Prevent paprika.py from importing empty image_url content
2025-01-18 12:47:53 +01:00
dependabot[bot]
5d60b7a67c Bump pytubefix from 8.9.0 to 8.12.0
Bumps [pytubefix](https://github.com/juanbindez/pytubefix) from 8.9.0 to 8.12.0.
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v8.9.0...v8.12.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-18 11:47:22 +00:00
vabene1111
5d5d89dab9 Merge pull request #3477 from TandoorRecipes/dependabot/pip/pytubefix-8.9.0
Bump pytubefix from 8.5.1 to 8.9.0
2025-01-18 12:46:53 +01:00
vabene1111
35a625e04b Merge pull request #3476 from TandoorRecipes/dependabot/pip/django-tables2-2.7.4
Bump django-tables2 from 2.7.0 to 2.7.4
2025-01-18 12:46:45 +01:00
vabene1111
1a2d3bb441 Merge pull request #3474 from TandoorRecipes/dependabot/pip/whitenoise-6.8.2
Bump whitenoise from 6.7.0 to 6.8.2
2025-01-18 12:46:35 +01:00
vabene1111
2e3ac02afb Merge pull request #3473 from TandoorRecipes/dependabot/pip/redis-5.2.1
Bump redis from 5.2.0 to 5.2.1
2025-01-18 12:46:29 +01:00
vabene1111
a5b8a65b7d actually fixed test 2025-01-18 11:33:51 +01:00
vabene1111
dc320f2e6d Merge branch 'develop' 2025-01-18 09:30:51 +01:00
vabene1111
acbca83553 fixed test to reflect new permission 2025-01-18 09:30:43 +01:00
vabene1111
cb26c5dfc8 allow gif 2025-01-18 09:23:56 +01:00
vabene1111
b5c4174700 default mediafiles content disposition header attatchement 2025-01-18 09:22:46 +01:00
vabene1111
3e37d11c6a restrict file upload to certain types 2025-01-18 09:22:29 +01:00
vabene1111
36e83a9d01 restrict local external recipes to superusers and restrict file path/type 2025-01-18 08:57:46 +01:00
vabene1111
efcd759869 Merge pull request #3496 from TandoorRecipes/dependabot/pip/django-4.2.18
Bump django from 4.2.17 to 4.2.18
2025-01-18 08:11:35 +01:00
Mitchell Hewes
9f8830b341 Prevent paprika.py from importing empty image_url content 2025-01-17 15:04:28 +01:00
dependabot[bot]
7c81396ec5 Bump django from 4.2.17 to 4.2.18
Bumps [django](https://github.com/django/django) from 4.2.17 to 4.2.18.
- [Commits](https://github.com/django/django/compare/4.2.17...4.2.18)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-17 13:58:22 +00:00
smilerz
9b50665375 bump recipe-scrapers
fixes #3495
2025-01-17 07:57:30 -06:00
Anton Shevtsov
83795581e6 Translated using Weblate (Ukrainian)
Currently translated at 44.3% (253 of 570 strings)

Translation: Tandoor/Recipes Frontend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-frontend/uk/
2025-01-16 18:58:38 +00:00
Anton Shevtsov
af51524109 Translated using Weblate (Ukrainian)
Currently translated at 2.8% (14 of 488 strings)

Translation: Tandoor/Recipes Backend
Translate-URL: http://translate.tandoor.dev/projects/tandoor/recipes-backend/uk/
2025-01-16 18:58:38 +00:00
vabene1111
738aa12243 Merge branch 'develop' 2025-01-05 11:38:52 +01:00
vabene1111
f25de4b4ce remove healthcheck 2025-01-05 11:38:35 +01:00
dependabot[bot]
38e1db9c53 Bump pytubefix from 8.5.1 to 8.9.0
Bumps [pytubefix](https://github.com/juanbindez/pytubefix) from 8.5.1 to 8.9.0.
- [Release notes](https://github.com/juanbindez/pytubefix/releases)
- [Commits](https://github.com/juanbindez/pytubefix/compare/v8.5.1...v8.9.0)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-01 00:33:54 +00:00
dependabot[bot]
d71c929ba8 Bump django-tables2 from 2.7.0 to 2.7.4
Bumps [django-tables2](https://github.com/jieter/django-tables2) from 2.7.0 to 2.7.4.
- [Changelog](https://github.com/jieter/django-tables2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jieter/django-tables2/compare/v2.7.0...v2.7.4)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-01 00:33:51 +00:00
dependabot[bot]
4865b742c7 Bump whitenoise from 6.7.0 to 6.8.2
Bumps [whitenoise](https://github.com/evansd/whitenoise) from 6.7.0 to 6.8.2.
- [Changelog](https://github.com/evansd/whitenoise/blob/main/docs/changelog.rst)
- [Commits](https://github.com/evansd/whitenoise/compare/6.7.0...6.8.2)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-01 00:33:45 +00:00
dependabot[bot]
1246549f4b Bump redis from 5.2.0 to 5.2.1
Bumps [redis](https://github.com/redis/redis-py) from 5.2.0 to 5.2.1.
- [Release notes](https://github.com/redis/redis-py/releases)
- [Changelog](https://github.com/redis/redis-py/blob/master/CHANGES)
- [Commits](https://github.com/redis/redis-py/compare/v5.2.0...v5.2.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-01 00:33:42 +00:00
1053 changed files with 88385 additions and 108237 deletions

12
.github/FUNDING.yml vendored
View File

@@ -1,12 +0,0 @@
# These are supported funding model platforms
github: [vabene1111]
patreon: # Replace with a single Patreon username
open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']

View File

@@ -1,26 +1,92 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
version: 2
updates:
- package-ecosystem: "devcontainers"
directory: "/"
schedule:
interval: weekly
- package-ecosystem: "pip"
directory: "/"
open-pull-requests-limit: 20
schedule:
interval: "monthly"
interval: "daily"
cooldown:
semver-major-days: 30
semver-minor-days: 7
semver-patch-days: 3
exclude:
- "recipe-scrapers"
directory: "/"
groups:
pip-patches:
exclude-patterns: ["pytest*"]
update-types: ["patch"]
pip-minors:
exclude-patterns: ["pytest*"]
update-types: ["minor"]
pip-pytest:
patterns: ["pytest*"]
update-types: ["minor", "patch"]
commit-message:
prefix: "chore"
include: "scope"
labels:
- "python"
- "dependencies"
- "automerge"
- package-ecosystem: "npm"
directory: "/vue/"
open-pull-requests-limit: 20
schedule:
interval: "monthly"
cooldown:
semver-major-days: 30
semver-minor-days: 3
semver-patch-days: 3
directory: "vue"
ignore:
- dependency-name: "vue"
update-types: ["version-update:semver-major"]
- dependency-name: "vue*"
update-types: ["version-update:semver-major"]
- dependency-name: "pinia"
update-types: ["version-update:semver-major"]
groups:
npm-patches:
patterns: ["*"]
update-types: ["patch"]
npm-minors:
patterns: ["*"]
update-types: ["minor"]
commit-message:
prefix: "chore"
include: "scope"
labels:
- "javascript"
- "dependencies"
- package-ecosystem: "github-actions"
directory: "/"
open-pull-requests-limit: 20
schedule:
interval: "monthly"
interval: "weekly"
directory: "/.github/"
groups:
actions-updates:
patterns: ["*"]
update-types: ["patch", "minor"]
commit-message:
prefix: "chore"
include: "scope"
labels:
- "github_actions"
- "dependencies"
- "automerge"
- package-ecosystem: "docker"
open-pull-requests-limit: 5
schedule:
interval: "weekly"
directory: "/"
commit-message:
prefix: "chore"
include: "scope"
labels:
- "docker"
- "dependencies"

View File

@@ -1,6 +1,8 @@
name: Build Docker Container with open data plugin installed
on: push
on:
push:
branches: [disabled]
jobs:
build-container:

View File

@@ -1,6 +1,8 @@
name: Build Docker Container
on: push
on:
push:
branches: [tandoor-1]
jobs:
build-container:
@@ -17,27 +19,16 @@ jobs:
# Standard build config
- name: Standard
dockerfile: Dockerfile
platforms: linux/amd64,linux/arm64,linux/arm/v7
platforms: linux/amd64,linux/arm64
suffix: ""
continue-on-error: false
steps:
- uses: actions/checkout@v4
- name: Get version number
id: get_version
run: |
if [[ "$GITHUB_REF" = refs/tags/* ]]; then
echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT
elif [[ "$GITHUB_REF" = refs/heads/beta ]]; then
echo VERSION=beta >> $GITHUB_OUTPUT
else
echo VERSION=develop >> $GITHUB_OUTPUT
fi
# Build Vue frontend
- uses: actions/setup-node@v4
with:
node-version: '18'
node-version: '20'
cache: yarn
cache-dependency-path: vue/yarn.lock
- name: Install dependencies
@@ -75,11 +66,8 @@ jobs:
latest=false
suffix=${{ matrix.suffix }}
tags: |
type=raw,value=latest,enable=${{ startsWith(github.ref, 'refs/tags/') }}
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=ref,event=branch
type=raw,value=tandoor-v1-{{date 'YYYYMMDD'}}
type=raw,value=tandoor-v1
- name: Build and Push
uses: docker/build-push-action@v5
with:
@@ -93,34 +81,3 @@ jobs:
cache-from: type=gha
cache-to: type=gha,mode=max
notify-stable:
name: Notify Stable
runs-on: ubuntu-latest
needs: build-container
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Set tag name
run: |
# Strip "refs/tags/" prefix
echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
# Send stable discord notification
- name: Discord notification
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_RELEASE_WEBHOOK }}
uses: Ilshidur/action-discord@0.3.2
with:
args: '🚀 Version {{ VERSION }} of tandoor has been released 🥳 Check it out https://github.com/vabene1111/recipes/releases/tag/{{ VERSION }}'
notify-beta:
name: Notify Beta
runs-on: ubuntu-latest
needs: build-container
if: github.ref == 'refs/heads/beta'
steps:
# Send beta 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

@@ -1,6 +1,11 @@
name: Continuous Integration
on: [push, pull_request]
on:
push:
branches: [disabled]
pull_request:
branches: [disabled]
jobs:
build:
@@ -14,9 +19,9 @@ jobs:
steps:
- uses: actions/checkout@v4
- uses: awalsh128/cache-apt-pkgs-action@v1.4.2
- uses: awalsh128/cache-apt-pkgs-action@v1.4.3
with:
packages: libsasl2-dev python3-dev libldap2-dev libssl-dev
packages: libsasl2-dev python3-dev libxml2-dev libxmlsec1-dev libxslt-dev libxmlsec1-openssl libldap2-dev libssl-dev gcc musl-dev postgresql-dev zlib-dev jpeg-dev libwebp-dev openssl-dev libffi-dev cargo openldap-dev python3-dev xmlsec-dev xmlsec build-base g++ curl
version: 1.0
# Setup python & dependencies

View File

@@ -2,9 +2,10 @@ name: "Code scanning - action"
on:
push:
branches: [disabled]
pull_request:
schedule:
- cron: '0 13 * * 2'
branches: [disabled]
jobs:
CodeQL-Build:

235
.github/workflows/create-upstream-pr.yml vendored Normal file
View File

@@ -0,0 +1,235 @@
name: Create Upstream PR
on:
workflow_run:
workflows: ["Push Workflow"]
types:
- completed
branches: [working]
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
create-upstream-pr:
runs-on: ubuntu-latest
concurrency:
group: upstream-pr
cancel-in-progress: true
if: github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success'
steps:
- name: Generate GitHub App token (for branch push)
id: generate_token_push
uses: actions/create-github-app-token@v2
with:
app-id: ${{ secrets.BOT_APP_ID }}
private-key: ${{ secrets.BOT_PRIVATE_KEY }}
- name: Checkout fork
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ steps.generate_token_push.outputs.token }}
- name: Setup git user
run: |
git config user.name "GitHub Action"
git config user.email "action@github.com"
- name: Add upstream remote
run: |
git remote get-url upstream || git remote add upstream https://github.com/TandoorRecipes/recipes.git
git fetch upstream
- name: Ensure jq is available
run: |
if ! command -v jq &> /dev/null; then
sudo apt-get update && sudo apt-get install -y jq
fi
- name: Create upstream PR branch
id: create_branch
run: |
BRANCH_NAME="upstream-pr-$(date +%Y%m%d-%H%M%S)"
git checkout -b "$BRANCH_NAME" || { echo "❌ Failed to create branch $BRANCH_NAME"; exit 1; }
echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT
echo "✅ Created branch: $BRANCH_NAME"
- name: Restore upstream infrastructure files
id: restore_infra
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
git checkout "$BRANCH_NAME"
git rm .gitattributes || echo " .gitattributes not present, skipping removal."
git checkout upstream/tandoor-1 -- .github/workflows/ || echo " No workflows to restore."
git checkout upstream/tandoor-1 -- cookbook/version_info.py || echo " No version_info.py to restore."
git add .
if ! git diff --cached --quiet; then
git commit -m $'Restore upstream infrastructure files for PR\n\n- Removed fork-specific .gitattributes\n- Restored upstream .github/workflows/\n- Restored upstream cookbook/version_info.py'
echo "✅ Infrastructure files restored and committed."
else
echo " No infrastructure changes to commit."
fi
- name: Push branch to fork (after infra commit)
env:
GITHUB_TOKEN: ${{ steps.generate_token_push.outputs.token }}
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
echo "Pushing branch $BRANCH_NAME after infra file restore."
git push --set-upstream https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git "$BRANCH_NAME"
echo "✅ Branch pushed: $BRANCH_NAME (infra files)"
- name: Merge upstream branch
id: merge_upstream
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
git checkout "$BRANCH_NAME"
if git merge --no-edit upstream/tandoor-1; then
echo "✅ Merged upstream/tandoor-1 into $BRANCH_NAME"
if ! git diff --cached --quiet || [ -n "$(git log origin/$BRANCH_NAME..$BRANCH_NAME --oneline)" ]; then
echo "merge_commit=true" >> $GITHUB_OUTPUT
else
echo "merge_commit=false" >> $GITHUB_OUTPUT
fi
else
echo "❌ Merge conflict detected during merge with upstream/tandoor-1. Please resolve conflicts manually." >&2
exit 1
fi
- name: Push branch to fork (after merge)
if: steps.merge_upstream.outputs.merge_commit == 'true'
env:
GITHUB_TOKEN: ${{ steps.generate_token_push.outputs.token }}
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
echo "Pushing branch $BRANCH_NAME after merge."
git push https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git "$BRANCH_NAME"
echo "✅ Branch pushed: $BRANCH_NAME (after merge)"
- name: Get commit list
id: get_commits
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
COMMITS_RAW=$(git log upstream/tandoor-1..$BRANCH_NAME --oneline)
if [ -z "$COMMITS_RAW" ]; then
echo "has_changes=false" >> $GITHUB_OUTPUT
echo "✅ No commits to contribute - exiting gracefully"
exit 0
fi
echo "commits_raw<<EOF" >> $GITHUB_OUTPUT
printf "%s\n" "$COMMITS_RAW" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
echo "has_changes=true" >> $GITHUB_OUTPUT
- name: Get changed files
id: get_files
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
CHANGED_FILES=$(git diff upstream/tandoor-1..$BRANCH_NAME --name-only)
echo "changed_files<<EOF" >> $GITHUB_OUTPUT
printf "%s\n" "$CHANGED_FILES" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
CODE_COUNT=$(echo "$CHANGED_FILES" | grep -c '^' || true)
echo "code_count=$CODE_COUNT" >> $GITHUB_OUTPUT
- name: Summarize changes
id: summarize_changes
run: |
CODE_COUNT=${{ steps.get_files.outputs.code_count }}
CHANGES_SUMMARY="Modified $CODE_COUNT code files"
echo "changes_summary=$CHANGES_SUMMARY" >> $GITHUB_OUTPUT
- name: Prepare commit subjects and JSON
id: prepare_commits
run: |
COMMITS_RAW="${{ steps.get_commits.outputs.commits_raw }}"
CODE_FILES=( $(echo "${{ steps.get_files.outputs.changed_files }}") )
FILTERED_COMMITS_JSON="[]"
COMMIT_SUBJECTS_ARRAY=()
INFRA_PATTERNS='^\.github/|^cookbook/version_info\.py$|^\.gitattributes$'
while IFS= read -r commit_line; do
if [ -z "$commit_line" ]; then continue; fi
COMMIT_SHA=$(echo "$commit_line" | cut -d' ' -f1)
COMMIT_SUBJECT=$(echo "$commit_line" | cut -d' ' -f2-)
mapfile -t COMMIT_FILES < <(git diff-tree --no-commit-id --name-only -r "$COMMIT_SHA" | grep -Ev "$INFRA_PATTERNS")
# Only include commit if it touches at least one non-infra file that is still different
INCLUDE_COMMIT=false
for file in "${COMMIT_FILES[@]}"; do
for code_file in "${CODE_FILES[@]}"; do
if [ "$file" = "$code_file" ]; then
INCLUDE_COMMIT=true
break 2
fi
done
done
if [ "$INCLUDE_COMMIT" = true ]; then
COMMIT_SUBJECTS_ARRAY+=("- $COMMIT_SUBJECT")
FILES_JSON=$(printf '%s\n' "${COMMIT_FILES[@]}" | jq -R . | jq -s .)
COMMIT_JSON=$(jq -n --arg sha "$COMMIT_SHA" --arg subject "$COMMIT_SUBJECT" --argjson files "$FILES_JSON" '{sha: $sha, subject: $subject, files: $files}')
FILTERED_COMMITS_JSON=$(echo "$FILTERED_COMMITS_JSON" | jq --argjson item "$COMMIT_JSON" '. + [$item]')
fi
done <<< "$COMMITS_RAW"
echo 'commits_json<<EOF' >> $GITHUB_OUTPUT
printf "%s\n" "$FILTERED_COMMITS_JSON" >> $GITHUB_OUTPUT
echo 'EOF' >> $GITHUB_OUTPUT
echo "commit_subjects<<EOF" >> $GITHUB_OUTPUT
printf '%s\n' "${COMMIT_SUBJECTS_ARRAY[@]}" >> $GITHUB_OUTPUT
echo 'EOF' >> $GITHUB_OUTPUT
- name: Build PR content
if: steps.get_commits.outputs.has_changes == 'true'
id: build_pr_content
uses: actions/github-script@v7
env:
COMMITS_JSON: ${{ steps.prepare_commits.outputs.commits_json }}
CHANGES_SUMMARY: ${{ steps.summarize_changes.outputs.changes_summary }}
BRANCH_NAME: ${{ steps.create_branch.outputs.branch_name }}
GITHUB_REPOSITORY: ${{ github.repository }}
with:
github-token: ${{ steps.generate_token_push.outputs.token }}
script: |
const commits = JSON.parse(process.env.COMMITS_JSON || '[]');
const changesSummary = process.env.CHANGES_SUMMARY || 'Changes from fork';
const branchName = process.env.BRANCH_NAME || '';
const repo = process.env.GITHUB_REPOSITORY || '';
const [owner, reponame] = repo.split('/');
const nCommits = commits.length;
let prTitle = 'Sync ' + nCommits + ' commit' + (nCommits !== 1 ? 's' : '') + ' from fork:';
if (nCommits > 0) {
prTitle += ' ' + commits[0].subject;
}
let prBody = `This PR syncs ${nCommits} commit${nCommits !== 1 ? 's' : ''} from branch ${branchName}.\n\n`;
prBody += `**Changes Summary:**\n${changesSummary}\n\n`;
prBody += `Commits included:\n`;
for (const c of commits) {
prBody += `- ${c.subject} ([${c.sha}](https://github.com/${owner}/${reponame}/commit/${c.sha}))\n`;
}
prBody += `\n---\n`;
core.setOutput('prTitle', prTitle);
core.setOutput('prBody', prBody);
- name: Print PR creation instructions
if: steps.get_commits.outputs.has_changes == 'true'
env:
BRANCH_NAME: ${{ steps.create_branch.outputs.branch_name }}
PR_TITLE: ${{ steps.build_pr_content.outputs.prTitle }}
PR_BODY: ${{ steps.build_pr_content.outputs.prBody }}
run: |
echo "✅ Branch pushed: $BRANCH_NAME"
echo
echo "To create a pull request, open:"
echo "https://github.com/TandoorRecipes/recipes/compare/tandoor-1...${{ github.repository_owner }}:$BRANCH_NAME?expand=1"
echo
echo "Suggested PR title:"
echo "$PR_TITLE"
echo
echo "Suggested PR body:"
echo "$PR_BODY"

View File

@@ -0,0 +1,68 @@
name: Dependabot Auto-merge
on:
pull_request_target:
types: [opened, synchronize, reopened, ready_for_review]
permissions:
contents: read
jobs:
validate:
if: contains(github.event.pull_request.labels.*.name, 'automerge') && github.event.pull_request.user.login != 'dependabot[bot]'
runs-on: ubuntu-latest
permissions:
contents: read
issues: write
pull-requests: write
steps:
- name: Remove automerge label
uses: actions-ecosystem/action-remove-labels@d05162525702062b6bdef750ed8594fc024b3ed7 # v1.3.0
with:
labels: automerge
- name: Add invalid label
uses: actions-ecosystem/action-add-labels@1a9c3715c0037e96b97bb38cb4c4b56a1f1d4871 # v1.1.0
with:
labels: invalid
- name: Comment restriction
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4.0.0
with:
issue-number: ${{ github.event.pull_request.number }}
body: |
⚠️ **Automerge Restriction Notice**
The `automerge` label has been removed from this PR because it has restricted use. Only PRs created by `dependabot[bot]` are allowed to use the automerge functionality.
If you believe this is an error, please contact a repository maintainer.
auto-merge:
if: github.actor == 'dependabot[bot]' && contains(github.event.pull_request.labels.*.name, 'automerge')
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Generate token
id: generate_token
uses: actions/create-github-app-token@v2
with:
app-id: ${{ secrets.BOT_APP_ID }}
private-key: ${{ secrets.BOT_PRIVATE_KEY }}
- name: Auto-approve PR
uses: hmarr/auto-approve-action@b40d6c9ed2fa10c9a2749eca7eb004418a705501 # v4.0.0
with:
github-token: ${{ steps.generate_token.outputs.token }}
review-message: |
🤖 **Dependabot Auto-merge**
This PR has been automatically approved and enabled for auto-merge. It will be merged automatically once all required checks pass.
- name: Enable auto-merge
uses: daneden/enable-automerge-action@f8558b65c5b8d8bfb592c4e74e3d491624a38fbd # v1.0.0
with:
github-token: ${{ steps.generate_token.outputs.token }}
allowed-author: "dependabot[bot]"
merge-method: REBASE # Allowed values: MERGE | SQUASH | REBASE

75
.github/workflows/docker-publish.yml vendored Normal file
View File

@@ -0,0 +1,75 @@
name: publish docker image
on:
workflow_dispatch:
workflow_call:
permissions:
contents: read
packages: write
jobs:
build-container:
concurrency:
group: docker-build-${{ github.ref }}
name: Build Tandoor Container
runs-on: ubuntu-latest
continue-on-error: ${{ matrix.continue-on-error }}
permissions:
contents: read
packages: write
strategy:
matrix:
include:
# Standard build config
- name: Standard
dockerfile: Dockerfile
platforms: linux/amd64
suffix: ""
continue-on-error: false
steps:
- uses: actions/checkout@v4
- name: Get version number
id: get_version
run: |
echo VERSION=latest >> $GITHUB_OUTPUT
# Build Vue frontend
- uses: actions/setup-node@v4
with:
node-version: '20'
cache: yarn
cache-dependency-path: vue/yarn.lock
- name: Install dependencies
working-directory: ./vue
run: yarn install --frozen-lockfile
- name: Build dependencies
working-directory: ./vue
run: yarn build
- name: Set up QEMU
uses: docker/setup-qemu-action@05340d1c670183e7caabdb33ae9f1c80fae3b0c2 # v3.1.0
- name: Set up Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.7.1
- name: Login to Docker Hub
uses: docker/login-action@3d100841f68d4548bf57e52eb27bd33ec5069f55 # v3.3.0
with:
username: ${{ secrets.USERNAME }}
password: ${{ secrets.PASSWORD }}
- name: Docker Metadata
id: meta
uses: docker/metadata-action@be19121bfd18b9c1ac415d9571d4f67b9b357886 # v5.6.0
with:
images: |
smilerz/recipes
tags: |
type=raw,value=latest,enable={{is_default_branch}}
- name: Build and Push
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.10.0
with:
context: .
file: ${{ matrix.dockerfile }}
pull: true
push: true
platforms: ${{ matrix.platforms }}
tags: '${{ steps.meta.outputs.tags }}'
cache-from: type=gha
cache-to: type=gha,mode=max

57
.github/workflows/push-orchestrator.yml vendored Normal file
View File

@@ -0,0 +1,57 @@
name: Push Workflow
on:
push:
branches: [working]
permissions:
contents: read
jobs:
detect-pr-merge:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: read
outputs:
pr_merged: ${{ steps.detect_pr.outputs.result }}
steps:
- name: Check if commit is part of a PR
id: detect_pr
uses: actions/github-script@v7
with:
script: |
const prs = await github.rest.repos.listPullRequestsAssociatedWithCommit({
owner: context.repo.owner,
repo: context.repo.repo,
commit_sha: context.sha
});
const pr = prs.data.find(pr => pr.merged_at);
const merged = pr ? 'true' : 'false';
// Set the output explicitly
core.setOutput('pr_merged', merged);
return merged;
run-ci:
needs: detect-pr-merge
if: needs.detect-pr-merge.outputs.pr_merged != 'true'
permissions:
contents: read
actions: write
uses: ./.github/workflows/ci.yml
secrets: inherit
docker-publish:
permissions:
contents: read
packages: write
needs: [detect-pr-merge, run-ci]
if: |
needs.detect-pr-merge.outputs.pr_merged == 'true' ||
needs.run-ci.result == 'success'
uses: ./.github/workflows/docker-publish.yml
secrets: inherit

View File

@@ -0,0 +1,268 @@
name: Stage Branch for PR
on:
workflow_run:
workflows: ["Push Workflow"]
types:
- completed
branches: [working]
workflow_dispatch:
permissions:
contents: write
pull-requests: write
issues: write
jobs:
create-upstream-pr:
runs-on: ubuntu-latest
concurrency:
group: upstream-pr
cancel-in-progress: true
if: github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success'
steps:
- name: Generate GitHub App token (for branch push)
id: generate_token_push
uses: actions/create-github-app-token@v2
with:
app-id: ${{ secrets.BOT_APP_ID }}
private-key: ${{ secrets.BOT_PRIVATE_KEY }}
- name: Checkout fork
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ steps.generate_token_push.outputs.token }}
- name: Setup git user
run: |
git config user.name "GitHub Action"
git config user.email "action@github.com"
- name: Add upstream remote
run: |
git remote get-url upstream || git remote add upstream https://github.com/TandoorRecipes/recipes.git
git fetch upstream
- name: Ensure jq is available
run: |
if ! command -v jq &> /dev/null; then
sudo apt-get update && sudo apt-get install -y jq
fi
- name: Create upstream PR branch
id: create_branch
run: |
BRANCH_NAME="upstream-pr-$(date +%Y%m%d-%H%M%S)"
git checkout -b "$BRANCH_NAME" || { echo "❌ Failed to create branch $BRANCH_NAME"; exit 1; }
echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT
echo "✅ Created branch: $BRANCH_NAME"
- name: Restore upstream infrastructure files
id: restore_infra
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
git checkout "$BRANCH_NAME"
git rm .gitattributes || echo " .gitattributes not present, skipping removal."
git checkout upstream/tandoor-1 -- .github/workflows/ || echo " No workflows to restore."
git checkout upstream/tandoor-1 -- cookbook/version_info.py || echo " No version_info.py to restore."
git add .
if ! git diff --cached --quiet; then
git commit -m $'Restore upstream infrastructure files for PR\n\n- Removed fork-specific .gitattributes\n- Restored upstream .github/workflows/\n- Restored upstream cookbook/version_info.py'
echo "✅ Infrastructure files restored and committed."
else
echo " No infrastructure changes to commit."
fi
- name: Push branch to fork (after infra commit)
env:
GITHUB_TOKEN: ${{ steps.generate_token_push.outputs.token }}
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
echo "Pushing branch $BRANCH_NAME after infra file restore."
git push --set-upstream https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git "$BRANCH_NAME"
echo "✅ Branch pushed: $BRANCH_NAME (infra files)"
- name: Merge upstream branch
id: merge_upstream
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
git checkout "$BRANCH_NAME"
if git merge --no-edit upstream/tandoor-1; then
echo "✅ Merged upstream/tandoor-1 into $BRANCH_NAME"
if ! git diff --cached --quiet || [ -n "$(git log origin/$BRANCH_NAME..$BRANCH_NAME --oneline)" ]; then
echo "merge_commit=true" >> $GITHUB_OUTPUT
else
echo "merge_commit=false" >> $GITHUB_OUTPUT
fi
else
echo "❌ Merge conflict detected during merge with upstream/tandoor-1. Please resolve conflicts manually." >&2
exit 1
fi
- name: Push branch to fork (after merge)
if: steps.merge_upstream.outputs.merge_commit == 'true'
env:
GITHUB_TOKEN: ${{ steps.generate_token_push.outputs.token }}
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
echo "Pushing branch $BRANCH_NAME after merge."
git push https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git "$BRANCH_NAME"
echo "✅ Branch pushed: $BRANCH_NAME (after merge)"
- name: Get commit list
id: get_commits
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
COMMITS_RAW=$(git log upstream/tandoor-1..$BRANCH_NAME --oneline)
if [ -z "$COMMITS_RAW" ]; then
echo "has_changes=false" >> $GITHUB_OUTPUT
echo "✅ No commits to contribute - exiting gracefully"
exit 0
fi
echo "commits_raw<<EOF" >> $GITHUB_OUTPUT
printf "%s\n" "$COMMITS_RAW" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
echo "has_changes=true" >> $GITHUB_OUTPUT
- name: Get changed files
id: get_files
run: |
BRANCH_NAME="${{ steps.create_branch.outputs.branch_name }}"
INFRA_PATTERNS='^\.github/|^cookbook/version_info\.py$|^\.gitattributes$'
CHANGED_FILES=$(git diff upstream/tandoor-1..$BRANCH_NAME --name-only | grep -Ev "$INFRA_PATTERNS" || true)
echo "changed_files<<EOF" >> $GITHUB_OUTPUT
printf "%s\n" "$CHANGED_FILES" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
CODE_COUNT=$(echo "$CHANGED_FILES" | grep -c '^' || true)
echo "code_count=$CODE_COUNT" >> $GITHUB_OUTPUT
- name: Summarize changes
id: summarize_changes
run: |
CODE_COUNT=${{ steps.get_files.outputs.code_count }}
CHANGED_FILES="${{ steps.get_files.outputs.changed_files }}"
if [ "$CODE_COUNT" -eq 0 ]; then
CHANGES_SUMMARY="No code files changed. No PR required."
else
CHANGES_SUMMARY="Modified $CODE_COUNT code files"
CHANGES_SUMMARY+=$'\nFiles changed:'
CHANGES_SUMMARY+=$'\n'$(echo "$CHANGED_FILES" | sed '/^$/d; s/^/- /')
fi
echo "changes_summary<<EOF" >> $GITHUB_OUTPUT
echo "$CHANGES_SUMMARY" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Prepare commit subjects and JSON
id: prepare_commits
run: |
COMMITS_RAW="${{ steps.get_commits.outputs.commits_raw }}"
CODE_FILES=( $(echo "${{ steps.get_files.outputs.changed_files }}") )
FILTERED_COMMITS_JSON="[]"
COMMIT_SUBJECTS_ARRAY=()
INFRA_PATTERNS='^\.github/|^cookbook/version_info\.py$|^\.gitattributes$'
while IFS= read -r commit_line; do
if [ -z "$commit_line" ]; then continue; fi
COMMIT_SHA=$(echo "$commit_line" | cut -d' ' -f1)
COMMIT_SUBJECT=$(echo "$commit_line" | cut -d' ' -f2-)
mapfile -t COMMIT_FILES < <(git diff-tree --no-commit-id --name-only -r "$COMMIT_SHA" | grep -Ev "$INFRA_PATTERNS")
# Only include commit if it touches at least one non-infra file that is still different
INCLUDE_COMMIT=false
for file in "${COMMIT_FILES[@]}"; do
for code_file in "${CODE_FILES[@]}"; do
if [ "$file" = "$code_file" ]; then
INCLUDE_COMMIT=true
break 2
fi
done
done
if [ "$INCLUDE_COMMIT" = true ]; then
COMMIT_SUBJECTS_ARRAY+=("- $COMMIT_SUBJECT")
FILES_JSON=$(printf '%s\n' "${COMMIT_FILES[@]}" | jq -R . | jq -s .)
COMMIT_JSON=$(jq -n --arg sha "$COMMIT_SHA" --arg subject "$COMMIT_SUBJECT" --argjson files "$FILES_JSON" '{sha: $sha, subject: $subject, files: $files}')
FILTERED_COMMITS_JSON=$(echo "$FILTERED_COMMITS_JSON" | jq --argjson item "$COMMIT_JSON" '. + [$item]')
fi
done <<< "$COMMITS_RAW"
echo 'commits_json<<EOF' >> $GITHUB_OUTPUT
printf "%s\n" "$FILTERED_COMMITS_JSON" >> $GITHUB_OUTPUT
echo 'EOF' >> $GITHUB_OUTPUT
echo "commit_subjects<<EOF" >> $GITHUB_OUTPUT
printf '%s\n' "${COMMIT_SUBJECTS_ARRAY[@]}" >> $GITHUB_OUTPUT
echo 'EOF' >> $GITHUB_OUTPUT
- name: Build PR content
if: steps.get_commits.outputs.has_changes == 'true'
id: build_pr_content
uses: actions/github-script@v7
env:
COMMITS_JSON: ${{ steps.prepare_commits.outputs.commits_json }}
CHANGES_SUMMARY: ${{ steps.summarize_changes.outputs.changes_summary }}
BRANCH_NAME: ${{ steps.create_branch.outputs.branch_name }}
GITHUB_REPOSITORY: ${{ github.repository }}
with:
github-token: ${{ steps.generate_token_push.outputs.token }}
script: |
const commits = JSON.parse(process.env.COMMITS_JSON || '[]');
const changesSummary = process.env.CHANGES_SUMMARY || 'Changes from fork';
const branchName = process.env.BRANCH_NAME || '';
const repo = process.env.GITHUB_REPOSITORY || '';
const [owner, reponame] = repo.split('/');
const nCommits = commits.length;
let prTitle = 'Sync ' + nCommits + ' commit' + (nCommits !== 1 ? 's' : '') + ' from fork:';
if (nCommits > 0) {
prTitle += ' ' + commits[0].subject;
}
let prBody = `This PR syncs ${nCommits} commit${nCommits !== 1 ? 's' : ''} from branch ${branchName}.\n\n`;
prBody += `**Changes Summary:**\n${changesSummary}\n\n`;
prBody += `Commits included:\n`;
for (const c of commits) {
prBody += `- ${c.subject} ([${c.sha}](https://github.com/${owner}/${reponame}/commit/${c.sha}))\n`;
}
core.setOutput('prTitle', prTitle);
core.setOutput('prBody', prBody);
- name: Open issue for PR checklist
if: steps.get_files.outputs.code_count != '0' && steps.prepare_commits.outputs.commit_subjects != ''
uses: actions/github-script@v7
env:
BRANCH_NAME: ${{ steps.create_branch.outputs.branch_name }}
PR_TITLE: ${{ steps.build_pr_content.outputs.prTitle }}
PR_BODY: ${{ steps.build_pr_content.outputs.prBody }}
GITHUB_REPOSITORY: ${{ github.repository }}
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const branch = process.env.BRANCH_NAME || '';
const prTitle = process.env.PR_TITLE || '';
const prBody = process.env.PR_BODY || '';
const repo = process.env.GITHUB_REPOSITORY || '';
const [owner, reponame] = repo.split('/');
const prLink = `https://github.com/TandoorRecipes/recipes/compare/tandoor-1...${owner}:${branch}?expand=1&title=${encodeURIComponent(prTitle)}`;
const issueTitle = `Manual Upstream PR Checklist: ${branch}`;
const issueBody = [
`A new branch is ready for upstream PR submission.`,
'',
`- [ ] Submit PR: [Create PR](${prLink})`,
'- [ ] PR merged',
'- [ ] Branch deleted',
'',
'**Suggested PR title:**',
'```',
prTitle,
'```',
'**Suggested PR body:**',
'```',
prBody,
'```',
].join('\n');
await github.rest.issues.create({
owner,
repo: reponame,
title: issueTitle,
body: issueBody
});

28
.vscode/launch.json vendored
View File

@@ -1,18 +1,18 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python Debugger: Django",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": ["runserver"],
"django": true,
"justMyCode": true
},
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python Debugger: Django",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": ["runserver"],
"django": true,
"justMyCode": true
},
{
"name": "Python: Debug Tests",
"type": "debugpy",

25
.vscode/settings.json vendored
View File

@@ -1,14 +1,15 @@
{
"python.testing.pytestArgs": [
"cookbook/tests"
],
"python.testing.unittestEnabled": false,
"python.testing.pytestEnabled": true,
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[python]": {
"editor.defaultFormatter": "eeyore.yapf",
},
"yapf.args": [],
"isort.args": []
"python.testing.pytestArgs": ["cookbook/tests"],
"python.testing.unittestEnabled": false,
"python.testing.pytestEnabled": true,
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[python]": {
"editor.defaultFormatter": "eeyore.yapf"
},
"editor.codeActionsOnSave": {
"source.organizeImports": "explicit"
},
"yapf.args": [],
"isort.args": []
}

View File

@@ -1,4 +1,4 @@
FROM python:3.12-alpine3.19
FROM python:3.12.12-alpine3.21
#Install all dependencies.
RUN apk add --no-cache postgresql-libs postgresql-client gettext zlib libjpeg libwebp libxml2-dev libxslt-dev openldap git
@@ -23,7 +23,7 @@ RUN \
fi
# remove Development dependencies from requirements.txt
RUN sed -i '/# Development/,$d' requirements.txt
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 && \
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 xmlsec-dev xmlsec build-base && \
echo -n "INPUT ( libldap.so )" > /usr/lib/libldap_r.so && \
python -m venv venv && \
/opt/recipes/venv/bin/python -m pip install --upgrade pip && \
@@ -35,11 +35,12 @@ RUN apk add --no-cache --virtual .build-deps gcc musl-dev postgresql-dev zlib-de
#Copy project and execute it.
COPY . ./
HEALTHCHECK --interval=30s \
--timeout=5s \
--start-period=10s \
--retries=3 \
CMD [ "/usr/bin/wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:8080/openapi" ]
# commented for now https://github.com/TandoorRecipes/recipes/issues/3478
#HEALTHCHECK --interval=30s \
# --timeout=5s \
# --start-period=10s \
# --retries=3 \
# CMD [ "/usr/bin/wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:8080/openapi" ]
# collect information from git repositories
RUN /opt/recipes/venv/bin/python version.py

View File

@@ -41,6 +41,9 @@ if [ -f "${SOCIALACCOUNT_PROVIDERS_FILE}" ]; then
export SOCIALACCOUNT_PROVIDERS=$(cat "$SOCIALACCOUNT_PROVIDERS_FILE")
fi
if [ -f "${S3_SECRET_ACCESS_KEY_FILE}" ]; then
export S3_SECRET_ACCESS_KEY=$(cat "$S3_SECRET_ACCESS_KEY_FILE")
fi
echo "Waiting for database to be ready..."

View File

@@ -1,29 +1,62 @@
from abc import ABC, abstractmethod
from dataclasses import dataclass
from typing import Optional
from cookbook.models import ShoppingListEntry, Space, ConnectorConfig
from cookbook.models import ConnectorConfig, ShoppingListEntry, User
@dataclass
class UserDTO:
username: str
first_name: Optional[str]
@staticmethod
def create_from_user(instance: User) -> 'UserDTO':
return UserDTO(username=instance.username, first_name=instance.first_name if instance.first_name else None)
@dataclass
class ShoppingListEntryDTO:
food_name: str
amount: Optional[float]
base_unit: Optional[str]
unit_name: Optional[str]
created_by: UserDTO
@staticmethod
def try_create_from_entry(instance: ShoppingListEntry) -> Optional['ShoppingListEntryDTO']:
if instance.food is None or instance.created_by is None:
return None
return ShoppingListEntryDTO(
food_name=instance.food.name,
amount=instance.amount if instance.amount else None,
unit_name=instance.unit.name if instance.unit else None,
base_unit=instance.unit.base_unit if instance.unit and instance.unit.base_unit else None,
created_by=UserDTO.create_from_user(instance.created_by),
)
# A Connector is 'destroyed' & recreated each time 'any' ConnectorConfig in a space changes.
class Connector(ABC):
@abstractmethod
def __init__(self, config: ConnectorConfig):
pass
@abstractmethod
async def on_shopping_list_entry_created(self, space: Space, instance: ShoppingListEntry) -> None:
async def on_shopping_list_entry_created(self, instance: ShoppingListEntryDTO) -> None:
pass
# This method might not trigger on 'direct' entry updates: https://stackoverflow.com/a/35238823
@abstractmethod
async def on_shopping_list_entry_updated(self, space: Space, instance: ShoppingListEntry) -> None:
async def on_shopping_list_entry_updated(self, instance: ShoppingListEntryDTO) -> None:
pass
@abstractmethod
async def on_shopping_list_entry_deleted(self, space: Space, instance: ShoppingListEntry) -> None:
async def on_shopping_list_entry_deleted(self, instance: ShoppingListEntryDTO) -> None:
pass
@abstractmethod
async def close(self) -> None:
pass
# TODO: Add Recipes & possibly Meal Place listeners/hooks (And maybe more?)

View File

@@ -7,14 +7,14 @@ from dataclasses import dataclass
from enum import Enum
from logging import Logger
from types import UnionType
from typing import List, Any, Dict, Optional, Type
from typing import Any, Dict, List, Optional, Type
from django.conf import settings
from django_scopes import scope
from cookbook.connectors.connector import Connector
from cookbook.connectors.connector import Connector, ShoppingListEntryDTO
from cookbook.connectors.homeassistant import HomeAssistant
from cookbook.models import ShoppingListEntry, Space, ConnectorConfig
from cookbook.models import ConnectorConfig, ShoppingListEntry, Space
REGISTERED_CLASSES: UnionType | Type = ShoppingListEntry
@@ -56,15 +56,16 @@ class ConnectorManager(metaclass=Singleton):
def __init__(self):
self._logger = logging.getLogger("recipes.connector")
self._logger.debug("ConnectorManager initializing")
self._queue = queue.Queue(maxsize=settings.EXTERNAL_CONNECTORS_QUEUE_SIZE)
self._worker = threading.Thread(target=self.worker, args=(0, self._queue,), daemon=True)
self._worker = threading.Thread(target=self.worker, args=(
0,
self._queue,
), daemon=True)
self._worker.start()
# Called by post save & post delete signals
def __call__(self, instance: Any, **kwargs) -> None:
if not isinstance(instance, self._listening_to_classes) or not hasattr(instance, "space"):
return
action_type: ActionType
if "created" in kwargs and kwargs["created"]:
action_type = ActionType.CREATED
@@ -75,16 +76,37 @@ class ConnectorManager(metaclass=Singleton):
else:
return
try:
self._queue.put_nowait(Work(instance, action_type))
except queue.Full:
self._logger.info(f"queue was full, so skipping {action_type} of type {type(instance)}")
return
self._add_work(action_type, instance)
def _add_work(self, action_type: ActionType, *instances: REGISTERED_CLASSES):
for instance in instances:
if not isinstance(instance, self._listening_to_classes) or not hasattr(instance, "space"):
continue
try:
_force_load_instance(instance)
self._queue.put_nowait(Work(instance, action_type))
except queue.Full:
self._logger.info(f"queue was full, so skipping {action_type} of type {type(instance)}")
def stop(self):
self._queue.join()
self._worker.join()
@classmethod
def is_initialized(cls):
return cls in cls._instances
@staticmethod
def add_work(action_type: ActionType, *instances: REGISTERED_CLASSES):
"""
Manually inject work that failed to come in through the __call__ (aka Django signal)
Before the work is processed, we check if the connectionManager is initialized, because if it's not, we don't want to accidentally initialize it.
Be careful calling it, because it might result in a instance being processed twice.
"""
if not ConnectorManager.is_initialized():
return
ConnectorManager()._add_work(action_type, *instances)
@staticmethod
def worker(worker_id: int, worker_queue: queue.Queue):
logger = logging.getLogger("recipes.connector.worker")
@@ -116,7 +138,7 @@ class ConnectorManager(metaclass=Singleton):
if connectors is None or refresh_connector_cache:
if connectors is not None:
loop.run_until_complete(close_connectors(connectors))
loop.run_until_complete(_close_connectors(connectors))
with scope(space=space):
connectors: List[Connector] = list()
@@ -142,7 +164,7 @@ class ConnectorManager(metaclass=Singleton):
logger.debug(f"running {len(connectors)} connectors for {item.instance=} with {item.actionType=}")
loop.run_until_complete(run_connectors(connectors, space, item.instance, item.actionType))
loop.run_until_complete(run_connectors(connectors, item.instance, item.actionType))
worker_queue.task_done()
logger.info(f"terminating ConnectionManager worker {worker_id}")
@@ -159,7 +181,14 @@ class ConnectorManager(metaclass=Singleton):
return None
async def close_connectors(connectors: List[Connector]):
def _force_load_instance(instance: REGISTERED_CLASSES):
if isinstance(instance, ShoppingListEntry):
_ = instance.food # Force load food
_ = instance.unit # Force load unit
_ = instance.created_by # Force load created_by
async def _close_connectors(connectors: List[Connector]):
tasks: List[Task] = [asyncio.create_task(connector.close()) for connector in connectors]
if len(tasks) == 0:
@@ -171,22 +200,24 @@ async def close_connectors(connectors: List[Connector]):
logging.exception("received an exception while closing one of the connectors")
async def run_connectors(connectors: List[Connector], space: Space, instance: REGISTERED_CLASSES, action_type: ActionType):
async def run_connectors(connectors: List[Connector], instance: REGISTERED_CLASSES, action_type: ActionType):
tasks: List[Task] = list()
if isinstance(instance, ShoppingListEntry):
shopping_list_entry: ShoppingListEntry = instance
shopping_list_entry = ShoppingListEntryDTO.try_create_from_entry(instance)
if shopping_list_entry is None:
return
match action_type:
case ActionType.CREATED:
for connector in connectors:
tasks.append(asyncio.create_task(connector.on_shopping_list_entry_created(space, shopping_list_entry)))
tasks.append(asyncio.create_task(connector.on_shopping_list_entry_created(shopping_list_entry)))
case ActionType.UPDATED:
for connector in connectors:
tasks.append(asyncio.create_task(connector.on_shopping_list_entry_updated(space, shopping_list_entry)))
tasks.append(asyncio.create_task(connector.on_shopping_list_entry_updated(shopping_list_entry)))
case ActionType.DELETED:
for connector in connectors:
tasks.append(asyncio.create_task(connector.on_shopping_list_entry_deleted(space, shopping_list_entry)))
tasks.append(asyncio.create_task(connector.on_shopping_list_entry_deleted(shopping_list_entry)))
if len(tasks) == 0:
return

View File

@@ -35,6 +35,21 @@ def get_filetype(name):
return '.jpeg'
def is_file_type_allowed(filename, image_only=False):
is_file_allowed = False
allowed_file_types = ['.pdf', '.docx', '.xlsx']
allowed_image_types = ['.png', '.jpg', '.jpeg', '.gif', '.webp']
check_list = allowed_image_types
if not image_only:
check_list += allowed_file_types
for file_type in check_list:
if filename.lower().endswith(file_type):
is_file_allowed = True
return is_file_allowed
# 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

View File

@@ -58,8 +58,7 @@ class IngredientParser:
def parse_fraction(self, x):
if len(x) == 1 and 'fraction' in unicodedata.decomposition(x):
frac_split = unicodedata.decomposition(x[-1:]).split()
return (float((frac_split[1]).replace('003', ''))
/ float((frac_split[3]).replace('003', '')))
return (float((frac_split[1]).replace('003', '')) / float((frac_split[3]).replace('003', '')))
else:
frac_split = x.split('/')
if not len(frac_split) == 2:
@@ -78,12 +77,7 @@ class IngredientParser:
did_check_frac = False
end = 0
while (end < len(x) and (x[end] in string.digits
or (
(x[end] == '.' or x[end] == ',' or x[end] == '/')
and end + 1 < len(x)
and x[end + 1] in string.digits
))):
while (end < len(x) and (x[end] in string.digits or ((x[end] == '.' or x[end] == ',' or x[end] == '/') and end + 1 < len(x) and x[end + 1] in string.digits))):
end += 1
if end > 0:
if "/" in x[:end]:
@@ -107,8 +101,9 @@ class IngredientParser:
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
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
@@ -118,7 +113,7 @@ class IngredientParser:
note = ''
start = 0
# search for first occurrence of an argument ending in a comma
while start < len(tokens) and not tokens[start].endswith(','):
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 food

View File

@@ -9,8 +9,7 @@ from django.utils import timezone, translation
from cookbook.helper.HelperFunctions import Round, str2bool
from cookbook.managers import DICTIONARY
from cookbook.models import (CookLog, CustomFilter, Food, Keyword, Recipe, SearchFields,
SearchPreference, ViewLog)
from cookbook.models import CookLog, CustomFilter, Food, Keyword, Recipe, SearchFields, SearchPreference, ViewLog
from recipes import settings
@@ -22,11 +21,8 @@ class RecipeSearch():
self._request = request
self._queryset = None
if f := params.get('filter', None):
custom_filter = (
CustomFilter.objects.filter(id=f, space=self._request.space)
.filter(Q(created_by=self._request.user) | Q(shared=self._request.user) | Q(recipebook__shared=self._request.user))
.first()
)
custom_filter = (CustomFilter.objects.filter(id=f, space=self._request.space).filter(
Q(created_by=self._request.user) | Q(shared=self._request.user) | Q(recipebook__shared=self._request.user)).first())
if custom_filter:
self._params = {**json.loads(custom_filter.search)}
self._original_params = {**(params or {})}
@@ -38,7 +34,7 @@ class RecipeSearch():
else:
self._params = {**(params or {})}
if self._request.user.is_authenticated:
CACHE_KEY = f'search_pref_{request.user.id}'
CACHE_KEY = f"search_pref_{request.user.id}"
cached_result = cache.get(CACHE_KEY, default=None)
if cached_result is not None:
self._search_prefs = cached_result
@@ -47,44 +43,43 @@ class RecipeSearch():
cache.set(CACHE_KEY, self._search_prefs, timeout=10)
else:
self._search_prefs = SearchPreference()
self._string = self._params.get('query').strip(
) if self._params.get('query', None) else None
self._rating = self._params.get('rating', None)
self._string = self._params.get("query").strip() if self._params.get("query", None) else None
self._rating = self._params.get("rating", None)
self._keywords = {
'or': self._params.get('keywords_or', None) or self._params.get('keywords', None),
'and': self._params.get('keywords_and', None),
'or_not': self._params.get('keywords_or_not', None),
'and_not': self._params.get('keywords_and_not', None)
"or": self._params.get("keywords_or", None) or self._params.get("keywords", None),
"and": self._params.get("keywords_and", None),
"or_not": self._params.get("keywords_or_not", None),
"and_not": self._params.get("keywords_and_not", None),
}
self._foods = {
'or': self._params.get('foods_or', None) or self._params.get('foods', None),
'and': self._params.get('foods_and', None),
'or_not': self._params.get('foods_or_not', None),
'and_not': self._params.get('foods_and_not', None)
"or": self._params.get("foods_or", None) or self._params.get("foods", None),
"and": self._params.get("foods_and", None),
"or_not": self._params.get("foods_or_not", None),
"and_not": self._params.get("foods_and_not", None),
}
self._books = {
'or': self._params.get('books_or', None) or self._params.get('books', None),
'and': self._params.get('books_and', None),
'or_not': self._params.get('books_or_not', None),
'and_not': self._params.get('books_and_not', None)
"or": self._params.get("books_or", None) or self._params.get("books", None),
"and": self._params.get("books_and", None),
"or_not": self._params.get("books_or_not", None),
"and_not": self._params.get("books_and_not", None),
}
self._steps = self._params.get('steps', None)
self._units = self._params.get('units', None)
self._steps = self._params.get("steps", None)
self._units = self._params.get("units", None)
# TODO add created by
# TODO image exists
self._sort_order = self._params.get('sort_order', None)
self._internal = str2bool(self._params.get('internal', None))
self._random = str2bool(self._params.get('random', False))
self._new = str2bool(self._params.get('new', False))
self._num_recent = int(self._params.get('num_recent', 0))
self._include_children = str2bool(
self._params.get('include_children', None))
self._timescooked = self._params.get('timescooked', None)
self._cookedon = self._params.get('cookedon', None)
self._createdon = self._params.get('createdon', None)
self._updatedon = self._params.get('updatedon', None)
self._viewedon = self._params.get('viewedon', None)
self._makenow = self._params.get('makenow', None)
self._sort_order = self._params.get("sort_order", None)
self._internal = str2bool(self._params.get("internal", None))
self._random = str2bool(self._params.get("random", False))
self._new = str2bool(self._params.get("new", False))
self._num_recent = int(self._params.get("num_recent", 0))
self._include_children = str2bool(self._params.get("include_children", None))
self._timescooked = self._params.get("timescooked", None)
self._cookedon = self._params.get("cookedon", None)
self._createdon = self._params.get("createdon", None)
self._updatedon = self._params.get("updatedon", None)
self._viewedon = self._params.get("viewedon", None)
self._makenow = self._params.get("makenow", None)
self._never_used_food = str2bool(self._params.get("never_used_food", False))
# this supports hidden feature to find recipes missing X ingredients
if isinstance(self._makenow, bool) and self._makenow == True:
self._makenow = 0
@@ -96,7 +91,7 @@ class RecipeSearch():
except (ValueError, TypeError):
self._makenow = None
self._search_type = self._search_prefs.search or 'plain'
self._search_type = self._search_prefs.search or "plain"
if self._string:
if self._postgres:
self._unaccent_include = self._search_prefs.unaccent.values_list('field', flat=True)
@@ -114,11 +109,7 @@ class RecipeSearch():
if self._search_type not in ['websearch', 'raw'] and self._trigram_include:
self._trigram = True
self.search_query = SearchQuery(
self._string,
search_type=self._search_type,
config=self._language,
)
self.search_query = SearchQuery(self._string, search_type=self._search_type, config=self._language, )
self.search_rank = None
self.orderby = []
self._filters = None
@@ -127,7 +118,6 @@ class RecipeSearch():
def get_queryset(self, queryset):
self._queryset = queryset
self._queryset = self._queryset.prefetch_related('keywords')
self._build_sort_order()
self._recently_viewed(num_recent=self._num_recent)
self._cooked_on_filter(cooked_date=self._cookedon)
@@ -144,6 +134,7 @@ class RecipeSearch():
self.step_filters(steps=self._steps)
self.unit_filters(units=self._units)
self._makenow_filter(missing=self._makenow)
self._never_used_food_filter()
self.string_filters(string=self._string)
return self._queryset.filter(space=self._request.space).order_by(*self.orderby)
@@ -151,22 +142,22 @@ class RecipeSearch():
for x in args:
if x in self.orderby:
return True
elif '-' + x in self.orderby:
elif "-" + x in self.orderby:
return True
return False
def _build_sort_order(self):
if self._random:
self.orderby = ['?']
self.orderby = ["?"]
else:
order = []
# TODO add userpreference for default sort order and replace '-favorite'
default_order = ['name']
default_order = ["name"]
# recent and new_recipe are always first; they float a few recipes to the top
if self._num_recent:
order += ['-recent']
order += ["-recent"]
if self._new:
order += ['-new_recipe']
order += ["-new_recipe"]
# if a sort order is provided by user - use that order
if self._sort_order:
@@ -175,20 +166,18 @@ class RecipeSearch():
else:
order += self._sort_order
if not self._postgres or not self._string:
if 'score' in order:
order.remove('score')
if '-score' in order:
order.remove('-score')
if "score" in order:
order.remove("score")
if "-score" in order:
order.remove("-score")
# if no sort order provided prioritize text search, followed by the default search
elif self._postgres and self._string and (self._trigram or self._fulltext_include):
order += ['-score', *default_order]
order += ["-score", *default_order]
# otherwise sort by the remaining order_by attributes or favorite by default
else:
order += default_order
order[:] = [Lower('name').asc() if x ==
'name' else x for x in order]
order[:] = [Lower('name').desc() if x ==
'-name' else x for x in order]
order[:] = [Lower("name").asc() if x == "name" else x for x in order]
order[:] = [Lower("name").desc() if x == "-name" else x for x in order]
self.orderby = order
def string_filters(self, string=None):
@@ -223,7 +212,7 @@ class RecipeSearch():
self._queryset = self._queryset.annotate(score=F('rank') + F('simularity'))
else:
query_filter = Q()
for f in [x + '__unaccent__iexact' if x in self._unaccent_include else x + '__iexact' for x in SearchFields.objects.all().values_list('field', flat=True)]:
for f in [x + "__unaccent__iexact" if x in self._unaccent_include else x + "__iexact" for x in SearchFields.objects.all().values_list("field", flat=True)]:
query_filter |= Q(**{"%s" % f: self._string})
self._queryset = self._queryset.filter(query_filter).distinct()
@@ -235,12 +224,11 @@ class RecipeSearch():
else:
default = timezone.now()
self._queryset = self._queryset.annotate(
lastcooked=Coalesce(Max(Case(When(cooklog__created_by=self._request.user, cooklog__space=self._request.space, then='cooklog__created_at'))), Value(default))
)
lastcooked=Coalesce(Max(Case(When(cooklog__created_by=self._request.user, cooklog__space=self._request.space, then='cooklog__created_at'))), Value(default)))
if cooked_date is None:
return
cooked_date = date(*[int(x)for x in cooked_date.split('-') if x != ''])
cooked_date = date(*[int(x) for x in cooked_date.split('-') if x != ''])
if lessthan:
self._queryset = self._queryset.filter(lastcooked__date__lte=cooked_date).exclude(lastcooked=default)
@@ -261,22 +249,21 @@ class RecipeSearch():
if updated_date is None:
return
lessthan = '-' in updated_date[:1]
updated_date = date(*[int(x)for x in updated_date.split('-') if x != ''])
updated_date = date(*[int(x) for x in updated_date.split('-') if x != ''])
if lessthan:
self._queryset = self._queryset.filter(updated_at__date__lte=updated_date)
else:
self._queryset = self._queryset.filter(updated_at__date__gte=updated_date)
def _viewed_on_filter(self, viewed_date=None):
if self._sort_includes('lastviewed') or viewed_date:
if self._sort_includes("lastviewed") or viewed_date:
longTimeAgo = timezone.now() - timedelta(days=100000)
self._queryset = self._queryset.annotate(
lastviewed=Coalesce(Max(Case(When(viewlog__created_by=self._request.user, viewlog__space=self._request.space, then='viewlog__created_at'))), Value(longTimeAgo))
)
lastviewed=Coalesce(Max(Case(When(viewlog__created_by=self._request.user, viewlog__space=self._request.space, then='viewlog__created_at'))), Value(longTimeAgo)))
if viewed_date is None:
return
lessthan = '-' in viewed_date[:1]
viewed_date = date(*[int(x)for x in viewed_date.split('-') if x != ''])
viewed_date = date(*[int(x) for x in viewed_date.split('-') if x != ''])
if lessthan:
self._queryset = self._queryset.filter(lastviewed__date__lte=viewed_date).exclude(lastviewed=longTimeAgo)
@@ -287,24 +274,17 @@ class RecipeSearch():
# TODO make new days a user-setting
if not self._new:
return
self._queryset = self._queryset.annotate(
new_recipe=Case(
When(created_at__gte=(timezone.now() - timedelta(days=new_days)), then=('pk')),
default=Value(0),
)
)
self._queryset = self._queryset.annotate(new_recipe=Case(When(created_at__gte=(timezone.now() - timedelta(days=new_days)), then=('pk')), default=Value(0), ))
def _recently_viewed(self, num_recent=None):
if not num_recent:
if self._sort_includes('lastviewed'):
self._queryset = self._queryset.annotate(lastviewed=Coalesce(
Max(Case(When(viewlog__created_by=self._request.user, viewlog__space=self._request.space, then='viewlog__pk'))), Value(0)))
if self._sort_includes("lastviewed"):
self._queryset = self._queryset.annotate(
lastviewed=Coalesce(Max(Case(When(viewlog__created_by=self._request.user, viewlog__space=self._request.space, then="viewlog__pk"))), Value(0)))
return
num_recent_recipes = (
ViewLog.objects.filter(created_by=self._request.user, space=self._request.space)
.values('recipe').annotate(recent=Max('created_at')).order_by('-recent')[:num_recent]
)
num_recent_recipes = (ViewLog.objects.filter(created_by=self._request.user,
space=self._request.space).values('recipe').annotate(recent=Max('created_at')).order_by('-recent')[:num_recent])
self._queryset = self._queryset.annotate(recent=Coalesce(Max(Case(When(pk__in=num_recent_recipes.values('recipe'), then='viewlog__pk'))), Value(0)))
def _favorite_recipes(self, times_cooked=None):
@@ -314,17 +294,13 @@ class RecipeSearch():
default = 1000
else:
default = 0
favorite_recipes = (
CookLog.objects.filter(created_by=self._request.user, space=self._request.space, recipe=OuterRef('pk'))
.values('recipe')
.annotate(count=Count('pk', distinct=True))
.values('count')
)
favorite_recipes = (CookLog.objects.filter(created_by=self._request.user, space=self._request.space,
recipe=OuterRef('pk')).values('recipe').annotate(count=Count('pk', distinct=True)).values('count'))
self._queryset = self._queryset.annotate(favorite=Coalesce(Subquery(favorite_recipes), default))
if times_cooked is None:
return
if times_cooked == '0':
if times_cooked == "0":
self._queryset = self._queryset.filter(favorite=0)
elif less_than:
self._queryset = self._queryset.filter(favorite__lte=int(times_cooked.replace('-', ''))).exclude(favorite=0)
@@ -341,23 +317,23 @@ class RecipeSearch():
kwargs[kw_filter] = [kwargs[kw_filter]]
keywords = Keyword.objects.filter(pk__in=kwargs[kw_filter])
if 'or' in kw_filter:
if "or" in kw_filter:
if self._include_children:
f_or = Q(keywords__in=Keyword.include_descendants(keywords))
else:
f_or = Q(keywords__in=keywords)
if 'not' in kw_filter:
if "not" in kw_filter:
self._queryset = self._queryset.exclude(f_or)
else:
self._queryset = self._queryset.filter(f_or)
elif 'and' in kw_filter:
elif "and" in kw_filter:
recipes = Recipe.objects.all()
for kw in keywords:
if self._include_children:
f_and = Q(keywords__in=kw.get_descendants_and_self())
else:
f_and = Q(keywords=kw)
if 'not' in kw_filter:
if "not" in kw_filter:
recipes = recipes.filter(f_and)
else:
self._queryset = self._queryset.filter(f_and)
@@ -374,24 +350,24 @@ class RecipeSearch():
kwargs[fd_filter] = [kwargs[fd_filter]]
foods = Food.objects.filter(pk__in=kwargs[fd_filter])
if 'or' in fd_filter:
if "or" in fd_filter:
if self._include_children:
f_or = Q(steps__ingredients__food__in=Food.include_descendants(foods))
else:
f_or = Q(steps__ingredients__food__in=foods)
if 'not' in fd_filter:
if "not" in fd_filter:
self._queryset = self._queryset.exclude(f_or)
else:
self._queryset = self._queryset.filter(f_or)
elif 'and' in fd_filter:
elif "and" in fd_filter:
recipes = Recipe.objects.all()
for food in foods:
if self._include_children:
f_and = Q(steps__ingredients__food__in=food.get_descendants_and_self())
else:
f_and = Q(steps__ingredients__food=food)
if 'not' in fd_filter:
if "not" in fd_filter:
recipes = recipes.filter(f_and)
else:
self._queryset = self._queryset.filter(f_and)
@@ -416,11 +392,11 @@ class RecipeSearch():
else:
default = 0
# TODO make ratings a settings user-only vs all-users
self._queryset = self._queryset.annotate(rating=Round(Avg(Case(When(cooklog__created_by=self._request.user, then='cooklog__rating'), default=default))))
self._queryset = self._queryset.annotate(rating=Round(Avg(Case(When(cooklog__created_by=self._request.user, then="cooklog__rating"), default=default))))
if rating is None:
return
if rating == '0':
if rating == "0":
self._queryset = self._queryset.filter(rating=0)
elif lessthan:
self._queryset = self._queryset.filter(rating__lte=int(rating[1:])).exclude(rating=0)
@@ -441,13 +417,13 @@ class RecipeSearch():
if not isinstance(kwargs[bk_filter], list):
kwargs[bk_filter] = [kwargs[bk_filter]]
if 'or' in bk_filter:
if "or" in bk_filter:
f = Q(recipebookentry__book__id__in=kwargs[bk_filter])
if 'not' in bk_filter:
if "not" in bk_filter:
self._queryset = self._queryset.exclude(f)
else:
self._queryset = self._queryset.filter(f)
elif 'and' in bk_filter:
elif "and" in bk_filter:
recipes = Recipe.objects.all()
for book in kwargs[bk_filter]:
if 'not' in bk_filter:
@@ -520,62 +496,66 @@ class RecipeSearch():
trigram += TrigramSimilarity(f, self._string)
else:
trigram = TrigramSimilarity(f, self._string)
self._fuzzy_match = (
Recipe.objects.annotate(trigram=trigram)
.distinct()
.annotate(simularity=Max('trigram'))
.values('id', 'simularity')
.filter(simularity__gt=self._search_prefs.trigram_threshold)
)
self._fuzzy_match = (Recipe.objects.annotate(trigram=trigram).distinct().annotate(simularity=Max('trigram')).values('id', 'simularity').filter(
simularity__gt=self._search_prefs.trigram_threshold))
self._filters += [Q(pk__in=self._fuzzy_match.values('pk'))]
def _makenow_filter(self, missing=None):
if missing is None or (isinstance(missing, bool) and missing == False):
return
shopping_users = [*self._request.user.get_shopping_share(), self._request.user]
onhand_filter = Q(steps__ingredients__food__onhand_users__in=shopping_users) # food onhand
onhand_filter = (
Q(steps__ingredients__food__onhand_users__in=shopping_users) # food onhand
# ignore substitutions when also using the never_used_food filter
if not self._never_used_food:
# or substitute food onhand
| Q(steps__ingredients__food__substitute__onhand_users__in=shopping_users)
| Q(steps__ingredients__food__in=self.__children_substitute_filter(shopping_users))
| Q(steps__ingredients__food__in=self.__sibling_substitute_filter(shopping_users))
)
makenow_recipes = Recipe.objects.annotate(
count_food=Count('steps__ingredients__food__pk', filter=Q(steps__ingredients__food__isnull=False), distinct=True),
count_onhand=Count('steps__ingredients__food__pk', filter=onhand_filter, distinct=True),
count_ignore_shopping=Count(
'steps__ingredients__food__pk', filter=Q(steps__ingredients__food__ignore_shopping=True, steps__ingredients__food__recipe__isnull=True), distinct=True
),
has_child_sub=Case(When(steps__ingredients__food__in=self.__children_substitute_filter(shopping_users), then=Value(1)), default=Value(0)),
has_sibling_sub=Case(When(steps__ingredients__food__in=self.__sibling_substitute_filter(shopping_users), then=Value(1)), default=Value(0))
).annotate(missingfood=F('count_food') - F('count_onhand') - F('count_ignore_shopping')).filter(missingfood__lte=missing)
onhand_filter |= (Q(steps__ingredients__food__substitute__onhand_users__in=shopping_users)
| Q(steps__ingredients__food__in=self.__children_substitute_filter(shopping_users))
| Q(steps__ingredients__food__in=self.__sibling_substitute_filter(shopping_users)))
makenow_recipes = (Recipe.objects.annotate(count_food=Count("steps__ingredients__food__pk", filter=Q(steps__ingredients__food__isnull=False), distinct=True),
count_onhand=Count("steps__ingredients__food__pk", filter=onhand_filter, distinct=True),
count_ignore_shopping=Count("steps__ingredients__food__pk",
filter=Q(steps__ingredients__food__ignore_shopping=True,
steps__ingredients__food__recipe__isnull=True),
distinct=True),
has_child_sub=Case(When(steps__ingredients__food__in=self.__children_substitute_filter(shopping_users), then=Value(1)),
default=Value(0)),
has_sibling_sub=Case(When(steps__ingredients__food__in=self.__sibling_substitute_filter(shopping_users), then=Value(1)),
default=Value(0)),
).annotate(missingfood=F("count_food") - F("count_onhand") - F("count_ignore_shopping")).filter(missingfood=missing))
makenow_recipes = Recipe.objects.annotate(count_food=Count('steps__ingredients__food__pk', filter=Q(steps__ingredients__food__isnull=False), distinct=True),
count_onhand=Count('steps__ingredients__food__pk', filter=onhand_filter, distinct=True),
count_ignore_shopping=Count('steps__ingredients__food__pk',
filter=Q(steps__ingredients__food__ignore_shopping=True,
steps__ingredients__food__recipe__isnull=True),
distinct=True),
has_child_sub=Case(When(steps__ingredients__food__in=self.__children_substitute_filter(shopping_users), then=Value(1)),
default=Value(0)),
has_sibling_sub=Case(When(steps__ingredients__food__in=self.__sibling_substitute_filter(shopping_users), then=Value(1)),
default=Value(0))).annotate(missingfood=F('count_food') - F('count_onhand')
- F('count_ignore_shopping')).filter(missingfood__lte=missing)
self._queryset = self._queryset.distinct().filter(id__in=makenow_recipes.values('id'))
def _never_used_food_filter(self):
# filters recipes to include foods that have never been used
if not self._never_used_food:
return
self._queryset = self._queryset.filter(steps__ingredients__food__in=Food.objects.filter(~Q(ingredient__step__recipe__cooklog__isnull=False)).distinct())
@staticmethod
def __children_substitute_filter(shopping_users=None):
children_onhand_subquery = Food.objects.filter(path__startswith=OuterRef('path'), depth__gt=OuterRef('depth'), onhand_users__in=shopping_users)
return (
Food.objects.exclude( # list of foods that are onhand and children of: foods that are not onhand and are set to use children as substitutes
Q(onhand_users__in=shopping_users) | Q(ignore_shopping=True, recipe__isnull=True) | Q(substitute__onhand_users__in=shopping_users)
)
.exclude(depth=1, numchild=0)
.filter(substitute_children=True)
.annotate(child_onhand_count=Exists(children_onhand_subquery))
.filter(child_onhand_count=True)
)
return (Food.objects.exclude( # list of foods that are onhand and children of: foods that are not onhand and are set to use children as substitutes
Q(onhand_users__in=shopping_users) | Q(ignore_shopping=True, recipe__isnull=True)
| Q(substitute__onhand_users__in=shopping_users)).exclude(depth=1, numchild=0).filter(substitute_children=True).annotate(
child_onhand_count=Exists(children_onhand_subquery)).filter(child_onhand_count=True))
@staticmethod
def __sibling_substitute_filter(shopping_users=None):
sibling_onhand_subquery = Food.objects.filter(
path__startswith=Substr(OuterRef('path'), 1, Food.steplen * (OuterRef('depth') - 1)), depth=OuterRef('depth'), onhand_users__in=shopping_users
)
return (
Food.objects.exclude( # list of foods that are onhand and siblings of: foods that are not onhand and are set to use siblings as substitutes
Q(onhand_users__in=shopping_users) | Q(ignore_shopping=True, recipe__isnull=True) | Q(substitute__onhand_users__in=shopping_users)
)
.exclude(depth=1, numchild=0)
.filter(substitute_siblings=True)
.annotate(sibling_onhand=Exists(sibling_onhand_subquery))
.filter(sibling_onhand=True)
)
sibling_onhand_subquery = Food.objects.filter(path__startswith=Substr(OuterRef('path'), 1, Food.steplen * (OuterRef('depth') - 1)),
depth=OuterRef('depth'),
onhand_users__in=shopping_users)
return (Food.objects.exclude( # list of foods that are onhand and siblings of: foods that are not onhand and are set to use siblings as substitutes
Q(onhand_users__in=shopping_users) | Q(ignore_shopping=True, recipe__isnull=True)
| Q(substitute__onhand_users__in=shopping_users)).exclude(depth=1, numchild=0).filter(substitute_siblings=True).annotate(
sibling_onhand=Exists(sibling_onhand_subquery)).filter(sibling_onhand=True))

View File

@@ -113,7 +113,7 @@ class RecipeShoppingEditor():
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)
self._shopping_list_recipe = ShoppingListRecipe.objects.create(recipe=self.recipe, mealplan=self.mealplan, servings=self.servings, space=self.space, created_by=self.created_by)
if ingredients:
self._add_ingredients(ingredients=ingredients)

View File

@@ -94,7 +94,8 @@ class Paprika(Integration):
url = recipe_json.get("image_url", None)
if validate_import_url(url):
response = requests.get(url)
self.import_recipe_image(recipe, BytesIO(response.content))
if response.status_code == 200 and len(response.content) > 0:
self.import_recipe_image(recipe, BytesIO(response.content))
except Exception:
pass

File diff suppressed because it is too large Load Diff

View File

@@ -14,8 +14,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-01 15:04+0200\n"
"PO-Revision-Date: 2024-03-27 19:02+0000\n"
"Last-Translator: Axel Breiterman <axelbreiterman@gmail.com>\n"
"PO-Revision-Date: 2025-01-29 13:44+0000\n"
"Last-Translator: Ángel <1024mb@users.noreply.translate.tandoor.dev>\n"
"Language-Team: Spanish <http://translate.tandoor.dev/projects/tandoor/"
"recipes-backend/es/>\n"
"Language: es\n"
@@ -23,7 +23,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.4.2\n"
"X-Generator: Weblate 5.8.4\n"
#: .\cookbook\forms.py:45
msgid ""
@@ -66,31 +66,30 @@ msgid ""
"To prevent duplicates recipes with the same name as existing ones are "
"ignored. Check this box to import everything."
msgstr ""
"Para evitar duplicados, las recetas con el mismo nombre serán ignoradas. "
"Marca esta opción para importar todas las recetas."
"Para evitar duplicados, las recetas con el mismo nombre que las ya "
"existentes serán ignoradas. Marca esta casilla para importar todo."
#: .\cookbook\forms.py:143
msgid "Add your comment: "
msgstr "Añada su comentario: "
msgstr "Añade tu comentario: "
#: .\cookbook\forms.py:151
msgid "Leave empty for dropbox and enter app password for nextcloud."
msgstr ""
"Déjelo vacío para Dropbox e ingrese la contraseña de la aplicación para "
"nextcloud."
"Déjalo vacío para Dropbox o ingresa la contraseña de la aplicación para "
"Nextcloud."
#: .\cookbook\forms.py:154
msgid "Leave empty for nextcloud and enter api token for dropbox."
msgstr ""
"Déjelo en blanco para nextcloud e ingrese el token de api para dropbox."
msgstr "Déjalo vacío para Nextcloud o ingresa el token API para Dropbox."
#: .\cookbook\forms.py:160
msgid ""
"Leave empty for dropbox and enter only base url for nextcloud (<code>/remote."
"php/webdav/</code> is added automatically)"
msgstr ""
"Dejar vac para Dropbox e introducir sólo la URL base para Nextcloud "
"(<code>/remote.php/webdav/</code> se añade automáticamente)"
"Déjalo vacío para Dropbox o ingresa solo la URL base para Nextcloud "
"(<code>/remote.php/webdav/</code> es añadido automáticamente)"
#: .\cookbook\forms.py:188
msgid ""
@@ -98,15 +97,16 @@ msgid ""
"profile\">Long Lived Access Token</a> for your HomeAssistant instance"
msgstr ""
"<a href=\"https://www.home-assistant.io/docs/authentication/#your-account-"
"profile\">Token de larga duración</a>para tu instancia de HomeAssistant"
"profile\">Token de acceso de larga duración</a> para tu instancia de "
"HomeAssistant"
#: .\cookbook\forms.py:193
msgid "Something like http://homeassistant.local:8123/api"
msgstr "Algo similar a http://homeassistant.local:8123/api"
msgstr "Algo como http://homeassistant.local:8123/api"
#: .\cookbook\forms.py:205
msgid "http://homeassistant.local:8123/api for example"
msgstr "por ejemplo http://homeassistant.local:8123/api for example"
msgstr "Por ejemplo http://homeassistant.local:8123/api"
#: .\cookbook\forms.py:222 .\cookbook\views\edit.py:117
msgid "Storage"

File diff suppressed because it is too large Load Diff

View File

@@ -14,16 +14,16 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-01 15:04+0200\n"
"PO-Revision-Date: 2024-05-28 00:57+0000\n"
"Last-Translator: tarek EL SOL <tarek.elsol@gmail.com>\n"
"Language-Team: French <http://translate.tandoor.dev/projects/tandoor/recipes-"
"backend/fr/>\n"
"PO-Revision-Date: 2025-02-16 14:58+0000\n"
"Last-Translator: Elvis Gosselin <elvis.gosselin@tutanota.com>\n"
"Language-Team: French <http://translate.tandoor.dev/projects/tandoor/"
"recipes-backend/fr/>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 5.4.2\n"
"X-Generator: Weblate 5.8.4\n"
#: .\cookbook\forms.py:45
msgid ""
@@ -506,18 +506,16 @@ msgid "Nutrition"
msgstr "Informations nutritionnelles"
#: .\cookbook\models.py:918
#, fuzzy
#| msgid "Merge"
msgid "Allergen"
msgstr "Fusionner"
msgstr "Allergène"
#: .\cookbook\models.py:919
msgid "Price"
msgstr ""
msgstr "Prix"
#: .\cookbook\models.py:919
msgid "Goal"
msgstr ""
msgstr "Objectif"
#: .\cookbook\models.py:1408 .\cookbook\templates\search_info.html:28
msgid "Simple"
@@ -1039,7 +1037,7 @@ msgstr "Exporter"
#: .\cookbook\templates\base.html:287
msgid "Properties"
msgstr ""
msgstr "Propriétés"
#: .\cookbook\templates\base.html:301 .\cookbook\views\lists.py:255
#, fuzzy
@@ -2112,6 +2110,11 @@ msgid ""
"script to generate version information (done automatically in docker).\n"
" "
msgstr ""
"\n"
" Vous devez exécuter <code>version.py</code> dans votre script de "
"mise à jour pour générer les informations de version (automatique avec "
"docker).\n"
" "
#: .\cookbook\templates\system.html:46
msgid "Media Serving"
@@ -2199,7 +2202,7 @@ msgstr ""
#: .\cookbook\templates\system.html:86
msgid "Allowed Hosts"
msgstr ""
msgstr "Hôtes autorisés"
#: .\cookbook\templates\system.html:90
msgid ""
@@ -2209,6 +2212,11 @@ msgid ""
"this.\n"
" "
msgstr ""
"\n"
" Votre configuration autorise tous les hôtes, cela ok dans "
"certaines installations mais évité. Veuillez consulter les documentations à "
"ce sujet.\n"
" "
#: .\cookbook\templates\system.html:97
msgid "Database"
@@ -2235,18 +2243,26 @@ msgid ""
"issue.\n"
" "
msgstr ""
"\n"
" Les migrations de données ne devraient jamais échouer!\n"
" Les échecs de migrations vont causer des problèmes de "
"fonctionnement majeurs dans lapplication..\n"
" Si une migration échoue, vérifiez que vous êtes sur la dernière "
"version et si c'est le cas veuillez créer un ticket sur GitHub avec le "
"contenu du journal de migration.\n"
" "
#: .\cookbook\templates\system.html:182
msgid "False"
msgstr ""
msgstr "Faux"
#: .\cookbook\templates\system.html:182
msgid "True"
msgstr ""
msgstr "Vrai"
#: .\cookbook\templates\system.html:207
msgid "Hide"
msgstr ""
msgstr "Cacher"
#: .\cookbook\templates\system.html:210
#, fuzzy
@@ -2328,11 +2344,13 @@ msgstr "{obj.name} a été ajouté(e) à la liste de courses."
#: .\cookbook\views\api.py:742
msgid "Filter meal plans from date (inclusive) in the format of YYYY-MM-DD."
msgstr ""
msgstr "Filtrer les repas depuis la date (incluse) avec le format YYYY-MM-DD."
#: .\cookbook\views\api.py:743
msgid "Filter meal plans to date (inclusive) in the format of YYYY-MM-DD."
msgstr ""
"Filtrer les plannings de repas depuis la date (incluse) avec le format YYYY-"
"MM-DD."
#: .\cookbook\views\api.py:744
#, fuzzy

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-01 15:04+0200\n"
"PO-Revision-Date: 2024-09-08 12:58+0000\n"
"Last-Translator: Tomer Alcavi <alcavi1991@gmail.com>\n"
"PO-Revision-Date: 2025-03-07 15:08+0000\n"
"Last-Translator: yonatan ben-menachem <2bmyonatan@gmail.com>\n"
"Language-Team: Hebrew <http://translate.tandoor.dev/projects/tandoor/"
"recipes-backend/he/>\n"
"Language: he\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && "
"n % 10 == 0) ? 2 : 3));\n"
"X-Generator: Weblate 5.6.2\n"
"X-Generator: Weblate 5.8.4\n"
#: .\cookbook\forms.py:45
msgid ""
@@ -59,6 +59,8 @@ msgid ""
"To prevent duplicates recipes with the same name as existing ones are "
"ignored. Check this box to import everything."
msgstr ""
"בשביל למנוע כפילויות, מתוכנים בעלי שם זהה למתכון קיים לא יעובדו. סמן כאן כדי "
"לייבא בכל זאת."
#: .\cookbook\forms.py:143
msgid "Add your comment: "

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-01 15:04+0200\n"
"PO-Revision-Date: 2024-11-19 06:58+0000\n"
"Last-Translator: Daniel Legin <daniel.legin@gmail.com>\n"
"PO-Revision-Date: 2025-02-03 16:58+0000\n"
"Last-Translator: Domagoj Levanić <levanicdomagoj@gmail.com>\n"
"Language-Team: Croatian <http://translate.tandoor.dev/projects/tandoor/"
"recipes-backend/hr/>\n"
"Language: hr\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 5.6.2\n"
"X-Generator: Weblate 5.8.4\n"
#: .\cookbook\forms.py:45
msgid ""
@@ -757,11 +757,15 @@ msgid ""
"for user %(user_display)s\n"
" ."
msgstr ""
"Molimo potvrdite da je\n"
" <a href=\"mailto:%(email)s\">%(email)s</a> e-mail adresa "
"korisnika %(user_display)s\n"
" ."
#: .\cookbook\templates\account\email_confirm.html:22
#: .\cookbook\templates\generic\delete_template.html:72
msgid "Confirm"
msgstr ""
msgstr "Potvrdi"
#: .\cookbook\templates\account\email_confirm.html:29
#, python-format
@@ -770,11 +774,14 @@ msgid ""
" <a href=\"%(email_url)s\">issue a new e-mail confirmation "
"request</a>."
msgstr ""
"Poveznica za potvrdu e-maila je istekla ili nevažeća. Molimo\n"
" <a href=\"%(email_url)s\">zatražite slanje nove poveznice za "
"potvrdu e-maila.</a>."
#: .\cookbook\templates\account\login.html:8 .\cookbook\templates\base.html:388
#: .\cookbook\templates\openid\login.html:8
msgid "Login"
msgstr ""
msgstr "Prijava"
#: .\cookbook\templates\account\login.html:15
#: .\cookbook\templates\account\login.html:31
@@ -786,7 +793,7 @@ msgstr ""
#: .\cookbook\templates\openid\login.html:26
#: .\cookbook\templates\socialaccount\authentication_error.html:15
msgid "Sign In"
msgstr ""
msgstr "Prijava"
#: .\cookbook\templates\account\login.html:34
#: .\cookbook\templates\account\password_reset.html:41
@@ -794,34 +801,34 @@ msgstr ""
#: .\cookbook\templates\socialaccount\signup.html:8
#: .\cookbook\templates\socialaccount\signup.html:57
msgid "Sign Up"
msgstr ""
msgstr "Registracija"
#: .\cookbook\templates\account\login.html:38
msgid "Lost your password?"
msgstr ""
msgstr "Zaboravljena lozinka?"
#: .\cookbook\templates\account\login.html:39
#: .\cookbook\templates\account\password_reset.html:29
msgid "Reset My Password"
msgstr ""
msgstr "Resetiraj moju lozinku"
#: .\cookbook\templates\account\login.html:50
msgid "Social Login"
msgstr ""
msgstr "Prijava putem društvenih mreža"
#: .\cookbook\templates\account\login.html:51
msgid "You can use any of the following providers to sign in."
msgstr ""
msgstr "Možete koristiti bilo kojeg od sljedećih pružatelja usluga za prijavu."
#: .\cookbook\templates\account\logout.html:5
#: .\cookbook\templates\account\logout.html:9
#: .\cookbook\templates\account\logout.html:18
msgid "Sign Out"
msgstr ""
msgstr "Odjava"
#: .\cookbook\templates\account\logout.html:11
msgid "Are you sure you want to sign out?"
msgstr ""
msgstr "Jeste li sigurni da se želite odjaviti?"
#: .\cookbook\templates\account\password_change.html:6
#: .\cookbook\templates\account\password_change.html:16
@@ -831,43 +838,47 @@ msgstr ""
#: .\cookbook\templates\account\password_reset_from_key_done.html:7
#: .\cookbook\templates\account\password_reset_from_key_done.html:13
msgid "Change Password"
msgstr ""
msgstr "Promijeni lozinku"
#: .\cookbook\templates\account\password_change.html:12
#: .\cookbook\templates\account\password_set.html:12
msgid "Password"
msgstr ""
msgstr "Lozinka"
#: .\cookbook\templates\account\password_change.html:22
msgid "Forgot Password?"
msgstr ""
msgstr "Zaboravljena lozinka?"
#: .\cookbook\templates\account\password_reset.html:7
#: .\cookbook\templates\account\password_reset.html:13
#: .\cookbook\templates\account\password_reset_done.html:7
#: .\cookbook\templates\account\password_reset_done.html:18
msgid "Password Reset"
msgstr ""
msgstr "Ponovno postavljanje lozinke"
#: .\cookbook\templates\account\password_reset.html:24
msgid ""
"Forgotten your password? Enter your e-mail address below, and we'll send you "
"an e-mail allowing you to reset it."
msgstr ""
"Zaboravili ste lozinku? Unesite svoju e-mail adresu u nastavku i poslat ćemo "
"vam e-mail s poveznicom za postavljanje nove lozinke."
#: .\cookbook\templates\account\password_reset.html:32
msgid "Password reset is disabled on this instance."
msgstr ""
msgstr "Reset lozinke nije omogućen na ovoj instanci."
#: .\cookbook\templates\account\password_reset_done.html:25
msgid ""
"We have sent you an e-mail. Please contact us if you do not receive it "
"within a few minutes."
msgstr ""
"Poslali smo vam e-mail. Molimo vas da nas kontaktirate ako ga ne primite u "
"roku od nekoliko minuta."
#: .\cookbook\templates\account\password_reset_from_key.html:13
msgid "Bad Token"
msgstr ""
msgstr "Nevažeći token"
#: .\cookbook\templates\account\password_reset_from_key.html:25
#, python-format
@@ -877,225 +888,231 @@ msgid ""
" Please request a <a href=\"%(passwd_reset_url)s\">new "
"password reset</a>."
msgstr ""
"Poveznica za reset lozinke je nevažeća, vjerojatno jer je već iskorištena.\n"
" Molimo zatražite <a href=\"%(passwd_reset_url)s\">novu "
"poveznicu za reset lozinke</a>."
#: .\cookbook\templates\account\password_reset_from_key.html:33
msgid "change password"
msgstr ""
msgstr "promijeni lozinku"
#: .\cookbook\templates\account\password_reset_from_key.html:36
#: .\cookbook\templates\account\password_reset_from_key_done.html:19
msgid "Your password is now changed."
msgstr ""
msgstr "Tvoja lozinka je promijenjena."
#: .\cookbook\templates\account\password_set.html:6
#: .\cookbook\templates\account\password_set.html:16
#: .\cookbook\templates\account\password_set.html:21
msgid "Set Password"
msgstr ""
msgstr "Postavi lozinku"
#: .\cookbook\templates\account\signup.html:6
msgid "Register"
msgstr ""
msgstr "Registracija"
#: .\cookbook\templates\account\signup.html:12
msgid "Create an Account"
msgstr ""
msgstr "Kreiraj račun"
#: .\cookbook\templates\account\signup.html:42
#: .\cookbook\templates\socialaccount\signup.html:33
msgid "I accept the follwoing"
msgstr ""
msgstr "Prihvaćam sljedeće"
#: .\cookbook\templates\account\signup.html:45
#: .\cookbook\templates\socialaccount\signup.html:36
msgid "Terms and Conditions"
msgstr ""
msgstr "Uvjeti i odredbe"
#: .\cookbook\templates\account\signup.html:48
#: .\cookbook\templates\socialaccount\signup.html:39
msgid "and"
msgstr ""
msgstr "i"
#: .\cookbook\templates\account\signup.html:52
#: .\cookbook\templates\socialaccount\signup.html:43
msgid "Privacy Policy"
msgstr ""
msgstr "Politika privatnosti"
#: .\cookbook\templates\account\signup.html:65
msgid "Create User"
msgstr ""
msgstr "Kreiraj korisnika"
#: .\cookbook\templates\account\signup.html:69
msgid "Already have an account?"
msgstr ""
msgstr "Već imate račun?"
#: .\cookbook\templates\account\signup_closed.html:5
#: .\cookbook\templates\account\signup_closed.html:11
msgid "Sign Up Closed"
msgstr ""
msgstr "Registracija je zatvorena"
#: .\cookbook\templates\account\signup_closed.html:13
msgid "We are sorry, but the sign up is currently closed."
msgstr ""
msgstr "Žao nam je, ali registracija je trenutno zatvorena."
#: .\cookbook\templates\api_info.html:5 .\cookbook\templates\base.html:378
#: .\cookbook\templates\rest_framework\api.html:11
msgid "API Documentation"
msgstr ""
msgstr "API Dokumentacija"
#: .\cookbook\templates\base.html:110 .\cookbook\templates\index.html:87
msgid "Recipes"
msgstr ""
msgstr "Recepti"
#: .\cookbook\templates\base.html:161 .\cookbook\views\lists.py:120
msgid "Foods"
msgstr ""
msgstr "Hrana"
#: .\cookbook\templates\base.html:173 .\cookbook\views\lists.py:137
msgid "Units"
msgstr ""
msgstr "Jedinice"
#: .\cookbook\templates\base.html:187
msgid "Supermarket"
msgstr ""
msgstr "Supermarket"
#: .\cookbook\templates\base.html:199
msgid "Supermarket Category"
msgstr ""
msgstr "Kategorija Supermarketa"
#: .\cookbook\templates\base.html:211 .\cookbook\views\lists.py:186
msgid "Automations"
msgstr ""
msgstr "Automatizacije"
#: .\cookbook\templates\base.html:225 .\cookbook\views\lists.py:222
msgid "Files"
msgstr ""
msgstr "Datoteke"
#: .\cookbook\templates\base.html:237
msgid "Batch Edit"
msgstr ""
msgstr "Masovno Uređivanje"
#: .\cookbook\templates\base.html:249 .\cookbook\templates\history.html:6
#: .\cookbook\templates\history.html:14
msgid "History"
msgstr ""
msgstr "Povijest"
#: .\cookbook\templates\base.html:263
#: .\cookbook\templates\ingredient_editor.html:7
#: .\cookbook\templates\ingredient_editor.html:13
msgid "Ingredient Editor"
msgstr ""
msgstr "Uređivač Sastojaka"
#: .\cookbook\templates\base.html:275
#: .\cookbook\templates\export_response.html:7
#: .\cookbook\templates\test2.html:14 .\cookbook\templates\test2.html:20
msgid "Export"
msgstr ""
msgstr "Izvoz"
#: .\cookbook\templates\base.html:287
msgid "Properties"
msgstr ""
msgstr "Svojstva"
#: .\cookbook\templates\base.html:301 .\cookbook\views\lists.py:255
msgid "Unit Conversions"
msgstr ""
msgstr "Konverzija Jedinica"
#: .\cookbook\templates\base.html:318 .\cookbook\templates\index.html:47
msgid "Import Recipe"
msgstr ""
msgstr "Uvezi Recept"
#: .\cookbook\templates\base.html:320
msgid "Create"
msgstr ""
msgstr "Kreiraj"
#: .\cookbook\templates\base.html:333
#: .\cookbook\templates\generic\list_template.html:14
msgid "External Recipes"
msgstr ""
msgstr "Vanjski Recepti"
#: .\cookbook\templates\base.html:336 .\cookbook\templates\space_manage.html:15
msgid "Space Settings"
msgstr ""
msgstr "Postavke Prostora"
#: .\cookbook\templates\base.html:340
msgid "External Connectors"
msgstr ""
msgstr "Vanjski Konektori"
#: .\cookbook\templates\base.html:345 .\cookbook\templates\system.html:13
msgid "System"
msgstr ""
msgstr "Sustav"
#: .\cookbook\templates\base.html:347
msgid "Admin"
msgstr ""
msgstr "Administrator"
#: .\cookbook\templates\base.html:351
#: .\cookbook\templates\space_overview.html:25
msgid "Your Spaces"
msgstr ""
msgstr "Tvoji Prostori"
#: .\cookbook\templates\base.html:362
#: .\cookbook\templates\space_overview.html:6
msgid "Overview"
msgstr ""
msgstr "Pregled"
#: .\cookbook\templates\base.html:372
msgid "Markdown Guide"
msgstr ""
msgstr "Vodič za Markdown"
#: .\cookbook\templates\base.html:374
msgid "GitHub"
msgstr ""
msgstr "GitHub"
#: .\cookbook\templates\base.html:376
msgid "Translate Tandoor"
msgstr ""
msgstr "Prevedi Tandoor"
#: .\cookbook\templates\base.html:380
msgid "API Browser"
msgstr ""
msgstr "API Preglednik"
#: .\cookbook\templates\base.html:383
msgid "Log out"
msgstr ""
msgstr "Odjava"
#: .\cookbook\templates\base.html:406
msgid "You are using the free version of Tandor"
msgstr ""
msgstr "Koristite besplatnu verziju Tandor aplikacije"
#: .\cookbook\templates\base.html:407
msgid "Upgrade Now"
msgstr ""
msgstr "Nadogradi"
#: .\cookbook\templates\batch\edit.html:6
msgid "Batch edit Category"
msgstr ""
msgstr "Masovno uređivanje Kategorija"
#: .\cookbook\templates\batch\edit.html:15
msgid "Batch edit Recipes"
msgstr ""
msgstr "Masovno uređivanje Recepata"
#: .\cookbook\templates\batch\edit.html:20
msgid "Add the specified keywords to all recipes containing a word"
msgstr ""
"Dodajte navedene ključne riječi svim receptima koji sadrže određenu riječ"
#: .\cookbook\templates\batch\monitor.html:6 .\cookbook\views\edit.py:75
msgid "Sync"
msgstr ""
msgstr "Sinkroniziraj"
#: .\cookbook\templates\batch\monitor.html:10
msgid "Manage watched Folders"
msgstr ""
msgstr "Upravljaj praćenim Mapama"
#: .\cookbook\templates\batch\monitor.html:14
msgid ""
"On this Page you can manage all storage folder locations that should be "
"monitored and synced."
msgstr ""
"Na ovoj stranici možete upravljati svim lokacijama spremišnih mapa koje "
"trebaju biti praćene i sinkronizirane."
#: .\cookbook\templates\batch\monitor.html:16
msgid "The path must be in the following format"
msgstr ""
msgstr "Putanja mora biti u sljedećem formatu"
#: .\cookbook\templates\batch\monitor.html:20
#: .\cookbook\templates\forms\edit_import_recipe.html:14
@@ -1103,128 +1120,130 @@ msgstr ""
#: .\cookbook\templates\generic\new_template.html:23
#: .\cookbook\templates\settings.html:57
msgid "Save"
msgstr ""
msgstr "Spremi"
#: .\cookbook\templates\batch\monitor.html:21
msgid "Manage External Storage"
msgstr ""
msgstr "Upravljaj vanjskim Spremištem"
#: .\cookbook\templates\batch\monitor.html:28
msgid "Sync Now!"
msgstr ""
msgstr "Sinkroniziraj Sada!"
#: .\cookbook\templates\batch\monitor.html:29
msgid "Show Recipes"
msgstr ""
msgstr "Prikaži Recepte"
#: .\cookbook\templates\batch\monitor.html:30
msgid "Show Log"
msgstr ""
msgstr "Prikaži Log"
#: .\cookbook\templates\batch\waiting.html:4
#: .\cookbook\templates\batch\waiting.html:10
msgid "Importing Recipes"
msgstr ""
msgstr "Uvoz Recepata"
#: .\cookbook\templates\batch\waiting.html:28
msgid ""
"This can take a few minutes, depending on the number of recipes in sync, "
"please wait."
msgstr ""
"Ovo može potrajati nekoliko minuta, ovisno o broju recepata koji se "
"sinkroniziraju, molimo pričekajte."
#: .\cookbook\templates\books.html:7
msgid "Recipe Books"
msgstr ""
msgstr "Knjiga Recepata"
#: .\cookbook\templates\export.html:7 .\cookbook\templates\test2.html:6
msgid "Export Recipes"
msgstr ""
msgstr "Izvoz Recepata"
#: .\cookbook\templates\forms\edit_import_recipe.html:5
#: .\cookbook\templates\forms\edit_import_recipe.html:9
msgid "Import new Recipe"
msgstr ""
msgstr "Uvezi novi Recept"
#: .\cookbook\templates\forms\edit_internal_recipe.html:7
msgid "Edit Recipe"
msgstr ""
msgstr "Uredi Recept"
#: .\cookbook\templates\generic\delete_template.html:21
#, python-format
msgid "Are you sure you want to delete the %(title)s: <b>%(object)s</b> "
msgstr ""
msgstr "Jeste li sigurni da želite obrisati %(title)s: <b>%(object)s</b> "
#: .\cookbook\templates\generic\delete_template.html:22
msgid "This cannot be undone!"
msgstr ""
msgstr "Ovo se ne može poništiti!"
#: .\cookbook\templates\generic\delete_template.html:27
msgid "Protected"
msgstr ""
msgstr "Zaštićeno"
#: .\cookbook\templates\generic\delete_template.html:42
msgid "Cascade"
msgstr ""
msgstr "Kaskada"
#: .\cookbook\templates\generic\delete_template.html:73
msgid "Cancel"
msgstr ""
msgstr "Otkaži"
#: .\cookbook\templates\generic\edit_template.html:6
#: .\cookbook\templates\generic\edit_template.html:14
msgid "Edit"
msgstr ""
msgstr "Uredi"
#: .\cookbook\templates\generic\edit_template.html:32
msgid "View"
msgstr ""
msgstr "Pogledaj"
#: .\cookbook\templates\generic\edit_template.html:36
msgid "Delete original file"
msgstr ""
msgstr "Izbriši izvornu datoteku"
#: .\cookbook\templates\generic\list_template.html:6
#: .\cookbook\templates\generic\list_template.html:22
msgid "List"
msgstr ""
msgstr "Lista"
#: .\cookbook\templates\generic\list_template.html:36
msgid "Filter"
msgstr ""
msgstr "Filter"
#: .\cookbook\templates\generic\list_template.html:41
msgid "Import all"
msgstr ""
msgstr "Uvezi sve"
#: .\cookbook\templates\generic\new_template.html:6
#: .\cookbook\templates\generic\new_template.html:14
msgid "New"
msgstr ""
msgstr "Novo"
#: .\cookbook\templates\generic\table_template.html:76
msgid "previous"
msgstr ""
msgstr "prethodno"
#: .\cookbook\templates\generic\table_template.html:98
msgid "next"
msgstr ""
msgstr "sljedeće"
#: .\cookbook\templates\history.html:20
msgid "View Log"
msgstr ""
msgstr "Pogledaj Log"
#: .\cookbook\templates\history.html:24
msgid "Cook Log"
msgstr ""
msgstr "Log Kuhanja"
#: .\cookbook\templates\import_response.html:7 .\cookbook\views\delete.py:90
#: .\cookbook\views\edit.py:174
msgid "Import"
msgstr ""
msgstr "Uvezi"
#: .\cookbook\templates\include\storage_backend_warning.html:4
msgid "Security Warning"
msgstr ""
msgstr "Sigurnosno Upozorenje"
#: .\cookbook\templates\include\storage_backend_warning.html:5
msgid ""
@@ -1238,35 +1257,44 @@ msgid ""
"can be used.\n"
" "
msgstr ""
"\n"
" <b>Lozinka i token</b> polja su spremljena kao <b>obični tekst</b> "
"unutar baze podataka.\n"
" To je neophodno s obzirom na to da su potrebni za izvršavanje API "
"zahtjeva, ali isto tako povećava \n"
" rizik od krađe. <br/>\n"
" Kako bi limitirali potencijalnu štetu u tom slučaju, predlažemo "
"korištenje tokena ili računa s limitiranim pristupom.\n"
" "
#: .\cookbook\templates\index.html:29
msgid "Search recipe ..."
msgstr ""
msgstr "Pretraži recept..."
#: .\cookbook\templates\index.html:44
msgid "New Recipe"
msgstr ""
msgstr "Novi Recept"
#: .\cookbook\templates\index.html:53
msgid "Advanced Search"
msgstr ""
msgstr "Napredno Pretraživanje"
#: .\cookbook\templates\index.html:57
msgid "Reset Search"
msgstr ""
msgstr "Resetiraj Pretraživanje"
#: .\cookbook\templates\index.html:85
msgid "Last viewed"
msgstr ""
msgstr "Zadnji put pregledano"
#: .\cookbook\templates\index.html:94
msgid "Log in to view recipes"
msgstr ""
msgstr "Prijavi se kako bi vidio recepte"
#: .\cookbook\templates\markdown_info.html:5
#: .\cookbook\templates\markdown_info.html:13
msgid "Markdown Info"
msgstr ""
msgstr "Informacije o Markdown-u"
#: .\cookbook\templates\markdown_info.html:14
msgid ""
@@ -1283,34 +1311,46 @@ msgid ""
"below.\n"
" "
msgstr ""
"\n"
" Markdown je lagani jezik za označavanje koji se može koristiti za "
"jednostavno formatiranje običnog teksta.\n"
"Ova stranica koristi <a href=\"https://python-markdown.github.io/\" target="
"\"_blank\">Python Markdown</a> biblioteku za\n"
"pretvaranje vašeg teksta u lijepi HTML. Potpunu dokumentaciju za Markdown "
"možete pronaći\n"
"<a href=\"https://daringfireball.net/projects/markdown/syntax\" target="
"\"_blank\">ovdje</a>.\n"
"Nepotpuna, ali vjerojatno dovoljna dokumentacija može se pronaći u nastavku."
"\n"
" "
#: .\cookbook\templates\markdown_info.html:25
msgid "Headers"
msgstr ""
msgstr "Naslovi"
#: .\cookbook\templates\markdown_info.html:54
msgid "Formatting"
msgstr ""
msgstr "Formatiranje"
#: .\cookbook\templates\markdown_info.html:56
#: .\cookbook\templates\markdown_info.html:72
msgid "Line breaks are inserted by adding two spaces after the end of a line"
msgstr ""
msgstr "Prekid linije se može umetnuti dodavanjem dva razmaka nakon kraja retka"
#: .\cookbook\templates\markdown_info.html:57
#: .\cookbook\templates\markdown_info.html:73
msgid "or by leaving a blank line in between."
msgstr ""
msgstr "ili ostavljanjem prazne linije između."
#: .\cookbook\templates\markdown_info.html:59
#: .\cookbook\templates\markdown_info.html:74
msgid "This text is bold"
msgstr ""
msgstr "Ovaj tekst je boldan"
#: .\cookbook\templates\markdown_info.html:60
#: .\cookbook\templates\markdown_info.html:75
msgid "This text is italic"
msgstr ""
msgstr "Ovaj tekst je italic"
#: .\cookbook\templates\markdown_info.html:61
#: .\cookbook\templates\markdown_info.html:77

View File

@@ -12,7 +12,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-01 15:04+0200\n"
"PO-Revision-Date: 2024-12-09 00:58+0000\n"
"PO-Revision-Date: 2025-05-18 10:58+0000\n"
"Last-Translator: Vincenzo Reale <smart2128vr@gmail.com>\n"
"Language-Team: Italian <http://translate.tandoor.dev/projects/tandoor/"
"recipes-backend/it/>\n"
@@ -1439,7 +1439,7 @@ msgid ""
"editor like <a href=\"https://www.tablesgenerator.com/markdown_tables\" rel="
"\"noreferrer noopener\" target=\"_blank\">this one.</a>"
msgstr ""
"Le tabelle in markdown sono difficili da creare a mano. Si raccomanda "
"Le tabelle in markdown sono difficili da creare a mano. Si consiglia "
"l'utilizzo di un editor di tabelle come <a href=\"https://www.tablesgenerator"
".com/markdown_tables\" rel=\"noreferrer noopener\" target=\"_blank\""
">questo.</a>"
@@ -2098,7 +2098,7 @@ msgid ""
" your installation.\n"
" "
msgstr ""
"<b>Non è raccomandato</b> erogare i file multimediali con gunicorn/python!\n"
"<b>Non è consigliato</b> erogare i file multimediali con gunicorn/python!\n"
" Segui i passi descritti\n"
" <a href=\"https://github.com/vabene1111/recipes/releases/tag/0.8."
"1\">qui</a> per aggiornare\n"

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-01 15:04+0200\n"
"PO-Revision-Date: 2023-08-19 21:36+0000\n"
"Last-Translator: NeoID <neoid@animenord.com>\n"
"PO-Revision-Date: 2025-01-26 05:58+0000\n"
"Last-Translator: Ole Martin Ruud <nett@barskern.no>\n"
"Language-Team: Norwegian Bokmål <http://translate.tandoor.dev/projects/"
"tandoor/recipes-backend/nb_NO/>\n"
"Language: nb_NO\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.15\n"
"X-Generator: Weblate 5.8.4\n"
#: .\cookbook\forms.py:45
msgid ""
@@ -326,10 +326,8 @@ msgid "Imported %s recipes."
msgstr "Importerte %s oppskrifter."
#: .\cookbook\integration\openeats.py:28
#, fuzzy
#| msgid "Recipes"
msgid "Recipe source:"
msgstr "Oppskrifter"
msgstr "Oppskriftskilde:"
#: .\cookbook\integration\paprika.py:49
msgid "Notes"
@@ -555,7 +553,7 @@ msgstr "Oppskrift"
#: .\cookbook\models.py:1504
msgid "Food"
msgstr ""
msgstr "Mat"
#: .\cookbook\models.py:1505 .\cookbook\templates\base.html:149
msgid "Keyword"
@@ -846,10 +844,8 @@ msgid ""
msgstr ""
#: .\cookbook\templates\account\password_reset.html:32
#, fuzzy
#| msgid "Password reset is not implemented for the time being!"
msgid "Password reset is disabled on this instance."
msgstr "Det er foreløpig ikke implementert funksjon for å nullstille passord!"
msgstr "Nullstilling av passord er skrudd av for denne instansen."
#: .\cookbook\templates\account\password_reset_done.html:25
msgid ""
@@ -912,7 +908,7 @@ msgstr ""
#: .\cookbook\templates\account\signup.html:48
#: .\cookbook\templates\socialaccount\signup.html:39
msgid "and"
msgstr ""
msgstr "og"
#: .\cookbook\templates\account\signup.html:52
#: .\cookbook\templates\socialaccount\signup.html:43
@@ -946,8 +942,6 @@ msgid "Recipes"
msgstr "Oppskrifter"
#: .\cookbook\templates\base.html:161 .\cookbook\views\lists.py:120
#, fuzzy
#| msgid "New Food"
msgid "Foods"
msgstr "Ny matvare"
@@ -989,10 +983,8 @@ msgstr "Historikk"
#: .\cookbook\templates\base.html:263
#: .\cookbook\templates\ingredient_editor.html:7
#: .\cookbook\templates\ingredient_editor.html:13
#, fuzzy
#| msgid "Ingredients"
msgid "Ingredient Editor"
msgstr "Ingredienser"
msgstr "Ingrediensredigerer"
#: .\cookbook\templates\base.html:275
#: .\cookbook\templates\export_response.html:7
@@ -1002,7 +994,7 @@ msgstr "Eksporter"
#: .\cookbook\templates\base.html:287
msgid "Properties"
msgstr ""
msgstr "Egenskaper"
#: .\cookbook\templates\base.html:301 .\cookbook\views\lists.py:255
msgid "Unit Conversions"
@@ -1179,7 +1171,7 @@ msgstr ""
#: .\cookbook\templates\generic\delete_template.html:27
msgid "Protected"
msgstr ""
msgstr "Beskyttet"
#: .\cookbook\templates\generic\delete_template.html:42
msgid "Cascade"
@@ -1938,7 +1930,7 @@ msgstr ""
#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:88
#: .\cookbook\templates\system.html:102 .\cookbook\templates\system.html:113
msgid "Warning"
msgstr ""
msgstr "Advarsel"
#: .\cookbook\templates\system.html:47 .\cookbook\templates\system.html:61
#: .\cookbook\templates\system.html:75 .\cookbook\templates\system.html:88

View File

@@ -13,8 +13,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-01 15:04+0200\n"
"PO-Revision-Date: 2024-09-03 19:58+0000\n"
"Last-Translator: \"S. v.d. Gevel\" <stefan18_gw@hotmail.com>\n"
"PO-Revision-Date: 2025-02-16 14:58+0000\n"
"Last-Translator: Cots Partier <cots.pastier.34@icloud.com>\n"
"Language-Team: Dutch <http://translate.tandoor.dev/projects/tandoor/"
"recipes-backend/nl/>\n"
"Language: nl\n"
@@ -22,7 +22,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.6.2\n"
"X-Generator: Weblate 5.8.4\n"
#: .\cookbook\forms.py:45
msgid ""
@@ -286,7 +286,7 @@ msgstr "omgekeerde rotatie"
#: .\cookbook\helper\recipe_url_import.py:311
msgid "careful rotation"
msgstr "voorzichtige rotatie"
msgstr "rotire atentă"
#: .\cookbook\helper\recipe_url_import.py:312
msgid "knead"

View File

@@ -11,18 +11,18 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-01 15:04+0200\n"
"PO-Revision-Date: 2024-03-19 23:47+0000\n"
"Last-Translator: Tomasz Klimczak <klemensble@gmail.com>\n"
"Language-Team: Polish <http://translate.tandoor.dev/projects/tandoor/recipes-"
"backend/pl/>\n"
"PO-Revision-Date: 2025-01-26 05:58+0000\n"
"Last-Translator: Dominik Ruczajewski <slick.moose.dev@gmail.com>\n"
"Language-Team: Polish <http://translate.tandoor.dev/projects/tandoor/"
"recipes-backend/pl/>\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n"
"%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n"
"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
"X-Generator: Weblate 5.4.2\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && ("
"n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && "
"n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
"X-Generator: Weblate 5.8.4\n"
#: .\cookbook\forms.py:45
msgid ""
@@ -65,6 +65,8 @@ msgid ""
"To prevent duplicates recipes with the same name as existing ones are "
"ignored. Check this box to import everything."
msgstr ""
"Aby zapobiec duplikatom, przepisy o tej samej nazwie co istniejące zostaną "
"pominięte. Zaznacz to pole, aby zaimportować wszystko."
#: .\cookbook\forms.py:143
msgid "Add your comment: "
@@ -91,14 +93,16 @@ msgid ""
"<a href=\"https://www.home-assistant.io/docs/authentication/#your-account-"
"profile\">Long Lived Access Token</a> for your HomeAssistant instance"
msgstr ""
"<a href=\"https://www.home-assistant.io/docs/authentication/#your-account-"
"profile\">Long Lived Access Token</a> dla Twojej instancji Home Assistant"
#: .\cookbook\forms.py:193
msgid "Something like http://homeassistant.local:8123/api"
msgstr ""
msgstr "Coś w stylu http://homeassistant.local:8123/api"
#: .\cookbook\forms.py:205
msgid "http://homeassistant.local:8123/api for example"
msgstr ""
msgstr "na przykład http://homeassistant.local:8123/api"
#: .\cookbook\forms.py:222 .\cookbook\views\edit.py:117
msgid "Storage"
@@ -106,11 +110,11 @@ msgstr "Magazyn"
#: .\cookbook\forms.py:222
msgid "Active"
msgstr ""
msgstr "Aktywuj"
#: .\cookbook\forms.py:226
msgid "Search String"
msgstr "Wyszukaj ciąg"
msgstr "Wyszukaj tekst"
#: .\cookbook\forms.py:246
msgid "File ID"
@@ -118,101 +122,117 @@ msgstr "Numer identyfikacyjny pliku"
#: .\cookbook\forms.py:262
msgid "Maximum number of users for this space reached."
msgstr ""
msgstr "Osiągnięto maksymalną liczbę użytkowników dla tej przestrzeni."
#: .\cookbook\forms.py:268
msgid "Email address already taken!"
msgstr ""
msgstr "Wybrany adres email jest już zajęty!"
#: .\cookbook\forms.py:275
msgid ""
"An email address is not required but if present the invite link will be sent "
"to the user."
msgstr ""
"Adres email nie jest wymagany, jednak gdy zostanie podany link z "
"zaproszeniem zostanie wysłany do użytkownika."
#: .\cookbook\forms.py:287
msgid "Name already taken."
msgstr ""
msgstr "Podana nazwa jest już zajęta."
#: .\cookbook\forms.py:298
msgid "Accept Terms and Privacy"
msgstr ""
msgstr "Zaakceptuj Regulamin oraz Politykę Prywatności"
#: .\cookbook\forms.py:332
msgid ""
"Determines how fuzzy a search is if it uses trigram similarity matching (e."
"g. low values mean more typos are ignored)."
msgstr ""
"Określa, jak niedokładne może być wyszukiwanie, jeśli wykorzystuje "
"dopasowanie podobieństwa trigramowego (np. niskie wartości oznaczają, że "
"więcej literówek jest ignorowanych)."
#: .\cookbook\forms.py:340
msgid ""
"Select type method of search. Click <a href=\"/docs/search/\">here</a> for "
"full description of choices."
msgstr ""
"Wybierz metodę wyszukiwania. Kliknij <a href=\"/docs/search/\">tutaj</a>, "
"aby zapoznać się z pełnym opisem dostępnych opcji."
#: .\cookbook\forms.py:341
msgid ""
"Use fuzzy matching on units, keywords and ingredients when editing and "
"importing recipes."
msgstr ""
"Użyj niedokładnego dopasowywania dla jednostek, słów kluczowych i składników "
"podczas edytowania i importowania przepisów."
#: .\cookbook\forms.py:342
msgid ""
"Fields to search ignoring accents. Selecting this option can improve or "
"degrade search quality depending on language"
msgstr ""
"Pola do przeszukiwania z pominięciem akcentów. Wybranie tej opcji może "
"poprawić lub pogorszyć jakość wyszukiwania w zależności od języka"
#: .\cookbook\forms.py:343
msgid ""
"Fields to search for partial matches. (e.g. searching for 'Pie' will return "
"'pie' and 'piece' and 'soapie')"
msgstr ""
"Pola do przeszukiwania częściowych dopasowań (np. wyszukiwanie 'Ciasto' "
"zwróci 'ciasto', 'ciasteczko' i 'ciastolina')"
#: .\cookbook\forms.py:344
msgid ""
"Fields to search for beginning of word matches. (e.g. searching for 'sa' "
"will return 'salad' and 'sandwich')"
msgstr ""
"Pola do przeszukiwania dopasowań na początku wyrazu (np. wyszukiwanie 'sa' "
"zwróci 'sałatka' i 'sandwich')"
#: .\cookbook\forms.py:345
msgid ""
"Fields to 'fuzzy' search. (e.g. searching for 'recpie' will find 'recipe'.) "
"Note: this option will conflict with 'web' and 'raw' methods of search."
msgstr ""
"Pola do wyszukiwania z użyciem 'niedokładnego' dopasowywania (np. "
"wyszukiwanie 'przepisz' znajdzie 'przepis'). Uwaga: ta opcja będzie "
"kolidować z metodami wyszukiwania 'web' i 'raw'."
#: .\cookbook\forms.py:346
msgid ""
"Fields to full text search. Note: 'web', 'phrase', and 'raw' search methods "
"only function with fulltext fields."
msgstr ""
"Pola do wyszukiwania pełno tekstowego. Uwaga: metody wyszukiwania 'web', "
"'phrase' i 'raw' działają wyłącznie z polami pełno tekstowymi."
#: .\cookbook\forms.py:350
#, fuzzy
#| msgid "Search"
msgid "Search Method"
msgstr "Szukaj"
msgstr "Metoda wyszukiwania"
#: .\cookbook\forms.py:350
msgid "Fuzzy Lookups"
msgstr ""
msgstr "Niedokładne dopasowanie"
#: .\cookbook\forms.py:350
msgid "Ignore Accent"
msgstr ""
msgstr "Ignoruj akcenty"
#: .\cookbook\forms.py:350
msgid "Partial Match"
msgstr ""
msgstr "Częściowe dopasowanie"
#: .\cookbook\forms.py:350
msgid "Starts With"
msgstr ""
msgstr "Zaczyna się od"
#: .\cookbook\forms.py:351
#, fuzzy
#| msgid "Search"
msgid "Fuzzy Search"
msgstr "Szukaj"
msgstr "Niedokładne wyszukiwanie"
#: .\cookbook\forms.py:351
#, fuzzy
@@ -225,6 +245,8 @@ msgid ""
"In order to prevent spam, the requested email was not send. Please wait a "
"few minutes and try again."
msgstr ""
"Aby zapobiec spamowi, żądany e-mail nie został wysłany. Proszę poczekać "
"kilka minut i spróbować ponownie."
#: .\cookbook\helper\permission_helper.py:164
#: .\cookbook\helper\permission_helper.py:187 .\cookbook\views\views.py:117
@@ -255,57 +277,57 @@ msgstr ""
#: .\cookbook\helper\permission_helper.py:402
msgid "You have reached the maximum number of recipes for your space."
msgstr ""
msgstr "Osiągnąłeś maksymalną liczbę przepisów dla swojej przestrzeni."
#: .\cookbook\helper\permission_helper.py:414
msgid "You have more users than allowed in your space."
msgstr ""
msgstr "Masz więcej użytkowników, niż jest dozwolone w Twojej przestrzeni."
#: .\cookbook\helper\recipe_url_import.py:310
msgid "reverse rotation"
msgstr ""
msgstr "rotacja wsteczna"
#: .\cookbook\helper\recipe_url_import.py:311
msgid "careful rotation"
msgstr ""
msgstr "delikatna rotacja"
#: .\cookbook\helper\recipe_url_import.py:312
msgid "knead"
msgstr ""
msgstr "zagnieść"
#: .\cookbook\helper\recipe_url_import.py:313
msgid "thicken"
msgstr ""
msgstr "zagęścić"
#: .\cookbook\helper\recipe_url_import.py:314
msgid "warm up"
msgstr ""
msgstr "podgrzać"
#: .\cookbook\helper\recipe_url_import.py:315
msgid "ferment"
msgstr ""
msgstr "doprowadzić do wrzenia"
#: .\cookbook\helper\recipe_url_import.py:316
msgid "sous-vide"
msgstr ""
msgstr "gotować w próżni"
#: .\cookbook\helper\shopping_helper.py:150
msgid "You must supply a servings size"
msgstr ""
msgstr "Musisz podać wielkość porcji"
#: .\cookbook\helper\template_helper.py:95
#: .\cookbook\helper\template_helper.py:97
msgid "Could not parse template code."
msgstr ""
msgstr "Nie można przeanalizować kodu szablonu."
#: .\cookbook\integration\copymethat.py:44
#: .\cookbook\integration\melarecipes.py:37
msgid "Favorite"
msgstr ""
msgstr "Ulubione"
#: .\cookbook\integration\copymethat.py:50
msgid "I made this"
msgstr ""
msgstr "Stworzyłem to"
#: .\cookbook\integration\integration.py:209
msgid ""
@@ -320,10 +342,12 @@ msgid ""
"An unexpected error occurred during the import. Please make sure you have "
"uploaded a valid file."
msgstr ""
"Wystąpił nieoczekiwany błąd podczas importu. Upewnij się, że przesłałeś "
"prawidłowy plik."
#: .\cookbook\integration\integration.py:217
msgid "The following recipes were ignored because they already existed:"
msgstr ""
msgstr "Następujące przepisy zostały pominięte, ponieważ już istnieją:"
#: .\cookbook\integration\integration.py:221
#, python-format
@@ -341,14 +365,12 @@ msgid "Notes"
msgstr "Notatka"
#: .\cookbook\integration\paprika.py:52
#, fuzzy
#| msgid "Information"
msgid "Nutritional Information"
msgstr "Informacja"
msgstr "Informacje o wartości odżywczej"
#: .\cookbook\integration\paprika.py:56
msgid "Source"
msgstr ""
msgstr "Źródło"
#: .\cookbook\integration\recettetek.py:54
#: .\cookbook\integration\recipekeeper.py:70
@@ -377,23 +399,25 @@ msgstr "Sekcja"
#: .\cookbook\management\commands\fix_duplicate_properties.py:15
msgid "Fixes foods with "
msgstr ""
msgstr "Poprawia potrawy z "
#: .\cookbook\management\commands\rebuildindex.py:14
msgid "Rebuilds full text search index on Recipe"
msgstr ""
msgstr "Odbudowuje indeks wyszukiwania pełno tekstowego dla przepisu"
#: .\cookbook\management\commands\rebuildindex.py:18
msgid "Only Postgresql databases use full text search, no index to rebuild"
msgstr ""
"Pełno tekstowe wyszukiwanie jest używane tylko w bazach danych PostgreSQL, "
"brak indeksu do odbudowy"
#: .\cookbook\management\commands\rebuildindex.py:29
msgid "Recipe index rebuild complete."
msgstr ""
msgstr "Odbudowa indeksu przepisu zakończona."
#: .\cookbook\management\commands\rebuildindex.py:31
msgid "Recipe index rebuild failed."
msgstr ""
msgstr "Odbudowa indeksu przepisu nie powiodła się."
#: .\cookbook\migrations\0047_auto_20200602_1133.py:14
msgid "Breakfast"
@@ -412,8 +436,6 @@ msgid "Other"
msgstr "Inne"
#: .\cookbook\migrations\0190_auto_20230525_1506.py:17
#, fuzzy
#| msgid "Fats"
msgid "Fat"
msgstr "Tłuszcze"
@@ -421,7 +443,7 @@ msgstr "Tłuszcze"
#: .\cookbook\migrations\0190_auto_20230525_1506.py:18
#: .\cookbook\migrations\0190_auto_20230525_1506.py:19
msgid "g"
msgstr ""
msgstr "g"
#: .\cookbook\migrations\0190_auto_20230525_1506.py:18
msgid "Carbohydrates"
@@ -437,13 +459,15 @@ msgstr "Kalorie"
#: .\cookbook\migrations\0190_auto_20230525_1506.py:20
msgid "kcal"
msgstr ""
msgstr "kcal"
#: .\cookbook\models.py:325
msgid ""
"Maximum file storage for space in MB. 0 for unlimited, -1 to disable file "
"upload."
msgstr ""
"Maksymalna pojemność na pliki dla przestrzeni w MB. 0 oznacza brak limitu, -"
"1 wyłącza możliwość przesyłania plików."
#: .\cookbook\models.py:454 .\cookbook\templates\search.html:7
#: .\cookbook\templates\settings.html:18

View File

@@ -12,8 +12,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-01 15:04+0200\n"
"PO-Revision-Date: 2023-10-07 18:02+0000\n"
"Last-Translator: Guilherme Roda <glealroda@gmail.com>\n"
"PO-Revision-Date: 2025-02-21 10:58+0000\n"
"Last-Translator: Filipe Neves <homemdasneves@gmail.com>\n"
"Language-Team: Portuguese <http://translate.tandoor.dev/projects/tandoor/"
"recipes-backend/pt/>\n"
"Language: pt\n"
@@ -21,7 +21,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Generator: Weblate 4.15\n"
"X-Generator: Weblate 5.8.4\n"
#: .\cookbook\forms.py:45
msgid ""
@@ -94,14 +94,16 @@ msgid ""
"<a href=\"https://www.home-assistant.io/docs/authentication/#your-account-"
"profile\">Long Lived Access Token</a> for your HomeAssistant instance"
msgstr ""
"<a href=\"https://www.home-assistant.io/docs/authentication/#your-account-"
"profile\">Token de longa duração</a>para a sua instância HomeAssistant"
#: .\cookbook\forms.py:193
msgid "Something like http://homeassistant.local:8123/api"
msgstr ""
msgstr "Algo como http://homeassistant.local:8123/api"
#: .\cookbook\forms.py:205
msgid "http://homeassistant.local:8123/api for example"
msgstr ""
msgstr "http://homeassistant.local:8123/api por exemplo"
#: .\cookbook\forms.py:222 .\cookbook\views\edit.py:117
msgid "Storage"
@@ -181,18 +183,25 @@ msgid ""
"Fields to search for partial matches. (e.g. searching for 'Pie' will return "
"'pie' and 'piece' and 'soapie')"
msgstr ""
"Campos a pesquisar por correspondência. (Ex: pesquisar por 'mor' retorna "
"'morango' e 'amora')"
#: .\cookbook\forms.py:344
msgid ""
"Fields to search for beginning of word matches. (e.g. searching for 'sa' "
"will return 'salad' and 'sandwich')"
msgstr ""
"Campos a pesquisar para correspondências no início da palavra. (por exemplo, "
"pesquisar por \"sa\" retornará \"salada\" e \"sanduíche\")"
#: .\cookbook\forms.py:345
msgid ""
"Fields to 'fuzzy' search. (e.g. searching for 'recpie' will find 'recipe'.) "
"Note: this option will conflict with 'web' and 'raw' methods of search."
msgstr ""
"Campos para pesquisa aproximada. (por exemplo, pesquisar por \"recita\" "
"encontrará \"receita\"). Nota: esta opção entra em conflito com os métodos "
"de pesquisa \"web\" e \"raw\"."
#: .\cookbook\forms.py:346
msgid ""
@@ -206,19 +215,19 @@ msgstr "Método de Pesquisa"
#: .\cookbook\forms.py:350
msgid "Fuzzy Lookups"
msgstr ""
msgstr "Pesquisas Aproximadas"
#: .\cookbook\forms.py:350
msgid "Ignore Accent"
msgstr ""
msgstr "Ignorar pronúncia"
#: .\cookbook\forms.py:350
msgid "Partial Match"
msgstr ""
msgstr "Correspondência parcial"
#: .\cookbook\forms.py:350
msgid "Starts With"
msgstr ""
msgstr "Começa com"
#: .\cookbook\forms.py:351
msgid "Fuzzy Search"
@@ -233,6 +242,8 @@ msgid ""
"In order to prevent spam, the requested email was not send. Please wait a "
"few minutes and try again."
msgstr ""
"Para evitar spam, o email solicitado não foi enviado. Por favor, aguarde "
"alguns minutos e tente novamente."
#: .\cookbook\helper\permission_helper.py:164
#: .\cookbook\helper\permission_helper.py:187 .\cookbook\views\views.py:117
@@ -257,11 +268,11 @@ msgstr "Sem permissões para aceder a esta página!"
#: .\cookbook\helper\permission_helper.py:237
#: .\cookbook\helper\permission_helper.py:252
msgid "You cannot interact with this object as it is not owned by you!"
msgstr ""
msgstr "Não pode interagir com este objeto, pois não é seu!"
#: .\cookbook\helper\permission_helper.py:402
msgid "You have reached the maximum number of recipes for your space."
msgstr ""
msgstr "Atingiu o número máximo de receitas para o seu espaço."
#: .\cookbook\helper\permission_helper.py:414
msgid "You have more users than allowed in your space."

File diff suppressed because it is too large Load Diff

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-01 15:04+0200\n"
"PO-Revision-Date: 2023-04-27 08:55+0000\n"
"Last-Translator: noxonad <noxonad@proton.me>\n"
"PO-Revision-Date: 2025-02-16 14:58+0000\n"
"Last-Translator: Cots Partier <cots.pastier.34@icloud.com>\n"
"Language-Team: Romanian <http://translate.tandoor.dev/projects/tandoor/"
"recipes-backend/ro/>\n"
"Language: ro\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
"20)) ? 1 : 2;\n"
"X-Generator: Weblate 4.15\n"
"X-Generator: Weblate 5.8.4\n"
#: .\cookbook\forms.py:45
msgid ""
@@ -91,14 +91,16 @@ msgid ""
"<a href=\"https://www.home-assistant.io/docs/authentication/#your-account-"
"profile\">Long Lived Access Token</a> for your HomeAssistant instance"
msgstr ""
"<a href=\"https://www.home-assistant.io/docs/authentication/#your-account-"
"profile\">Token the acces</a> pentru instanța ta de HomeAssistant"
#: .\cookbook\forms.py:193
msgid "Something like http://homeassistant.local:8123/api"
msgstr ""
msgstr "Asemănător cu http://homeassistant.local:8123/api"
#: .\cookbook\forms.py:205
msgid "http://homeassistant.local:8123/api for example"
msgstr ""
msgstr "http://homeassistant.local:8123/api de exemplu"
#: .\cookbook\forms.py:222 .\cookbook\views\edit.py:117
msgid "Storage"
@@ -150,10 +152,6 @@ msgstr ""
"multe greșeli de scriere sunt ignorate)."
#: .\cookbook\forms.py:340
#, fuzzy
#| msgid ""
#| "Select type method of search. Click <a href=\"/docs/search/\">here</a> "
#| "for full desciption of choices."
msgid ""
"Select type method of search. Click <a href=\"/docs/search/\">here</a> for "
"full description of choices."
@@ -227,8 +225,6 @@ msgid "Partial Match"
msgstr "Potrivire parțială"
#: .\cookbook\forms.py:350
#, fuzzy
#| msgid "Starts Wtih"
msgid "Starts With"
msgstr "Începe cu"
@@ -284,38 +280,36 @@ msgid "You have more users than allowed in your space."
msgstr "Aveți mai mulți utilizatori decât este permis în spațiul dvs."
#: .\cookbook\helper\recipe_url_import.py:310
#, fuzzy
#| msgid "Use fractions"
msgid "reverse rotation"
msgstr "Utilizare fracții"
msgstr "rotație inversă"
#: .\cookbook\helper\recipe_url_import.py:311
msgid "careful rotation"
msgstr ""
msgstr "rotire atentă"
#: .\cookbook\helper\recipe_url_import.py:312
msgid "knead"
msgstr ""
msgstr "frământă"
#: .\cookbook\helper\recipe_url_import.py:313
msgid "thicken"
msgstr ""
msgstr "se îngroașă"
#: .\cookbook\helper\recipe_url_import.py:314
msgid "warm up"
msgstr ""
msgstr "încălzire"
#: .\cookbook\helper\recipe_url_import.py:315
msgid "ferment"
msgstr ""
msgstr "ferment"
#: .\cookbook\helper\recipe_url_import.py:316
msgid "sous-vide"
msgstr ""
msgstr "sous-vide"
#: .\cookbook\helper\shopping_helper.py:150
msgid "You must supply a servings size"
msgstr ""
msgstr "Trebuie să specificați dimensiunea porției"
#: .\cookbook\helper\template_helper.py:95
#: .\cookbook\helper\template_helper.py:97
@@ -325,11 +319,11 @@ msgstr "Nu s-a putut analiza codul șablonului."
#: .\cookbook\integration\copymethat.py:44
#: .\cookbook\integration\melarecipes.py:37
msgid "Favorite"
msgstr ""
msgstr "Favorit"
#: .\cookbook\integration\copymethat.py:50
msgid "I made this"
msgstr ""
msgstr "Am făcut acest lucru"
#: .\cookbook\integration\integration.py:209
msgid ""
@@ -357,10 +351,8 @@ msgid "Imported %s recipes."
msgstr "%s rețete importate."
#: .\cookbook\integration\openeats.py:28
#, fuzzy
#| msgid "Recipe Home"
msgid "Recipe source:"
msgstr "Rețetă acasă"
msgstr "Sursa rețetei:"
#: .\cookbook\integration\paprika.py:49
msgid "Notes"
@@ -376,10 +368,8 @@ msgstr "Sursă"
#: .\cookbook\integration\recettetek.py:54
#: .\cookbook\integration\recipekeeper.py:70
#, fuzzy
#| msgid "Import Log"
msgid "Imported from"
msgstr "Jurnal de import"
msgstr "Importat din"
#: .\cookbook\integration\saffron.py:23
msgid "Servings"
@@ -403,19 +393,17 @@ msgstr "Secțiune"
#: .\cookbook\management\commands\fix_duplicate_properties.py:15
msgid "Fixes foods with "
msgstr ""
msgstr "Corectează alimentele cu "
#: .\cookbook\management\commands\rebuildindex.py:14
msgid "Rebuilds full text search index on Recipe"
msgstr "Reconstruiește indexul de căutare text complet pe rețetă"
#: .\cookbook\management\commands\rebuildindex.py:18
#, fuzzy
#| msgid "Only Postgress databases use full text search, no index to rebuild"
msgid "Only Postgresql databases use full text search, no index to rebuild"
msgstr ""
"Numai bazele de date Postgress utilizează căutare text complet, nici un "
"index de reconstruit"
"Numai bazele de date Postgress utilizează ccăutarea textului integral, nici "
"un index de reconstruit"
#: .\cookbook\management\commands\rebuildindex.py:29
msgid "Recipe index rebuild complete."
@@ -443,29 +431,29 @@ msgstr "Altele"
#: .\cookbook\migrations\0190_auto_20230525_1506.py:17
msgid "Fat"
msgstr ""
msgstr "Grăsime"
#: .\cookbook\migrations\0190_auto_20230525_1506.py:17
#: .\cookbook\migrations\0190_auto_20230525_1506.py:18
#: .\cookbook\migrations\0190_auto_20230525_1506.py:19
msgid "g"
msgstr ""
msgstr "g"
#: .\cookbook\migrations\0190_auto_20230525_1506.py:18
msgid "Carbohydrates"
msgstr ""
msgstr "Carbohidrați"
#: .\cookbook\migrations\0190_auto_20230525_1506.py:19
msgid "Proteins"
msgstr ""
msgstr "Proteine"
#: .\cookbook\migrations\0190_auto_20230525_1506.py:20
msgid "Calories"
msgstr ""
msgstr "Calorii"
#: .\cookbook\migrations\0190_auto_20230525_1506.py:20
msgid "kcal"
msgstr ""
msgstr "kcal"
#: .\cookbook\models.py:325
msgid ""
@@ -500,24 +488,20 @@ msgid " is part of a recipe step and cannot be deleted"
msgstr " face parte dintr-un pas de rețetă și nu poate fi șters"
#: .\cookbook\models.py:918
#, fuzzy
#| msgid "Automations"
msgid "Nutrition"
msgstr "Automatizări"
msgstr "Nutriție"
#: .\cookbook\models.py:918
#, fuzzy
#| msgid "Merge"
msgid "Allergen"
msgstr "Unire"
msgstr "Alergen"
#: .\cookbook\models.py:919
msgid "Price"
msgstr ""
msgstr "Preț"
#: .\cookbook\models.py:919
msgid "Goal"
msgstr ""
msgstr "Obiectiv"
#: .\cookbook\models.py:1408 .\cookbook\templates\search_info.html:28
msgid "Simple"
@@ -548,42 +532,32 @@ msgid "Keyword Alias"
msgstr "Pseudonim cuvânt cheie"
#: .\cookbook\models.py:1470
#, fuzzy
#| msgid "Description"
msgid "Description Replace"
msgstr "Descriere"
msgstr "Înlocuire Descriere"
#: .\cookbook\models.py:1471
#, fuzzy
#| msgid "Instructions"
msgid "Instruction Replace"
msgstr "Instrucțiuni"
msgstr "Înlocuire Instrucțiuni"
#: .\cookbook\models.py:1472
#, fuzzy
#| msgid "Select Unit"
msgid "Never Unit"
msgstr "Selectare unitate"
msgstr "Unitate nulă"
#: .\cookbook\models.py:1473
msgid "Transpose Words"
msgstr ""
msgstr "Schimbă Ordinea Cuvintelor"
#: .\cookbook\models.py:1474
#, fuzzy
#| msgid "Food Alias"
msgid "Food Replace"
msgstr "Pseudonim produse alimentare"
msgstr "Aliment echivalent"
#: .\cookbook\models.py:1475
#, fuzzy
#| msgid "Unit Alias"
msgid "Unit Replace"
msgstr "Pseudonim unități"
msgstr "Unitate echivalentă"
#: .\cookbook\models.py:1476
msgid "Name Replace"
msgstr ""
msgstr "Înlocuire Nume"
#: .\cookbook\models.py:1503 .\cookbook\views\delete.py:40
#: .\cookbook\views\edit.py:210 .\cookbook\views\new.py:39
@@ -591,10 +565,8 @@ msgid "Recipe"
msgstr "Rețetă"
#: .\cookbook\models.py:1504
#, fuzzy
#| msgid "Foods"
msgid "Food"
msgstr "Alimente"
msgstr "Mâncare"
#: .\cookbook\models.py:1505 .\cookbook\templates\base.html:149
msgid "Keyword"
@@ -610,7 +582,7 @@ msgstr "Ați atins limita de încărcare a fișierelor."
#: .\cookbook\serializer.py:328
msgid "Cannot modify Space owner permission."
msgstr ""
msgstr "Nu se poate modifica permisiunea proprietarului spațiului."
#: .\cookbook\serializer.py:1270
msgid "Hello"
@@ -651,30 +623,35 @@ msgstr "Invitație Tandoor Recipes"
#: .\cookbook\serializer.py:1426
msgid "Existing shopping list to update"
msgstr ""
msgstr "Lista de cumpărături existentă de actualizat"
#: .\cookbook\serializer.py:1428
msgid ""
"List of ingredient IDs from the recipe to add, if not provided all "
"ingredients will be added."
msgstr ""
"ID-urile ingredientelor din rețetă pentru a fi adăugate, dacă nu sunt "
"specificate toate ingrediente vor fi adăugate."
#: .\cookbook\serializer.py:1430
msgid ""
"Providing a list_recipe ID and servings of 0 will delete that shopping list."
msgstr ""
"Furnizarea unui ID de rețetă și un număr de porții egal cu 0 va șterge lista "
"cumpărături."
#: .\cookbook\serializer.py:1439
msgid "Amount of food to add to the shopping list"
msgstr ""
msgstr "Cantitatea de mâncare pentru a fi adăugată în lista cumpărături"
#: .\cookbook\serializer.py:1441
msgid "ID of unit to use for the shopping list"
msgstr ""
msgstr "ID-ul unității pentru a fi utilizat în lista de cumpărături"
#: .\cookbook\serializer.py:1443
msgid "When set to true will delete all food from active shopping lists."
msgstr ""
"Când este activ se șterge toată mâncarea din listele de cumpărături active."
#: .\cookbook\tables.py:69 .\cookbook\tables.py:83
#: .\cookbook\templates\generic\delete_template.html:7
@@ -1027,10 +1004,8 @@ msgstr "Istoric"
#: .\cookbook\templates\base.html:263
#: .\cookbook\templates\ingredient_editor.html:7
#: .\cookbook\templates\ingredient_editor.html:13
#, fuzzy
#| msgid "Ingredients"
msgid "Ingredient Editor"
msgstr "Ingrediente"
msgstr "Editor de Ingrediente"
#: .\cookbook\templates\base.html:275
#: .\cookbook\templates\export_response.html:7
@@ -1040,13 +1015,11 @@ msgstr "Exportă"
#: .\cookbook\templates\base.html:287
msgid "Properties"
msgstr ""
msgstr "Atribute"
#: .\cookbook\templates\base.html:301 .\cookbook\views\lists.py:255
#, fuzzy
#| msgid "Account Connections"
msgid "Unit Conversions"
msgstr "Conexiuni de cont"
msgstr "Conversii de unități"
#: .\cookbook\templates\base.html:318 .\cookbook\templates\index.html:47
msgid "Import Recipe"
@@ -1066,10 +1039,8 @@ msgid "Space Settings"
msgstr "Setări spațiu"
#: .\cookbook\templates\base.html:340
#, fuzzy
#| msgid "External Recipes"
msgid "External Connectors"
msgstr "Rețete externe"
msgstr "Conectori externi"
#: .\cookbook\templates\base.html:345 .\cookbook\templates\system.html:13
msgid "System"
@@ -1081,15 +1052,13 @@ msgstr "Admin"
#: .\cookbook\templates\base.html:351
#: .\cookbook\templates\space_overview.html:25
#, fuzzy
#| msgid "No Space"
msgid "Your Spaces"
msgstr "Fără spațiu"
msgstr "Spațiul tău"
#: .\cookbook\templates\base.html:362
#: .\cookbook\templates\space_overview.html:6
msgid "Overview"
msgstr ""
msgstr "Sumar"
#: .\cookbook\templates\base.html:372
msgid "Markdown Guide"
@@ -1113,11 +1082,11 @@ msgstr "Deconectare"
#: .\cookbook\templates\base.html:406
msgid "You are using the free version of Tandor"
msgstr ""
msgstr "Utilizați o versiune gratuită de Tandor"
#: .\cookbook\templates\base.html:407
msgid "Upgrade Now"
msgstr ""
msgstr "Actualizează acum"
#: .\cookbook\templates\batch\edit.html:6
msgid "Batch edit Category"
@@ -1213,7 +1182,7 @@ msgstr "Sunteți sigur că doriți să ștergeți %(title)s: <b>%(object)s</b> "
#: .\cookbook\templates\generic\delete_template.html:22
msgid "This cannot be undone!"
msgstr ""
msgstr "Este ireversibil!"
#: .\cookbook\templates\generic\delete_template.html:27
msgid "Protected"
@@ -1230,7 +1199,7 @@ msgstr "Anulare"
#: .\cookbook\templates\generic\edit_template.html:6
#: .\cookbook\templates\generic\edit_template.html:14
msgid "Edit"
msgstr "Editare"
msgstr "Editează"
#: .\cookbook\templates\generic\edit_template.html:32
msgid "View"
@@ -1379,8 +1348,6 @@ msgstr ""
#: .\cookbook\templates\markdown_info.html:57
#: .\cookbook\templates\markdown_info.html:73
#, fuzzy
#| msgid "or by leaving a blank line inbetween."
msgid "or by leaving a blank line in between."
msgstr "sau lăsând o linie goală între ele."
@@ -1404,10 +1371,6 @@ msgid "Lists"
msgstr "Liste"
#: .\cookbook\templates\markdown_info.html:85
#, fuzzy
#| msgid ""
#| "Lists can ordered or unorderd. It is <b>important to leave a blank line "
#| "before the list!</b>"
msgid ""
"Lists can ordered or unordered. It is <b>important to leave a blank line "
"before the list!</b>"
@@ -1539,11 +1502,11 @@ msgstr ""
#: .\cookbook\templates\openid\login.html:27
#: .\cookbook\templates\socialaccount\authentication_error.html:27
msgid "Back"
msgstr ""
msgstr "Înapoi"
#: .\cookbook\templates\property_editor.html:7
msgid "Property Editor"
msgstr ""
msgstr "Editor atribute"
#: .\cookbook\templates\recipe_view.html:36
msgid "Comments"
@@ -1620,15 +1583,6 @@ msgstr ""
" "
#: .\cookbook\templates\search_info.html:29
#, fuzzy
#| msgid ""
#| " \n"
#| " Simple searches ignore punctuation and common words such as "
#| "'the', 'a', 'and'. And will treat seperate words as required.\n"
#| " Searching for 'apple or flour' will return any recipe that "
#| "includes both 'apple' and 'flour' anywhere in the fields that have been "
#| "selected for a full text search.\n"
#| " "
msgid ""
" \n"
" Simple searches ignore punctuation and common words such as "
@@ -1666,23 +1620,6 @@ msgstr ""
" "
#: .\cookbook\templates\search_info.html:39
#, fuzzy
#| msgid ""
#| " \n"
#| " Web searches simulate functionality found on many web search "
#| "sites supporting special syntax.\n"
#| " Placing quotes around several words will convert those words "
#| "into a phrase.\n"
#| " 'or' is recongized as searching for the word (or phrase) "
#| "immediately before 'or' OR the word (or phrase) directly after.\n"
#| " '-' is recognized as searching for recipes that do not "
#| "include the word (or phrase) that comes immediately after. \n"
#| " For example searching for 'apple pie' or cherry -butter will "
#| "return any recipe that includes the phrase 'apple pie' or the word "
#| "'cherry' \n"
#| " in any field included in the full text search but exclude any "
#| "recipe that has the word 'butter' in any field included.\n"
#| " "
msgid ""
" \n"
" Web searches simulate functionality found on many web search "
@@ -1705,8 +1642,8 @@ msgstr ""
"uri de căutare web care acceptă sintaxa specială.\n"
" Plasarea ghilimelelor în jurul mai multor cuvinte va converti "
"aceste cuvinte într-o frază.\n"
" 'sau' este recunoscut pentru căutarea pentru cuvântul (sau "
"fraza) imediat înainte de 'sau' SAU cuvântul (sau fraza) direct după.\n"
" 'sau' este recunoscut pentru căutarea pentru cuvântul (sau fraza)"
" imediat înainte de 'sau' SAU cuvântul (sau fraza) direct după.\n"
" '-' este recunoscut pentru căutarea rețetelor care nu includ "
"cuvântul (sau fraza) care vine imediat după. \n"
" De exemplu, căutarea 'plăcintei cu mere' sau a untului de cireșe "
@@ -1729,19 +1666,6 @@ msgstr ""
" "
#: .\cookbook\templates\search_info.html:59
#, fuzzy
#| msgid ""
#| " \n"
#| " Another approach to searching that also requires Postgresql "
#| "is fuzzy search or trigram similarity. A trigram is a group of three "
#| "consecutive characters.\n"
#| " For example searching for 'apple' will create x trigrams "
#| "'app', 'ppl', 'ple' and will create a score of how closely words match "
#| "the generated trigrams.\n"
#| " One benefit of searching trigams is that a search for "
#| "'sandwich' will find mispelled words such as 'sandwhich' that would be "
#| "missed by other methods.\n"
#| " "
msgid ""
" \n"
" Another approach to searching that also requires Postgresql is "
@@ -1948,17 +1872,15 @@ msgstr "Creează cont superuser"
#: .\cookbook\templates\socialaccount\authentication_error.html:7
#: .\cookbook\templates\socialaccount\authentication_error.html:23
#, fuzzy
#| msgid "Social Login"
msgid "Social Network Login Failure"
msgstr "Autentificare utilizând rețeaua socială"
msgstr "Eșec la conectarea la rețeaua socială"
#: .\cookbook\templates\socialaccount\authentication_error.html:25
#, fuzzy
#| msgid "An error occurred attempting to move "
msgid ""
"An error occurred while attempting to login via your social network account."
msgstr "A apărut o eroare la încercarea de a muta "
msgstr ""
"S-a produs o eroare în timp ce se încearca autentificarea prin contul tău de "
"rețea socială."
#: .\cookbook\templates\socialaccount\connections.html:4
#: .\cookbook\templates\socialaccount\connections.html:15
@@ -1994,17 +1916,18 @@ msgstr "Înregistrare"
#: .\cookbook\templates\socialaccount\login.html:9
#, python-format
msgid "Connect %(provider)s"
msgstr ""
msgstr "Conectează %(provider)s"
#: .\cookbook\templates\socialaccount\login.html:11
#, python-format
msgid "You are about to connect a new third party account from %(provider)s."
msgstr ""
"Sunteți pe cale să conectați un nou cont de terță parte din %(provider)s."
#: .\cookbook\templates\socialaccount\login.html:13
#, python-format
msgid "Sign In Via %(provider)s"
msgstr ""
msgstr "Intră în cont prin %(provider)s"
#: .\cookbook\templates\socialaccount\login.html:15
#, python-format
@@ -2013,7 +1936,7 @@ msgstr ""
#: .\cookbook\templates\socialaccount\login.html:20
msgid "Continue"
msgstr ""
msgstr "Continuă"
#: .\cookbook\templates\socialaccount\signup.html:10
#, python-format
@@ -2046,7 +1969,7 @@ msgstr "Conectați-vă utilizând"
#: .\cookbook\templates\space_manage.html:7
msgid "Space Management"
msgstr ""
msgstr "Managementul spațiului"
#: .\cookbook\templates\space_manage.html:26
msgid "Space:"
@@ -2057,10 +1980,8 @@ msgid "Manage Subscription"
msgstr "Gestionarea abonamentului"
#: .\cookbook\templates\space_overview.html:13 .\cookbook\views\delete.py:184
#, fuzzy
#| msgid "Space:"
msgid "Space"
msgstr "Spațiu:"
msgstr "Spațiu"
#: .\cookbook\templates\space_overview.html:17
msgid ""
@@ -2078,13 +1999,11 @@ msgstr ""
#: .\cookbook\templates\space_overview.html:53
msgid "Owner"
msgstr ""
msgstr "Proprietar"
#: .\cookbook\templates\space_overview.html:57
#, fuzzy
#| msgid "Create Space"
msgid "Leave Space"
msgstr "Creare spațiu"
msgstr "Părăsire spațiu"
#: .\cookbook\templates\space_overview.html:78
#: .\cookbook\templates\space_overview.html:88
@@ -2147,6 +2066,11 @@ msgid ""
"script to generate version information (done automatically in docker).\n"
" "
msgstr ""
"\n"
" Trebuie să executați <code>version.py</code> în scripturile de "
"actualizare pentru a genera informații despre versiune (realizate automat în "
"docker).\n"
" "
#: .\cookbook\templates\system.html:46
msgid "Media Serving"
@@ -2237,7 +2161,7 @@ msgstr ""
#: .\cookbook\templates\system.html:86
msgid "Allowed Hosts"
msgstr ""
msgstr "Domenii Permise"
#: .\cookbook\templates\system.html:90
msgid ""
@@ -2257,10 +2181,8 @@ msgid "Info"
msgstr "Informație"
#: .\cookbook\templates\system.html:110 .\cookbook\templates\system.html:127
#, fuzzy
#| msgid "Use fractions"
msgid "Migrations"
msgstr "Utilizare fracții"
msgstr "Migrări"
#: .\cookbook\templates\system.html:116
msgid ""
@@ -2276,19 +2198,17 @@ msgstr ""
#: .\cookbook\templates\system.html:182
msgid "False"
msgstr ""
msgstr "Fals"
#: .\cookbook\templates\system.html:182
msgid "True"
msgstr ""
msgstr "Adevărat"
#: .\cookbook\templates\system.html:207
msgid "Hide"
msgstr ""
msgstr "Ascunde"
#: .\cookbook\templates\system.html:210
#, fuzzy
#| msgid "Show Log"
msgid "Show"
msgstr "Afișare jurnal"
@@ -2355,29 +2275,34 @@ msgstr "{child.name} a fost mutat cu succes la părintele {parent.name}"
#: .\cookbook\views\api.py:589
#, python-brace-format
msgid "{obj.name} was removed from the shopping list."
msgstr ""
msgstr "{obj.name} a fost șters din lista de cumpărături."
#: .\cookbook\views\api.py:594 .\cookbook\views\api.py:1037
#: .\cookbook\views\api.py:1050
#, python-brace-format
msgid "{obj.name} was added to the shopping list."
msgstr ""
msgstr "{obj.name} a fost adăugat la lista de cumpărături."
#: .\cookbook\views\api.py:742
msgid "Filter meal plans from date (inclusive) in the format of YYYY-MM-DD."
msgstr ""
msgstr "Filtrează planurile de masă din data (inclusiv) în formatul AAAA-LL-ZZ."
#: .\cookbook\views\api.py:743
msgid "Filter meal plans to date (inclusive) in the format of YYYY-MM-DD."
msgstr ""
"Filtrează planurile de masă până la data (inclusiv) în formatul AAAA-LL-ZZ."
#: .\cookbook\views\api.py:744
msgid "Filter meal plans with MealType ID. For multiple repeat parameter."
msgstr ""
"Filtrează planurile de masă cu ID-ul tipului de rețetă. Pentru mai multe "
"repetă parametrul."
#: .\cookbook\views\api.py:872
msgid "ID of recipe a step is part of. For multiple repeat parameter."
msgstr ""
"ID-ul rețetei din care face pasul face parte. Pentru mai multe repetă "
"parametrul."
#: .\cookbook\views\api.py:873
msgid "Query string matched (fuzzy) against object name."
@@ -2555,8 +2480,6 @@ msgid "Bad URL Schema."
msgstr ""
#: .\cookbook\views\api.py:1474
#, fuzzy
#| msgid "No useable data could be found."
msgid "No usable data could be found."
msgstr "Nu au putut fi găsite date utilizabile."
@@ -2611,20 +2534,16 @@ msgstr ""
"puțin un supervizor."
#: .\cookbook\views\delete.py:135
#, fuzzy
#| msgid "Storage Backend"
msgid "Connectors Config Backend"
msgstr "Backend de stocare"
msgstr "Configurare Backend Conectori"
#: .\cookbook\views\delete.py:157
msgid "Invite Link"
msgstr "Link de invitare"
#: .\cookbook\views\delete.py:168
#, fuzzy
#| msgid "Members"
msgid "Space Membership"
msgstr "Membri"
msgstr "Membri spațiu"
#: .\cookbook\views\edit.py:84
msgid "You cannot edit this storage!"
@@ -2639,10 +2558,8 @@ msgid "There was an error updating this storage backend!"
msgstr "A existat o eroare la actualizarea acestui backend de stocare!"
#: .\cookbook\views\edit.py:134
#, fuzzy
#| msgid "Changes saved!"
msgid "Config saved!"
msgstr "Modificări salvate!"
msgstr "Configurare salvată!"
#: .\cookbook\views\edit.py:142
msgid "ConnectorConfig"
@@ -2675,10 +2592,8 @@ msgid "Shopping List"
msgstr "Listă de cumpărături"
#: .\cookbook\views\lists.py:77 .\cookbook\views\new.py:98
#, fuzzy
#| msgid "Storage Backend"
msgid "Connector Config Backend"
msgstr "Backend de stocare"
msgstr "Configurare Backend pentru Conector"
#: .\cookbook\views\lists.py:91
msgid "Invite Links"
@@ -2693,10 +2608,8 @@ msgid "Shopping Categories"
msgstr "Categorii de cumpărături"
#: .\cookbook\views\lists.py:202
#, fuzzy
#| msgid "Filter"
msgid "Custom Filters"
msgstr "Filtru"
msgstr "Filtre Personalizate"
#: .\cookbook\views\lists.py:239
msgid "Steps"
@@ -2707,10 +2620,8 @@ msgid "Property Types"
msgstr ""
#: .\cookbook\views\new.py:86
#, fuzzy
#| msgid "This feature is not available in the demo version!"
msgid "This feature is not enabled by the server admin!"
msgstr "Această funcție nu este disponibilă în versiunea demo!"
msgstr "Această funcție nu a fost activată de către administrator!"
#: .\cookbook\views\new.py:123
msgid "Imported new recipe!"
@@ -2726,11 +2637,9 @@ msgid "This feature is not available in the demo version!"
msgstr "Această funcție nu este disponibilă în versiunea demo!"
#: .\cookbook\views\views.py:74
#, fuzzy
#| msgid "You have reached the maximum number of recipes for your space."
msgid ""
"You have the reached the maximum amount of spaces that can be owned by you."
msgstr "Ai ajuns la numărul maxim de rețete pentru spațiul dvs."
msgstr "Ai ajuns la numărul maxim de spații pe care le poți deține."
#: .\cookbook\views\views.py:89
msgid ""
@@ -2779,29 +2688,15 @@ msgid "Unable to determine PostgreSQL version."
msgstr ""
#: .\cookbook\views\views.py:317
#, fuzzy
#| msgid ""
#| "\n"
#| " This application is not running with a Postgres database "
#| "backend. This is ok but not recommended as some\n"
#| " features only work with postgres databases.\n"
#| " "
msgid ""
"This application is not running with a Postgres database backend. This is ok "
"but not recommended as some features only work with postgres databases."
msgstr ""
"\n"
" Această aplicație nu se execută cu un backend de bază de date "
"Postgres. Acest lucru este ok, dar nu este recomandat deoarece unele\n"
" caracteristicile funcționează numai cu baze de date Postgres.\n"
" "
"Această aplicație nu se execută cu un backend de bază de date Postgres. "
"Acest lucru este ok, dar nu este recomandat deoarece unele caracteristicile "
"funcționează numai cu baze de date Postgres."
#: .\cookbook\views\views.py:360
#, fuzzy
#| msgid ""
#| "The setup page can only be used to create the first user! If you have "
#| "forgotten your superuser credentials please consult the django "
#| "documentation on how to reset passwords."
msgid ""
"The setup page can only be used to create the first "
"user! If you have forgotten your superuser credentials "
@@ -2852,10 +2747,8 @@ msgid "Manage recipes, shopping list, meal plans and more."
msgstr ""
#: .\cookbook\views\views.py:458
#, fuzzy
#| msgid "Meal-Plan"
msgid "Plan"
msgstr "Plan de alimentare"
msgstr "Plan"
#: .\cookbook\views\views.py:458
msgid "View your meal Plan"
@@ -2863,13 +2756,11 @@ msgstr ""
#: .\cookbook\views\views.py:459
msgid "View your cookbooks"
msgstr ""
msgstr "Vizualizează cărțile de bucate"
#: .\cookbook\views\views.py:460
#, fuzzy
#| msgid "New Shopping List"
msgid "View your shopping lists"
msgstr "Listă de cumpărături nouă"
msgstr "Vezi listele de cumpărături"
#~ msgid "Default unit"
#~ msgstr "Unitate implicită"

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-01 15:04+0200\n"
"PO-Revision-Date: 2024-09-17 11:58+0000\n"
"Last-Translator: Bebbe K <kajolekk91@gmail.com>\n"
"PO-Revision-Date: 2025-02-07 08:58+0000\n"
"Last-Translator: Mattias G <mattias.granlund@gmail.com>\n"
"Language-Team: Swedish <http://translate.tandoor.dev/projects/tandoor/"
"recipes-backend/sv/>\n"
"Language: sv\n"
@@ -17,7 +17,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.6.2\n"
"X-Generator: Weblate 5.8.4\n"
#: .\cookbook\forms.py:45
msgid ""
@@ -549,7 +549,7 @@ msgstr "Ersätt Enhet"
#: .\cookbook\models.py:1476
msgid "Name Replace"
msgstr ""
msgstr "Ersättningsnamn"
#: .\cookbook\models.py:1503 .\cookbook\views\delete.py:40
#: .\cookbook\views\edit.py:210 .\cookbook\views\new.py:39
@@ -566,15 +566,15 @@ msgstr "Nyckelord"
#: .\cookbook\serializer.py:222
msgid "File uploads are not enabled for this Space."
msgstr ""
msgstr "Filuppladdning är inte aktiverat för det här utrymmet."
#: .\cookbook\serializer.py:233
msgid "You have reached your file upload limit."
msgstr ""
msgstr "Du har nått din maxgräns för uppladdningar."
#: .\cookbook\serializer.py:328
msgid "Cannot modify Space owner permission."
msgstr ""
msgstr "Kan inte modifiera utrymmets ägar-rättigheter."
#: .\cookbook\serializer.py:1270
msgid "Hello"
@@ -582,56 +582,61 @@ msgstr "Hej"
#: .\cookbook\serializer.py:1270
msgid "You have been invited by "
msgstr ""
msgstr "Du har bjudits in av "
#: .\cookbook\serializer.py:1272
msgid " to join their Tandoor Recipes space "
msgstr ""
msgstr " för att ansluta till deras Tandoor recept utrymme "
#: .\cookbook\serializer.py:1274
msgid "Click the following link to activate your account: "
msgstr ""
msgstr "Klicka på länken för att aktivera ditt konto: "
#: .\cookbook\serializer.py:1276
msgid ""
"If the link does not work use the following code to manually join the space: "
msgstr ""
"Om länken inte fungerar kan du testa följande kod för att manuellt aktivera "
"ditt utrymme: "
#: .\cookbook\serializer.py:1278
msgid "The invitation is valid until "
msgstr ""
msgstr "Inbjudningen är giltig till "
#: .\cookbook\serializer.py:1280
msgid ""
"Tandoor Recipes is an Open Source recipe manager. Check it out on GitHub "
msgstr ""
"Tandoor recept är en recept-hanterar med öppen källkod. Se mer på GitHub "
#: .\cookbook\serializer.py:1283
msgid "Tandoor Recipes Invite"
msgstr ""
msgstr "Tandoor recept inbjudan"
#: .\cookbook\serializer.py:1426
msgid "Existing shopping list to update"
msgstr ""
msgstr "Existerande inköpslistor att uppdatera"
#: .\cookbook\serializer.py:1428
msgid ""
"List of ingredient IDs from the recipe to add, if not provided all "
"ingredients will be added."
msgstr ""
"Lista med ingrediens ID:n från receptet att lägga till, om inget angetts "
"kommer alla ingredienser bli tillagda."
#: .\cookbook\serializer.py:1430
msgid ""
"Providing a list_recipe ID and servings of 0 will delete that shopping list."
msgstr ""
msgstr "Anges ett list_recept ID och 0 portioner kommer den listan raderas."
#: .\cookbook\serializer.py:1439
msgid "Amount of food to add to the shopping list"
msgstr ""
msgstr "Mängd av ingrediens att lägga till på inköpslistan"
#: .\cookbook\serializer.py:1441
msgid "ID of unit to use for the shopping list"
msgstr ""
msgstr "ID eller enhet att använda för inköpslistan"
#: .\cookbook\serializer.py:1443
msgid "When set to true will delete all food from active shopping lists."
@@ -681,7 +686,7 @@ msgstr "Email"
#: .\cookbook\templates\account\email.html:19
msgid "The following e-mail addresses are associated with your account:"
msgstr ""
msgstr "Följande epost-addresser är associerade med ditt konto:"
#: .\cookbook\templates\account\email.html:36
msgid "Verified"
@@ -696,14 +701,12 @@ msgid "Primary"
msgstr "Primär"
#: .\cookbook\templates\account\email.html:47
#, fuzzy
#| msgid "Make Header"
msgid "Make Primary"
msgstr "Skapa titel"
msgstr "Markera som primär"
#: .\cookbook\templates\account\email.html:49
msgid "Re-send Verification"
msgstr ""
msgstr "Sänd verifikationen igen"
#: .\cookbook\templates\account\email.html:50
#: .\cookbook\templates\generic\delete_template.html:57

View File

@@ -11,8 +11,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-01 15:04+0200\n"
"PO-Revision-Date: 2024-07-03 16:38+0000\n"
"Last-Translator: Taylan TATLI <uyelik-tandoor@tatli.me>\n"
"PO-Revision-Date: 2025-01-20 05:20+0000\n"
"Last-Translator: Yigit <yigit.gungor@outlook.com>\n"
"Language-Team: Turkish <http://translate.tandoor.dev/projects/tandoor/"
"recipes-backend/tr/>\n"
"Language: tr\n"
@@ -20,7 +20,7 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"X-Generator: Weblate 5.4.2\n"
"X-Generator: Weblate 5.8.4\n"
#: .\cookbook\forms.py:45
msgid ""
@@ -199,7 +199,7 @@ msgstr ""
#: .\cookbook\forms.py:350
msgid "Search Method"
msgstr ""
msgstr "Arama Metodu"
#: .\cookbook\forms.py:350
msgid "Fuzzy Lookups"
@@ -207,15 +207,15 @@ msgstr ""
#: .\cookbook\forms.py:350
msgid "Ignore Accent"
msgstr ""
msgstr "Harflerdeki Vurguları Görmezden Gel"
#: .\cookbook\forms.py:350
msgid "Partial Match"
msgstr ""
msgstr "Kısmi Eşleşme"
#: .\cookbook\forms.py:350
msgid "Starts With"
msgstr ""
msgstr "İle başlayan"
#: .\cookbook\forms.py:351
msgid "Fuzzy Search"
@@ -223,18 +223,20 @@ msgstr ""
#: .\cookbook\forms.py:351
msgid "Full Text"
msgstr ""
msgstr "Tam Metin"
#: .\cookbook\helper\AllAuthCustomAdapter.py:41
msgid ""
"In order to prevent spam, the requested email was not send. Please wait a "
"few minutes and try again."
msgstr ""
"İstenmeyen e-postayı önlemek için istenen e-posta gönderilemedi. Lütfen "
"birkaç dakika bekleyin ve tekrar deneyin."
#: .\cookbook\helper\permission_helper.py:164
#: .\cookbook\helper\permission_helper.py:187 .\cookbook\views\views.py:117
msgid "You are not logged in and therefore cannot view this page!"
msgstr ""
msgstr "Giriş yapmadınız ve bu nedenle bu sayfayı görüntüleyemezsiniz!"
#: .\cookbook\helper\permission_helper.py:168
#: .\cookbook\helper\permission_helper.py:174
@@ -247,68 +249,68 @@ msgstr ""
#: .\cookbook\helper\permission_helper.py:341 .\cookbook\views\data.py:35
#: .\cookbook\views\views.py:127 .\cookbook\views\views.py:131
msgid "You do not have the required permissions to view this page!"
msgstr ""
msgstr "Bu sayfayı görüntülemek için gerekli izinlere sahip değilsiniz!"
#: .\cookbook\helper\permission_helper.py:192
#: .\cookbook\helper\permission_helper.py:215
#: .\cookbook\helper\permission_helper.py:237
#: .\cookbook\helper\permission_helper.py:252
msgid "You cannot interact with this object as it is not owned by you!"
msgstr ""
msgstr "Bu nesne size ait olmadığı için onunla etkileşime giremezsiniz!"
#: .\cookbook\helper\permission_helper.py:402
msgid "You have reached the maximum number of recipes for your space."
msgstr ""
msgstr "Alanınız için maksimum tarif sayısına ulaştınız."
#: .\cookbook\helper\permission_helper.py:414
msgid "You have more users than allowed in your space."
msgstr ""
msgstr "Alanınızda izin verilenden daha fazla kullanıcı var."
#: .\cookbook\helper\recipe_url_import.py:310
msgid "reverse rotation"
msgstr ""
msgstr "ters dönüş"
#: .\cookbook\helper\recipe_url_import.py:311
msgid "careful rotation"
msgstr ""
msgstr "dikkatli dönüş"
#: .\cookbook\helper\recipe_url_import.py:312
msgid "knead"
msgstr ""
msgstr "yoğur"
#: .\cookbook\helper\recipe_url_import.py:313
msgid "thicken"
msgstr ""
msgstr "kalınlaştır"
#: .\cookbook\helper\recipe_url_import.py:314
msgid "warm up"
msgstr ""
msgstr "ısıt"
#: .\cookbook\helper\recipe_url_import.py:315
msgid "ferment"
msgstr ""
msgstr "mayala"
#: .\cookbook\helper\recipe_url_import.py:316
msgid "sous-vide"
msgstr ""
msgstr "sous-vide"
#: .\cookbook\helper\shopping_helper.py:150
msgid "You must supply a servings size"
msgstr ""
msgstr "Bir porsiyon büyüklüğü vermelisiniz"
#: .\cookbook\helper\template_helper.py:95
#: .\cookbook\helper\template_helper.py:97
msgid "Could not parse template code."
msgstr ""
msgstr "Şablon kodu ayrıştırılamadı."
#: .\cookbook\integration\copymethat.py:44
#: .\cookbook\integration\melarecipes.py:37
msgid "Favorite"
msgstr ""
msgstr "Favori"
#: .\cookbook\integration\copymethat.py:50
msgid "I made this"
msgstr ""
msgstr "Bunu yaptım"
#: .\cookbook\integration\integration.py:209
msgid ""
@@ -324,28 +326,28 @@ msgstr ""
#: .\cookbook\integration\integration.py:217
msgid "The following recipes were ignored because they already existed:"
msgstr ""
msgstr "Aşağıdaki tarifler zaten mevcut olduğu için göz ardı edildi:"
#: .\cookbook\integration\integration.py:221
#, python-format
msgid "Imported %s recipes."
msgstr ""
msgstr "%s tarif içe aktarıldı."
#: .\cookbook\integration\openeats.py:28
msgid "Recipe source:"
msgstr ""
msgstr "Tarif kaynağı:"
#: .\cookbook\integration\paprika.py:49
msgid "Notes"
msgstr ""
msgstr "Notlar"
#: .\cookbook\integration\paprika.py:52
msgid "Nutritional Information"
msgstr ""
msgstr "Beslenme Bilgileri"
#: .\cookbook\integration\paprika.py:56
msgid "Source"
msgstr ""
msgstr "Kaynak"
#: .\cookbook\integration\recettetek.py:54
#: .\cookbook\integration\recipekeeper.py:70
@@ -354,23 +356,23 @@ msgstr ""
#: .\cookbook\integration\saffron.py:23
msgid "Servings"
msgstr ""
msgstr "Porsiyon"
#: .\cookbook\integration\saffron.py:25
msgid "Waiting time"
msgstr ""
msgstr "Bekleme süresi"
#: .\cookbook\integration\saffron.py:27
msgid "Preparation Time"
msgstr ""
msgstr "Hazırlık Süresi"
#: .\cookbook\integration\saffron.py:29 .\cookbook\templates\index.html:7
msgid "Cookbook"
msgstr ""
msgstr "Yemek kitabı"
#: .\cookbook\integration\saffron.py:31
msgid "Section"
msgstr ""
msgstr "Bölüm"
#: .\cookbook\management\commands\fix_duplicate_properties.py:15
msgid "Fixes foods with "
@@ -383,6 +385,8 @@ msgstr ""
#: .\cookbook\management\commands\rebuildindex.py:18
msgid "Only Postgresql databases use full text search, no index to rebuild"
msgstr ""
"Yalnızca Postgresql veritabanları tam metin araması kullanır, yeniden "
"oluşturulacak dizin yoktur"
#: .\cookbook\management\commands\rebuildindex.py:29
msgid "Recipe index rebuild complete."

View File

@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-08-01 15:04+0200\n"
"PO-Revision-Date: 2024-11-22 07:58+0000\n"
"Last-Translator: Oleh Hudyma <oleg.hudymaa@gmail.com>\n"
"PO-Revision-Date: 2025-01-16 18:58+0000\n"
"Last-Translator: Anton Shevtsov <ashevtsovs@gmail.com>\n"
"Language-Team: Ukrainian <http://translate.tandoor.dev/projects/tandoor/"
"recipes-backend/uk/>\n"
"Language: uk\n"
@@ -18,7 +18,7 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 5.6.2\n"
"X-Generator: Weblate 5.8.4\n"
#: .\cookbook\forms.py:45
msgid ""
@@ -32,7 +32,7 @@ msgstr ""
#: .\cookbook\forms.py:62 .\cookbook\forms.py:246 .\cookbook\views\lists.py:103
msgid "Keywords"
msgstr ""
msgstr "Ключові слова"
#: .\cookbook\forms.py:62
msgid "Preparation time in minutes"
@@ -941,13 +941,13 @@ msgstr ""
#: .\cookbook\templates\ingredient_editor.html:7
#: .\cookbook\templates\ingredient_editor.html:13
msgid "Ingredient Editor"
msgstr ""
msgstr "Редактор Інгредієнтів"
#: .\cookbook\templates\base.html:275
#: .\cookbook\templates\export_response.html:7
#: .\cookbook\templates\test2.html:14 .\cookbook\templates\test2.html:20
msgid "Export"
msgstr ""
msgstr "Експорт"
#: .\cookbook\templates\base.html:287
msgid "Properties"

View File

@@ -0,0 +1,24 @@
# Generated by Django 4.2.18 on 2025-03-14 10:50
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('cookbook', '0219_connectorconfig_supports_description_field'),
]
operations = [
migrations.AddField(
model_name='shoppinglistrecipe',
name='created_by',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
migrations.AddField(
model_name='shoppinglistrecipe',
name='space',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='cookbook.space'),
),
]

View File

@@ -0,0 +1,42 @@
# Generated by Django 4.2.18 on 2025-03-14 10:50
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
from django.db.models import F, Count
from django_scopes import scopes_disabled
def add_space_and_owner_to_shopping_list_recipe(apps, schema_editor):
print('migrating shopping list recipe space attribute, this might take a while ...')
with scopes_disabled():
ShoppingListRecipe = apps.get_model('cookbook', 'ShoppingListRecipe')
# delete all shopping list recipes that do not have entries as those are of no use anyway
ShoppingListRecipe.objects.annotate(entry_count=Count('entries')).filter(entry_count__lte=0).delete()
shopping_list_recipes = ShoppingListRecipe.objects.all().prefetch_related('entries')
update_list = []
for slr in shopping_list_recipes:
if entry := slr.entries.first():
if entry.space and entry.created_by:
slr.space = entry.space
slr.created_by = entry.created_by
update_list.append(slr)
else:
print(slr, 'missing data on entry')
else:
print(slr, 'missing entry')
ShoppingListRecipe.objects.bulk_update(update_list, ['space', 'created_by'], batch_size=500)
class Migration(migrations.Migration):
dependencies = [
('cookbook', '0220_shoppinglistrecipe_created_by_and_more'),
]
operations = [
migrations.RunPython(add_space_and_owner_to_shopping_list_recipe),
]

View File

@@ -0,0 +1,26 @@
# Generated by Django 4.2.18 on 2025-03-14 12:41
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('cookbook', '0221_migrate_shoppinglistrecipe_space_created_by'),
]
operations = [
migrations.AlterField(
model_name='shoppinglistrecipe',
name='created_by',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
migrations.AlterField(
model_name='shoppinglistrecipe',
name='space',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='cookbook.space'),
),
]

View File

@@ -0,0 +1,23 @@
# Generated by Django 4.2.22 on 2025-07-13 19:55
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('cookbook', '0222_alter_shoppinglistrecipe_created_by_and_more'),
]
operations = [
migrations.AddField(
model_name='userpreference',
name='ingredient_context',
field=models.BooleanField(default=False),
),
migrations.AlterField(
model_name='userpreference',
name='use_fractions',
field=models.BooleanField(default=True),
),
]

View File

@@ -191,7 +191,7 @@ class TreeModel(MP_Node):
return queryset.model.objects.filter(id__in=queryset.values_list('id')).exclude(descendants)
def include_ancestors(queryset=None):
def include_ancestors(queryset=None, filter=None):
"""
:param queryset: Model Queryset to add ancestors
:param filter: Filter (include) the ancestors nodes with the provided Q filter
@@ -487,6 +487,7 @@ class UserPreference(models.Model, PermissionModelMixin):
shopping_recent_days = models.PositiveIntegerField(default=7)
csv_delim = models.CharField(max_length=2, default=",")
csv_prefix = models.CharField(max_length=10, blank=True, )
ingredient_context = models.BooleanField(default=False)
created_at = models.DateTimeField(auto_now_add=True)
objects = ScopedManager(space='space')
@@ -767,6 +768,22 @@ class Food(ExportModelOperationsMixin('food'), TreeModel, PermissionModelMixin):
obj.inherit_fields.set(fields)
obj.save()
def get_substitutes(self, onhand=False, shopping_users=None):
# filters = ~Q(id=self.id)
filters = Q()
if self.substitute:
filters |= Q(id__in=self.substitute.values('id'))
if self.substitute_children:
filters |= Q(path__startswith=self.path, depth__gt=self.depth)
if self.substitute_siblings:
sibling_path = self.path[:Food.steplen * (self.depth - 1)]
filters |= Q(path__startswith=sibling_path, depth=self.depth)
qs = Food.objects.filter(filters).exclude(id=self.id)
if onhand:
qs = qs.filter(onhand_users__in=shopping_users)
return qs
@staticmethod
def reset_inheritance(space=None, food=None):
# resets inherited fields to the space defaults and updates all inherited fields to root object values
@@ -1179,31 +1196,18 @@ class MealPlan(ExportModelOperationsMixin('meal_plan'), models.Model, Permission
class ShoppingListRecipe(ExportModelOperationsMixin('shopping_list_recipe'), models.Model, PermissionModelMixin):
name = models.CharField(max_length=32, blank=True, default='')
recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE, null=True, blank=True) # TODO make required after old shoppinglist deprecated
servings = models.DecimalField(default=1, max_digits=8, decimal_places=4)
recipe = models.ForeignKey(Recipe, on_delete=models.CASCADE, null=True, blank=True)
mealplan = models.ForeignKey(MealPlan, on_delete=models.CASCADE, null=True, blank=True)
objects = ScopedManager(space='recipe__space')
created_by = models.ForeignKey(User, on_delete=models.CASCADE)
space = models.ForeignKey(Space, on_delete=models.CASCADE)
@staticmethod
def get_space_key():
return 'recipe', 'space'
def get_space(self):
return self.recipe.space
objects = ScopedManager(space='space')
def __str__(self):
return f'Shopping list recipe {self.id} - {self.recipe}'
def get_owner(self):
try:
if not self.entries.exists():
return 'orphan'
else:
return getattr(self.entries.first(), 'created_by', None)
except AttributeError:
return None
class ShoppingListEntry(ExportModelOperationsMixin('shopping_list_entry'), models.Model, PermissionModelMixin):
list_recipe = models.ForeignKey(ShoppingListRecipe, on_delete=models.CASCADE, null=True, blank=True, related_name='entries')

View File

@@ -12,21 +12,25 @@ class Local(Provider):
@staticmethod
def import_all(monitor):
if '/etc/' in monitor.path or '/root/' in monitor.path or '/mediafiles/' in monitor.path or '/usr/' in monitor.path:
return False
files = [f for f in listdir(monitor.path) if isfile(join(monitor.path, f))]
import_count = 0
for file in files:
path = monitor.path + '/' + file
if not Recipe.objects.filter(file_path__iexact=path, space=monitor.space).exists() and not RecipeImport.objects.filter(file_path=path, space=monitor.space).exists():
name = os.path.splitext(file)[0]
new_recipe = RecipeImport(
name=name,
file_path=path,
storage=monitor.storage,
space=monitor.space,
)
new_recipe.save()
import_count += 1
if file.endswith('.pdf') or file.endswith('.png') or file.endswith('.jpg') or file.endswith('.jpeg') or file.endswith('.gif'):
path = monitor.path + '/' + file
if not Recipe.objects.filter(file_path__iexact=path, space=monitor.space).exists() and not RecipeImport.objects.filter(file_path=path, space=monitor.space).exists():
name = os.path.splitext(file)[0]
new_recipe = RecipeImport(
name=name,
file_path=path,
storage=monitor.storage,
space=monitor.space,
)
new_recipe.save()
import_count += 1
log_entry = SyncLog(
status='SUCCESS',

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,177 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS

Binary file not shown.

Before

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 403 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 933 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 266 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 301 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 583 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 175 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 360 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 731 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 714 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 218 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 228 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 349 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 297 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 490 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 461 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 347 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 694 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 261 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 344 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 621 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 174 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 260 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 425 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 107 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 152 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 295 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 550 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 238 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 396 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 246 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 403 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 321 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 586 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 257 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 464 B

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