sandwitches 1.4.2__py3-none-any.whl → 1.5.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 +21 -2
- sandwitches/api.py +112 -6
- sandwitches/feeds.py +23 -0
- sandwitches/forms.py +110 -7
- sandwitches/locale/nl/LC_MESSAGES/django.mo +0 -0
- sandwitches/locale/nl/LC_MESSAGES/django.po +784 -134
- sandwitches/migrations/0001_initial.py +255 -2
- 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/models.py +48 -4
- sandwitches/settings.py +14 -5
- sandwitches/storage.py +44 -12
- 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 +80 -1
- sandwitches/templates/base_beer.html +57 -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 +31 -0
- sandwitches/templates/components/user_menu.html +10 -0
- sandwitches/templates/detail.html +167 -110
- sandwitches/templates/favorites.html +42 -0
- sandwitches/templates/index.html +28 -61
- sandwitches/templates/partials/recipe_list.html +87 -0
- sandwitches/templates/recipe_form.html +119 -0
- sandwitches/templates/setup.html +1 -1
- sandwitches/templates/signup.html +114 -31
- sandwitches/templatetags/custom_filters.py +15 -0
- sandwitches/urls.py +56 -0
- sandwitches/utils.py +222 -0
- sandwitches/views.py +503 -14
- sandwitches-1.5.0.dist-info/METADATA +104 -0
- sandwitches-1.5.0.dist-info/RECORD +62 -0
- sandwitches/migrations/0002_historicalrecipe.py +0 -61
- sandwitches/migrations/0003_rating.py +0 -57
- sandwitches/migrations/0004_add_uploaded_by.py +0 -25
- sandwitches/migrations/0005_historicalrecipe_uploaded_by.py +0 -27
- sandwitches/migrations/0006_profile.py +0 -48
- sandwitches/migrations/0007_alter_rating_score.py +0 -23
- sandwitches/migrations/0008_delete_profile.py +0 -15
- sandwitches/templates/base_pico.html +0 -260
- sandwitches/templates/form.html +0 -16
- sandwitches-1.4.2.dist-info/METADATA +0 -25
- sandwitches-1.4.2.dist-info/RECORD +0 -35
- {sandwitches-1.4.2.dist-info → sandwitches-1.5.0.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
sandwitches/__init__.py,sha256=YTDsQDSdJmxV2Z0dTbBqZhuJRuXcNLSKL0SX73Lu2u8,195
|
|
2
|
+
sandwitches/admin.py,sha256=3n73AD-j7vyajgoFdhPe3IXH6SFGIAq378gKDRr6ims,1852
|
|
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=ODrwV52TSBxIatmVp_5A_l7WcDh9m1D3vLgL22HwLHo,5880
|
|
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/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
15
|
+
sandwitches/models.py,sha256=MHx892trckPaIM-K5u8fFGj8HuLHi7SnPG5COP94Ung,7196
|
|
16
|
+
sandwitches/settings.py,sha256=av4Cjplj0pwfThvaNfxPXh7D-0GCE4y_smtcH_mVYWE,5761
|
|
17
|
+
sandwitches/storage.py,sha256=ibBG6tVtArqzgEKsRimZPwsqW7i9j4WiPLLHrOJchow,3578
|
|
18
|
+
sandwitches/tasks.py,sha256=8jHQougtywhsDyd-6W4VV-x5PCwwhNG3J99E0hzy_MA,3660
|
|
19
|
+
sandwitches/templates/admin/admin_base.html,sha256=saeKUBngPhkq2udPXuO8oQPEu4RqgJaY0cic_QLIVGo,4263
|
|
20
|
+
sandwitches/templates/admin/confirm_delete.html,sha256=ewP0rRxbeSst5x5ZmLyAbhUiSArevnN7VtkR00VdPMc,812
|
|
21
|
+
sandwitches/templates/admin/dashboard.html,sha256=9dfmXotisr1vZw88eHbnKC_k-3ZGewbixZrJMpHj-pI,6167
|
|
22
|
+
sandwitches/templates/admin/rating_list.html,sha256=ZTxu4emeYInlYyw7b19c8cYlj90fo1wtA-1BEJKZGt0,1256
|
|
23
|
+
sandwitches/templates/admin/recipe_form.html,sha256=VWwfVgmG8oC3nRVVCtVDLop0LS9ctdy6-QhbfhQ7k8I,7617
|
|
24
|
+
sandwitches/templates/admin/recipe_list.html,sha256=HDOmhK-XEPwTv1CCBqTXK79pLoH5y2xKPFjjue0HFeQ,2454
|
|
25
|
+
sandwitches/templates/admin/tag_form.html,sha256=JRWgAl4fz_Oy-Kuo1K6Mex_CXdsHMABzzyPazthr1Kg,989
|
|
26
|
+
sandwitches/templates/admin/tag_list.html,sha256=ttxwXgfdxkEs4Cmrz5RHaGmaqLd7JDmWhjv80XIQqyw,1246
|
|
27
|
+
sandwitches/templates/admin/task_detail.html,sha256=1tU57R_EBw6v7PKvY7Ucf6BJYDbf_K9KXY_0qq2dHEA,3861
|
|
28
|
+
sandwitches/templates/admin/task_list.html,sha256=3YF7YQ3nbXnWjApKeA07Z7HkhdMuH4s6sLoN7gwg0eE,1535
|
|
29
|
+
sandwitches/templates/admin/user_form.html,sha256=7_6GShLROFeJJexL1XLFUXdW9_lYF87eT6cigB5bQo4,1314
|
|
30
|
+
sandwitches/templates/admin/user_list.html,sha256=6O1YctULY-tqJnagybJof9ERA_NL1LX_a8cAu6_aWVQ,2193
|
|
31
|
+
sandwitches/templates/base.html,sha256=Z_odI29O3HkCKUN0Wk3ETdWOfC5QD7FIHp0i5Xr0eoU,3218
|
|
32
|
+
sandwitches/templates/base_beer.html,sha256=gHangI-Q089WqLv7gfboInKGgyUbQt0H5Rqlb-dP6Ls,2077
|
|
33
|
+
sandwitches/templates/components/favorites_search_form.html,sha256=vX-yG7QYxfWsJUTjLrazenkDPZAHosdHGY76RWg19UI,5249
|
|
34
|
+
sandwitches/templates/components/footer.html,sha256=Qk-myRtXS6-1b3fMowVGnSuFb_UkUgX6BYX9zgh_SV8,486
|
|
35
|
+
sandwitches/templates/components/ingredients_scripts.html,sha256=BaWiNbWOYarqZOIkdR8yfv-bwQ4OdfHg0GOOCzGyZO8,1837
|
|
36
|
+
sandwitches/templates/components/ingredients_section.html,sha256=XsaVXTs9MIwjfJeLjlzah3GWWj8oFU-_HJd9i9l1HAo,665
|
|
37
|
+
sandwitches/templates/components/instructions_section.html,sha256=RFlA4uPiI6vf1e2QgiD5KzGoy7Vg7y7nFY7TFabCYLA,277
|
|
38
|
+
sandwitches/templates/components/language_dialog.html,sha256=iz-6QhFe4f_dsVhGDhVx6KKKLgQz4grX8tbIqSQjDsg,1184
|
|
39
|
+
sandwitches/templates/components/navbar.html,sha256=8ugRB2g_pI4VohCq3yj8yrPnKr8t3Q440G3VDtKG7vo,1057
|
|
40
|
+
sandwitches/templates/components/rating_section.html,sha256=Z_YDkmcSC1sNN5LR-3pnnb4gRB-SO95XBY3dbnINnBc,2733
|
|
41
|
+
sandwitches/templates/components/recipe_header.html,sha256=-LCp6KqkQO7a7yqR0jKUQ95-RczYU-_MFO058lE04_w,1473
|
|
42
|
+
sandwitches/templates/components/search_form.html,sha256=OqsrpG-eKtSedZ9k0ee1WrezOokuESrvKi62U1VA-B4,6665
|
|
43
|
+
sandwitches/templates/components/search_scripts.html,sha256=qDIqcOg3QEWS5bfJkJ3zFmWpt1UOiLs_vahOc-MtxZs,3463
|
|
44
|
+
sandwitches/templates/components/side_menu.html,sha256=0dfmsi4e4YY70Fbfqrxehj3d99lSkqgucm5hY9W1Lt8,1332
|
|
45
|
+
sandwitches/templates/components/user_menu.html,sha256=c20cBpyLheGvHdQ5nn-c4fjNlhfnAt3FAsw1V46rTwQ,369
|
|
46
|
+
sandwitches/templates/detail.html,sha256=w3e8tLZSbdHv3PVrzo-M1MSOsZPUbJCmvvrCYLiYhxk,5709
|
|
47
|
+
sandwitches/templates/favorites.html,sha256=0cPpW07N6Isrb8XpvA5Eh97L2-12QFZ43EzeJvbOlXo,917
|
|
48
|
+
sandwitches/templates/index.html,sha256=_ERrYj2iy_UWyIT_xVPNtBEggXDDVMSo61t7vEDdUTY,898
|
|
49
|
+
sandwitches/templates/partials/recipe_list.html,sha256=QoQNx1FP7viRgTp7Bpe20ECB9EZRt6vX-6jGxjd3WAQ,4001
|
|
50
|
+
sandwitches/templates/recipe_form.html,sha256=7-w5o3lfTJB3bTpL7UuMsin8ruHahaCXehp_RzeWjCA,4786
|
|
51
|
+
sandwitches/templates/setup.html,sha256=juoqntk47lsO3DTicL3k-_9HBLPlG-A-FhL2xqbIAoQ,1871
|
|
52
|
+
sandwitches/templates/signup.html,sha256=GKzTZVczL6ovmAK2wT1t7VTIJgwotS16lsOC66AnYHc,6213
|
|
53
|
+
sandwitches/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
|
+
sandwitches/templatetags/custom_filters.py,sha256=0KDFlFz4b5LwlcURBAmzyYWKKea-LwydZytJGVkkuKA,243
|
|
55
|
+
sandwitches/templatetags/markdown_extras.py,sha256=0ibmRzxE3r85x4k7kK71R-9UT0CgeegYF7MHzj3juTI,344
|
|
56
|
+
sandwitches/urls.py,sha256=uhzsVpKC8Vo6ReDZk3BMg9Pxg4uSrFO8rUdNm18h-xI,3710
|
|
57
|
+
sandwitches/utils.py,sha256=SJP-TkeRZ0OIfaMigYrOSbxRqYXswoqoWhwll3nFuAM,7245
|
|
58
|
+
sandwitches/views.py,sha256=BpJkrBVXYoDMFborpH0FEaYT5xk0Dg4adCurXbFl4-o,20215
|
|
59
|
+
sandwitches/wsgi.py,sha256=Eyncpnahq_4s3Lr9ruB-R3Lu9j9zBXqgPbUj7qhIbwU,399
|
|
60
|
+
sandwitches-1.5.0.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
|
|
61
|
+
sandwitches-1.5.0.dist-info/METADATA,sha256=n-yUZ7iZePRdJlahDX2Zm7Cr-TBXh7Mueu6ETdgwaWs,3111
|
|
62
|
+
sandwitches-1.5.0.dist-info/RECORD,,
|
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
# Generated by Django 5.2.8 on 2025-11-10 18:55
|
|
2
|
-
|
|
3
|
-
import django.db.models.deletion
|
|
4
|
-
import simple_history.models
|
|
5
|
-
from django.conf import settings
|
|
6
|
-
from django.db import migrations, models
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class Migration(migrations.Migration):
|
|
10
|
-
dependencies = [
|
|
11
|
-
("sandwitches", "0001_initial"),
|
|
12
|
-
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
13
|
-
]
|
|
14
|
-
|
|
15
|
-
operations = [
|
|
16
|
-
migrations.CreateModel(
|
|
17
|
-
name="HistoricalRecipe",
|
|
18
|
-
fields=[
|
|
19
|
-
(
|
|
20
|
-
"id",
|
|
21
|
-
models.BigIntegerField(
|
|
22
|
-
auto_created=True, blank=True, db_index=True, verbose_name="ID"
|
|
23
|
-
),
|
|
24
|
-
),
|
|
25
|
-
("title", models.CharField(db_index=True, max_length=255)),
|
|
26
|
-
("slug", models.SlugField(blank=True, max_length=255)),
|
|
27
|
-
("description", models.TextField(blank=True)),
|
|
28
|
-
("ingredients", models.TextField(blank=True)),
|
|
29
|
-
("instructions", models.TextField(blank=True)),
|
|
30
|
-
("image", models.TextField(blank=True, max_length=100, null=True)),
|
|
31
|
-
("created_at", models.DateTimeField(blank=True, editable=False)),
|
|
32
|
-
("updated_at", models.DateTimeField(blank=True, editable=False)),
|
|
33
|
-
("history_id", models.AutoField(primary_key=True, serialize=False)),
|
|
34
|
-
("history_date", models.DateTimeField(db_index=True)),
|
|
35
|
-
("history_change_reason", models.CharField(max_length=100, null=True)),
|
|
36
|
-
(
|
|
37
|
-
"history_type",
|
|
38
|
-
models.CharField(
|
|
39
|
-
choices=[("+", "Created"), ("~", "Changed"), ("-", "Deleted")],
|
|
40
|
-
max_length=1,
|
|
41
|
-
),
|
|
42
|
-
),
|
|
43
|
-
(
|
|
44
|
-
"history_user",
|
|
45
|
-
models.ForeignKey(
|
|
46
|
-
null=True,
|
|
47
|
-
on_delete=django.db.models.deletion.SET_NULL,
|
|
48
|
-
related_name="+",
|
|
49
|
-
to=settings.AUTH_USER_MODEL,
|
|
50
|
-
),
|
|
51
|
-
),
|
|
52
|
-
],
|
|
53
|
-
options={
|
|
54
|
-
"verbose_name": "historical Recipe",
|
|
55
|
-
"verbose_name_plural": "historical Recipes",
|
|
56
|
-
"ordering": ("-history_date", "-history_id"),
|
|
57
|
-
"get_latest_by": ("history_date", "history_id"),
|
|
58
|
-
},
|
|
59
|
-
bases=(simple_history.models.HistoricalChanges, models.Model),
|
|
60
|
-
),
|
|
61
|
-
]
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
# Generated by Django 6.0 on 2025-12-21 21:17
|
|
2
|
-
|
|
3
|
-
import django.db.models.deletion
|
|
4
|
-
from django.conf import settings
|
|
5
|
-
from django.db import migrations, models
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class Migration(migrations.Migration):
|
|
9
|
-
dependencies = [
|
|
10
|
-
("sandwitches", "0002_historicalrecipe"),
|
|
11
|
-
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
12
|
-
]
|
|
13
|
-
|
|
14
|
-
operations = [
|
|
15
|
-
migrations.CreateModel(
|
|
16
|
-
name="Rating",
|
|
17
|
-
fields=[
|
|
18
|
-
(
|
|
19
|
-
"id",
|
|
20
|
-
models.BigAutoField(
|
|
21
|
-
auto_created=True,
|
|
22
|
-
primary_key=True,
|
|
23
|
-
serialize=False,
|
|
24
|
-
verbose_name="ID",
|
|
25
|
-
),
|
|
26
|
-
),
|
|
27
|
-
(
|
|
28
|
-
"score",
|
|
29
|
-
models.PositiveSmallIntegerField(
|
|
30
|
-
choices=[(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)]
|
|
31
|
-
),
|
|
32
|
-
),
|
|
33
|
-
("created_at", models.DateTimeField(auto_now_add=True)),
|
|
34
|
-
("updated_at", models.DateTimeField(auto_now=True)),
|
|
35
|
-
(
|
|
36
|
-
"recipe",
|
|
37
|
-
models.ForeignKey(
|
|
38
|
-
on_delete=django.db.models.deletion.CASCADE,
|
|
39
|
-
related_name="ratings",
|
|
40
|
-
to="sandwitches.recipe",
|
|
41
|
-
),
|
|
42
|
-
),
|
|
43
|
-
(
|
|
44
|
-
"user",
|
|
45
|
-
models.ForeignKey(
|
|
46
|
-
on_delete=django.db.models.deletion.CASCADE,
|
|
47
|
-
related_name="ratings",
|
|
48
|
-
to=settings.AUTH_USER_MODEL,
|
|
49
|
-
),
|
|
50
|
-
),
|
|
51
|
-
],
|
|
52
|
-
options={
|
|
53
|
-
"ordering": ("-updated_at",),
|
|
54
|
-
"unique_together": {("recipe", "user")},
|
|
55
|
-
},
|
|
56
|
-
),
|
|
57
|
-
]
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# Generated by ChatGPT — add uploaded_by to Recipe
|
|
2
|
-
from django.conf import settings
|
|
3
|
-
from django.db import migrations, models
|
|
4
|
-
import django.db.models.deletion
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class Migration(migrations.Migration):
|
|
8
|
-
dependencies = [
|
|
9
|
-
("sandwitches", "0003_rating"),
|
|
10
|
-
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
11
|
-
]
|
|
12
|
-
|
|
13
|
-
operations = [
|
|
14
|
-
migrations.AddField(
|
|
15
|
-
model_name="recipe",
|
|
16
|
-
name="uploaded_by",
|
|
17
|
-
field=models.ForeignKey(
|
|
18
|
-
blank=True,
|
|
19
|
-
null=True,
|
|
20
|
-
on_delete=django.db.models.deletion.SET_NULL,
|
|
21
|
-
related_name="recipes",
|
|
22
|
-
to=settings.AUTH_USER_MODEL,
|
|
23
|
-
),
|
|
24
|
-
),
|
|
25
|
-
]
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# Generated by Django 6.0 on 2025-12-28 18:36
|
|
2
|
-
|
|
3
|
-
import django.db.models.deletion
|
|
4
|
-
from django.conf import settings
|
|
5
|
-
from django.db import migrations, models
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class Migration(migrations.Migration):
|
|
9
|
-
dependencies = [
|
|
10
|
-
("sandwitches", "0004_add_uploaded_by"),
|
|
11
|
-
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
12
|
-
]
|
|
13
|
-
|
|
14
|
-
operations = [
|
|
15
|
-
migrations.AddField(
|
|
16
|
-
model_name="historicalrecipe",
|
|
17
|
-
name="uploaded_by",
|
|
18
|
-
field=models.ForeignKey(
|
|
19
|
-
blank=True,
|
|
20
|
-
db_constraint=False,
|
|
21
|
-
null=True,
|
|
22
|
-
on_delete=django.db.models.deletion.DO_NOTHING,
|
|
23
|
-
related_name="+",
|
|
24
|
-
to=settings.AUTH_USER_MODEL,
|
|
25
|
-
),
|
|
26
|
-
),
|
|
27
|
-
]
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# Generated by Django 6.0 on 2025-12-29 17:38
|
|
2
|
-
|
|
3
|
-
import django.db.models.deletion
|
|
4
|
-
from django.conf import settings
|
|
5
|
-
from django.db import migrations, models
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class Migration(migrations.Migration):
|
|
9
|
-
dependencies = [
|
|
10
|
-
("sandwitches", "0005_historicalrecipe_uploaded_by"),
|
|
11
|
-
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
12
|
-
]
|
|
13
|
-
|
|
14
|
-
operations = [
|
|
15
|
-
migrations.CreateModel(
|
|
16
|
-
name="Profile",
|
|
17
|
-
fields=[
|
|
18
|
-
(
|
|
19
|
-
"id",
|
|
20
|
-
models.BigAutoField(
|
|
21
|
-
auto_created=True,
|
|
22
|
-
primary_key=True,
|
|
23
|
-
serialize=False,
|
|
24
|
-
verbose_name="ID",
|
|
25
|
-
),
|
|
26
|
-
),
|
|
27
|
-
(
|
|
28
|
-
"avatar",
|
|
29
|
-
models.ImageField(blank=True, null=True, upload_to="avatars"),
|
|
30
|
-
),
|
|
31
|
-
("bio", models.TextField(blank=True)),
|
|
32
|
-
("created_at", models.DateTimeField(auto_now_add=True)),
|
|
33
|
-
("updated_at", models.DateTimeField(auto_now=True)),
|
|
34
|
-
(
|
|
35
|
-
"user",
|
|
36
|
-
models.OneToOneField(
|
|
37
|
-
on_delete=django.db.models.deletion.CASCADE,
|
|
38
|
-
related_name="profile",
|
|
39
|
-
to=settings.AUTH_USER_MODEL,
|
|
40
|
-
),
|
|
41
|
-
),
|
|
42
|
-
],
|
|
43
|
-
options={
|
|
44
|
-
"verbose_name": "Profile",
|
|
45
|
-
"verbose_name_plural": "Profiles",
|
|
46
|
-
},
|
|
47
|
-
),
|
|
48
|
-
]
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
# Generated by Django 6.0 on 2025-12-29 17:58
|
|
2
|
-
|
|
3
|
-
import django.core.validators
|
|
4
|
-
from django.db import migrations, models
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
class Migration(migrations.Migration):
|
|
8
|
-
dependencies = [
|
|
9
|
-
("sandwitches", "0006_profile"),
|
|
10
|
-
]
|
|
11
|
-
|
|
12
|
-
operations = [
|
|
13
|
-
migrations.AlterField(
|
|
14
|
-
model_name="rating",
|
|
15
|
-
name="score",
|
|
16
|
-
field=models.FloatField(
|
|
17
|
-
validators=[
|
|
18
|
-
django.core.validators.MinValueValidator(0.0),
|
|
19
|
-
django.core.validators.MaxValueValidator(10.0),
|
|
20
|
-
]
|
|
21
|
-
),
|
|
22
|
-
),
|
|
23
|
-
]
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
# Generated by Django 6.0 on 2026-01-03 15:24
|
|
2
|
-
|
|
3
|
-
from django.db import migrations
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class Migration(migrations.Migration):
|
|
7
|
-
dependencies = [
|
|
8
|
-
("sandwitches", "0007_alter_rating_score"),
|
|
9
|
-
]
|
|
10
|
-
|
|
11
|
-
operations = [
|
|
12
|
-
migrations.DeleteModel(
|
|
13
|
-
name="Profile",
|
|
14
|
-
),
|
|
15
|
-
]
|
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
{% extends "base.html" %} {% load i18n static %} {% block extra_head %}
|
|
2
|
-
<!-- Pico.css (CDN) -->
|
|
3
|
-
<link
|
|
4
|
-
rel="stylesheet"
|
|
5
|
-
href="https://unpkg.com/@picocss/pico@1.*/css/pico.min.css"
|
|
6
|
-
/>
|
|
7
|
-
<style>
|
|
8
|
-
:root {
|
|
9
|
-
--card-radius: 12px;
|
|
10
|
-
--card-shadow-sm: 0 6px 18px rgba(15, 23, 42, 0.06);
|
|
11
|
-
--card-shadow-lg: 0 18px 40px rgba(15, 23, 42, 0.12);
|
|
12
|
-
--accent: #ff7a18;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/* responsive grid for cards */
|
|
16
|
-
section.grid {
|
|
17
|
-
display: grid;
|
|
18
|
-
gap: 1.25rem;
|
|
19
|
-
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
|
|
20
|
-
align-items: start;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/* unified card */
|
|
24
|
-
article.card {
|
|
25
|
-
background: var(--pico-card-background);
|
|
26
|
-
border-radius: var(--card-radius);
|
|
27
|
-
overflow: hidden;
|
|
28
|
-
padding: 0.12rem 0.45rem;
|
|
29
|
-
box-shadow: var(--card-shadow-sm);
|
|
30
|
-
transition: transform 0.18s ease, box-shadow 0.18s ease;
|
|
31
|
-
display: flex;
|
|
32
|
-
flex-direction: column;
|
|
33
|
-
border: 1px solid rgba(0, 0, 0, 0.04);
|
|
34
|
-
}
|
|
35
|
-
article.card:hover {
|
|
36
|
-
transform: translateY(-8px);
|
|
37
|
-
box-shadow: var(--card-shadow-lg);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/* image area on top */
|
|
41
|
-
.recipe-figure {
|
|
42
|
-
width: 100%;
|
|
43
|
-
display: block;
|
|
44
|
-
position: relative;
|
|
45
|
-
background: #f6f6f6;
|
|
46
|
-
flex: 0 0 auto;
|
|
47
|
-
}
|
|
48
|
-
.recipe-figure img {
|
|
49
|
-
width: 100%;
|
|
50
|
-
height: auto;
|
|
51
|
-
object-fit: cover;
|
|
52
|
-
display: block;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/* card body below image */
|
|
56
|
-
.card-body {
|
|
57
|
-
padding: 0.05rem 0.05rem;
|
|
58
|
-
display: flex;
|
|
59
|
-
flex-direction: column;
|
|
60
|
-
gap: 0.4rem;
|
|
61
|
-
min-height: 64px;
|
|
62
|
-
flex: 1 1 auto;
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
.card-title,
|
|
66
|
-
article header {
|
|
67
|
-
margin: 0;
|
|
68
|
-
font-size: 1.02rem;
|
|
69
|
-
line-height: 1.2;
|
|
70
|
-
font-weight: 600;
|
|
71
|
-
color: inherit;
|
|
72
|
-
word-break: break-word;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/* compact chips */
|
|
76
|
-
.chip,
|
|
77
|
-
.tag {
|
|
78
|
-
display: inline-block;
|
|
79
|
-
padding: 0.12rem 0.45rem;
|
|
80
|
-
margin: 0 0.35rem 0.35rem 0;
|
|
81
|
-
border-radius: 999px;
|
|
82
|
-
font-size: 0.78rem;
|
|
83
|
-
line-height: 1;
|
|
84
|
-
white-space: nowrap;
|
|
85
|
-
overflow: hidden;
|
|
86
|
-
text-overflow: ellipsis;
|
|
87
|
-
max-width: 9.5rem;
|
|
88
|
-
vertical-align: middle;
|
|
89
|
-
border: 1px solid rgba(0, 0, 0, 0.06);
|
|
90
|
-
background: rgba(0, 0, 0, 0.03);
|
|
91
|
-
color: rgba(0, 0, 0, 0.85);
|
|
92
|
-
}
|
|
93
|
-
.chip--accent {
|
|
94
|
-
background: rgba(255, 122, 24, 0.09);
|
|
95
|
-
color: var(--accent);
|
|
96
|
-
border-color: rgba(255, 122, 24, 0.12);
|
|
97
|
-
}
|
|
98
|
-
.tags-row {
|
|
99
|
-
display: flex;
|
|
100
|
-
flex-wrap: wrap;
|
|
101
|
-
gap: 0.15rem;
|
|
102
|
-
align-items: center;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
footer.card-footer,
|
|
106
|
-
article.card footer {
|
|
107
|
-
padding: 0.5rem 0.9rem;
|
|
108
|
-
border-top: 1px solid rgba(0, 0, 0, 0.04);
|
|
109
|
-
background: rgba(0, 0, 0, 0.01);
|
|
110
|
-
display: flex;
|
|
111
|
-
justify-content: flex-start;
|
|
112
|
-
gap: 1rem;
|
|
113
|
-
flex: 0 0 auto;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
footer a {
|
|
117
|
-
font-weight: 600;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
@media (min-width: 900px) {
|
|
121
|
-
.recipe-figure img {
|
|
122
|
-
height: 200px;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
@media (min-width: 1200px) {
|
|
126
|
-
.recipe-figure img {
|
|
127
|
-
height: 220px;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
</style>
|
|
131
|
-
<link rel="icon" type="image/svg+xml" href="{% static "icons/favicon.svg" %}">
|
|
132
|
-
{% endblock %} {% block navbar %}
|
|
133
|
-
<header class="container">
|
|
134
|
-
<nav>
|
|
135
|
-
<ul>
|
|
136
|
-
<li>
|
|
137
|
-
<a href="{% url 'index' %}"><strong>Sandwitches</strong></a>
|
|
138
|
-
</li>
|
|
139
|
-
</ul>
|
|
140
|
-
<ul class="icons">
|
|
141
|
-
<li>
|
|
142
|
-
<a
|
|
143
|
-
rel="noopener noreferrer"
|
|
144
|
-
class="contrast"
|
|
145
|
-
aria-label="GitHub repository"
|
|
146
|
-
href="https://github.com/martynvdijke/sandwitches"
|
|
147
|
-
target="_blank"
|
|
148
|
-
><svg
|
|
149
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
150
|
-
height="24"
|
|
151
|
-
width="24.25"
|
|
152
|
-
viewBox="0 0 496 512"
|
|
153
|
-
class="icon-github"
|
|
154
|
-
>
|
|
155
|
-
<path
|
|
156
|
-
d="M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"
|
|
157
|
-
></path></svg
|
|
158
|
-
></a>
|
|
159
|
-
</li>
|
|
160
|
-
<li>
|
|
161
|
-
<a
|
|
162
|
-
href="#"
|
|
163
|
-
id="theme-toggle"
|
|
164
|
-
aria-label="Toggle theme"
|
|
165
|
-
role="button"
|
|
166
|
-
title="Toggle theme"
|
|
167
|
-
>☀️</a
|
|
168
|
-
>
|
|
169
|
-
</li>
|
|
170
|
-
</ul>
|
|
171
|
-
<ul>
|
|
172
|
-
<li>
|
|
173
|
-
<form method="post" action="{% url 'set_language' %}">
|
|
174
|
-
{% csrf_token %}
|
|
175
|
-
<select name="language" onchange="this.form.submit()" aria-label="{% trans 'Language' %}">
|
|
176
|
-
{% get_current_language as LANGUAGE_CODE %}
|
|
177
|
-
{% get_available_languages as LANGUAGES %}
|
|
178
|
-
{% for code,name in LANGUAGES %}
|
|
179
|
-
<option value="{{ code }}"{% if code == LANGUAGE_CODE %} selected{% endif %}>{{ name }}</option>
|
|
180
|
-
{% endfor %}
|
|
181
|
-
</select>
|
|
182
|
-
<input type="hidden" name="next" value="{{ request.get_full_path }}" />
|
|
183
|
-
</form>
|
|
184
|
-
</li>
|
|
185
|
-
<li><a href="api/docs">{% trans "Docs" %}</a></li>
|
|
186
|
-
{% if user.is_authenticated %}
|
|
187
|
-
<li><a href="{% url 'admin:index' %}">{% trans "Admin" %}</a></li>
|
|
188
|
-
<li><a href="{% url 'admin:logout' %}">{% trans "Logout" %}</a></li>
|
|
189
|
-
{% else %}
|
|
190
|
-
<li><a href="{% url 'admin:login' %}">{% trans "Login" %}</a></li>
|
|
191
|
-
<li><a href="{% url 'signup' %}">{% trans "Sign up" %}</a></li>
|
|
192
|
-
{% endif %}
|
|
193
|
-
</ul>
|
|
194
|
-
</nav>
|
|
195
|
-
</header>
|
|
196
|
-
|
|
197
|
-
<script>
|
|
198
|
-
// Simple toggle-style theme switcher (stores choice in localStorage)
|
|
199
|
-
const themeSwitcher = {
|
|
200
|
-
localStorageKey: "picoPreferredColorScheme",
|
|
201
|
-
buttonSelector: "#theme-toggle",
|
|
202
|
-
rootAttribute: "data-theme",
|
|
203
|
-
init() {
|
|
204
|
-
// read saved choice, fallback to system preference
|
|
205
|
-
const saved = window.localStorage?.getItem(this.localStorageKey);
|
|
206
|
-
this._scheme =
|
|
207
|
-
saved ??
|
|
208
|
-
(window.matchMedia &&
|
|
209
|
-
window.matchMedia("(prefers-color-scheme: dark)").matches
|
|
210
|
-
? "dark"
|
|
211
|
-
: "light");
|
|
212
|
-
this.applyScheme();
|
|
213
|
-
this.initButton();
|
|
214
|
-
},
|
|
215
|
-
initButton() {
|
|
216
|
-
const btn = document.querySelector(this.buttonSelector);
|
|
217
|
-
if (!btn) return;
|
|
218
|
-
this.updateButton(btn);
|
|
219
|
-
btn.addEventListener("click", (e) => {
|
|
220
|
-
e.preventDefault();
|
|
221
|
-
this.toggle();
|
|
222
|
-
this.updateButton(btn);
|
|
223
|
-
});
|
|
224
|
-
// react to storage changes from other tabs
|
|
225
|
-
window.addEventListener("storage", (ev) => {
|
|
226
|
-
if (ev.key === this.localStorageKey) {
|
|
227
|
-
this._scheme =
|
|
228
|
-
ev.newValue ||
|
|
229
|
-
(window.matchMedia &&
|
|
230
|
-
window.matchMedia("(prefers-color-scheme: dark)").matches
|
|
231
|
-
? "dark"
|
|
232
|
-
: "light");
|
|
233
|
-
this.applyScheme();
|
|
234
|
-
this.updateButton(document.querySelector(this.buttonSelector));
|
|
235
|
-
}
|
|
236
|
-
});
|
|
237
|
-
},
|
|
238
|
-
toggle() {
|
|
239
|
-
this._scheme = this._scheme === "dark" ? "light" : "dark";
|
|
240
|
-
this.applyScheme();
|
|
241
|
-
window.localStorage?.setItem(this.localStorageKey, this._scheme);
|
|
242
|
-
},
|
|
243
|
-
applyScheme() {
|
|
244
|
-
document.documentElement?.setAttribute(this.rootAttribute, this._scheme);
|
|
245
|
-
},
|
|
246
|
-
updateButton(btn) {
|
|
247
|
-
if (!btn) return;
|
|
248
|
-
btn.textContent = this._scheme === "dark" ? "🌙" : "☀️";
|
|
249
|
-
btn.title =
|
|
250
|
-
this._scheme === "dark" ? "Switch to light" : "Switch to dark";
|
|
251
|
-
btn.setAttribute(
|
|
252
|
-
"aria-pressed",
|
|
253
|
-
this._scheme === "dark" ? "true" : "false"
|
|
254
|
-
);
|
|
255
|
-
},
|
|
256
|
-
};
|
|
257
|
-
themeSwitcher.init();
|
|
258
|
-
</script>
|
|
259
|
-
{% endblock %} {% block extra_scripts %} {% block page_scripts %}{% endblock %}
|
|
260
|
-
{% endblock %}
|
sandwitches/templates/form.html
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html>
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8" />
|
|
5
|
-
<title>{% trans "Edit" %}</title>
|
|
6
|
-
</head>
|
|
7
|
-
<body>
|
|
8
|
-
{% load i18n %}
|
|
9
|
-
<h1>{% trans "Edit Recipe:" %} {{ recipe.title }}</h1>
|
|
10
|
-
<form method="post" enctype="multipart/form-data">
|
|
11
|
-
{% csrf_token %} {{ form.as_p }}
|
|
12
|
-
<button type="submit">{% trans "Save" %}</button>
|
|
13
|
-
<a href="{% url 'recipes:admin_list' %}">{% trans "Cancel" %}</a>
|
|
14
|
-
</form>
|
|
15
|
-
</body>
|
|
16
|
-
</html>
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.3
|
|
2
|
-
Name: sandwitches
|
|
3
|
-
Version: 1.4.2
|
|
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>=6.0.0
|
|
15
|
-
Requires-Dist: gunicorn>=23.0.0
|
|
16
|
-
Requires-Dist: markdown>=3.10
|
|
17
|
-
Requires-Dist: pillow>=12.0.0
|
|
18
|
-
Requires-Dist: uvicorn>=0.40.0
|
|
19
|
-
Requires-Dist: whitenoise[brotli]>=6.11.0
|
|
20
|
-
Requires-Python: >=3.12
|
|
21
|
-
Description-Content-Type: text/markdown
|
|
22
|
-
|
|
23
|
-
# broodjes.vandijke.xyz
|
|
24
|
-
|
|
25
|
-
Website files for broodjes.vandijke.xyz
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
sandwitches/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
sandwitches/admin.py,sha256=modm8vYd0CPainUUR5k0dxeO6vUu2GQuTT2kYhGeP5M,1399
|
|
3
|
-
sandwitches/api.py,sha256=YDadi-3f2Oz4ia5gXo_rgXVZkZ6LAOiOWraz9bpZzho,2404
|
|
4
|
-
sandwitches/asgi.py,sha256=cygnXdXSSVspM7ZXuj47Ef6oz7HSTw4D7BPzgE2PU5w,399
|
|
5
|
-
sandwitches/forms.py,sha256=kYzotFafLyNli4a62PsL5hTqUXyno5jPqIwSv04vYaA,2749
|
|
6
|
-
sandwitches/locale/nl/LC_MESSAGES/django.mo,sha256=VdPE_fBnGxHPtizXpYA6E3RtduAoaVOtKTfQIgTa0yM,6934
|
|
7
|
-
sandwitches/locale/nl/LC_MESSAGES/django.po,sha256=8tJzlyUxyTZkyGQWSpxNU-uYhiFpPPzphiiPewUsZ3o,10303
|
|
8
|
-
sandwitches/migrations/0001_initial.py,sha256=01IfkFbUyYMpTHV5GaBxJEKjzRIdUdPR5sY3AUTODww,2546
|
|
9
|
-
sandwitches/migrations/0002_historicalrecipe.py,sha256=yU2KYssfjYhPXRYN6C8IMRFr-4QUGJozz-O167XuabM,2499
|
|
10
|
-
sandwitches/migrations/0003_rating.py,sha256=iKk9M9lcBS5LwsJkMYsmYfHKqKs2QRTILgINbnilASM,1857
|
|
11
|
-
sandwitches/migrations/0004_add_uploaded_by.py,sha256=gZawakGU-H0Abnn2Bw_Mswy9ngipzUC-BHRXRByKVZo,720
|
|
12
|
-
sandwitches/migrations/0005_historicalrecipe_uploaded_by.py,sha256=xmYDXgBxjrQkbEtorQlDzW0K1Z70UNxRrUk75WjYdEI,766
|
|
13
|
-
sandwitches/migrations/0006_profile.py,sha256=gzmxZWXmjldimYRdovuNouc2Y2idihg8UvEaU0ad_Ds,1558
|
|
14
|
-
sandwitches/migrations/0007_alter_rating_score.py,sha256=hHdJqjTwq2afcBi7TRSBofAjedDxu5YybbXLhUoMGUg,588
|
|
15
|
-
sandwitches/migrations/0008_delete_profile.py,sha256=-vO3WqftSpDBic4Kx5HygmOhVtGEp60cihtv2TVpsWg,297
|
|
16
|
-
sandwitches/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
|
-
sandwitches/models.py,sha256=QWjaO7ONT_vsvEt_jJHJ6glUKtASC1ac_osIadhwbYM,5766
|
|
18
|
-
sandwitches/settings.py,sha256=hSwtZ_OSvwl8QIMs6wnNMLGvMrPADrQt1Swc5xOOcCg,5701
|
|
19
|
-
sandwitches/storage.py,sha256=HIiOEDa_LhpsbhCUBNO-SlCZDUJOoANUbyDIbspEcoE,2325
|
|
20
|
-
sandwitches/tasks.py,sha256=8jHQougtywhsDyd-6W4VV-x5PCwwhNG3J99E0hzy_MA,3660
|
|
21
|
-
sandwitches/templates/base.html,sha256=C9tUPfMKRvvdMqdDpE8ww21DH25bNktcVIwdrDEhajw,570
|
|
22
|
-
sandwitches/templates/base_pico.html,sha256=yeWlWlrCfI9yVLStSyODvcNtSmxXvWm4SZORZN-31R4,8273
|
|
23
|
-
sandwitches/templates/detail.html,sha256=arspmECgF-EuNDOv1shtIlj41oJE1V_tjbn-B8jjO5s,4653
|
|
24
|
-
sandwitches/templates/form.html,sha256=S4yUq9p2v7vWifhA5xj_Z4ObpMoaqUq2w08TDw3vk0o,449
|
|
25
|
-
sandwitches/templates/index.html,sha256=tgZFplcedG1r4s8pBc_qvJDXECPqrESPOSw56FnnCkw,2606
|
|
26
|
-
sandwitches/templates/setup.html,sha256=yv9mBAPCa_XGsa92Q43pWqB-T6SJKPHKz6qnAEz0-5c,1871
|
|
27
|
-
sandwitches/templates/signup.html,sha256=3qOdDMUHMshe2FoaQzR07lIm3Wbrzorb_h9Fp8Og-Eg,1585
|
|
28
|
-
sandwitches/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
29
|
-
sandwitches/templatetags/markdown_extras.py,sha256=0ibmRzxE3r85x4k7kK71R-9UT0CgeegYF7MHzj3juTI,344
|
|
30
|
-
sandwitches/urls.py,sha256=maKaIDfb_kNmMwrpS495TymuFnJJ6fbLoi5QRLjrFds,1582
|
|
31
|
-
sandwitches/views.py,sha256=7ukWJHBflhAM02j_ZGuoqlBEgN2QnIIq4VhtnvRU1rM,5194
|
|
32
|
-
sandwitches/wsgi.py,sha256=Eyncpnahq_4s3Lr9ruB-R3Lu9j9zBXqgPbUj7qhIbwU,399
|
|
33
|
-
sandwitches-1.4.2.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
|
|
34
|
-
sandwitches-1.4.2.dist-info/METADATA,sha256=p_b9GRyDSmtPb8WCFGs1pzj1vxBPyk1o9idnldR6NfQ,775
|
|
35
|
-
sandwitches-1.4.2.dist-info/RECORD,,
|
|
File without changes
|