fnschool 20251027.81653.841__py3-none-any.whl → 20251027.82134.859__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 (21) hide show
  1. fnschoo1/__init__.py +1 -1
  2. fnschoo1/fnprofile/migrations/0001_initial.py +1 -1
  3. fnschoo1/fnprofile/migrations/0003_alter_fnuser_options_alter_fnuser_groups_and_more.py +45 -0
  4. fnschoo1/fnprofile/views.py +1 -1
  5. fnschoo1/fnschool/settings.py +2 -2
  6. fnschoo1/locale/zh_Hans/LC_MESSAGES/django.mo +0 -0
  7. fnschoo1/static/js/fnschool.js +1 -1
  8. fnschoo1/templates/includes/_header.html +1 -1
  9. {fnschool-20251027.81653.841.dist-info → fnschool-20251027.82134.859.dist-info}/METADATA +1 -1
  10. {fnschool-20251027.81653.841.dist-info → fnschool-20251027.82134.859.dist-info}/RECORD +19 -20
  11. fnschoo1/fnprofile/migrations/0003_alter_fnuser_options.py +0 -20
  12. fnschoo1/fnschool/settings_fn_profile_migration_0001.py +0 -180
  13. {fnschool-20251027.81653.841.dist-info → fnschool-20251027.82134.859.dist-info}/SOURCES.txt.py +0 -0
  14. {fnschool-20251027.81653.841.dist-info → fnschool-20251027.82134.859.dist-info}/WHEEL +0 -0
  15. {fnschool-20251027.81653.841.dist-info → fnschool-20251027.82134.859.dist-info}/dependency_links.txt.py +0 -0
  16. {fnschool-20251027.81653.841.dist-info → fnschool-20251027.82134.859.dist-info}/entry_points.txt +0 -0
  17. {fnschool-20251027.81653.841.dist-info → fnschool-20251027.82134.859.dist-info}/entry_points.txt.py +0 -0
  18. {fnschool-20251027.81653.841.dist-info → fnschool-20251027.82134.859.dist-info}/licenses/LICENSE +0 -0
  19. {fnschool-20251027.81653.841.dist-info → fnschool-20251027.82134.859.dist-info}/requires.txt.py +0 -0
  20. {fnschool-20251027.81653.841.dist-info → fnschool-20251027.82134.859.dist-info}/top_level.txt +0 -0
  21. {fnschool-20251027.81653.841.dist-info → fnschool-20251027.82134.859.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__ = "20251027.81653.841"
9
+ __version__ = "20251027.82134.859"
@@ -1,4 +1,4 @@
1
- # Generated by Django 4.2.25 on 2025-10-26 14:18
1
+ # Generated by Django 4.2.25 on 2025-10-27 13:10
2
2
 
3
3
  import django.contrib.auth.models
4
4
  import django.contrib.auth.validators
@@ -0,0 +1,45 @@
1
+ # Generated by Django 4.2.25 on 2025-10-27 13:34
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("auth", "0012_alter_user_first_name_max_length"),
10
+ ("fnprofile", "0002_auto_20251026_2235"),
11
+ ]
12
+
13
+ operations = [
14
+ migrations.AlterModelOptions(
15
+ name="fnuser",
16
+ options={
17
+ "verbose_name": "用户信息",
18
+ "verbose_name_plural": "用户信息",
19
+ },
20
+ ),
21
+ migrations.AlterField(
22
+ model_name="fnuser",
23
+ name="groups",
24
+ field=models.ManyToManyField(
25
+ blank=True,
26
+ help_text="这个用户所属的组。",
27
+ related_name="fn_user_groups",
28
+ related_query_name="fn_user",
29
+ to="auth.group",
30
+ verbose_name="groups",
31
+ ),
32
+ ),
33
+ migrations.AlterField(
34
+ model_name="fnuser",
35
+ name="user_permissions",
36
+ field=models.ManyToManyField(
37
+ blank=True,
38
+ help_text="给这个用户指定权限。",
39
+ related_name="fn_user_permissions",
40
+ related_query_name="fn_user",
41
+ to="auth.permission",
42
+ verbose_name="user permissions",
43
+ ),
44
+ ),
45
+ ]
@@ -58,7 +58,7 @@ def fnprofile_edit(request):
58
58
  if form.is_valid():
