django-school-framework 0.2.2__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.
- apps/__init__.py +1 -0
- apps/admissions/__init__.py +0 -0
- apps/admissions/admin.py +28 -0
- apps/admissions/apps.py +6 -0
- apps/admissions/migrations/0001_initial.py +80 -0
- apps/admissions/migrations/__init__.py +0 -0
- apps/admissions/models.py +105 -0
- apps/admissions/serializers.py +28 -0
- apps/admissions/tests.py +29 -0
- apps/admissions/urls.py +16 -0
- apps/admissions/views.py +30 -0
- apps/core/__init__.py +0 -0
- apps/core/admin.py +17 -0
- apps/core/apps.py +6 -0
- apps/core/cli.py +1341 -0
- apps/core/compliance.py +236 -0
- apps/core/management/__init__.py +0 -0
- apps/core/management/commands/__init__.py +0 -0
- apps/core/management/commands/seed_school_data.py +281 -0
- apps/core/management/commands/wait_for_db.py +26 -0
- apps/core/migrations/0001_initial.py +55 -0
- apps/core/migrations/0002_alter_schoolprofile_options.py +17 -0
- apps/core/migrations/__init__.py +0 -0
- apps/core/models.py +134 -0
- apps/core/serializers.py +18 -0
- apps/core/templatetags/__init__.py +1 -0
- apps/core/templatetags/compliance_tags.py +13 -0
- apps/core/tests.py +123 -0
- apps/core/urls.py +14 -0
- apps/core/views.py +130 -0
- apps/gallery/__init__.py +0 -0
- apps/gallery/admin.py +18 -0
- apps/gallery/apps.py +6 -0
- apps/gallery/migrations/0001_initial.py +46 -0
- apps/gallery/migrations/__init__.py +0 -0
- apps/gallery/models.py +48 -0
- apps/gallery/serializers.py +14 -0
- apps/gallery/tests.py +31 -0
- apps/gallery/urls.py +11 -0
- apps/gallery/views.py +15 -0
- apps/legal/__init__.py +0 -0
- apps/legal/admin.py +31 -0
- apps/legal/apps.py +6 -0
- apps/legal/migrations/0001_initial.py +105 -0
- apps/legal/migrations/__init__.py +0 -0
- apps/legal/models.py +172 -0
- apps/legal/serializers.py +43 -0
- apps/legal/tests.py +42 -0
- apps/legal/urls.py +17 -0
- apps/legal/views.py +33 -0
- apps/news/__init__.py +0 -0
- apps/news/admin.py +13 -0
- apps/news/apps.py +6 -0
- apps/news/migrations/0001_initial.py +46 -0
- apps/news/migrations/__init__.py +0 -0
- apps/news/models.py +55 -0
- apps/news/serializers.py +14 -0
- apps/news/tests.py +37 -0
- apps/news/urls.py +11 -0
- apps/news/views.py +15 -0
- apps/nutrition/__init__.py +0 -0
- apps/nutrition/admin.py +12 -0
- apps/nutrition/apps.py +6 -0
- apps/nutrition/migrations/0001_initial.py +47 -0
- apps/nutrition/migrations/0002_alter_cateringprovider_options.py +17 -0
- apps/nutrition/migrations/__init__.py +0 -0
- apps/nutrition/models.py +53 -0
- apps/nutrition/serializers.py +17 -0
- apps/nutrition/tests.py +41 -0
- apps/nutrition/urls.py +13 -0
- apps/nutrition/views.py +13 -0
- apps/safety/__init__.py +0 -0
- apps/safety/admin.py +21 -0
- apps/safety/apps.py +6 -0
- apps/safety/migrations/0001_initial.py +48 -0
- apps/safety/migrations/__init__.py +0 -0
- apps/safety/models.py +70 -0
- apps/safety/serializers.py +17 -0
- apps/safety/tests.py +20 -0
- apps/safety/urls.py +11 -0
- apps/safety/views.py +17 -0
- apps/schedule/__init__.py +0 -0
- apps/schedule/admin.py +12 -0
- apps/schedule/apps.py +6 -0
- apps/schedule/migrations/0001_initial.py +49 -0
- apps/schedule/migrations/__init__.py +0 -0
- apps/schedule/models.py +60 -0
- apps/schedule/serializers.py +15 -0
- apps/schedule/tests.py +51 -0
- apps/schedule/urls.py +11 -0
- apps/schedule/views.py +15 -0
- django_school_framework-0.2.2.dist-info/METADATA +53 -0
- django_school_framework-0.2.2.dist-info/RECORD +96 -0
- django_school_framework-0.2.2.dist-info/WHEEL +5 -0
- django_school_framework-0.2.2.dist-info/entry_points.txt +2 -0
- django_school_framework-0.2.2.dist-info/top_level.txt +1 -0
apps/schedule/tests.py
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
from datetime import time
|
|
2
|
+
from django.test import TestCase
|
|
3
|
+
from django.db import IntegrityError
|
|
4
|
+
from rest_framework.test import APIClient
|
|
5
|
+
from rest_framework import status
|
|
6
|
+
from apps.admissions.models import ClassCapacity
|
|
7
|
+
from .models import BellSchedule, LessonSchedule
|
|
8
|
+
|
|
9
|
+
class ScheduleTests(TestCase):
|
|
10
|
+
def setUp(self):
|
|
11
|
+
self.client = APIClient()
|
|
12
|
+
self.grade = ClassCapacity.objects.create(
|
|
13
|
+
grade_name='5-А',
|
|
14
|
+
total_capacity=30,
|
|
15
|
+
enrolled_count=28
|
|
16
|
+
)
|
|
17
|
+
self.bell = BellSchedule.objects.create(
|
|
18
|
+
lesson_number=1,
|
|
19
|
+
start_time=time(8, 30),
|
|
20
|
+
end_time=time(9, 15),
|
|
21
|
+
break_duration=10
|
|
22
|
+
)
|
|
23
|
+
self.lesson = LessonSchedule.objects.create(
|
|
24
|
+
grade=self.grade,
|
|
25
|
+
day_of_week=1,
|
|
26
|
+
lesson_number=1,
|
|
27
|
+
subject='Українська мова',
|
|
28
|
+
classroom='Кабінет 204',
|
|
29
|
+
teacher_name='Осадча В.О.'
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
def test_str_representations(self):
|
|
33
|
+
self.assertIn('1 урок', str(self.bell))
|
|
34
|
+
self.assertIn('5-А', str(self.lesson))
|
|
35
|
+
self.assertIn('Українська мова', str(self.lesson))
|
|
36
|
+
|
|
37
|
+
def test_unique_lesson_slot(self):
|
|
38
|
+
with self.assertRaises(IntegrityError):
|
|
39
|
+
LessonSchedule.objects.create(
|
|
40
|
+
grade=self.grade,
|
|
41
|
+
day_of_week=1,
|
|
42
|
+
lesson_number=1,
|
|
43
|
+
subject='Математика'
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
def test_schedule_apis(self):
|
|
47
|
+
res_bell = self.client.get('/api/v1/schedule/bells/')
|
|
48
|
+
self.assertEqual(res_bell.status_code, status.HTTP_200_OK)
|
|
49
|
+
|
|
50
|
+
res_lessons = self.client.get('/api/v1/schedule/lessons/')
|
|
51
|
+
self.assertEqual(res_lessons.status_code, status.HTTP_200_OK)
|
apps/schedule/urls.py
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
from django.urls import path, include
|
|
2
|
+
from rest_framework.routers import DefaultRouter
|
|
3
|
+
from .views import BellScheduleViewSet, LessonScheduleViewSet
|
|
4
|
+
|
|
5
|
+
router = DefaultRouter()
|
|
6
|
+
router.register(r'bells', BellScheduleViewSet, basename='schedule-bells')
|
|
7
|
+
router.register(r'lessons', LessonScheduleViewSet, basename='schedule-lessons')
|
|
8
|
+
|
|
9
|
+
urlpatterns = [
|
|
10
|
+
path('', include(router.urls)),
|
|
11
|
+
]
|
apps/schedule/views.py
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
from rest_framework import viewsets, permissions, filters
|
|
2
|
+
from .models import BellSchedule, LessonSchedule
|
|
3
|
+
from .serializers import BellScheduleSerializer, LessonScheduleSerializer
|
|
4
|
+
|
|
5
|
+
class BellScheduleViewSet(viewsets.ReadOnlyModelViewSet):
|
|
6
|
+
queryset = BellSchedule.objects.all()
|
|
7
|
+
serializer_class = BellScheduleSerializer
|
|
8
|
+
permission_classes = [permissions.AllowAny]
|
|
9
|
+
|
|
10
|
+
class LessonScheduleViewSet(viewsets.ReadOnlyModelViewSet):
|
|
11
|
+
queryset = LessonSchedule.objects.all().select_related('grade')
|
|
12
|
+
serializer_class = LessonScheduleSerializer
|
|
13
|
+
permission_classes = [permissions.AllowAny]
|
|
14
|
+
filter_backends = [filters.SearchFilter]
|
|
15
|
+
search_fields = ['grade__grade_name', 'subject', 'teacher_name']
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: django-school-framework
|
|
3
|
+
Version: 0.2.2
|
|
4
|
+
Summary: Відкритий веб-фреймворк для офіційних сайтів закладів загальної середньої освіти України (ст. 30 ЗУ «Про освіту»)
|
|
5
|
+
License: MIT
|
|
6
|
+
Classifier: Framework :: Django
|
|
7
|
+
Classifier: Framework :: Django :: 5.1
|
|
8
|
+
Classifier: Programming Language :: Python :: 3
|
|
9
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
10
|
+
Classifier: Intended Audience :: Education
|
|
11
|
+
Classifier: Topic :: Education
|
|
12
|
+
Requires-Python: >=3.11
|
|
13
|
+
Description-Content-Type: text/markdown
|
|
14
|
+
Requires-Dist: Django<5.2,>=5.1
|
|
15
|
+
Requires-Dist: djangorestframework>=3.15.2
|
|
16
|
+
Requires-Dist: django-cors-headers>=4.4.0
|
|
17
|
+
Requires-Dist: drf-spectacular>=0.27.2
|
|
18
|
+
Requires-Dist: django-filter>=24.3
|
|
19
|
+
Requires-Dist: pillow>=10.4.0
|
|
20
|
+
Provides-Extra: mysql
|
|
21
|
+
Requires-Dist: PyMySQL>=1.1.1; extra == "mysql"
|
|
22
|
+
Requires-Dist: mysqlclient>=2.2.4; extra == "mysql"
|
|
23
|
+
Provides-Extra: dev
|
|
24
|
+
Requires-Dist: pytest>=8.0.0; extra == "dev"
|
|
25
|
+
Requires-Dist: pytest-django>=4.8.0; extra == "dev"
|
|
26
|
+
|
|
27
|
+
# Django School Framework
|
|
28
|
+
|
|
29
|
+
Модульний веб-фреймворк для офіційних сайтів закладів загальної середньої освіти України відповідно до ст. 30 ЗУ «Про освіту».
|
|
30
|
+
|
|
31
|
+
## Встановлення
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
pip install django-school-framework
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Швидкий старт
|
|
38
|
+
|
|
39
|
+
Додайте необхідні додатки у ваш `settings.py`:
|
|
40
|
+
|
|
41
|
+
```python
|
|
42
|
+
INSTALLED_APPS = [
|
|
43
|
+
# ...
|
|
44
|
+
'apps.core',
|
|
45
|
+
'apps.legal',
|
|
46
|
+
'apps.admissions',
|
|
47
|
+
'apps.nutrition',
|
|
48
|
+
'apps.safety',
|
|
49
|
+
'apps.news',
|
|
50
|
+
'apps.schedule',
|
|
51
|
+
'apps.gallery',
|
|
52
|
+
]
|
|
53
|
+
```
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
apps/__init__.py,sha256=uivYfztrQyGdpL3BEvRX0Ldi7pNoIkBn2201TIV8v_g,15
|
|
2
|
+
apps/admissions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
+
apps/admissions/admin.py,sha256=8O4v-nL96cMudhzZ-cNbXIrNE3Nmuzp4YwcAvSEH8-U,1198
|
|
4
|
+
apps/admissions/apps.py,sha256=TQBn4FwyFrF2Ay9ZH1vd0fDN_SZV5ZSXkiOuDEAnahs,260
|
|
5
|
+
apps/admissions/models.py,sha256=rFQ9lQXj2oxiHZcbDzzrssYBRJy94JaDQ-y0wD0o33M,5369
|
|
6
|
+
apps/admissions/serializers.py,sha256=-6W7_0VnbEqDrMdabOWVJ9jciSCGToHs8fbQLKPA9i8,1188
|
|
7
|
+
apps/admissions/tests.py,sha256=-QEXFevh9EaclNyg1lfmGOQ_WllC8D6NN1INJaHQp8Y,1159
|
|
8
|
+
apps/admissions/urls.py,sha256=JROY1zpPX5-tRu1MD5aBzj2sBhc6R5WxV2Wg5To_jTY,634
|
|
9
|
+
apps/admissions/views.py,sha256=5UuCto3M1VhTpUmvRgHpNTF6rU-jN0fgW_JsnSfemlk,1309
|
|
10
|
+
apps/admissions/migrations/0001_initial.py,sha256=075arV71RYT2-SDLVYfIpZyCThPfmZfX8mAcZ-Qq_Gk,5384
|
|
11
|
+
apps/admissions/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
|
+
apps/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
|
+
apps/core/admin.py,sha256=wHsEru1wxMTZLo2X457X__PEfMTEWxRtXUtXX8AzVoo,706
|
|
14
|
+
apps/core/apps.py,sha256=YIvl18gVDTSykRMdwE-LsH53N3W8YTbjLx2GvIINYaw,242
|
|
15
|
+
apps/core/cli.py,sha256=GTpsYRjSC-IotLPdQ4JonMh_-X5RnHNzp9kje_udetU,61201
|
|
16
|
+
apps/core/compliance.py,sha256=Tt2Ep2MCudOvTIx-AaxALY_5EEnP3AtkuAgncT_PIdQ,13580
|
|
17
|
+
apps/core/models.py,sha256=OXnsc6eA7QZuDjWiluW5isu8soHl7r5gP869EkNpAoQ,5007
|
|
18
|
+
apps/core/serializers.py,sha256=sb-Fy4oZl0g8NT2hkAluinBnyzKQoycY0fQVRHY267g,703
|
|
19
|
+
apps/core/tests.py,sha256=FhQQ5T2Omxtnz5XHcjpTvd9OfFhwnGd48L3LrhGb12E,5097
|
|
20
|
+
apps/core/urls.py,sha256=1i4XwbdZjfI-R_NyHanbVPQUmjhpWGCiCvgOrGRL2OI,665
|
|
21
|
+
apps/core/views.py,sha256=GKYr__ytDu1l1KUNLDWhESJUCmoCQnD3wuq5VVvwV2A,5480
|
|
22
|
+
apps/core/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
|
+
apps/core/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
24
|
+
apps/core/management/commands/seed_school_data.py,sha256=qlKEoAvcrQC14uuzCupAazyuTbVd24UP9bRjfG7NgOM,14643
|
|
25
|
+
apps/core/management/commands/wait_for_db.py,sha256=Bgem1dm-j5Sb1reMXlspZzK8fsugQ-2bDojuaifKPGo,1112
|
|
26
|
+
apps/core/migrations/0001_initial.py,sha256=6GjeYLOszy3cryEwtBReU-ss8s8ZMdjmvEQWNB4Wjcw,4142
|
|
27
|
+
apps/core/migrations/0002_alter_schoolprofile_options.py,sha256=a1n5K90NrKXFEm4k236j8GBoERu7LpwBj9VbE8_s_dA,468
|
|
28
|
+
apps/core/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
29
|
+
apps/core/templatetags/__init__.py,sha256=LhHkQ6X195E6LIrKSe6lOcm0OxyfTD9Eu9Kl_BdANys,29
|
|
30
|
+
apps/core/templatetags/compliance_tags.py,sha256=VPJL9UQbMPKRZOpF6QObcvKY5our_opfjsiXU-TDVHY,431
|
|
31
|
+
apps/gallery/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
|
+
apps/gallery/admin.py,sha256=QiMdcnOLRVXHVNmV7hUUV8Df9S2fiM7wHiy6CDzII1g,567
|
|
33
|
+
apps/gallery/apps.py,sha256=5Vjr4GDiWqqY4R_lWqyXxDieIiabB_qkiwk_G3Kzsio,211
|
|
34
|
+
apps/gallery/models.py,sha256=xR2iiiX1AlB-cWu4q_-TQHjrXvHh2Q04arLe0ZzSwW8,1929
|
|
35
|
+
apps/gallery/serializers.py,sha256=LSYTm9tCqEVgSKw5Ji3g3IDqUQCXrYaDfsone-Kzl1Y,494
|
|
36
|
+
apps/gallery/tests.py,sha256=vrLyWzZM5_pehhE8lOe-pV5BaZB6XPtcomLy-Lxk3bI,1299
|
|
37
|
+
apps/gallery/urls.py,sha256=9G4rVKzxDCtJmWc0Ex1UGZv9cWsZjFLFVLU-t50yRbI,374
|
|
38
|
+
apps/gallery/views.py,sha256=8QqxJoOZbWNgqpkQ_yXuLf6NobwByP7awnVLOIvVv9Y,674
|
|
39
|
+
apps/gallery/migrations/0001_initial.py,sha256=NrUuJfiUXY6ArdVFmcZ_Zen_buR08S1xlTVN5f5yQIU,2193
|
|
40
|
+
apps/gallery/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
|
+
apps/legal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
|
+
apps/legal/admin.py,sha256=CD-7K1zSCEvONlfvskcThvXDtX0BFAzvFBeLK4bIFnk,1423
|
|
43
|
+
apps/legal/apps.py,sha256=A1Br0QCtjUhM0Em50VPKlxBcfho_4aDmAvOgx90XbIA,276
|
|
44
|
+
apps/legal/models.py,sha256=Yc2qgwCXLRquqT9JlbQHbYUBAC4s-MbPD1ZPQjbbdYI,7905
|
|
45
|
+
apps/legal/serializers.py,sha256=Uz5re8KAIbVQKK-NNZ1meE-d3swTRIeX67HznnoDVvo,1618
|
|
46
|
+
apps/legal/tests.py,sha256=3sQDISQ26K8ADei94NrexEA_NwccSOTeqK0B42Abxc0,1677
|
|
47
|
+
apps/legal/urls.py,sha256=lvDcEyxj_i7S0VEbvwNmOIPw3S8DUmQcvvZA4qI7U-A,702
|
|
48
|
+
apps/legal/views.py,sha256=GVEL6XncbK1Nr_RJl0GUM41itc6cG1dihiRX4Y5p1Vg,1479
|
|
49
|
+
apps/legal/migrations/0001_initial.py,sha256=Evj4iF1EU0TeLg3K2naDLXd_-I2gL5S11JPyIqnt3-I,7941
|
|
50
|
+
apps/legal/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
|
+
apps/news/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
52
|
+
apps/news/admin.py,sha256=VYr33VuZ-5GE7i2Vz58wd3-MLUYF6ASRLzly3lMmsqw,505
|
|
53
|
+
apps/news/apps.py,sha256=5hCudOM_6YoLSUmRSk0bLm8DeC0T7CWHPdT410MUn0w,219
|
|
54
|
+
apps/news/models.py,sha256=Jq5fWv8MlAjQ8jGV2oPC-ziM9tepYxs-bZgbC6wwZBo,2113
|
|
55
|
+
apps/news/serializers.py,sha256=jTddcAP2fMqPHoZ44OZwNoRiVNnyqhvWCcc-SBc_JG4,538
|
|
56
|
+
apps/news/tests.py,sha256=QIfCM1w-englgDWKWETQS3cCcbSh0_Ivt_O5GgJ8FtM,1672
|
|
57
|
+
apps/news/urls.py,sha256=aX_vn67gpnwOxJO51LnllABycqDrv3KJR7aAPxl_u1k,382
|
|
58
|
+
apps/news/views.py,sha256=pC88hksx1WUshOQDCFAOxQ7gQ85bzvnUBwOrnBMUD3Q,706
|
|
59
|
+
apps/news/migrations/0001_initial.py,sha256=c9s_x3vThjl_mZVcHHm_AmAkUxIztEZPf2gqWKV__9U,2433
|
|
60
|
+
apps/news/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
61
|
+
apps/nutrition/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
62
|
+
apps/nutrition/admin.py,sha256=pp9BCOnbyGBF2IODkh2K3w7CPpKy45UkJcI7lxbeddg,447
|
|
63
|
+
apps/nutrition/apps.py,sha256=ivA7qrcIMNJcqHHCu34zZYkYxWZFM97rQSJ2YG38-jU,225
|
|
64
|
+
apps/nutrition/models.py,sha256=gOWCxyq10nVzBg8duZDp284zZc8D0lGV6l-vZ8SgjDA,2599
|
|
65
|
+
apps/nutrition/serializers.py,sha256=ccNrjHIPDU-4SC8SPSLBW1JGo2GmWa5MBZehiLpXdnA,635
|
|
66
|
+
apps/nutrition/tests.py,sha256=FG_CQfy8Day4BM1r8n8-rVoXVQ0DzRtF0N218nN2jN8,1576
|
|
67
|
+
apps/nutrition/urls.py,sha256=zvJX9KN9kbXB_9k-Fxuzp_qrgQk8rRRl0aBQrUv3UYg,555
|
|
68
|
+
apps/nutrition/views.py,sha256=UH1VY5sxXMZ_x47hNp6dD9pAlfUrc1bUJf-hbncG4F0,563
|
|
69
|
+
apps/nutrition/migrations/0001_initial.py,sha256=xsl3nJuRfy4Mg5GyB1I1lh-OcrCrDrRJbUsrmowmcsw,2794
|
|
70
|
+
apps/nutrition/migrations/0002_alter_cateringprovider_options.py,sha256=GFuZj7aTI7x_rRMq3laiApXFLszeFMj5q3L8McoqOtk,478
|
|
71
|
+
apps/nutrition/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
72
|
+
apps/safety/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
|
+
apps/safety/admin.py,sha256=MoRBDLIV17enAP-BaY87oGfqdAaoQxDuWHen7JD62pY,960
|
|
74
|
+
apps/safety/apps.py,sha256=EpYGMXtpWPerbfYZ0GAqWX0bBdMg0_C6KE5C6gnJuu4,221
|
|
75
|
+
apps/safety/models.py,sha256=WCgPzelHg3eaNyfmmb0JPTsIFJDLCBpSQP_If8a6ZQA,3596
|
|
76
|
+
apps/safety/serializers.py,sha256=Go5rqTEsuSD44_WBZ-Hdchv8GNFlQHnOA7bG6Ve4qdU,684
|
|
77
|
+
apps/safety/tests.py,sha256=L2npbuAOHds0xGVC-xcWKwq6JObukGjXLMKfvMqFXUs,951
|
|
78
|
+
apps/safety/urls.py,sha256=OiNF-QlpWK1S_sm1nwQZkRwEQJjrNstsGoZmEyQ0mz8,402
|
|
79
|
+
apps/safety/views.py,sha256=sJwB1KXHO75opLQOGGRuRO-ZVouqhxLDaApVqYCiFNM,976
|
|
80
|
+
apps/safety/migrations/0001_initial.py,sha256=H8tzEn8AcZGvs5-JZqHwaRZDCrSJutVIXIAA0H8JuFQ,3591
|
|
81
|
+
apps/safety/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
82
|
+
apps/schedule/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
83
|
+
apps/schedule/admin.py,sha256=ZAwDIC6TIFsGMjLPDPNJLjdQ1ghEWiqSIZH9AtWHv2U,520
|
|
84
|
+
apps/schedule/apps.py,sha256=glFTtOSAHi0aEjj0OYID3ql4RVhtd4NOu3kfsLXRMAs,223
|
|
85
|
+
apps/schedule/models.py,sha256=TiouH_o5LT-kaVWjFxL2qXU4FdgjJCZS9aQjk-bgdb8,2619
|
|
86
|
+
apps/schedule/serializers.py,sha256=VtXT246diRKixFNLyCiFoSACG6xfM38YHguuuG2dJBw,688
|
|
87
|
+
apps/schedule/tests.py,sha256=0LMCVYvTyzh58gvm5OBftKzzFYpbGEGQG1ZsGPPQ9Gg,1797
|
|
88
|
+
apps/schedule/urls.py,sha256=0yP8JQBoOHh1bDJ7Dg483HUQFCDDoXT02xa6Gx4SF_8,384
|
|
89
|
+
apps/schedule/views.py,sha256=rZh1r9R3dGY44v8kVmwgAxu668HwZvgxrITX805iVh4,715
|
|
90
|
+
apps/schedule/migrations/0001_initial.py,sha256=AGhP-ciS3jWzZE_AUfD1N1_QyuYPz_AdHo756rQYfAU,2582
|
|
91
|
+
apps/schedule/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
92
|
+
django_school_framework-0.2.2.dist-info/METADATA,sha256=-3zaHLeqP3rPXpU2quNhB8HV_2JujmzOBpAf5PWHGZ8,1710
|
|
93
|
+
django_school_framework-0.2.2.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
94
|
+
django_school_framework-0.2.2.dist-info/entry_points.txt,sha256=tWZoQfbWK5thGDh4avFbeiGIghUDMbplSWlJz1RV1z0,52
|
|
95
|
+
django_school_framework-0.2.2.dist-info/top_level.txt,sha256=tDgFUeDjw0_X74xMPXr2TmKPB7BjXkoRZOavLez_SgE,5
|
|
96
|
+
django_school_framework-0.2.2.dist-info/RECORD,,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
apps
|