fnschool 20251013.81919.815__py3-none-any.whl → 20251014.81347.804__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.
- fnschoo1/__init__.py +1 -1
- fnschoo1/canteen/forms.py +10 -0
- fnschoo1/canteen/migrations/0014_category_priority.py +27 -0
- fnschoo1/canteen/models.py +29 -7
- fnschoo1/canteen/templates/canteen/category/delete.html +4 -0
- fnschoo1/canteen/templates/canteen/category/list.html +2 -0
- fnschoo1/canteen/templates/canteen/consumption/create.html +24 -13
- fnschoo1/canteen/views.py +1 -1
- fnschoo1/canteen/workbook/generate.py +13 -0
- fnschoo1/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
- fnschoo1/static/js/fnschool.js +2 -4
- {fnschool-20251013.81919.815.dist-info → fnschool-20251014.81347.804.dist-info}/METADATA +1 -1
- {fnschool-20251013.81919.815.dist-info → fnschool-20251014.81347.804.dist-info}/RECORD +22 -21
- {fnschool-20251013.81919.815.dist-info → fnschool-20251014.81347.804.dist-info}/SOURCES.txt.py +0 -0
- {fnschool-20251013.81919.815.dist-info → fnschool-20251014.81347.804.dist-info}/WHEEL +0 -0
- {fnschool-20251013.81919.815.dist-info → fnschool-20251014.81347.804.dist-info}/dependency_links.txt.py +0 -0
- {fnschool-20251013.81919.815.dist-info → fnschool-20251014.81347.804.dist-info}/entry_points.txt +0 -0
- {fnschool-20251013.81919.815.dist-info → fnschool-20251014.81347.804.dist-info}/entry_points.txt.py +0 -0
- {fnschool-20251013.81919.815.dist-info → fnschool-20251014.81347.804.dist-info}/licenses/LICENSE +0 -0
- {fnschool-20251013.81919.815.dist-info → fnschool-20251014.81347.804.dist-info}/requires.txt.py +0 -0
- {fnschool-20251013.81919.815.dist-info → fnschool-20251014.81347.804.dist-info}/top_level.txt +0 -0
- {fnschool-20251013.81919.815.dist-info → fnschool-20251014.81347.804.dist-info}/top_level.txt.py +0 -0
fnschoo1/__init__.py
CHANGED
fnschoo1/canteen/forms.py
CHANGED
|
@@ -70,9 +70,19 @@ class CategoryForm(forms.ModelForm):
|
|
|
70
70
|
fields = [
|
|
71
71
|
"name",
|
|
72
72
|
"abbreviation",
|
|
73
|
+
"priority",
|
|
73
74
|
"pin_to_consumptions_top",
|
|
74
75
|
"is_disabled",
|
|
75
76
|
]
|
|
77
|
+
widgets = {
|
|
78
|
+
"priority": forms.NumberInput(
|
|
79
|
+
attrs={
|
|
80
|
+
"title": _(
|
|
81
|
+
"Numbers with smaller values have higher priority."
|
|
82
|
+
),
|
|
83
|
+
},
|
|
84
|
+
),
|
|
85
|
+
}
|
|
76
86
|
|
|
77
87
|
|
|
78
88
|
class MealTypeForm(forms.ModelForm):
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Generated by Django 4.2.25 on 2025-10-14 04:46
|
|
2
|
+
|
|
3
|
+
import django.core.validators
|
|
4
|
+
from django.db import migrations, models
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Migration(migrations.Migration):
|
|
8
|
+
|
|
9
|
+
dependencies = [
|
|
10
|
+
(
|
|
11
|
+
"canteen",
|
|
12
|
+
"0013_alter_consumption_options_alter_ingredient_options_and_more",
|
|
13
|
+
),
|
|
14
|
+
]
|
|
15
|
+
|
|
16
|
+
operations = [
|
|
17
|
+
migrations.AddField(
|
|
18
|
+
model_name="category",
|
|
19
|
+
name="priority",
|
|
20
|
+
field=models.IntegerField(
|
|
21
|
+
blank=True,
|
|
22
|
+
null=True,
|
|
23
|
+
validators=[django.core.validators.MinValueValidator(0)],
|
|
24
|
+
verbose_name="Category Priority",
|
|
25
|
+
),
|
|
26
|
+
),
|
|
27
|
+
]
|
fnschoo1/canteen/models.py
CHANGED
|
@@ -45,10 +45,22 @@ class Category(models.Model):
|
|
|
45
45
|
is_disabled = models.BooleanField(
|
|
46
46
|
default=False, verbose_name=_("Is Disabled")
|
|
47
47
|
)
|
|
48
|
+
priority = models.IntegerField(
|
|
49
|
+
null=True,
|
|
50
|
+
blank=True,
|
|
51
|
+
validators=[
|
|
52
|
+
MinValueValidator(0),
|
|
53
|
+
],
|
|
54
|
+
verbose_name=_("Category Priority"),
|
|
55
|
+
)
|
|
56
|
+
|
|
48
57
|
pin_to_consumptions_top = models.BooleanField(
|
|
49
58
|
default=False, verbose_name=_("Pin to Consumptions Top")
|
|
50
59
|
)
|
|
51
60
|
|
|
61
|
+
class Meta:
|
|
62
|
+
ordering = ["priority"]
|
|
63
|
+
|
|
52
64
|
def __str__(self):
|
|
53
65
|
return self.name
|
|
54
66
|
|
|
@@ -110,12 +122,6 @@ class Ingredient(models.Model):
|
|
|
110
122
|
@property
|
|
111
123
|
def cleaned_consumptions(self):
|
|
112
124
|
consumptions = self.consumptions.all()
|
|
113
|
-
for c1 in consumptions:
|
|
114
|
-
for c2 in consumptions:
|
|
115
|
-
if c1.date_of_using == c2.date_of_using and c1.id != c2.id:
|
|
116
|
-
c1.is_disabled = False
|
|
117
|
-
c1.save()
|
|
118
|
-
c2.delete()
|
|
119
125
|
return consumptions
|
|
120
126
|
|
|
121
127
|
@property
|
|
@@ -128,6 +134,22 @@ class Ingredient(models.Model):
|
|
|
128
134
|
)
|
|
129
135
|
return quantity
|
|
130
136
|
|
|
137
|
+
def get_consuming_quantity(self, date_end):
|
|
138
|
+
consumptions = self.cleaned_consumptions
|
|
139
|
+
if not consumptions:
|
|
140
|
+
return 0
|
|
141
|
+
quantity = sum(
|
|
142
|
+
[
|
|
143
|
+
c.amount_used
|
|
144
|
+
for c in consumptions
|
|
145
|
+
if not c.is_disabled and c.date_of_using <= date_end
|
|
146
|
+
]
|
|
147
|
+
)
|
|
148
|
+
return quantity
|
|
149
|
+
|
|
150
|
+
def get_remaining_quantity(self, date_end):
|
|
151
|
+
return self.quantity - self.get_consuming_quantity(date_end)
|
|
152
|
+
|
|
131
153
|
@property
|
|
132
154
|
def remaining_quantity(self):
|
|
133
155
|
consumptions = self.cleaned_consumptions
|
|
@@ -156,7 +178,7 @@ class Consumption(models.Model):
|
|
|
156
178
|
|
|
157
179
|
date_of_using = models.DateField(verbose_name=_("Date"))
|
|
158
180
|
amount_used = models.IntegerField(
|
|
159
|
-
verbose_name="
|
|
181
|
+
verbose_name=_("Consuming Quantity"),
|
|
160
182
|
validators=[MinValueValidator(0)],
|
|
161
183
|
)
|
|
162
184
|
is_disabled = models.BooleanField(
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
<th>{% trans "Abbreviation" %}</th>
|
|
19
19
|
<th>{% trans "Created at" %}</th>
|
|
20
20
|
<th>{% trans "Pin to consumptions top" %}</th>
|
|
21
|
+
<th>{% trans "Priority" %}</th>
|
|
21
22
|
<th>{% trans "Is Disabled" %}</th>
|
|
22
23
|
<th>#</th>
|
|
23
24
|
</tr>
|
|
@@ -34,6 +35,7 @@
|
|
|
34
35
|
{% trans "Yes" %}
|
|
35
36
|
{% endif %}
|
|
36
37
|
</td>
|
|
38
|
+
<td>{{ category.priority|default_if_none:'0' }}</td>
|
|
37
39
|
<td>
|
|
38
40
|
{% if category.is_disabled %}
|
|
39
41
|
{% trans "Yes" %}
|
|
@@ -22,15 +22,15 @@
|
|
|
22
22
|
<input class=" form-control"
|
|
23
23
|
onkeydown="if(event.keyCode==13){list_consumptions();}"
|
|
24
24
|
title="{% trans 'The starting date of storage.' %}"
|
|
25
|
-
id="
|
|
26
|
-
value="{{
|
|
25
|
+
id="storage_date_start_input"
|
|
26
|
+
value="{{ storage_date_start|date:"Y/m/d" }}">
|
|
27
27
|
</input>
|
|
28
28
|
</div>
|
|
29
29
|
<div class="col col-3 col-md-2 col-lg-2">
|
|
30
30
|
<input class="form-control "
|
|
31
31
|
onkeydown="if(event.keyCode==13){list_consumptions();}"
|
|
32
32
|
title="{% trans 'The end date of storage.' %}"
|
|
33
|
-
id="
|
|
33
|
+
id="storage_date_end_input"
|
|
34
34
|
value="{{ request.COOKIES.storage_date_end }}">
|
|
35
35
|
</input>
|
|
36
36
|
</div>
|
|
@@ -96,14 +96,18 @@
|
|
|
96
96
|
{{ months|json_script:'months' }}
|
|
97
97
|
{{ meal_types|json_script:'meal_types' }}
|
|
98
98
|
{{ date_range|json_script:'date_range' }}
|
|
99
|
+
{{ storage_date_start|json_script:'storage_date_start' }}
|
|
99
100
|
<script>
|
|
100
101
|
var ingredient_ids = JSON.parse($("#ingredient_ids").text())
|
|
101
102
|
var ingredient_ids_length = ingredient_ids.length
|
|
102
103
|
var months = JSON.parse($("#months").text())
|
|
103
104
|
var meal_types = JSON.parse($("#meal_types").text())
|
|
105
|
+
var date_range = JSON.parse($("#date_range").text())
|
|
106
|
+
|
|
107
|
+
var storage_date_start = $('#storage_date_start').text().replace(new RegExp('"', 'g'), "")
|
|
108
|
+
|
|
104
109
|
var dont_submit = false
|
|
105
110
|
|
|
106
|
-
date_range = JSON.parse($("#date_range").text())
|
|
107
111
|
|
|
108
112
|
function list_consumptions_rapidly() {
|
|
109
113
|
query = {
|
|
@@ -154,6 +158,13 @@
|
|
|
154
158
|
|
|
155
159
|
});
|
|
156
160
|
|
|
161
|
+
$(document).ready(function() {
|
|
162
|
+
if (get_cookie('storage_date_start') === null) {
|
|
163
|
+
set_cookies({
|
|
164
|
+
"storage_date_start": storage_date_start
|
|
165
|
+
})
|
|
166
|
+
}
|
|
167
|
+
});
|
|
157
168
|
|
|
158
169
|
$(document).ready(function() {
|
|
159
170
|
var last_meal_type = ""
|
|
@@ -391,20 +402,20 @@
|
|
|
391
402
|
});
|
|
392
403
|
|
|
393
404
|
function list_consumptions() {
|
|
394
|
-
var
|
|
395
|
-
var
|
|
405
|
+
var new_storage_date_start = $('#storage_date_start_input').val()
|
|
406
|
+
var new_storage_date_end = $('#storage_date_end_input').val()
|
|
396
407
|
query = {}
|
|
397
|
-
if (
|
|
398
|
-
query["storage_date_start"] =
|
|
399
|
-
set_simple_cookie("storage_date_start",
|
|
408
|
+
if (new_storage_date_start) {
|
|
409
|
+
query["storage_date_start"] = new_storage_date_start
|
|
410
|
+
set_simple_cookie("storage_date_start", new_storage_date_start)
|
|
400
411
|
} else {
|
|
401
412
|
query["storage_date_start"] = ""
|
|
402
413
|
delete_cookie("storage_date_start")
|
|
403
414
|
}
|
|
404
415
|
|
|
405
|
-
if (
|
|
406
|
-
query["storage_date_end"] =
|
|
407
|
-
set_simple_cookie("storage_date_end",
|
|
416
|
+
if (new_storage_date_end) {
|
|
417
|
+
query["storage_date_end"] = new_storage_date_end
|
|
418
|
+
set_simple_cookie("storage_date_end", new_storage_date_end)
|
|
408
419
|
} else {
|
|
409
420
|
query["storage_date_end"] = ""
|
|
410
421
|
delete_cookie("storage_date_end")
|
|
@@ -420,7 +431,7 @@
|
|
|
420
431
|
position: absolute;
|
|
421
432
|
}
|
|
422
433
|
|
|
423
|
-
#
|
|
434
|
+
#storage_date_start_input,
|
|
424
435
|
#storage_date_end {
|
|
425
436
|
text-align: center;
|
|
426
437
|
font-family: Mono;
|
fnschoo1/canteen/views.py
CHANGED
|
@@ -297,6 +297,7 @@ def create_consumptions(request, ingredient_id=None):
|
|
|
297
297
|
"meal_types": meal_types,
|
|
298
298
|
"ingredient_ids": ingredient_ids,
|
|
299
299
|
"months": months,
|
|
300
|
+
"storage_date_start": date_start,
|
|
300
301
|
},
|
|
301
302
|
)
|
|
302
303
|
|
|
@@ -783,7 +784,6 @@ class CategoryListView(LoginRequiredMixin, ListView):
|
|
|
783
784
|
model = Category
|
|
784
785
|
template_name = "canteen/category/list.html"
|
|
785
786
|
context_object_name = "categories"
|
|
786
|
-
ordering = ["-created_at"]
|
|
787
787
|
|
|
788
788
|
paginate_by = 10
|
|
789
789
|
paginate_orphans = 2
|
|
@@ -2106,6 +2106,19 @@ class CanteenWorkBook:
|
|
|
2106
2106
|
]:
|
|
2107
2107
|
set_column_width_in_inches(sheet, col, width)
|
|
2108
2108
|
|
|
2109
|
+
def fill_in_food_sheets(self):
|
|
2110
|
+
user = self.request.user
|
|
2111
|
+
date_start = self.date_start
|
|
2112
|
+
date_end = self.date_end
|
|
2113
|
+
meal_type = self.meal_type
|
|
2114
|
+
|
|
2115
|
+
ingredients = Ingredient.objects.filter(
|
|
2116
|
+
Q(is_disabled=False)
|
|
2117
|
+
& Q(is_ignorable=False)
|
|
2118
|
+
& Q(user=user)
|
|
2119
|
+
& Q(meal_type=meal_type)
|
|
2120
|
+
).all()
|
|
2121
|
+
|
|
2109
2122
|
def fill_in(self):
|
|
2110
2123
|
self.fill_in_cover_sheet()
|
|
2111
2124
|
self.fill_in_storage_sheet()
|
|
Binary file
|
fnschoo1/static/js/fnschool.js
CHANGED
|
@@ -9,9 +9,7 @@ function get_cookie(name) {
|
|
|
9
9
|
return null
|
|
10
10
|
}
|
|
11
11
|
function delete_cookie(name) {
|
|
12
|
-
document.cookie =
|
|
13
|
-
name +
|
|
14
|
-
`=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=${window.location.pathname}`
|
|
12
|
+
document.cookie = name + `=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/`
|
|
15
13
|
}
|
|
16
14
|
|
|
17
15
|
function set_cookies(cookies) {
|
|
@@ -28,7 +26,7 @@ function set_simple_cookie(key, value) {
|
|
|
28
26
|
}
|
|
29
27
|
const expiryDate = new Date()
|
|
30
28
|
expiryDate.setFullYear(expiryDate.getFullYear() + 20)
|
|
31
|
-
document.cookie = `${key}=${value}; expires=${expiryDate.toUTCString()}; path
|
|
29
|
+
document.cookie = `${key}=${value}; expires=${expiryDate.toUTCString()}; path=/`
|
|
32
30
|
}
|
|
33
31
|
function update_href(query) {
|
|
34
32
|
query = new Map(Object.entries(query))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fnschool
|
|
3
|
-
Version:
|
|
3
|
+
Version: 20251014.81347.804
|
|
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=
|
|
1
|
+
fnschoo1/__init__.py,sha256=Oo5lrB265t6WgO2VyARHhiCzSnqnPwPyQqwRCxQNeCk,197
|
|
2
2
|
fnschoo1/manage.py,sha256=Cr5OtPrRWfEc7KEjW4yYnMKj_qlb0-qpwFRz3vFXvC0,1565
|
|
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
|
-
fnschoo1/canteen/forms.py,sha256=
|
|
7
|
-
fnschoo1/canteen/models.py,sha256=
|
|
6
|
+
fnschoo1/canteen/forms.py,sha256=PDPAzZZ_y533KtMxCixLXXsXok5gjUShCSXeonYgGqQ,2582
|
|
7
|
+
fnschoo1/canteen/models.py,sha256=a4dCdTAcWu84D6PP8CWCSsAF4Q6ZMo74eDluwOmH_R8,5710
|
|
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=
|
|
10
|
+
fnschoo1/canteen/views.py,sha256=DGrbOZuU0XuMuTnldFrHpRsm-spYuBHZMzBQq3z_iC0,26284
|
|
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
|
|
@@ -21,14 +21,15 @@ fnschoo1/canteen/migrations/0010_alter_consumption_options_alter_ingredient_opti
|
|
|
21
21
|
fnschoo1/canteen/migrations/0011_category_pin_to_consumptions_top.py,sha256=gonvx7T23KlesYUGFx-WTvkz1BLZSnq0n62qKvtWnUo,553
|
|
22
22
|
fnschoo1/canteen/migrations/0012_alter_ingredient_storage_date.py,sha256=JvU9xrAbGN8uoKHQw00wq6U4CaR_6WojQo-8VwmID3I,436
|
|
23
23
|
fnschoo1/canteen/migrations/0013_alter_consumption_options_alter_ingredient_options_and_more.py,sha256=hKwsEJ_a1ezANJSrQoca2wEy22AZESwhqH9eonNfOm8,6735
|
|
24
|
+
fnschoo1/canteen/migrations/0014_category_priority.py,sha256=AywjPQhwtwm8xttEEOGQ3yyQ8j890hL5J-wCUNEwbkE,677
|
|
24
25
|
fnschoo1/canteen/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
26
|
fnschoo1/canteen/templates/canteen/close.html,sha256=pLYeJmGaOEJKMUJdZmYzz_n--l28IRDQ4fXvetP_Vsc,200
|
|
26
27
|
fnschoo1/canteen/templates/canteen/category/create.html,sha256=7Hq62BqEpamDt52_Ut7DTO74_3yEn8_CqXH4e4va6dY,593
|
|
27
|
-
fnschoo1/canteen/templates/canteen/category/delete.html,sha256=
|
|
28
|
-
fnschoo1/canteen/templates/canteen/category/list.html,sha256=
|
|
28
|
+
fnschoo1/canteen/templates/canteen/category/delete.html,sha256=gkEg3oiIbjVsZMKEywkAeXtb21oHTofi8cOER4dW6cc,1802
|
|
29
|
+
fnschoo1/canteen/templates/canteen/category/list.html,sha256=QLO2GA13Co48Ijd0DCCN4lcMm1fgJqT2CprH5VdLZPw,2148
|
|
29
30
|
fnschoo1/canteen/templates/canteen/category/update.html,sha256=8Nzdbe8UorrJHzElkrdqvLaPnUvcvGhrViZB4D86wqo,815
|
|
30
31
|
fnschoo1/canteen/templates/canteen/consumption/_create.html,sha256=lpST1R0vL1PEI1YE9d0-bcWWpCMH-INjIF-7pweAHuU,1008
|
|
31
|
-
fnschoo1/canteen/templates/canteen/consumption/create.html,sha256=
|
|
32
|
+
fnschoo1/canteen/templates/canteen/consumption/create.html,sha256=k7E3SH9B605WlrJ7_ylncfoOe51qhHgIXKr_TYLukEs,15960
|
|
32
33
|
fnschoo1/canteen/templates/canteen/ingredient/close.html,sha256=pLYeJmGaOEJKMUJdZmYzz_n--l28IRDQ4fXvetP_Vsc,200
|
|
33
34
|
fnschoo1/canteen/templates/canteen/ingredient/create.html,sha256=xZvh0tP_cv2HPQ96JSHChO6Ni23tzHc5YJCUhE2yEqM,807
|
|
34
35
|
fnschoo1/canteen/templates/canteen/ingredient/create_one.html,sha256=O8EPSvAnEZ-4VJiwFdoyxJrMOoMpRkH6CyfvWwHaVgc,599
|
|
@@ -40,7 +41,7 @@ fnschoo1/canteen/templates/canteen/meal_type/delete.html,sha256=1UmCyXD-6lbYl-IE
|
|
|
40
41
|
fnschoo1/canteen/templates/canteen/meal_type/list.html,sha256=c5kJUE1OgpRtSrMV4wFwL_gbRSaX_XMM4Zt1JTx34_g,1907
|
|
41
42
|
fnschoo1/canteen/templates/canteen/meal_type/update.html,sha256=Rfv1TamSFIKHzvUNlgnmrPmfmzrehPpuo5Hv8VF0yek,818
|
|
42
43
|
fnschoo1/canteen/workbook/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
43
|
-
fnschoo1/canteen/workbook/generate.py,sha256=
|
|
44
|
+
fnschoo1/canteen/workbook/generate.py,sha256=iCVe844tDqFZXn8eVwpgR7udZRfQJNoTalU-8jJH4x0,84475
|
|
44
45
|
fnschoo1/fnschool/__init__.py,sha256=TmHhzykpKNMoMf6eD-EKvbvmnlzs1XGHtvD55ae1sXs,287
|
|
45
46
|
fnschoo1/fnschool/asgi.py,sha256=kzkqosS10uBlyBX53EXcsATcvEZmac6nsPzyOHCuucE,393
|
|
46
47
|
fnschoo1/fnschool/settings.py,sha256=l9Y1iQCivSfmsNfnHltfXLzxP6gG4VMIL4GEZgAp8YM,4357
|
|
@@ -50,7 +51,7 @@ fnschoo1/fnschool/wsgi.py,sha256=dQq4S0vZWCz8w5R9KooJeLYTVFXvEgJRYe7NFZwVxU8,393
|
|
|
50
51
|
fnschoo1/fnschool/templatetags/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
51
52
|
fnschoo1/fnschool/templatetags/fnschool_tags.py,sha256=l5Zov4VlQKpz-69SFftP4kXyMymz-a0D5F_ss_eiFc4,568
|
|
52
53
|
fnschoo1/locale/en/LC_MESSAGES/django.mo,sha256=M8AB6fmjwlEd761iFlasNWdiEYfE-2nIwBoioGtEVUo,404
|
|
53
|
-
fnschoo1/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=
|
|
54
|
+
fnschoo1/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=3Ipol-cSR0HI3vvp7gbK1jxLGR7ZzeKncXX__rzyJCw,20121
|
|
54
55
|
fnschoo1/profiles/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
56
|
fnschoo1/profiles/admin.py,sha256=93UCvdODI63KzCDfFFnKmfvCMGCp6FCG9WErE91i79Y,522
|
|
56
57
|
fnschoo1/profiles/apps.py,sha256=WDu6eceFnDkBFMqquAolMZMo7XPb0ah6l2q2AruTrl4,215
|
|
@@ -76,7 +77,7 @@ fnschoo1/static/css/fnschool.css,sha256=nPjOh0vWuuFnZWrXcT2E3j3adL77v_PRyeml65Mv
|
|
|
76
77
|
fnschoo1/static/images/favicon.ico,sha256=S8Tf0NsUdHnoYO0SEn-sig6YjB0atIpEtSlm7p1HxjY,5014
|
|
77
78
|
fnschoo1/static/js/bootstrap.bundle.min.js,sha256=6kw84LCFc4QJzifgkle0FsvQrpt2NVRNPNjSSc9caiM,125881
|
|
78
79
|
fnschoo1/static/js/bootstrap.min.js,sha256=0SHpZTHghUOz_BNedMzuH00z5lgwOSRKP_KI9G5Ogbk,88597
|
|
79
|
-
fnschoo1/static/js/fnschool.js,sha256=
|
|
80
|
+
fnschoo1/static/js/fnschool.js,sha256=tq9QzYsq8S3CvCqLk2U9tQuwQTcE-hYpf5YanqIHi4g,2959
|
|
80
81
|
fnschoo1/static/js/jquery.min.js,sha256=np_WnfpAmUmEO_iheFAJKf6mbm0_laW3Ns4x7kjSlt4,162505
|
|
81
82
|
fnschoo1/static/js/jquery.slim.min.js,sha256=p5YkbOjgHxX3hTadKlGuDW58NvJ1ldjjokDuDQ_5yXs,129962
|
|
82
83
|
fnschoo1/static/js/popper.min.js,sha256=O2xdmtEow7gq3I7-0lKjshvxHkBe0hTWrMkbX2fy0XQ,36887
|
|
@@ -93,14 +94,14 @@ fnschoo1/templates/includes/_navigation.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRk
|
|
|
93
94
|
fnschoo1/templates/includes/_paginator.html,sha256=Z-Hxcdmun4SJ1YcHnWTDLfW8wrngROiBTwr4NZWaPP4,1246
|
|
94
95
|
fnschoo1/templates/registration/logged_out.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
95
96
|
fnschoo1/templates/registration/login.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
96
|
-
fnschool-
|
|
97
|
-
fnschool-
|
|
98
|
-
fnschool-
|
|
99
|
-
fnschool-
|
|
100
|
-
fnschool-
|
|
101
|
-
fnschool-
|
|
102
|
-
fnschool-
|
|
103
|
-
fnschool-
|
|
104
|
-
fnschool-
|
|
105
|
-
fnschool-
|
|
106
|
-
fnschool-
|
|
97
|
+
fnschool-20251014.81347.804.dist-info/licenses/LICENSE,sha256=2n6rt7r999OuXp8iOqW9we7ORaxWncIbOwN1ILRGR2g,7651
|
|
98
|
+
fnschool-20251014.81347.804.dist-info/METADATA,sha256=OK9Y8pUH8pBnQF7_lFDDckxCnj-zUsXvco38oP1x7eI,4752
|
|
99
|
+
fnschool-20251014.81347.804.dist-info/SOURCES.txt.py,sha256=2LY2mshgNtxI3ICB-oBjyMYgJk2bQqeGFM5J5ay5TQs,4954
|
|
100
|
+
fnschool-20251014.81347.804.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
101
|
+
fnschool-20251014.81347.804.dist-info/dependency_links.txt.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
102
|
+
fnschool-20251014.81347.804.dist-info/entry_points.txt,sha256=Ow5nChVFJY3O4TJAIE1ZydMev1MUtgRsT1b8eFP6728,54
|
|
103
|
+
fnschool-20251014.81347.804.dist-info/entry_points.txt.py,sha256=7iOwIx_m9Y6xJt___BZHWJh27LV5hqWnUjmj77MoRys,47
|
|
104
|
+
fnschool-20251014.81347.804.dist-info/requires.txt.py,sha256=PqRcHIQSMPUb271hacYrlSDHwB1WDZmlWUkh6RnBz_g,113
|
|
105
|
+
fnschool-20251014.81347.804.dist-info/top_level.txt,sha256=s6ZKnNm94Q0-247a50eI7jDK98uPF6P2kC9Ovd3LUlM,9
|
|
106
|
+
fnschool-20251014.81347.804.dist-info/top_level.txt.py,sha256=_7CbrSihm0dzBn_tTy2ass_Y2VlkVNT2eylE8mcfwHY,9
|
|
107
|
+
fnschool-20251014.81347.804.dist-info/RECORD,,
|
{fnschool-20251013.81919.815.dist-info → fnschool-20251014.81347.804.dist-info}/SOURCES.txt.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fnschool-20251013.81919.815.dist-info → fnschool-20251014.81347.804.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{fnschool-20251013.81919.815.dist-info → fnschool-20251014.81347.804.dist-info}/entry_points.txt.py
RENAMED
|
File without changes
|
{fnschool-20251013.81919.815.dist-info → fnschool-20251014.81347.804.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|
{fnschool-20251013.81919.815.dist-info → fnschool-20251014.81347.804.dist-info}/requires.txt.py
RENAMED
|
File without changes
|
{fnschool-20251013.81919.815.dist-info → fnschool-20251014.81347.804.dist-info}/top_level.txt
RENAMED
|
File without changes
|
{fnschool-20251013.81919.815.dist-info → fnschool-20251014.81347.804.dist-info}/top_level.txt.py
RENAMED
|
File without changes
|