59
59
  form.save()
60
60
  messages.success(
61
- request, _("Fnuser has been updated successfully!")
61
+ request, _("Your information has been updated successfully!")
62
62
  )
63
63
  return redirect("home")
64
64
  else:
@@ -49,7 +49,7 @@ INSTALLED_APPS = [
49
49
  # fnschool apps.
50
50
  "fnschool",
51
51
  "fnprofile",
52
- "profiles",
52
+ # "profiles",
53
53
  "canteen",
54
54
  ]
55
55
 
@@ -108,7 +108,7 @@ DATABASES = {
108
108
  # Password validation
109
109
  # https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators
110
110
  AUTH_USER_MODEL = "fnprofile.Fnuser"
111
- ## AUTH_USER_MODEL = "profiles.Profile"
111
+ ## AUTH_USER_MODEL = "auth.User"
112
112
  AUTH_PASSWORD_VALIDATORS = [
113
113
  {
114
114
  "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
@@ -3,7 +3,7 @@ $(document).ready(function () {
3
3
  if (messages.length) {
4
4
  messages.css({
5
5
  position: 'absolute',
6
- top: $('.navbar').height(),
6
+ top: $('.navbar').height() * 1.45,
7
7
  width: '100%',
8
8
  })
9
9
  setTimeout(function () {
@@ -92,7 +92,7 @@
92
92
  {% if messages %}
93
93
  <div class="messages">
94
94
  {% for message in messages %}
95
- <div class="alert alert-{{ message.tags }}">
95
+ <div class="alert alert-{{ message.tags }} p-2">
96
96
  {{ message }}
97
97
  <span class="btn-close mx-2" title="{% trans "Hide messages." %}"></span>
98
98
  </div>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fnschool
3
- Version: 20251027.81653.841
3
+ Version: 20251027.82134.859
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,4 +1,4 @@
1
- fnschoo1/__init__.py,sha256=okBXJVxN7zEzkLb9Nrc-s1XXTG5nj62Bhpl_QJL_usQ,197
1
+ fnschoo1/__init__.py,sha256=1AVshkJpAXhZJXkE_iQYpnwCbktACVk-5p87QkyvnJM,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
@@ -56,10 +56,10 @@ fnschoo1/fnprofile/models.py,sha256=IQO32PqmLle3XNSs4efA0pzhSBcY7yBvVFWol9C7nm8,
56
56
  fnschoo1/fnprofile/signals.py,sha256=n6PR2VdFNHUidD_k6S2xG2RHQjiguIAeK1foLRMhtbM,492
57
57
  fnschoo1/fnprofile/tests.py,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60
58
58
  fnschoo1/fnprofile/urls.py,sha256=1vDGl43a5A1EGtpuUaqMbdAW8oa0fvx8RRVBw9Akxog,437
59
- fnschoo1/fnprofile/views.py,sha256=3XOa5jwSqaTh_H8IEbg8GAxC3vp-0PY10tgFJX7DvU4,2206
60
- fnschoo1/fnprofile/migrations/0001_initial.py,sha256=guAfLpQG4pGXXQHTqaEI8EMUiuCjsuheiHn-dV8iDtY,7484
59
+ fnschoo1/fnprofile/views.py,sha256=esDXa_Z-3kmC6VhgukRHW8PusuZ_IxdABM_dPdjOlqo,2216
60
+ fnschoo1/fnprofile/migrations/0001_initial.py,sha256=J7HU2Yajy9gO7w5Ox4t_e0-8tShUooMsiyjg65rjSno,7484
61
61
  fnschoo1/fnprofile/migrations/0002_auto_20251026_2235.py,sha256=kv0fO28-5NQx8nFSp39pTOm2zd5kKy8gIXisOzTrGwo,1239
62
- fnschoo1/fnprofile/migrations/0003_alter_fnuser_options.py,sha256=TpzLYSCGMnWl1iU4LqiP0xrSHhc6epy-DfBWad1T1-I,452
62
+ fnschoo1/fnprofile/migrations/0003_alter_fnuser_options_alter_fnuser_groups_and_more.py,sha256=KiV7B3XDXwPcxT10e83DTW40xaJlA2rOMuYGPzqwAPo,1362
63
63
  fnschoo1/fnprofile/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
64
  fnschoo1/fnprofile/templates/fnprofile/create.html,sha256=CO2zKX5Jqh2GXAyfF7AR0rzytYdczkbF6oO2ZoZG1Lo,546
65
65
  fnschoo1/fnprofile/templates/fnprofile/detail.html,sha256=F0_Tv0X890kIdlgUZNT4pB3NiR9vyd_mhERxTjCUelc,595
@@ -69,15 +69,14 @@ fnschoo1/fnprofile/templates/fnprofile/log_out.html,sha256=siA56sam_0XEanX40H7Oa
69
69
  fnschoo1/fnschool/__init__.py,sha256=TmHhzykpKNMoMf6eD-EKvbvmnlzs1XGHtvD55ae1sXs,287
70
70
  fnschoo1/fnschool/_settings.py,sha256=ajz1GSNU9xYVrFEDSz6Xwg7amWQ_yvW75tQa1ZvRIWc,3
71
71
  fnschoo1/fnschool/asgi.py,sha256=kzkqosS10uBlyBX53EXcsATcvEZmac6nsPzyOHCuucE,393
72
- fnschoo1/fnschool/settings.py,sha256=2eHR5jTq8QjK7mjfPnfESm7WXb-3vpHuwSjYeNhX-u8,4709
73
- fnschoo1/fnschool/settings_fn_profile_migration_0001.py,sha256=zQKGekBTRn2fDL7OBAC3mdLUrkXxybRcjJE2t1FmxCI,4708
72
+ fnschoo1/fnschool/settings.py,sha256=7FNCDTYflEClr4wIvEkB25s1tDCx80chu6UOKHTEzT8,4704
74
73
  fnschoo1/fnschool/urls.py,sha256=5eqHzKZLzhVt3SXpSD7aNSZ4HT-B_9nLaT83-X_aJNo,1261
75
74
  fnschoo1/fnschool/views.py,sha256=MfujMhFkRLxT-saID1xTU16v0khzIl6ceDl7_JgrgFs,152
76
75
  fnschoo1/fnschool/wsgi.py,sha256=dQq4S0vZWCz8w5R9KooJeLYTVFXvEgJRYe7NFZwVxU8,393
77
76
  fnschoo1/fnschool/templatetags/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
78
77
  fnschoo1/fnschool/templatetags/fnschool_tags.py,sha256=l5Zov4VlQKpz-69SFftP4kXyMymz-a0D5F_ss_eiFc4,568
79
78
  fnschoo1/locale/en/LC_MESSAGES/django.mo,sha256=M8AB6fmjwlEd761iFlasNWdiEYfE-2nIwBoioGtEVUo,404
80
- fnschoo1/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=avjNs-L9jVhH8JiFsgsPmyHvjIvnyc6wtb_BfXasQBs,23277
79
+ fnschoo1/locale/zh_Hans/LC_MESSAGES/django.mo,sha256=CWhKOcM21iNxOHF8WgjAKPio1L5gVnNF4iOCmNPQZoI,23707
81
80
  fnschoo1/profiles/__init__.py,sha256=RvsEo5qK27vkdZjPQFM5LFsIo9IH7PzkbNU6DQjrYpw,178
82
81
  fnschoo1/profiles/admin.py,sha256=93UCvdODI63KzCDfFFnKmfvCMGCp6FCG9WErE91i79Y,522
83
82
  fnschoo1/profiles/apps.py,sha256=WDu6eceFnDkBFMqquAolMZMo7XPb0ah6l2q2AruTrl4,215
@@ -106,7 +105,7 @@ fnschoo1/static/css/fnschool.css,sha256=NmePHTMyKovvucCws_hC1w9b-7r4NMta-G13PiVU
106
105
  fnschoo1/static/images/favicon.ico,sha256=S8Tf0NsUdHnoYO0SEn-sig6YjB0atIpEtSlm7p1HxjY,5014
107
106
  fnschoo1/static/js/bootstrap.bundle.min.js,sha256=6kw84LCFc4QJzifgkle0FsvQrpt2NVRNPNjSSc9caiM,125881
108
107
  fnschoo1/static/js/bootstrap.min.js,sha256=0SHpZTHghUOz_BNedMzuH00z5lgwOSRKP_KI9G5Ogbk,88597
109
- fnschoo1/static/js/fnschool.js,sha256=XqcvQS0GGtQmZya4E7rZESdloDm_0QIfmAoSstSR2fc,4445
108
+ fnschoo1/static/js/fnschool.js,sha256=6iGkH6Vafcf0vy03XViUaZZfMEaOxFc2mdkCPZ3zChE,4452
110
109
  fnschoo1/static/js/jquery.min.js,sha256=np_WnfpAmUmEO_iheFAJKf6mbm0_laW3Ns4x7kjSlt4,162505
111
110
  fnschoo1/static/js/jquery.slim.min.js,sha256=p5YkbOjgHxX3hTadKlGuDW58NvJ1ldjjokDuDQ_5yXs,129962
112
111
  fnschoo1/static/js/popper.min.js,sha256=O2xdmtEow7gq3I7-0lKjshvxHkBe0hTWrMkbX2fy0XQ,36887
@@ -118,19 +117,19 @@ fnschoo1/templates/base/_js.html,sha256=E2mgj6LQjd37r660iG2cAIOfofwuwMC6SZ59fj6w
118
117
  fnschoo1/templates/base/content.html,sha256=wbbZVWuZwL7EX0K6x5Ex1sYx0N2YteA0XMAdGsW_ScU,974
119
118
  fnschoo1/templates/base/document.html,sha256=8HyXN5B0u2bUtAXvnTkFsUhRHNA_Y3V87KuosQoPPJ4,1134
120
119
  fnschoo1/templates/includes/_footer.html,sha256=giWQqakjUWPe2Z9au-EVnKmu2dvxuLezQZXmWFEtngU,1562
121
- fnschoo1/templates/includes/_header.html,sha256=pjyq_WusbfNRTtTLXVPaOMxVGk8m9RfG5zXo4iZR8B0,3595
120
+ fnschoo1/templates/includes/_header.html,sha256=s3x2lWu7UN-quSR1zlZjHjqliOal1bCqoy4tyM3W2vM,3599
122
121
  fnschoo1/templates/includes/_navigation.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
123
122
  fnschoo1/templates/includes/_paginator.html,sha256=Q-FRCODFNlETjn2yX18IfhctRWfqEgEnIc5LcdHzKSo,1262
124
123
  fnschoo1/templates/registration/logged_out.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
125
124
  fnschoo1/templates/registration/login.html,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
- fnschool-20251027.81653.841.dist-info/licenses/LICENSE,sha256=2n6rt7r999OuXp8iOqW9we7ORaxWncIbOwN1ILRGR2g,7651
127
- fnschool-20251027.81653.841.dist-info/METADATA,sha256=yLl7ZpplO_pG30_hmA9EWaVhVeDHyi8YQxGi8bOZDNQ,4752
128
- fnschool-20251027.81653.841.dist-info/SOURCES.txt.py,sha256=2LY2mshgNtxI3ICB-oBjyMYgJk2bQqeGFM5J5ay5TQs,4954
129
- fnschool-20251027.81653.841.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
130
- fnschool-20251027.81653.841.dist-info/dependency_links.txt.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
131
- fnschool-20251027.81653.841.dist-info/entry_points.txt,sha256=Ow5nChVFJY3O4TJAIE1ZydMev1MUtgRsT1b8eFP6728,54
132
- fnschool-20251027.81653.841.dist-info/entry_points.txt.py,sha256=7iOwIx_m9Y6xJt___BZHWJh27LV5hqWnUjmj77MoRys,47
133
- fnschool-20251027.81653.841.dist-info/requires.txt.py,sha256=PqRcHIQSMPUb271hacYrlSDHwB1WDZmlWUkh6RnBz_g,113
134
- fnschool-20251027.81653.841.dist-info/top_level.txt,sha256=s6ZKnNm94Q0-247a50eI7jDK98uPF6P2kC9Ovd3LUlM,9
135
- fnschool-20251027.81653.841.dist-info/top_level.txt.py,sha256=_7CbrSihm0dzBn_tTy2ass_Y2VlkVNT2eylE8mcfwHY,9
136
- fnschool-20251027.81653.841.dist-info/RECORD,,
125
+ fnschool-20251027.82134.859.dist-info/licenses/LICENSE,sha256=2n6rt7r999OuXp8iOqW9we7ORaxWncIbOwN1ILRGR2g,7651
126
+ fnschool-20251027.82134.859.dist-info/METADATA,sha256=J0b29l0fdvi2aZx_uzg_feqHRkzroru1sEegqeS5tiE,4752
127
+ fnschool-20251027.82134.859.dist-info/SOURCES.txt.py,sha256=2LY2mshgNtxI3ICB-oBjyMYgJk2bQqeGFM5J5ay5TQs,4954
128
+ fnschool-20251027.82134.859.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
129
+ fnschool-20251027.82134.859.dist-info/dependency_links.txt.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
130
+ fnschool-20251027.82134.859.dist-info/entry_points.txt,sha256=Ow5nChVFJY3O4TJAIE1ZydMev1MUtgRsT1b8eFP6728,54
131
+ fnschool-20251027.82134.859.dist-info/entry_points.txt.py,sha256=7iOwIx_m9Y6xJt___BZHWJh27LV5hqWnUjmj77MoRys,47
132
+ fnschool-20251027.82134.859.dist-info/requires.txt.py,sha256=PqRcHIQSMPUb271hacYrlSDHwB1WDZmlWUkh6RnBz_g,113
133
+ fnschool-20251027.82134.859.dist-info/top_level.txt,sha256=s6ZKnNm94Q0-247a50eI7jDK98uPF6P2kC9Ovd3LUlM,9
134
+ fnschool-20251027.82134.859.dist-info/top_level.txt.py,sha256=_7CbrSihm0dzBn_tTy2ass_Y2VlkVNT2eylE8mcfwHY,9
135
+ fnschool-20251027.82134.859.dist-info/RECORD,,
@@ -1,20 +0,0 @@
1
- # Generated by Django 4.2.25 on 2025-10-26 15:42
2
-
3
- from django.db import migrations
4
-
5
-
6
- class Migration(migrations.Migration):
7
-
8
- dependencies = [
9
- ("fnprofile", "0002_auto_20251026_2235"),
10
- ]
11
-
12
- operations = [
13
- migrations.AlterModelOptions(
14
- name="fnuser",
15
- options={
16
- "verbose_name": "User Information",
17
- "verbose_name_plural": "User Information",
18
- },
19
- ),
20
- ]
@@ -1,180 +0,0 @@
1
- """
2
- Django settings for fnschool project.
3
-
4
- Generated by 'django-admin startproject' using Django 4.2.24.
5
-
6
- For more information on this file, see
7
- https://docs.djangoproject.com/en/4.2/topics/settings/
8
-
9
- For the full list of settings and their values, see
10
- https://docs.djangoproject.com/en/4.2/ref/settings/
11
- """
12
-
13
- import os
14
- from pathlib import Path
15
-
16
- from django.urls import reverse_lazy
17
- from django.utils.translation import gettext_lazy as _
18
-
19
- # Build paths inside the project like this: BASE_DIR / 'subdir'.
20
- BASE_DIR = Path(__file__).resolve().parent.parent
21
-
22
-
23
- # Quick-start development settings - unsuitable for production
24
- # See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/
25
-
26
- # SECURITY WARNING: keep the secret key used in production secret!
27
- SECRET_KEY = (
28
- "django-insecure-vt(#owf#cbx)yo$9m^=%&-heu&txuc23&a5b=a=u@=274)2!9w"
29
- )
30
-
31
- # SECURITY WARNING: don't run with debug turned on in production!
32
- DEBUG = True
33
-
34
- ALLOWED_HOSTS = []
35
-
36
-
37
- # Application definition
38
-
39
- INSTALLED_APPS = [
40
- "django.contrib.admin",
41
- "django.contrib.auth",
42
- "django.contrib.contenttypes",
43
- "django.contrib.sessions",
44
- "django.contrib.messages",
45
- "django.contrib.staticfiles",
46
- # site apps.
47
- "crispy_forms",
48
- "crispy_bootstrap5", # For Bootstrap 5
49
- # fnschool apps.
50
- "fnschool",
51
- "fnprofile",
52
- "profiles",
53
- "canteen",
54
- ]
55
-
56
- CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5"
57
- CRISPY_TEMPLATE_PACK = "bootstrap5"
58
-
59
- MIDDLEWARE = [
60
- "django.middleware.security.SecurityMiddleware",
61
- "django.contrib.sessions.middleware.SessionMiddleware",
62
- "django.middleware.locale.LocaleMiddleware",
63
- "django.middleware.common.CommonMiddleware",
64
- "django.middleware.csrf.CsrfViewMiddleware",
65
- "django.contrib.auth.middleware.AuthenticationMiddleware",
66
- "django.contrib.messages.middleware.MessageMiddleware",
67
- "django.middleware.clickjacking.XFrameOptionsMiddleware",
68
- ]
69
-
70
- ROOT_URLCONF = "fnschool.urls"
71
-
72
- TEMPLATES = [
73
- {
74
- "BACKEND": "django.template.backends.django.DjangoTemplates",
75
- "DIRS": [
76
- os.path.join(BASE_DIR, "templates"),
77
- ],
78
- "APP_DIRS": True,
79
- "OPTIONS": {
80
- "context_processors": [
81
- "django.template.context_processors.debug",
82
- "django.template.context_processors.request",
83
- "django.contrib.auth.context_processors.auth",
84
- "django.contrib.messages.context_processors.messages",
85
- "django.template.context_processors.i18n",
86
- ],
87
- "builtins": [
88
- "django.templatetags.i18n",
89
- ],
90
- },
91
- },
92
- ]
93
-
94
- WSGI_APPLICATION = "fnschool.wsgi.application"
95
-
96
-
97
- # Database
98
- # https://docs.djangoproject.com/en/4.2/ref/settings/#databases
99
-
100
- DATABASES = {
101
- "default": {
102
- "ENGINE": "django.db.backends.sqlite3",
103
- "NAME": BASE_DIR / "db.sqlite3",
104
- }
105
- }
106
-
107
-
108
- # Password validation
109
- # https://docs.djangoproject.com/en/4.2/ref/settings/#auth-password-validators
110
- ## AUTH_USER_MODEL = "fn_profile.FnUser"
111
- AUTH_USER_MODEL = "profiles.Profile"
112
- AUTH_PASSWORD_VALIDATORS = [
113
- {
114
- "NAME": "django.contrib.auth.password_validation.UserAttributeSimilarityValidator",
115
- },
116
- {
117
- "NAME": "django.contrib.auth.password_validation.MinimumLengthValidator",
118
- },
119
- {
120
- "NAME": "django.contrib.auth.password_validation.CommonPasswordValidator",
121
- },
122
- {
123
- "NAME": "django.contrib.auth.password_validation.NumericPasswordValidator",
124
- },
125
- ]
126
-
127
-
128
- # Internationalization
129
- # https://docs.djangoproject.com/en/4.2/topics/i18n/
130
-
131
- USE_TZ = True
132
- TIME_ZONE = "Asia/Shanghai"
133
-
134
- USE_I18N = True
135
- USE_L10N = True
136
-
137
- LANGUAGE_CODE = "zh-hans"
138
-
139
- LANGUAGES = [
140
- ("en", _("English")),
141
- ("es", _("Spanish")),
142
- ("fr", _("French")),
143
- ("zh-hans", _("Simplified Chinese")),
144
- ]
145
- LOCALE_PATHS = [
146
- os.path.join(BASE_DIR, "locale"),
147
- ]
148
-
149
- USE_TZ = True
150
-
151
-
152
- # Static files (CSS, JavaScript, Images)
153
- # https://docs.djangoproject.com/en/4.2/howto/static-files/
154
-
155
- STATIC_URL = "/static/"
156
- STATICFILES_DIRS = [
157
- os.path.join(BASE_DIR, "static")
158
- ] # Optional: for additional static directories
159
- STATIC_ROOT = os.path.join(BASE_DIR, "static_collected")
160
-
161
- # Default primary key field type
162
- # https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field
163
-
164
- DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
165
-
166
- MEDIA_URL = "/media/"
167
- MEDIA_ROOT = os.path.join(BASE_DIR, "media")
168
-
169
- LOGIN_URL = reverse_lazy("profile:log_in")
170
-
171
- _settings_path = Path(__file__).parent / "_settings.py"
172
- if _settings_path.exists():
173
- print(
174
- ('Custom configuration "{_settings_path}" has been used.').format(
175
- _settings_path=_settings_path.as_posix()
176
- )
177
- )
178
- from ._settings import *
179
-
180
- # The end.