sandwitches 2.3.1__py3-none-any.whl → 2.3.3__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/forms.py CHANGED
@@ -138,7 +138,7 @@ class RecipeForm(forms.ModelForm):
138
138
  "instructions",
139
139
  "price",
140
140
  "is_highlighted",
141
- "is_approved",
141
+ "is_community_made",
142
142
  "max_daily_orders",
143
143
  ]
144
144
  widgets = {
@@ -0,0 +1,22 @@
1
+ # Generated by Django 6.0.1 on 2026-01-24 15:32
2
+
3
+ from django.db import migrations
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+ dependencies = [
8
+ ("sandwitches", "0009_historicalrecipe_is_approved_recipe_is_approved"),
9
+ ]
10
+
11
+ operations = [
12
+ migrations.RenameField(
13
+ model_name="historicalrecipe",
14
+ old_name="is_approved",
15
+ new_name="is_community_made",
16
+ ),
17
+ migrations.RenameField(
18
+ model_name="recipe",
19
+ old_name="is_approved",
20
+ new_name="is_community_made",
21
+ ),
22
+ ]
@@ -0,0 +1,25 @@
1
+ # Generated by Django 6.0.1 on 2026-01-24 16:01
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+ dependencies = [
8
+ (
9
+ "sandwitches",
10
+ "0010_rename_is_approved_historicalrecipe_is_community_made_and_more",
11
+ ),
12
+ ]
13
+
14
+ operations = [
15
+ migrations.AlterField(
16
+ model_name="historicalrecipe",
17
+ name="is_community_made",
18
+ field=models.BooleanField(default=False),
19
+ ),
20
+ migrations.AlterField(
21
+ model_name="recipe",
22
+ name="is_community_made",
23
+ field=models.BooleanField(default=False),
24
+ ),
25
+ ]
sandwitches/models.py CHANGED
@@ -132,7 +132,7 @@ class Recipe(models.Model):
132
132
  )
133
133
  tags = models.ManyToManyField(Tag, blank=True, related_name="recipes")
134
134
  is_highlighted = models.BooleanField(default=False)
135
- is_approved = models.BooleanField(default=True)
135
+ is_community_made = models.BooleanField(default=False)
136
136
  max_daily_orders = models.PositiveIntegerField(
137
137
  null=True, blank=True, verbose_name="Max daily orders"
138
138
  )
@@ -2,15 +2,15 @@
2
2
  {% load i18n static %}
3
3
 
4
4
  {% block extra_head %}
5
- <link href="https://cdn.jsdelivr.net/npm/beercss@3.7.12/dist/cdn/beer.min.css" rel="stylesheet">
6
- <script type="module" src="https://cdn.jsdelivr.net/npm/beercss@3.7.12/dist/cdn/beer.min.js"></script>
7
- <script type="module" src="https://cdn.jsdelivr.net/npm/material-dynamic-colors@1.1.2/dist/cdn/material-dynamic-colors.min.js"></script>
8
- <script src="https://unpkg.com/htmx.org@2.0.8/dist/htmx.min.js"></script>
5
+ <link href="{% static "dist/main.css" %}" rel="stylesheet">
6
+ <script src="{% static "dist/main.js" %}" defer></script>
9
7
  <link rel="icon" type="image/svg+xml" href="{% static "icons/favicon.svg" %}">
10
8
  <style>
11
9
  main.container {
12
10
  padding-top: 2rem;
13
11
  padding-bottom: 2rem;
12
+ padding-left: 5%;
13
+ padding-right: 5%;
14
14
  }
