fnschool 20251015.81127.817__py3-none-any.whl → 20251016.81833.820__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.

Potentially problematic release.


This version of fnschool might be problematic. Click here for more details.

Files changed (19) hide show
  1. fnschoo1/__init__.py +1 -1
  2. fnschoo1/canteen/models.py +1 -0
  3. fnschoo1/canteen/templates/canteen/consumption/create.html +28 -5
  4. fnschoo1/canteen/templates/canteen/ingredient/list.html +10 -1
  5. fnschoo1/canteen/views.py +18 -3
  6. fnschoo1/canteen/workbook/generate.py +30 -10
  7. fnschoo1/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  8. fnschoo1/templates/home.html +3 -44
  9. {fnschool-20251015.81127.817.dist-info → fnschool-20251016.81833.820.dist-info}/METADATA +1 -1
  10. {fnschool-20251015.81127.817.dist-info → fnschool-20251016.81833.820.dist-info}/RECORD +19 -19
  11. {fnschool-20251015.81127.817.dist-info → fnschool-20251016.81833.820.dist-info}/SOURCES.txt.py +0 -0
  12. {fnschool-20251015.81127.817.dist-info → fnschool-20251016.81833.820.dist-info}/WHEEL +0 -0
  13. {fnschool-20251015.81127.817.dist-info → fnschool-20251016.81833.820.dist-info}/dependency_links.txt.py +0 -0
  14. {fnschool-20251015.81127.817.dist-info → fnschool-20251016.81833.820.dist-info}/entry_points.txt +0 -0
  15. {fnschool-20251015.81127.817.dist-info → fnschool-20251016.81833.820.dist-info}/entry_points.txt.py +0 -0
  16. {fnschool-20251015.81127.817.dist-info → fnschool-20251016.81833.820.dist-info}/licenses/LICENSE +0 -0
  17. {fnschool-20251015.81127.817.dist-info → fnschool-20251016.81833.820.dist-info}/requires.txt.py +0 -0
  18. {fnschool-20251015.81127.817.dist-info → fnschool-20251016.81833.820.dist-info}/top_level.txt +0 -0
  19. {fnschool-20251015.81127.817.dist-info → fnschool-20251016.81833.820.dist-info}/top_level.txt.py +0 -0
fnschoo1/__init__.py CHANGED
@@ -6,4 +6,4 @@ import random
6
6
  import sys
7
7
  from pathlib import Path
8
8
 
9
- __version__ = "20251015.81127.817"
9
+ __version__ = "20251016.81833.820"
@@ -186,6 +186,7 @@ class Consumption(models.Model):
186
186
  )
187
187
 
188
188
  class Meta:
189
+
189
190
  verbose_name = _("Consumption Record")
190
191
  verbose_name_plural = _("Consumption Records")
191
192
  ordering = ["-date_of_using"]
@@ -49,10 +49,10 @@
49
49
  {% for date_h in date_range %}
50
50
  <th data-date_of_using="{{ date_h }}" class="consumption-date">
51
51
  {{ date_h }}
52
- <br />
53
- |
54
- <br />
55
- |
52
+ {% for meal_type in meal_types %}
53
+ <br />
54
+ |
55
+ {% endfor %}
56
56
  </th>
57
57
  {% empty %}
58
58
  <th></th>
@@ -75,7 +75,7 @@
75
75
  <div class='ingredient-progress'
76
76
  style="width:{% widthratio ingredient.remaining_quantity ingredient.quantity 100 %}%"></div>
77
77
  {{ ingredient.name }}
78
- {% if ingredient.meal_type %}
78
+ {% if ingredient.meal_type != meal_type_name_0 %}
79
79
  <br />
80
80
  ({{ ingredient.meal_type }})
81
81
  {% endif %}
@@ -91,6 +91,9 @@
91
91
  </table>
92
92
  </div>
93
93
  <div class="">
94
+ <button id="body_mp0_trigger"
95
+ onclick="set_body_to_mp0();"
96
+ class="btn btn-submit-consumptions btn-success float-end">||</button>
94
97
  <button onclick="generate_spreadsheet();"
95
98
  class="btn btn-submit-consumptions btn-success float-end">{% trans "Generate Spreadsheet" %}</button>
96
99
  <select class="workbook-month-select form-select float-end mx-2"
