sandwitches 2.2.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- sandwitches/__init__.py +6 -0
- sandwitches/admin.py +69 -0
- sandwitches/api.py +207 -0
- sandwitches/asgi.py +16 -0
- sandwitches/feeds.py +23 -0
- sandwitches/forms.py +196 -0
- sandwitches/locale/nl/LC_MESSAGES/django.mo +0 -0
- sandwitches/locale/nl/LC_MESSAGES/django.po +1010 -0
- sandwitches/migrations/0001_initial.py +328 -0
- sandwitches/migrations/0002_historicalrecipe_servings_recipe_servings.py +27 -0
- sandwitches/migrations/0003_setting.py +35 -0
- sandwitches/migrations/0004_alter_setting_ai_api_key_and_more.py +37 -0
- sandwitches/migrations/0005_rating_comment.py +17 -0
- sandwitches/migrations/0006_historicalrecipe_is_highlighted_and_more.py +22 -0
- sandwitches/migrations/__init__.py +0 -0
- sandwitches/models.py +218 -0
- sandwitches/settings.py +220 -0
- sandwitches/storage.py +114 -0
- sandwitches/tasks.py +115 -0
- sandwitches/templates/admin/admin_base.html +118 -0
- sandwitches/templates/admin/confirm_delete.html +23 -0
- sandwitches/templates/admin/dashboard.html +262 -0
- sandwitches/templates/admin/rating_list.html +38 -0
- sandwitches/templates/admin/recipe_form.html +184 -0
- sandwitches/templates/admin/recipe_list.html +64 -0
- sandwitches/templates/admin/tag_form.html +30 -0
- sandwitches/templates/admin/tag_list.html +37 -0
- sandwitches/templates/admin/task_detail.html +91 -0
- sandwitches/templates/admin/task_list.html +41 -0
- sandwitches/templates/admin/user_form.html +37 -0
- sandwitches/templates/admin/user_list.html +60 -0
- sandwitches/templates/base.html +94 -0
- sandwitches/templates/base_beer.html +57 -0
- sandwitches/templates/components/carousel_scripts.html +59 -0
- sandwitches/templates/components/favorites_search_form.html +85 -0
- sandwitches/templates/components/footer.html +14 -0
- sandwitches/templates/components/ingredients_scripts.html +50 -0
- sandwitches/templates/components/ingredients_section.html +11 -0
- sandwitches/templates/components/instructions_section.html +9 -0
- sandwitches/templates/components/language_dialog.html +26 -0
- sandwitches/templates/components/navbar.html +27 -0
- sandwitches/templates/components/rating_section.html +66 -0
- sandwitches/templates/components/recipe_header.html +32 -0
- sandwitches/templates/components/search_form.html +106 -0
- sandwitches/templates/components/search_scripts.html +98 -0
- sandwitches/templates/components/side_menu.html +35 -0
- sandwitches/templates/components/user_menu.html +10 -0
- sandwitches/templates/detail.html +178 -0
- sandwitches/templates/favorites.html +42 -0
- sandwitches/templates/index.html +76 -0
- sandwitches/templates/login.html +57 -0
- sandwitches/templates/partials/recipe_list.html +87 -0
- sandwitches/templates/recipe_form.html +119 -0
- sandwitches/templates/setup.html +105 -0
- sandwitches/templates/signup.html +133 -0
- sandwitches/templatetags/__init__.py +0 -0
- sandwitches/templatetags/custom_filters.py +15 -0
- sandwitches/templatetags/markdown_extras.py +17 -0
- sandwitches/urls.py +109 -0
- sandwitches/utils.py +222 -0
- sandwitches/views.py +647 -0
- sandwitches/wsgi.py +16 -0
- sandwitches-2.2.0.dist-info/METADATA +104 -0
- sandwitches-2.2.0.dist-info/RECORD +65 -0
- sandwitches-2.2.0.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: sandwitches
|
|
3
|
+
Version: 2.2.0
|
|
4
|
+
Summary: Add your description here
|
|
5
|
+
Author: Martyn van Dijke
|
|
6
|
+
Author-email: Martyn van Dijke <martijnvdijke600@gmail.com>
|
|
7
|
+
Requires-Dist: django-debug-toolbar>=6.1.0
|
|
8
|
+
Requires-Dist: django-filter>=25.2
|
|
9
|
+
Requires-Dist: django-imagekit>=6.0.0
|
|
10
|
+
Requires-Dist: django-import-export>=4.3.14
|
|
11
|
+
Requires-Dist: django-ninja>=1.5.1
|
|
12
|
+
Requires-Dist: django-simple-history>=3.10.1
|
|
13
|
+
Requires-Dist: django-tasks>=0.10.0
|
|
14
|
+
Requires-Dist: django-solo>=2.3.0
|
|
15
|
+
Requires-Dist: django>=6.0.0
|
|
16
|
+
Requires-Dist: gunicorn>=23.0.0
|
|
17
|
+
Requires-Dist: markdown>=3.10
|
|
18
|
+
Requires-Dist: pillow>=12.0.0
|
|
19
|
+
Requires-Dist: uvicorn>=0.40.0
|
|
20
|
+
Requires-Dist: whitenoise[brotli]>=6.11.0
|
|
21
|
+
Requires-Python: >=3.12
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
|
|
24
|
+
<p align="center">
|
|
25
|
+
<img src="src/static/icons/banner.svg" alt="Sandwitches Banner" width="600px">
|
|
26
|
+
</p>
|
|
27
|
+
|
|
28
|
+
<h1 align="center">🥪 Sandwitches</h1>
|
|
29
|
+
|
|
30
|
+
<p align="center">
|
|
31
|
+
<strong>Sandwiches so good, they haunt you!</strong>
|
|
32
|
+
</p>
|
|
33
|
+
|
|
34
|
+
<p align="center">
|
|
35
|
+
<a href="https://github.com/martynvdijke/sandwitches/actions/workflows/ci.yaml">
|
|
36
|
+
<img src="https://github.com/martynvdijke/sandwitches/actions/workflows/ci.yaml/badge.svg" alt="CI Status">
|
|
37
|
+
</a>
|
|
38
|
+
<a href="https://github.com/martynvdijke/sandwitches/blob/main/LICENSE">
|
|
39
|
+
<img src="https://img.shields.io/github/license/martynvdijke/sandwitches" alt="License">
|
|
40
|
+
</a>
|
|
41
|
+
<img src="https://img.shields.io/badge/python-3.12+-blue.svg" alt="Python Version">
|
|
42
|
+
<img src="https://img.shields.io/badge/django-6.0-green.svg" alt="Django Version">
|
|
43
|
+
<a href="https://github.com/astral-sh/ruff">
|
|
44
|
+
<img src="https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json" alt="Ruff">
|
|
45
|
+
</a>
|
|
46
|
+
</p>
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## ✨ Overview
|
|
51
|
+
|
|
52
|
+
Sandwitches is a modern, recipe management platform built with **Django 6.0**.
|
|
53
|
+
It is made as a hobby project for my girlfriend, who likes to make what I call "fancy" sandwiches (sandwiches that go beyond the Dutch normals), lucky to be me :).
|
|
54
|
+
See wanted to have a way to advertise and share those sandwtiches with the family and so I started coding making it happen, in the hopes of getting more fancy sandwiches.
|
|
55
|
+
|
|
56
|
+
## 📥 Getting Started
|
|
57
|
+
|
|
58
|
+
### Prerequisites
|
|
59
|
+
|
|
60
|
+
* Python 3.12+
|
|
61
|
+
* [uv](https://github.com/astral-sh/uv) (recommended) or pip
|
|
62
|
+
|
|
63
|
+
### Installation
|
|
64
|
+
|
|
65
|
+
1. **Clone the repository**:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
git clone https://github.com/martynvdijke/sandwitches.git
|
|
69
|
+
cd sandwitches
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
2. **Sync dependencies**:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
uv sync
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
3. **Run migrations and collect static files**:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
uv run invoke setup-ci # Sets up environment variables
|
|
82
|
+
uv run src/manage.py migrate
|
|
83
|
+
uv run src/manage.py collectstatic --noinput
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
4. **Start the development server**:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
uv run src/manage.py runserver
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## 🧪 Testing & Quality
|
|
93
|
+
|
|
94
|
+
The project maintains high standards with over **80+ automated tests**.
|
|
95
|
+
|
|
96
|
+
* **Run tests**: `uv run invoke tests`
|
|
97
|
+
* **Linting**: `uv run invoke linting`
|
|
98
|
+
* **Type checking**: `uv run invoke typecheck`
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
<p align="center">
|
|
103
|
+
Made with ❤️ for sandwich enthusiasts.
|
|
104
|
+
</p>
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
sandwitches/__init__.py,sha256=YTDsQDSdJmxV2Z0dTbBqZhuJRuXcNLSKL0SX73Lu2u8,195
|
|
2
|
+
sandwitches/admin.py,sha256=c_FBgg_moMwlNVJKRknHF9_KI97oYGgk_MhwLDJGDFQ,1910
|
|
3
|
+
sandwitches/api.py,sha256=4Upjd78dHVZDOIFkZjPst0mLfVdiToB3RVVrBpttTYg,5714
|
|
4
|
+
sandwitches/asgi.py,sha256=cygnXdXSSVspM7ZXuj47Ef6oz7HSTw4D7BPzgE2PU5w,399
|
|
5
|
+
sandwitches/feeds.py,sha256=iz1d11dV0utA0ZNsB7VIAp0h8Zr5mFNSKJWHbw_j6YM,683
|
|
6
|
+
sandwitches/forms.py,sha256=QMSCpiy42AjretzEkj8FghfmBj-gkalSOXZVwiTtkOQ,5916
|
|
7
|
+
sandwitches/locale/nl/LC_MESSAGES/django.mo,sha256=EzQWzIhz_Na3w9AS7F-YjB-Xv63t4sMRSAkEQ1-g32M,5965
|
|
8
|
+
sandwitches/locale/nl/LC_MESSAGES/django.po,sha256=znxspEoMwkmktusZtbVrt1KG1LDUwIEi4ZEIE3XGeoI,25904
|
|
9
|
+
sandwitches/migrations/0001_initial.py,sha256=hXnCAhoA91C6YCinXyUdIfQ7QL29NPBHFfTqLgulMsY,12507
|
|
10
|
+
sandwitches/migrations/0002_historicalrecipe_servings_recipe_servings.py,sha256=8E09y99FdVNzaQMn8R1d5zEcCN9jZICVCTW8MsGRBqs,743
|
|
11
|
+
sandwitches/migrations/0003_setting.py,sha256=DmugIrz0Wtftx7B0MrX6ms34j60kSOwcPz1sLRP4wE0,1200
|
|
12
|
+
sandwitches/migrations/0004_alter_setting_ai_api_key_and_more.py,sha256=516vcSxWzsZiJaskH1JC-1FgB0t4ijNC2L3PcfdRPNg,1109
|
|
13
|
+
sandwitches/migrations/0005_rating_comment.py,sha256=MRlTZkyATH1aJdkaesPlPkXkYt-mzqBik-MCcNrbLRI,398
|
|
14
|
+
sandwitches/migrations/0006_historicalrecipe_is_highlighted_and_more.py,sha256=BBCx4uxPK9udqsJ6qkoYpZ_3tH4uujquj9j0Gm7Ff6w,566
|
|
15
|
+
sandwitches/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
|
+
sandwitches/models.py,sha256=dgPc32_VTcKPvhBXjy9jRquI5BgLDNeLnLxnhZN37J8,7252
|
|
17
|
+
sandwitches/settings.py,sha256=hNLDqbRPGdtNVNX31zxcDWKxWa95AcswKbj4XW4Z2lE,5821
|
|
18
|
+
sandwitches/storage.py,sha256=ibBG6tVtArqzgEKsRimZPwsqW7i9j4WiPLLHrOJchow,3578
|
|
19
|
+
sandwitches/tasks.py,sha256=rRQpWZp-vDbMgVmnZAz8GaPzK7F3uzAr6lho7Zq-mdM,3656
|
|
20
|
+
sandwitches/templates/admin/admin_base.html,sha256=yPFo1K1LrRuPKfOuOGLEgQm29vWqzvkSoDNlpmxYPaY,4261
|
|
21
|
+
sandwitches/templates/admin/confirm_delete.html,sha256=HfsZI_gV8JQTKz215TYgPWBrgrFhGv1UB3N-0Hln-14,804
|
|
22
|
+
sandwitches/templates/admin/dashboard.html,sha256=uHisWI3x-KehPDlwBFF5bIT5-tPsCVU5duA_ZPF-GHc,6168
|
|
23
|
+
sandwitches/templates/admin/rating_list.html,sha256=ZTxu4emeYInlYyw7b19c8cYlj90fo1wtA-1BEJKZGt0,1256
|
|
24
|
+
sandwitches/templates/admin/recipe_form.html,sha256=ssLnS63UobRFwPbDHMrnwniJEta3QHkWOJb8IPzYd_k,7560
|
|
25
|
+
sandwitches/templates/admin/recipe_list.html,sha256=HDOmhK-XEPwTv1CCBqTXK79pLoH5y2xKPFjjue0HFeQ,2454
|
|
26
|
+
sandwitches/templates/admin/tag_form.html,sha256=JRWgAl4fz_Oy-Kuo1K6Mex_CXdsHMABzzyPazthr1Kg,989
|
|
27
|
+
sandwitches/templates/admin/tag_list.html,sha256=ttxwXgfdxkEs4Cmrz5RHaGmaqLd7JDmWhjv80XIQqyw,1246
|
|
28
|
+
sandwitches/templates/admin/task_detail.html,sha256=dO5zHOG-yTY1ly3VPA3o3jjie0wmxw0gdddtSKpN-W8,3825
|
|
29
|
+
sandwitches/templates/admin/task_list.html,sha256=3YF7YQ3nbXnWjApKeA07Z7HkhdMuH4s6sLoN7gwg0eE,1535
|
|
30
|
+
sandwitches/templates/admin/user_form.html,sha256=7_6GShLROFeJJexL1XLFUXdW9_lYF87eT6cigB5bQo4,1314
|
|
31
|
+
sandwitches/templates/admin/user_list.html,sha256=6O1YctULY-tqJnagybJof9ERA_NL1LX_a8cAu6_aWVQ,2193
|
|
32
|
+
sandwitches/templates/base.html,sha256=07zDXWzRC-aptZW6oq3xcxvDA1Lh87F7kTpBeYFUwsg,3211
|
|
33
|
+
sandwitches/templates/base_beer.html,sha256=4QgU4_gu_RRMtimmRAhATDJ3mj_WANxtilQJYNgAL60,2077
|
|
34
|
+
sandwitches/templates/components/carousel_scripts.html,sha256=9vEL5JJv8zUUjEtsnHW-BwwXUNWqQ6w_vf6UdxgEv_I,1934
|
|
35
|
+
sandwitches/templates/components/favorites_search_form.html,sha256=tpD8SpS47TUDJBwxhMuvjhTN9pjWoRGFW50TBv48Ld4,5202
|
|
36
|
+
sandwitches/templates/components/footer.html,sha256=Qk-myRtXS6-1b3fMowVGnSuFb_UkUgX6BYX9zgh_SV8,486
|
|
37
|
+
sandwitches/templates/components/ingredients_scripts.html,sha256=2zKTC65GYF589uW1sCpDq0jOkS3BnsuOwUpJbbigrn4,1794
|
|
38
|
+
sandwitches/templates/components/ingredients_section.html,sha256=XsaVXTs9MIwjfJeLjlzah3GWWj8oFU-_HJd9i9l1HAo,665
|
|
39
|
+
sandwitches/templates/components/instructions_section.html,sha256=RFlA4uPiI6vf1e2QgiD5KzGoy7Vg7y7nFY7TFabCYLA,277
|
|
40
|
+
sandwitches/templates/components/language_dialog.html,sha256=iz-6QhFe4f_dsVhGDhVx6KKKLgQz4grX8tbIqSQjDsg,1184
|
|
41
|
+
sandwitches/templates/components/navbar.html,sha256=CtWqAmPke7nm-UqSvGGl6TPaNwT2Zqkw9UySOCA8hfo,1049
|
|
42
|
+
sandwitches/templates/components/rating_section.html,sha256=8O5IsFfQwnElMQZLnDpJiuCvvQMLa3jCS67u_RhMi7o,2717
|
|
43
|
+
sandwitches/templates/components/recipe_header.html,sha256=-LCp6KqkQO7a7yqR0jKUQ95-RczYU-_MFO058lE04_w,1473
|
|
44
|
+
sandwitches/templates/components/search_form.html,sha256=B8579Jo44gLrlmvkkc2-Vuv_QD93Ljt6F2J1WgTDV60,6617
|
|
45
|
+
sandwitches/templates/components/search_scripts.html,sha256=HvsO5e50DoTZeoFiYeNP5S8S5h7Zfr9VULOWKKR1i_M,3423
|
|
46
|
+
sandwitches/templates/components/side_menu.html,sha256=JyrhmyWLKKZj1yqriHqQc6Fv25TpmIgXNhoEdxrePVQ,1529
|
|
47
|
+
sandwitches/templates/components/user_menu.html,sha256=c20cBpyLheGvHdQ5nn-c4fjNlhfnAt3FAsw1V46rTwQ,369
|
|
48
|
+
sandwitches/templates/detail.html,sha256=g-O_RsW9Ix9ivWC0nZ4FwHY2NhgYZ3bEGLpqGY0JSxg,5642
|
|
49
|
+
sandwitches/templates/favorites.html,sha256=0cPpW07N6Isrb8XpvA5Eh97L2-12QFZ43EzeJvbOlXo,917
|
|
50
|
+
sandwitches/templates/index.html,sha256=7anU7k8s80JYk59Rwsm8EdlNYd7B5clCvV7pKq2IUy0,2518
|
|
51
|
+
sandwitches/templates/login.html,sha256=LiQskhkOkfx0EE4ssA1ToqQ3oEll08OPYLDIkLjHfU8,2177
|
|
52
|
+
sandwitches/templates/partials/recipe_list.html,sha256=AVzz_fIE4cBVU-E2E0VpE1tFmUV8jy7QpOninZEUMi8,3952
|
|
53
|
+
sandwitches/templates/recipe_form.html,sha256=TzdlzeSqUoJTDTuCdFbeF5jCBZUTZEtlTIC_IQM3WL8,4754
|
|
54
|
+
sandwitches/templates/setup.html,sha256=iNveFgePATsCSO4XMbGPa8TnWHyvj8S_5WwcW6i7pbo,4661
|
|
55
|
+
sandwitches/templates/signup.html,sha256=pNBSlRGZI_B5ccF3dWpUgWBcjODkdLlq7HhyJLYIHCI,6176
|
|
56
|
+
sandwitches/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
57
|
+
sandwitches/templatetags/custom_filters.py,sha256=0KDFlFz4b5LwlcURBAmzyYWKKea-LwydZytJGVkkuKA,243
|
|
58
|
+
sandwitches/templatetags/markdown_extras.py,sha256=0ibmRzxE3r85x4k7kK71R-9UT0CgeegYF7MHzj3juTI,344
|
|
59
|
+
sandwitches/urls.py,sha256=fT4JYLMrTS1IDgb3Ruivj69lXcW86Th44Lt4Kr6Tchs,3922
|
|
60
|
+
sandwitches/utils.py,sha256=SJP-TkeRZ0OIfaMigYrOSbxRqYXswoqoWhwll3nFuAM,7245
|
|
61
|
+
sandwitches/views.py,sha256=sQU4qU3p-zszHnTF67gqyhsPLw47CVd5mFM6OZqGrCI,20533
|
|
62
|
+
sandwitches/wsgi.py,sha256=Eyncpnahq_4s3Lr9ruB-R3Lu9j9zBXqgPbUj7qhIbwU,399
|
|
63
|
+
sandwitches-2.2.0.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
|
|
64
|
+
sandwitches-2.2.0.dist-info/METADATA,sha256=6tQwqwzy-aFz3fzZdlN4Aw2L8xOTV8sx_TRcUpAs730,3111
|
|
65
|
+
sandwitches-2.2.0.dist-info/RECORD,,
|