Электронный журнал
Эта программа умеет выставлять темы, закрывать и открывать их. Теперь умеет выставлять столбец оценок (не сами оценки)
от 18.03: теперь есть автоматическое заполнение на практику
Предустановка
- Скачиваем и устанавливаем Python 3.10 (лучше) или 3.9.
- Скачать проект любым способом. Открыть скачанный проект
- Открыть консоль в папке c проектом
- Ввести команду
pip install -r requirements.txt
в консоль. Если нет ни каких ошибок - то всё ок - Переименовать файл
.env-template
в.env
Подготовка, делаем один раз
- Открываем файл
.env
- Изменяем
DATES_FROM=...
в зависимости от года, который хотите так заполнить, ИМЕННО В ТАКОМ ФОРМАТЕ. Обязательно выбрать одну дату из 2. Старого года или нового - Где нибудь на диске создаём папочку, в них будет храниться файлы с лекциями, этот путь вставляем в
DIIR=...
- Следующее действие делать раз в пол года:
В папке которую указали создаём ещё 2 папки
лекции
ипрактика
Действия которые нужно выполнять каждый раз, когда хотите заполнить журнал
- Открываем файл
.env
- Изменяем дату в
DATES=...
лучше брать дату, которая стоит на сайте в ЭЖ, в обычном формате текущая дата + 7 дней берётся
Инструкция по работе с программой
1. Нам нужно авторизоваться.
Открываем файл .env
.
COOKIE=...
- чтобы ЭЛ журнал знал что это вы, нужно указать эту строку.
берём в любом запросе на странице веб сайта ЭЖ > куки
Пояснение: как только авторизовались в ЭЖ, нажимаем кнопку f12(инструменты разработчика\исследовать страницу итд). Открываем появившуюся вкладку сеть, выбираем любой запрос, там нажимаем куки, как показано на рисунке, копируем и вставляем в наш файл.
spisok_student.py
. В нём находися важная информаия для заполнения журнала.
2. Первым делом нужно заполнить файлик Здесь есть 2 способо
1.Первый - автоматический:
от 18.03: теперь есть автоматическое заполнение на практику
Запускаем исполняем файл. В консоли прописать `py TemaEJ.py
После предыдущего шага нажимаем пункт: 3
Создать файл spisok_students (пока теория)
`
Подумает, выдаст информацию и если вернёт в меню, значит всё прошло успешно! Можем продолжать.
Далее что бы всё правильно работало, необходимо выйти из программы. Нажать ctrl + C и снова запустить
2. Второй - ручной:
Для тех у кого не работает первый способ. Остальным пропустить.
- Первое теория. Заполнить по аналогии все группы, в том числе и платников.
spisok = [
{"group": "имя_группы_не_платники", "student_id": 70002, "group_id": 4649,"subject_id":"6132", "id":0},
{"group": "имя_группы_платники", "student_id": 70027, "group_id": 4659,"subject_id":"6132", "id":1},
]
-
group
- название группы и предмета, важно как оно будет и как будут платники записаны, так как будет создат такой файл, поэтому пишем по тем правилам по которым можно создавать файлы. То есть ни каких\*#@$%
итд. -
student_id
- номер первого студента, вообще без разницу какого по счёту, но первый удобно. Где его взять?- Заходим в теорию
- Выбираем правильную дату
- Открываем инструменты разработчика (f12)
- Нажимаем сеть
- Всё ощичаем(корзина)
- Выбираем группу
- Выбираем предмет
- В сети ищем url
https://ssuz.vip.edu35.ru/actions/register/lessons_tab/lessons_tab_rows
- Открываем ответ
- Ищем
rows>0>student_id
Теперь мы понимаем почему у нас ЭЖ такой тупой и тормознутый, его писали однорукие ... он при каждом выборе, загружает студентов С личными датами, каждый раз!
-
group_id - ничего не закрываем, нажимаем запрос и ищем group_id
-
subject_id - там же ищем
-
id - ваш порядковый номер, по порядку
-
Делаем так пока не заполним по всем своим группам
- Второе практика.
- В этом же файле объект spisok_practicy - практика, почти всё тоже самое, только разбиваем на под группы.
spisok_practicy = [
{"group": "питпм_исп221а", "student_id": '70016', "group_id": '4649',"subject_id":'6132',"sub_group_id":'13664', "id":0},#1
{"group": "питпм_исп221ав", "student_id": '70016', "group_id": '4649',"subject_id":'6132',"sub_group_id":'13665', "id":1},#2
{"group": "питпм_исп221ав", "student_id": '70027', "group_id": '4659',"subject_id":'6132', "id":2},
]
Берём те же самые поля, но + теперь ещё нужно sub_group_id - подгруппа, у платников нет.
Важно, в практике не перепутать сначала идёт 1 группа, потом 2 и платники. Эти две последние с одинаковыми именами!
Поздравляю вы справились, но это только начало
3. Пришло время создать файлы с теорией.
Запускаем программу, запускаем TemaEJ.py
. Видим меню и выбираем 1 - Создать файлики
Но будь мы не программисты, если бы дублировали их вручную. Выбираем то что нужно практика\лекции и вуаля они есть
4. Заполняем это всё дело.
Теперь заполняем в формате: тема Tab
колл-во_часов
- Так теорию: платники и бюждетники
- Практику: 1 группа, 2 и платники
Обращаю внимание что если наступило новое полугодие, выставленные темы убираем, а не выставленные ставим. Программа не умная и за вас считать не умеет
Подробно будет показано в видео (когда нибудь оно выйдет)
Класс.Супер.Идём дальше.
2 - Продублировать темы в файлах
5. В приложении нажимаем кнопочку Создаётся новые файлы со всей расчасовкой.
Те которые файлы, которые вручную заполняли можно удалить, а можно и оставить
Раз сделали, и больше эти пункты по заполнению темами нам не понядобятся. До следующего полугодия.
6. Проверям работоспособность полученных данных.
Нажимаем 5. Проверить столбцы
.
Если всё правильно вам выдаст в консоль фио студента и дни пар. Что бы продолжить нажимайте enter.
Теперь для вас доступен весь оставшийся функционал.
- Выставить темы, темы выставляются разом на указанную дату. Темы переписываются каждый раз в ЭЖ.
Закрыть и откыть занятие, тоже разом и до конца.
Лицензия
Это бесплатное программное обеспечение, и его можно распространять в соответствии с условиями, указанными в файле ЛИЦЕНЗИЯ. При копировании или модификации указывать автора.
Вклад
Надеюсь что вы внесёте свой влкад в улучшение программы и не останетесь равнодушными или поддержите автора. Буду рад увидеть от вас pull request.
В идеале:
- Нековыряться в инструментах разработика и автоматом генерировать файлы списков групп.
- Автоматически переносить оценки из google sheets
- И прочее
- снять видео