@@ -112,6 +115,26 @@
112
115
 
113
116
  var dont_submit = false
114
117
 
118
+ $(document).ready(function() {
119
+ var body_mp0_cookie = get_cookie("body_mp0")
120
+ if (body_mp0_cookie == "" || body_mp0_cookie == null) {
121
+ $("#body_mp0_trigger").html("&lt;")
122
+ } else {
123
+ $("#body_mp0_trigger").html("&gt;")
124
+ }
125
+ });
126
+
127
+ function set_body_to_mp0() {
128
+ if ($('body').hasClass("m-0")) {
129
+ set_simple_cookie("body_mp0", "")
130
+ $("#body_mp0_trigger").html("&gt;")
131
+ $('body').removeClass("m-0 p-0");
132
+ } else {
133
+ set_simple_cookie("body_mp0", "1")
134
+ $('#body_mp0_trigger').html("&lt;")
135
+ $('body').addClass("m-0 p-0");
136
+ }
137
+ }
115
138
 
116
139
  function list_consumptions_rapidly() {
117
140
  query = {
@@ -56,7 +56,16 @@
56
56
  <tbody>
57
57
  {% for ingredient in page_obj %}
58
58
  <tr>
59
- <th scope="row">{{ forloop.counter }}</th>
59
+ <th scope="row">
60
+ <div class="form-check"
61
+ title="{% trans 'It helps you check the ingredients.' %}">
62
+ <input type="checkbox"
63
+ class="form-check-input"
64
+ id="ingredient_free_nark_{{ ingredient.id }}" />
65
+ <label class="form-check-label"
66
+ for="ingredient_free_nark_{{ ingredient.id }}">{{ forloop.counter }}</label>
67
+ </div>
68
+ </th>
60
69
  <td>{{ ingredient.storage_date }}</td>
61
70
  <td>{{ ingredient.name }}</td>
62
71
  <td>{{ ingredient.meal_type }}</td>
fnschoo1/canteen/views.py CHANGED
@@ -57,6 +57,9 @@ from .forms import (
57
57
  from .models import Category, Consumption, Ingredient, MealType
58
58
 
59
59
  # Create your views here.
60
+
61
+ meal_type_name_0 = _("Meal type 0")
62
+
60
63
  decimal_prec = getattr(settings, "DECIMAL_PREC", 2)
61
64
 
62
65
  storage_date_header = (
@@ -197,6 +200,15 @@ def create_consumptions(request, ingredient_id=None):
197
200
  consumptions = ingredient.consumptions.filter(
198
201
  Q(is_disabled=False)
199
202
  ).all()
203
+
204
+ consumptions_len = len(consumptions)
205
+ for c_index in range(consumptions_len):
206
+ consumption = consumptions[c_index]
207
+ for c0_index in range(c_index + 1, consumptions_len):
208
+ consumption0 = consumptions[c0_index]
209
+ if consumption.date_of_using == consumption0.date_of_using:
210
+ consumption.delete()
211
+
200
212
  consumption_dates = list(set([c.date_of_using for c in consumptions]))
201
213
 
202
214
  for per_day in date_range:
@@ -206,9 +218,6 @@ def create_consumptions(request, ingredient_id=None):
206
218
  c for c in consumptions if c.date_of_using == per_day
207
219
  ]
208
220
  consumption = consumptions_per_day[0]
209
- if len(consumptions_per_day) > 1:
210
- for c in consumptions_per_day[1:]:
211
- c.delete()
212
221
 
213
222
  else:
214
223
  consumption = Consumption()
@@ -298,6 +307,7 @@ def create_consumptions(request, ingredient_id=None):
298
307
  "ingredient_ids": ingredient_ids,
299
308
  "months": months,
300
309
  "storage_date_start": date_start,
310
+ "meal_type_name_0": meal_type_name_0,
301
311
  },
302
312
  )
303
313
 
@@ -508,6 +518,11 @@ def create_ingredients(request):
508
518
  for index, row in df.iterrows():
509
519
  category_name = row[category_header[0]]
510
520
  meal_type_name = row[meal_type_header[0]]
521
+ meal_type_name = (
522
+ meal_type_name_0
523
+ if meal_type_name is np.nan
524
+ else meal_type_name
525
+ )
511
526
 
512
527
  category = Category.objects.filter(
513
528
  Q(name=category_name) & Q(user=request.user)
@@ -907,7 +907,9 @@ class CanteenWorkBook:
907
907
 
908
908
  title_cell_row_num = row_num
909
909
  title_cell = sheet.cell(title_cell_row_num, 1)
910
- title_cell.value = _("Consumption List Title (Consumption List Sheet)")
910
+ title_cell.value = _(
911
+ "Consumption List Title (Consumption List Sheet)"
912
+ )
911
913
  title_cell.alignment = self.center_alignment
912
914
  title_cell.font = self.font_20_bold
913
915
  sheet.merge_cells(f"A{title_cell_row_num}:H{title_cell_row_num}")
@@ -1085,7 +1087,22 @@ class CanteenWorkBook:
1085
1087
  )
1086
1088
  last_category = consumption.ingredient.category
1087
1089
 
1088
- sheet.cell(consumption_row_num, 2, consumption.ingredient.name)
1090
+ ingredient_name_cell = sheet.cell(consumption_row_num, 2)
1091
+ ingredient_name_cell.value = consumption.ingredient.name
1092
+ if consumption.ingredient.name:
1093
+ ingredient_name_cell.comment = Comment(
1094
+ _(
1095
+ "{meal_type}({category}, Storaged/Checked at {storage_date})."
1096
+ ).format(
1097
+ meal_type=consumption.ingredient.meal_type,
1098
+ category=consumption.ingredient.category,
1099
+ storage_date=consumption.ingredient.storage_date.strftime(
1100
+ "%Y.%m.%d"
1101
+ ),
1102
+ ),
1103
+ user.username,
1104
+ )
1105
+
1089
1106
  sheet.cell(
1090
1107
  consumption_row_num,
1091
1108
  3,
@@ -1095,8 +1112,8 @@ class CanteenWorkBook:
1095
1112
  consumption_row_num,
1096
1113
  4,
1097
1114
  (
1098
- consumption.ingredient.quantity
1099
- if consumption.ingredient.quantity
1115
+ consumption.amount_used
1116
+ if consumption.ingredient.name
1100
1117
  else ""
1101
1118
  ),
1102
1119
  )
@@ -1105,7 +1122,7 @@ class CanteenWorkBook:
1105
1122
  5,
1106
1123
  (
1107
1124
  consumption.ingredient.unit_price
1108
- if consumption.ingredient.unit_price
1125
+ if consumption.ingredient.name
1109
1126
  else ""
1110
1127
  ),
1111
1128
  )