15
15
  .admin-thumb {
16
16
  width: 80px;
@@ -1,9 +1,13 @@
1
1
  {% extends "admin/admin_base.html" %}
2
- {% load i18n %}
2
+ {% load i18n static %}
3
3
 
4
4
  {% block admin_title %}{% trans "Dashboard" %}{% endblock %}
5
5
 
6
-
6
+ {% block extra_head %}
7
+ {{ block.super }}
8
+ <link href="{% static "dist/main.css" %}" rel="stylesheet">
9
+ <script src="{% static "dist/main.js" %}" defer></script>
10
+ {% endblock %}
7
11
 
8
12
  {% block content %}
9
13
 
@@ -318,9 +322,3 @@
318
322
  </div>
319
323
 
320
324
  {% endblock %}
321
-
322
-
323
-
324
- {% block admin_scripts %}
325
- <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
326
- {% endblock %}
@@ -82,8 +82,8 @@
82
82
 
83
83
  <div class="field middle-align mt-1">
84
84
  <label class="checkbox">
85
- {{ form.is_approved }}
86
- <span>{{ form.is_approved.label }}</span>
85
+ {{ form.is_community_made }}
86
+ <span>{{ form.is_community_made.label }}</span>
87
87
  </label>
88
88
  </div>
89
89
  </article>
@@ -88,7 +88,7 @@
88
88
  </div>
89
89
  </td>
90
90
  <td class="min center-align">
91
- {% if recipe.is_approved %}
91
+ {% if recipe.is_community_made %}
92
92
  <i class="primary-text">check_circle</i>
93
93
  {% else %}
94
94
  <a href="{% url 'admin_recipe_approve' recipe.pk %}" class="button tiny primary round" onclick="event.stopPropagation();">
@@ -1,18 +1,15 @@
1
1
  {% extends "base_beer.html" %}
2
2
  {% load i18n %}
3
3
 
4
- {% block title %}{% trans "Edit Recipe" %}{% endblock %}
4
+ {% block title %}{% trans "Community" %}{% endblock %}
5
5
 
6
6
  {% block content %}
7
+ <main class="responsive">
7
8
  <div class="large-space"></div>
8
9
  <article class="round s12 m10 l8 offset-m1 offset-l2 elevate">
9
10
  <div class="padding">
10
11
  <h4 class="center-align">
11
- {% if recipe.pk %}
12
- {% trans "Edit Recipe:" %} {{ recipe.title }}
13
- {% else %}
14
- {% trans "New Recipe" %}
15
- {% endif %}
12
+ {% trans "Submit a Recipe" %}
16
13
  </h4>
17
14
  <div class="space"></div>
18
15
 
@@ -97,16 +94,27 @@
97
94
  <a href="javascript:history.back()" class="button transparent border round">{% trans "Cancel" %}</a>
98
95
  <button type="submit" class="button primary round">
99
96
  <i class="front">save</i>
100
- <span>{% trans "Save Recipe" %}</span>
97
+ <span>{% trans "Submit Recipe" %}</span>
101
98
  </button>
102
99
  </div>
103
100
  </form>
104
101
  </div>
105
102
  </article>
103
+
104
+
105
+ <div class="large-space"></div>
106
+
107
+ <h4 class="center-align">{% trans "Community Recipes" %}</h4>
108
+ <div class="space"></div>
109
+
110
+ {% include "partials/recipe_list.html" %}
111
+
106
112
  <div class="large-space"></div>
107
113
 
108
114
  {% endblock %}
109
115
 
116
+ </main>
117
+
110
118
  {% block page_scripts %}
111
119
  <script>
112
120
  // Image Preview Logic
@@ -15,9 +15,9 @@
15
15
  <i class="extra padding">favorite</i>
16
16
  <span class="large-text">{% trans "Favorites" %}</span>
17
17
  </a>
18
- <a href="{% url 'submit_recipe' %}" class="padding {% if request.resolver_match.url_name == 'submit_recipe' %}active{% endif %}">
19
- <i class="extra padding">add_circle</i>
20
- <span class="large-text">{% trans "Submit Recipe" %}</span>
18
+ <a href="{% url 'community' %}" class="padding {% if request.resolver_match.url_name == 'community' %}active{% endif %}">
19
+ <i class="extra padding">group</i>
20
+ <span class="large-text">{% trans "Community" %}</span>
21
21
  </a>
22
22
  {% endif %}
23
23
  <a href="/api/docs" class="padding">
sandwitches/urls.py CHANGED
@@ -34,7 +34,7 @@ urlpatterns = [
34
34
  path("login/", views.CustomLoginView.as_view(), name="login"),
35
35
  path("logout/", LogoutView.as_view(next_page="index"), name="logout"),
36
36
  path("profile/", views.user_profile, name="user_profile"),
37
- path("submit-recipe/", views.submit_recipe, name="submit_recipe"),
37
+ path("community/", views.community, name="community"),
38
38
  path("admin/", admin.site.urls),
39
39
  path("api/", api.urls),
40
40
  path("media/<path:file_path>", views.media, name="media"),
sandwitches/views.py CHANGED
@@ -36,13 +36,13 @@ User = get_user_model()
36
36
 
37
37
 
38
38
  @login_required
39
- def submit_recipe(request):
39
+ def community(request):
40
40
  if request.method == "POST":
41
41
  form = UserRecipeSubmissionForm(request.POST, request.FILES)
42
42
  if form.is_valid():
43
43
  recipe = form.save(commit=False)
44
44
  recipe.uploaded_by = request.user
45
- recipe.is_approved = False # Explicitly set to False just in case
45
+ recipe.is_community_made = True
46
46
  recipe.save()
47
47
  form.save_m2m()
48
48
  messages.success(
@@ -52,10 +52,30 @@ def submit_recipe(request):
52
52
  return redirect("user_profile")
53
53
  else:
54
54
  form = UserRecipeSubmissionForm()
55
+
56
+ # Community recipes = non-staff uploaded
57
+ recipes = Recipe.objects.filter(is_community_made=True).prefetch_related( # ty:ignore[unresolved-attribute]
58
+ "favorited_by"
59
+ )
60
+
61
+ if not request.user.is_staff:
62
+ # Regular users only see approved community recipes or their own
63
+ recipes = recipes.filter(
64
+ Q(is_community_made=True) | Q(uploaded_by=request.user)
65
+ )
66
+
67
+ recipes = recipes.order_by("-created_at")
68
+
55
69
  return render(
56
70
  request,
57
- "recipe_form.html",
58
- {"form": form, "title": _("Submit Recipe"), "version": sandwitches_version},
71
+ "community.html",
72
+ {
73
+ "form": form,
74
+ "recipes": recipes,
75
+ "title": _("Community"),
76
+ "version": sandwitches_version,
77
+ "user": request.user,
78
+ },
59
79
  )
60
80
 
61
81
 
@@ -134,8 +154,9 @@ def admin_dashboard(request):
134
154
  order_labels = [d["date"].strftime("%d/%m/%Y") for d in order_data]
135
155
  order_counts = [d["count"] for d in order_data]
136
156
 
137
- pending_recipes = Recipe.objects.filter(is_approved=False).order_by("-created_at") # ty:ignore[unresolved-attribute]
138
-
157
+ pending_recipes = Recipe.objects.filter( # ty:ignore[unresolved-attribute]
158
+ uploaded_by__is_staff=False, uploaded_by__is_superuser=False
159
+ ).order_by("-created_at")
139
160
  context = {
140
161
  "recipe_count": recipe_count,
141
162
  "user_count": user_count,
@@ -245,7 +266,7 @@ def admin_recipe_edit(request, pk):
245
266
  @staff_member_required
246
267
  def admin_recipe_approve(request, pk):
247
268
  recipe = get_object_or_404(Recipe, pk=pk)
248
- recipe.is_approved = True
269
+ recipe.is_community_made = True
249
270
  recipe.save()
250
271
  messages.success(
251
272
  request, _("Recipe '%(title)s' approved.") % {"title": recipe.title}
@@ -473,7 +494,7 @@ def admin_order_list(request):
473
494
  def recipe_detail(request, slug):
474
495
  recipe = get_object_or_404(Recipe, slug=slug)
475
496
 
476
- if not recipe.is_approved:
497
+ if not recipe.is_community_made:
477
498
  if not (
478
499
  request.user.is_authenticated
479
500
  and (request.user.is_staff or recipe.uploaded_by == request.user)
@@ -647,13 +668,8 @@ def index(request):
647
668
 
648
669
  recipes = Recipe.objects.all().prefetch_related("favorited_by") # ty:ignore[unresolved-attribute]
649
670
 
650
- if not (request.user.is_authenticated and request.user.is_staff):
651
- if request.user.is_authenticated:
652
- # Show approved recipes OR recipes uploaded by the current user
653
- recipes = recipes.filter(Q(is_approved=True) | Q(uploaded_by=request.user))
654
- else:
655
- # Show only approved recipes for anonymous users
656
- recipes = recipes.filter(is_approved=True)
671
+ # Only show "normal" recipes (uploaded by staff or no uploader)
672
+ recipes = recipes.filter(Q(is_community_made=False))
657
673
 
658
674
  # Filtering
659
675
  q = request.GET.get("q")
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: sandwitches
3
- Version: 2.3.1
3
+ Version: 2.3.3
4
4
  Summary: Add your description here
5
5
  Author: Martyn van Dijke
6
6
  Author-email: Martyn van Dijke <martijnvdijke600@gmail.com>
@@ -3,7 +3,7 @@ sandwitches/admin.py,sha256=-02WqE8U3rxrVCoNB7sfvtyE4v_e3pt7mFwXfUlindo,2421
3
3
  sandwitches/api.py,sha256=ruD5QeOPY-l9PvkJQiaOYoI0sRARDpqpFrFDgBxo9cQ,6389
4
4
  sandwitches/asgi.py,sha256=cygnXdXSSVspM7ZXuj47Ef6oz7HSTw4D7BPzgE2PU5w,399
5
5
  sandwitches/feeds.py,sha256=iz1d11dV0utA0ZNsB7VIAp0h8Zr5mFNSKJWHbw_j6YM,683
6
- sandwitches/forms.py,sha256=YvkSTa9h_ag_b58ToOHCQIHBa3VeHMC9RKB9F7qI-gk,7152
6
+ sandwitches/forms.py,sha256=rcXAL-Dn1gY3mWIPV9X9tZpFp2z6Xrkv6k9f2YUp8OU,7158
7
7
  sandwitches/locale/nl/LC_MESSAGES/django.mo,sha256=EzQWzIhz_Na3w9AS7F-YjB-Xv63t4sMRSAkEQ1-g32M,5965
8
8
  sandwitches/locale/nl/LC_MESSAGES/django.po,sha256=znxspEoMwkmktusZtbVrt1KG1LDUwIEi4ZEIE3XGeoI,25904
9
9
  sandwitches/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -18,20 +18,22 @@ sandwitches/migrations/0006_historicalrecipe_is_highlighted_and_more.py,sha256=B
18
18
  sandwitches/migrations/0007_historicalrecipe_price_recipe_price_order.py,sha256=o-hsVK39ArT_KkSkMnZfhCTQu66v81P6LbZPqRxjonU,2793
19
19
  sandwitches/migrations/0008_historicalrecipe_daily_orders_count_and_more.py,sha256=PyjettGABOcH6ryCXApOpEPNKBIs23AFIK302uQxpiY,1105
20
20
  sandwitches/migrations/0009_historicalrecipe_is_approved_recipe_is_approved.py,sha256=XP76J2_HiMOFeIU17Yu8AYXtswE-dcsNZq3lJGFgGtg,588
21
+ sandwitches/migrations/0010_rename_is_approved_historicalrecipe_is_community_made_and_more.py,sha256=9Xv-rBRUvx5UWbr7i4BeWbllCcVkcNuC8T3sxKSdWyU,575
22
+ sandwitches/migrations/0011_alter_historicalrecipe_is_community_made_and_more.py,sha256=O2D57bAsSwBklYqfMTWrHE3Zxj3lrk-CO9yDP8sQS0M,659
21
23
  sandwitches/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
- sandwitches/models.py,sha256=p67bGRaacH-ccJmcS9Mfco4nCdidvOwHhWeiFakKYnA,9979
24
+ sandwitches/models.py,sha256=MmSP1P7Kq2ObjYTJs9AKTEVeWcD5-Pqumj1BTnmBqTc,9986
23
25
  sandwitches/settings.py,sha256=5_eQAJCAV093hnhr3XOxHekT4IF-PEJcRiTecq71_SQ,5841
24
26
  sandwitches/storage.py,sha256=ibBG6tVtArqzgEKsRimZPwsqW7i9j4WiPLLHrOJchow,3578
25
27
  sandwitches/tasks.py,sha256=YiliAT2rj0fh7hrwKq5_qWtv9AGhd5iulj_iBwZBBKg,6024
26
- sandwitches/templates/admin/admin_base.html,sha256=5ZtJbZMstLjjyCc73smhIUJOhU7vscwqLuung1Gf15g,4489
28
+ sandwitches/templates/admin/admin_base.html,sha256=Mzq0A6Pl-x61gXv15XegW26X7HKHS0aGcAD-WBSwSG4,4249
27
29
  sandwitches/templates/admin/confirm_delete.html,sha256=HfsZI_gV8JQTKz215TYgPWBrgrFhGv1UB3N-0Hln-14,804
28
- sandwitches/templates/admin/dashboard.html,sha256=lZhywLTC-PHtezIZdqGNnIC-G13a6mqjGohUnqCgoao,5758
30
+ sandwitches/templates/admin/dashboard.html,sha256=1aZd5AQ2opWjzAsP1q_d15EWZIC04NWoKSH8RTgSyTg,5832
29
31
  sandwitches/templates/admin/order_list.html,sha256=eHFUn2speXaaj5_SFUG0Z0HfWVUR9-VCDRBeb8ufFb0,819
30
32
  sandwitches/templates/admin/partials/dashboard_charts.html,sha256=NYrt-LDZO4__2KDWhAYL5K_f-2Zgj0iiuaZQiRZlBWg,3639
31
33
  sandwitches/templates/admin/partials/order_rows.html,sha256=Ye35liahKbQ3rqa6fIGSTwb7seoXoqyqSw0wyNq2C_o,893
32
34
  sandwitches/templates/admin/rating_list.html,sha256=8CHAsBfKfs4izhb-IyOiDjJXqAZxFcStoRSGh4pRlgM,1365
33
- sandwitches/templates/admin/recipe_form.html,sha256=23wHT4hs128xnv2nkS6AtcKzY3sblia_dGVNnaeIp5Y,8734
34
- sandwitches/templates/admin/recipe_list.html,sha256=5fGnRIQ7JfvM3yfG-sngEIEgiPnPDkjK1Tn3nO8EDh4,5359
35
+ sandwitches/templates/admin/recipe_form.html,sha256=OpDnsB6WsoC45POtil54qHGn93P4A3DiccKVisM5NGM,8746
36
+ sandwitches/templates/admin/recipe_list.html,sha256=cVsAm1TRP4bsE7rkcxIVsThKs3FLr5MWvebSvJoRmAo,5365
35
37
  sandwitches/templates/admin/tag_form.html,sha256=JRWgAl4fz_Oy-Kuo1K6Mex_CXdsHMABzzyPazthr1Kg,989
36
38
  sandwitches/templates/admin/tag_list.html,sha256=ttxwXgfdxkEs4Cmrz5RHaGmaqLd7JDmWhjv80XIQqyw,1246
37
39
  sandwitches/templates/admin/task_detail.html,sha256=dO5zHOG-yTY1ly3VPA3o3jjie0wmxw0gdddtSKpN-W8,3825
@@ -40,6 +42,7 @@ sandwitches/templates/admin/user_form.html,sha256=7_6GShLROFeJJexL1XLFUXdW9_lYF8
40
42
  sandwitches/templates/admin/user_list.html,sha256=6O1YctULY-tqJnagybJof9ERA_NL1LX_a8cAu6_aWVQ,2193
41
43
  sandwitches/templates/base.html,sha256=mwCESNirfvvdyMg2e1Siy_LA8fLH29m0aS_Jv0Qom4U,3597
42
44
  sandwitches/templates/base_beer.html,sha256=4QgU4_gu_RRMtimmRAhATDJ3mj_WANxtilQJYNgAL60,2077
45
+ sandwitches/templates/community.html,sha256=6x-Z8E0W3Ii-d0aG7DdCJoWQM9bVKNP_NSP8fTqpo6o,5324
43
46
  sandwitches/templates/components/carousel_scripts.html,sha256=9vEL5JJv8zUUjEtsnHW-BwwXUNWqQ6w_vf6UdxgEv_I,1934
44
47
  sandwitches/templates/components/favorites_search_form.html,sha256=tpD8SpS47TUDJBwxhMuvjhTN9pjWoRGFW50TBv48Ld4,5202
45
48
  sandwitches/templates/components/footer.html,sha256=Qk-myRtXS6-1b3fMowVGnSuFb_UkUgX6BYX9zgh_SV8,486
@@ -52,7 +55,7 @@ sandwitches/templates/components/rating_section.html,sha256=8O5IsFfQwnElMQZLnDpJ
52
55
  sandwitches/templates/components/recipe_header.html,sha256=jH9bnT6tis3OuePBq-xzP87IIx2ipDTuw2LO0BQwLXg,1996
53
56
  sandwitches/templates/components/search_form.html,sha256=B8579Jo44gLrlmvkkc2-Vuv_QD93Ljt6F2J1WgTDV60,6617
54
57
  sandwitches/templates/components/search_scripts.html,sha256=HvsO5e50DoTZeoFiYeNP5S8S5h7Zfr9VULOWKKR1i_M,3423
55
- sandwitches/templates/components/side_menu.html,sha256=QMkgPgWIUXBFyXe1ZEP_CYm1wnaq1h6q645tbDQjNdw,1804
58
+ sandwitches/templates/components/side_menu.html,sha256=qXYyk8W-GnG-u_mJ65ADa4HWfUa2ubxnQAKwxwacF9M,1787
56
59
  sandwitches/templates/components/user_menu.html,sha256=c20cBpyLheGvHdQ5nn-c4fjNlhfnAt3FAsw1V46rTwQ,369
57
60
  sandwitches/templates/detail.html,sha256=g-O_RsW9Ix9ivWC0nZ4FwHY2NhgYZ3bEGLpqGY0JSxg,5642
58
61
  sandwitches/templates/favorites.html,sha256=0cPpW07N6Isrb8XpvA5Eh97L2-12QFZ43EzeJvbOlXo,917
@@ -60,16 +63,15 @@ sandwitches/templates/index.html,sha256=7anU7k8s80JYk59Rwsm8EdlNYd7B5clCvV7pKq2I
60
63
  sandwitches/templates/login.html,sha256=LiQskhkOkfx0EE4ssA1ToqQ3oEll08OPYLDIkLjHfU8,2177
61
64
  sandwitches/templates/partials/recipe_list.html,sha256=oF5zlgAyX_uG63BwulyhFywrn8QLnWXatXVtZPVcPmE,4186
62
65
  sandwitches/templates/profile.html,sha256=PQTL6_xn0pGUxqEOYuz5j0pmqAyG0Wr3KvyFBO8_k1s,4156
63
- sandwitches/templates/recipe_form.html,sha256=eaQN6331f4hxqrN_FhDXmT1i86Mknf072xpFXoFvoAo,5261
64
66
  sandwitches/templates/setup.html,sha256=iNveFgePATsCSO4XMbGPa8TnWHyvj8S_5WwcW6i7pbo,4661
65
67
  sandwitches/templates/signup.html,sha256=pNBSlRGZI_B5ccF3dWpUgWBcjODkdLlq7HhyJLYIHCI,6176
66
68
  sandwitches/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
69
  sandwitches/templatetags/custom_filters.py,sha256=0KDFlFz4b5LwlcURBAmzyYWKKea-LwydZytJGVkkuKA,243
68
70
  sandwitches/templatetags/markdown_extras.py,sha256=0ibmRzxE3r85x4k7kK71R-9UT0CgeegYF7MHzj3juTI,344
69
- sandwitches/urls.py,sha256=bbFsx0G2_pl7LuhO6wHtnt-X890IsRQFOEsN2mqfdzo,4351
71
+ sandwitches/urls.py,sha256=4VeccEtx2dz-Y8IjqD7Cj24nnd89PteoXo2NUUfWJiU,4339
70
72
  sandwitches/utils.py,sha256=SJP-TkeRZ0OIfaMigYrOSbxRqYXswoqoWhwll3nFuAM,7245
71
- sandwitches/views.py,sha256=3gAUZuIIWevu2xW8ewxBWM5O-1hTarn8ZT9DJBTeDyw,25565
73
+ sandwitches/views.py,sha256=bFe1y8FJ00Tke6yUJteY0j3VysXUsZJkuQXmmbK_yso,25876
72
74
  sandwitches/wsgi.py,sha256=Eyncpnahq_4s3Lr9ruB-R3Lu9j9zBXqgPbUj7qhIbwU,399
73
- sandwitches-2.3.1.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
74
- sandwitches-2.3.1.dist-info/METADATA,sha256=0FOR_loqc7pHOjzBvUU5HOWTToY-FQJ0EnU0Vc4HqxM,3111
75
- sandwitches-2.3.1.dist-info/RECORD,,
75
+ sandwitches-2.3.3.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
76
+ sandwitches-2.3.3.dist-info/METADATA,sha256=TltlxFRdT55B1vxKqYv9CjjUEwITAOgFXvw3UwWKA2k,3111
77
+ sandwitches-2.3.3.dist-info/RECORD,,