@@ -1115,8 +1132,7 @@ class CanteenWorkBook:
1115
1132
  (
1116
1133
  consumption.ingredient.unit_price
1117
1134
  * consumption.amount_used
1118
- if consumption.ingredient.unit_price
1119
- and consumption.amount_used
1135
+ if consumption.ingredient.name
1120
1136
  else ""
1121
1137
  ),
1122
1138
  )
@@ -1944,6 +1960,7 @@ class CanteenWorkBook:
1944
1960
  category_ingredients = []
1945
1961
  for category in categories:
1946
1962
  _ingredients = [i for i in ingredients if i.category == category]
1963
+ _ingredients = sorted(_ingredients, key=lambda i: (i.storage_date))
1947
1964
  split_count = math.ceil(len(_ingredients) / ingredient_rows_count)
1948
1965
  for i in range(0, len(_ingredients), ingredient_rows_count):
1949
1966
  _split_ingredients = _ingredients[i : i + ingredient_rows_count]
@@ -1952,7 +1969,7 @@ class CanteenWorkBook:
1952
1969
  _split_ingredients += [
1953
1970
  Ingredient(
1954
1971
  user=user,
1955
- storage_date=None,
1972
+ storage_date=self.date_end,
1956
1973
  name="",
1957
1974
  meal_type=_split_ingredient0.meal_type,
1958
1975
  category=_split_ingredient0.category,
@@ -1965,6 +1982,7 @@ class CanteenWorkBook:
1965
1982
  ingredient_rows_count - len(_split_ingredients)
1966
1983
  )
1967
1984
  ]
1985
+
1968
1986
  category_ingredients.append([category, _split_ingredients])
1969
1987
 
1970
1988
  for index, (category, c_ingredients) in enumerate(category_ingredients):
@@ -2032,7 +2050,7 @@ class CanteenWorkBook:
2032
2050
  month=ingredient.storage_date.month,
2033
2051
  day=ingredient.storage_date.day,
2034
2052
  )
2035
- if ingredient.storage_date
2053
+ if ingredient.storage_date and ingredient.name
2036
2054
  else ""
2037
2055
  )
2038
2056
  name_cell = sheet.cell(ingredient_row_num, 2)
@@ -2145,6 +2163,8 @@ class CanteenWorkBook:
2145
2163
 
2146
2164
 
2147
2165
  def get_workbook_zip(request, month):
2166
+ from ..views import meal_type_name_0
2167
+
2148
2168
  meal_types = MealType.objects.annotate(
2149
2169
  ingredients_count=Count("ingredients")
2150
2170
  ).filter(
@@ -2160,7 +2180,7 @@ def get_workbook_zip(request, month):
2160
2180
  ).format(
2161
2181
  meal_type=(
2162
2182
  (meal_type.abbreviation or meal_type.name)
2163
- if meal_type
2183
+ if not meal_type.name == meal_type_name_0
2164
2184
  else ""
2165
2185
  ),
2166
2186
  month=month.replace("-", ""),
@@ -4,48 +4,7 @@
4
4
  {% trans "FNSCHOOL" %}
5
5
  {% endblock %}
6
6
  {% block content %}
7
- <script>
8
- // $('body').addClass( 'aurora');
9
- </script>
10
- <style>
11
- .aurora {
12
- width: 100%;
13
- height: 100vh;
14
- position: relative;
15
- overflow: hidden;
16
- }
17
-
18
- .aurora::before {
19
- content: "";
20
- position: absolute;
21
- top: -50%;
22
- left: -50%;
23
- width: 200%;
24
- height: 200%;
25
- background: linear-gradient(to right, #00ff00, #0000ff, #ff0000, #ff00ff, #00ff00);
26
- animation: aurora-animation 50s linear infinite;
27
- }
28
-
29
- .aurora::after {
30
- content: "";
31
- position: absolute;
32
- top: -50%;
33
- left: -50%;
34
- width: 200%;
35
- height: 200%;
36
- background: linear-gradient(to right, #00ff00, #0000ff, #ff0000, #ff00ff, #00ff00);
37
- opacity: 0.1;
38
- animation: aurora-animation 30s linear infinite;
39
- }
40
-
41
- @keyframes aurora-animation {
42
- 0% {
43
- transform: rotate(0deg);
44
- }
45
-
46
- 100% {
47
- transform: rotate(360deg);
48
- }
49
- }
50
- </style>
7
+ </div>
8
+ <script></script>
9
+ </style>
51
10
  {% endblock %}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fnschool
3
- Version: 20251015.81127.817
3
+ Version: 20251016.81833.820
4
4
  Summary: Just some school related scripts, without any ambition.
5
5
  Author-email: larryw3i <larryw3i@163.com>, Larry Wei <larryw3i@126.com>, Larry W3i <larryw3i@yeah.net>
6
6
  Maintainer-email: larryw3i <larryw3i@163.com>, Larry Wei <larryw3i@126.com>
@@ -1,13 +1,13 @@
1
- fnschoo1/__init__.py,sha256=Hx-9-YfTx_lziChxGNxSdlO4jOb42i66f9ajNcbIhUM,197
1
+ fnschoo1/__init__.py,sha256=nPu1zc5DQ6KZOGWHG_eo91S-cuFEr3q0rT83czhXMGs,197
2
2
  fnschoo1/manage.py,sha256=VZIol9q_Dhg81_KJ9Jfq-L5O8ubQelShkA-cZVJ1S6E,1539
3
3
  fnschoo1/canteen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  fnschoo1/canteen/admin.py,sha256=suMo4x8I3JBxAFBVIdE-5qnqZ6JAZV0FESABHOSc-vg,63
5
5
  fnschoo1/canteen/apps.py,sha256=zUjM0ZJwHW4i72vOm87QewRlvFQORQo5yb053u4YIGs,146
6
6
  fnschoo1/canteen/forms.py,sha256=PDPAzZZ_y533KtMxCixLXXsXok5gjUShCSXeonYgGqQ,2582
7
- fnschoo1/canteen/models.py,sha256=l0E-kBNZxZnFnVVUbvfGYl39Le-poE218XyV4zFNWfU,5907
7
+ fnschoo1/canteen/models.py,sha256=AD_PTYG7_D4E_3YCTLZ8MMsNyuE5BNUpSZmBpilb3wk,5908
8
8
  fnschoo1/canteen/tests.py,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60
9
9
  fnschoo1/canteen/urls.py,sha256=4GtrqC9L59c8zopfjRgqhbcvA5iPnGcAUVuM6CrKWpk,2797
10
- fnschoo1/canteen/views.py,sha256=D80gYpQieIc45f0zeb3J803TrUftVdeDy-8MsP_Ff68,26631
10
+ fnschoo1/canteen/views.py,sha256=kBiQjjNLPPipC7kyVYwqrrMu4hFlmDgMxJIzo52cTtI,27137
11
11
  fnschoo1/canteen/migrations/0001_initial.py,sha256=IHlyfT9sNc-kRQZy7NyjgWzp4EGus405QCAUw4oNdAQ,3943
12
12
  fnschoo1/canteen/migrations/0002_ingredient_is_disabled.py,sha256=j8oGWb2b99YwsEk-uwESLA_JRITEcz6b35ekoYOUGGc,444
13
13
  fnschoo1/canteen/migrations/0003_consumption_is_disabled_alter_ingredient_is_disabled.py,sha256=9RB5SHjINgrrqtDpcVIUXEBa3C_MTcR_keXLGG_PcOs,619
@@ -31,19 +31,19 @@ fnschoo1/canteen/templates/canteen/category/delete.html,sha256=gkEg3oiIbjVsZMKEy
31
31
  fnschoo1/canteen/templates/canteen/category/list.html,sha256=QLO2GA13Co48Ijd0DCCN4lcMm1fgJqT2CprH5VdLZPw,2148
32
32
  fnschoo1/canteen/templates/canteen/category/update.html,sha256=8Nzdbe8UorrJHzElkrdqvLaPnUvcvGhrViZB4D86wqo,815
33
33
  fnschoo1/canteen/templates/canteen/consumption/_create.html,sha256=tXlJcd566D9sYbsnj5KN-m0lyobT2AwwYt9oxUHbn4M,1026
34
- fnschoo1/canteen/templates/canteen/consumption/create.html,sha256=wFa8hNpIGvK2bfzAMzQxR_EJ9Lya3OZNEU_mmUVnzEE,15059
34
+ fnschoo1/canteen/templates/canteen/consumption/create.html,sha256=sd6dcn-2anmuFW7y6IWT_HGLbmA-DUyiPpyEZkwZN9U,15857
35
35
  fnschoo1/canteen/templates/canteen/ingredient/close.html,sha256=pLYeJmGaOEJKMUJdZmYzz_n--l28IRDQ4fXvetP_Vsc,200
36
36
  fnschoo1/canteen/templates/canteen/ingredient/create.html,sha256=xZvh0tP_cv2HPQ96JSHChO6Ni23tzHc5YJCUhE2yEqM,807
37
37
  fnschoo1/canteen/templates/canteen/ingredient/create_one.html,sha256=O8EPSvAnEZ-4VJiwFdoyxJrMOoMpRkH6CyfvWwHaVgc,599
38
38
  fnschoo1/canteen/templates/canteen/ingredient/delete.html,sha256=w1GK8vLTTBz4xolFce6ITZMNeBgv-XgMx9dkOykE8-A,1211
39
- fnschoo1/canteen/templates/canteen/ingredient/list.html,sha256=b3FC5bcprUau-TtRPdBlOdtbqlcIdDSdelzXvfm57OI,4205
39
+ fnschoo1/canteen/templates/canteen/ingredient/list.html,sha256=7w9Yyz_TuCxJHaFadTUedh_tQLvKTCYAh583vfEBT18,4623
40
40
  fnschoo1/canteen/templates/canteen/ingredient/update.html,sha256=VTlNSvTb-kck0S3bGtvxdJbYAtfszjtUEXP7OYva1FA,819
41
41
  fnschoo1/canteen/templates/canteen/meal_type/create.html,sha256=7Pe0RSGtd2G2IMHwnggr0Gzs23oBqpaPqWH5zlNzc_4,596
42
42
  fnschoo1/canteen/templates/canteen/meal_type/delete.html,sha256=1UmCyXD-6lbYl-IE63EnQCEXJr82rUCDvycI4bGuMoo,1551
43
43
  fnschoo1/canteen/templates/canteen/meal_type/list.html,sha256=c5kJUE1OgpRtSrMV4wFwL_gbRSaX_XMM4Zt1JTx34_g,1907
44
44
  fnschoo1/canteen/templates/canteen/meal_type/update.html,sha256=Rfv1TamSFIKHzvUNlgnmrPmfmzrehPpuo5Hv8VF0yek,818
45
45
  fnschoo1/canteen/workbook/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
46
- fnschoo1/canteen/workbook/generate.py,sha256=EXWupVex_fj0zxK82hfews13t5R5yONQBbapl5lpZYc,85025
46
+ fnschoo1/canteen/workbook/generate.py,sha256=clNO7TR4Uffb_vzaonOAS2ux09NKK3eAVFxSgu9NT_c,85879
47
47
  fnschoo1/fnschool/__init__.py,sha256=TmHhzykpKNMoMf6eD-EKvbvmnlzs1XGHtvD55ae1sXs,287
48
48
  fnschoo1/fnschool/asgi.py,sha256=kzkqosS10uBlyBX53EXcsATcvEZmac6nsPzyOHCuucE,393
49
49
  fnschoo1/fnschool/settings.py,sha256=l9Y1iQCivSfmsNfnHltfXLzxP6gG4VMIL4GEZgAp8YM,4357
@@ -53,7 +53,7 @@ fnschoo1/fnschool/wsgi.py,sha256=dQq4S0vZWCz8w5R9KooJeLYTVFXvEgJRYe7NFZwVxU8,393
53
53
  fnschoo1/fnschool/templatetags/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
54
54
  fnschoo1/fnschool/templatetags/fnschool_tags.py,sha256=l5Zov4VlQKpz-69SFftP4kXyMymz-a0D5F_ss_eiFc4,568
55
55
  fnschoo1/locale/en/LC_MESSAGES/django.mo,sha256=M8AB6fmjwlEd761iFlasNWdiEYfE-2nIwBoioGtEVUo,404
56
- fnschoo1/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=91oVaDDXdXDZEYghtggnPcBDiUOBphnuLm4QwMZJhIQ,20313
56
+ fnschoo1/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=OjNVXWqwJ2JKodhIa8_B6EBClFW5Vw0qPTLXLry5kM4,20601
57
57
  fnschoo1/profiles/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
58
  fnschoo1/profiles/admin.py,sha256=93UCvdODI63KzCDfFFnKmfvCMGCp6FCG9WErE91i79Y,522
59
59
  fnschoo1/profiles/apps.py,sha256=WDu6eceFnDkBFMqquAolMZMo7XPb0ah6l2q2AruTrl4,215
@@ -84,7 +84,7 @@ fnschoo1/static/js/jquery.min.js,sha256=np_WnfpAmUmEO_iheFAJKf6mbm0_laW3Ns4x7kjS
84
84
  fnschoo1/static/js/jquery.slim.min.js,sha256=p5YkbOjgHxX3hTadKlGuDW58NvJ1ldjjokDuDQ_5yXs,129962
85
85
  fnschoo1/static/js/popper.min.js,sha256=O2xdmtEow7gq3I7-0lKjshvxHkBe0hTWrMkbX2fy0XQ,36887
86
86
  fnschoo1/templates/close.html,sha256=pLYeJmGaOEJKMUJdZmYzz_n--l28IRDQ4fXvetP_Vsc,200
87
- fnschoo1/templates/home.html,sha256=4iq52z9BuEHyFk4jKcJSZEQBB6VqJ4dvr47L6C57tss,1106
87
+ fnschoo1/templates/home.html,sha256=34Sc9pdUN679YQE15Yp8jXtaPAcG5lyuGfX-GYJZOUc,193
88
88
  fnschoo1/templates/base/_content.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
89
89
  fnschoo1/templates/base/_css.html,sha256=I7We2o3BzNq4PBN72UOKAtXHkZ1Xb-eYP8N4bF3rm1w,16
90
90
  fnschoo1/templates/base/_js.html,sha256=E2mgj6LQjd37r660iG2cAIOfofwuwMC6SZ59fj6wUnA,443
@@ -96,14 +96,14 @@ fnschoo1/templates/includes/_navigation.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRk
96
96
  fnschoo1/templates/includes/_paginator.html,sha256=Z-Hxcdmun4SJ1YcHnWTDLfW8wrngROiBTwr4NZWaPP4,1246
97
97
  fnschoo1/templates/registration/logged_out.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
98
98
  fnschoo1/templates/registration/login.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
99
- fnschool-20251015.81127.817.dist-info/licenses/LICENSE,sha256=2n6rt7r999OuXp8iOqW9we7ORaxWncIbOwN1ILRGR2g,7651
100
- fnschool-20251015.81127.817.dist-info/METADATA,sha256=Whacwebcw_8mlsKLCHqqO8KFOlWFouQh9rkNMhdkCSU,4752
101
- fnschool-20251015.81127.817.dist-info/SOURCES.txt.py,sha256=2LY2mshgNtxI3ICB-oBjyMYgJk2bQqeGFM5J5ay5TQs,4954
102
- fnschool-20251015.81127.817.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
103
- fnschool-20251015.81127.817.dist-info/dependency_links.txt.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
104
- fnschool-20251015.81127.817.dist-info/entry_points.txt,sha256=Ow5nChVFJY3O4TJAIE1ZydMev1MUtgRsT1b8eFP6728,54
105
- fnschool-20251015.81127.817.dist-info/entry_points.txt.py,sha256=7iOwIx_m9Y6xJt___BZHWJh27LV5hqWnUjmj77MoRys,47
106
- fnschool-20251015.81127.817.dist-info/requires.txt.py,sha256=PqRcHIQSMPUb271hacYrlSDHwB1WDZmlWUkh6RnBz_g,113
107
- fnschool-20251015.81127.817.dist-info/top_level.txt,sha256=s6ZKnNm94Q0-247a50eI7jDK98uPF6P2kC9Ovd3LUlM,9
108
- fnschool-20251015.81127.817.dist-info/top_level.txt.py,sha256=_7CbrSihm0dzBn_tTy2ass_Y2VlkVNT2eylE8mcfwHY,9
109
- fnschool-20251015.81127.817.dist-info/RECORD,,
99
+ fnschool-20251016.81833.820.dist-info/licenses/LICENSE,sha256=2n6rt7r999OuXp8iOqW9we7ORaxWncIbOwN1ILRGR2g,7651
100
+ fnschool-20251016.81833.820.dist-info/METADATA,sha256=jw2_eg2PfZmKpDG-oGqEfB-aUPXHsNMFghaU8px9JpU,4752
101
+ fnschool-20251016.81833.820.dist-info/SOURCES.txt.py,sha256=2LY2mshgNtxI3ICB-oBjyMYgJk2bQqeGFM5J5ay5TQs,4954
102
+ fnschool-20251016.81833.820.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
103
+ fnschool-20251016.81833.820.dist-info/dependency_links.txt.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
104
+ fnschool-20251016.81833.820.dist-info/entry_points.txt,sha256=Ow5nChVFJY3O4TJAIE1ZydMev1MUtgRsT1b8eFP6728,54
105
+ fnschool-20251016.81833.820.dist-info/entry_points.txt.py,sha256=7iOwIx_m9Y6xJt___BZHWJh27LV5hqWnUjmj77MoRys,47
106
+ fnschool-20251016.81833.820.dist-info/requires.txt.py,sha256=PqRcHIQSMPUb271hacYrlSDHwB1WDZmlWUkh6RnBz_g,113
107
+ fnschool-20251016.81833.820.dist-info/top_level.txt,sha256=s6ZKnNm94Q0-247a50eI7jDK98uPF6P2kC9Ovd3LUlM,9
108
+ fnschool-20251016.81833.820.dist-info/top_level.txt.py,sha256=_7CbrSihm0dzBn_tTy2ass_Y2VlkVNT2eylE8mcfwHY,9
109
+ fnschool-20251016.81833.820.dist-info/RECORD,,