Коммит 35928fdd создал по автору Леляев Петр Алексеевич's avatar Леляев Петр Алексеевич
Просмотр файлов

Добавлена возможность воспроизвести звонок без привязки к уроку

Если в расписании указать временем начала или конца урока -
владелец ae12bdc9
......@@ -23,12 +23,13 @@ def update_all_calls() -> dict:
for lesson in current_schedule_object.lessons:
group = current_schedule_object.lessons[lesson]["group"]
for lesson_event in ("start", "end"):
all_calls[current_schedule_object.lessons[lesson][lesson_event]] = {
"schedule_name": schedule_name,
"lesson_number": lesson,
"type": lesson_event,
"sound": all_groups_of_calls.groups[group][lesson_event]
}
if current_schedule_object.lessons[lesson][lesson_event] != '-':
all_calls[current_schedule_object.lessons[lesson][lesson_event]] = {
"schedule_name": schedule_name,
"lesson_number": lesson,
"type": lesson_event,
"sound": all_groups_of_calls.groups[group][lesson_event]
}
if current_schedule_object.pre_call > 0:
time_of_pre_call = time_before(current_schedule_object.lessons[lesson]["start"],
current_schedule_object.pre_call)
......@@ -38,6 +39,9 @@ def update_all_calls() -> dict:
"type": "start",
"sound": all_groups_of_calls.groups[group]["pre"]
}
# print(all_calls)
if '-' in all_calls:
all_calls.pop('-')
return all_calls
......
......@@ -16,7 +16,7 @@ from school_ringer_modules.groups_dataclasses import all_groups_of_calls
from school_ringer_modules.schedules_dataclasses import Schedule, schedules
from school_ringer_modules.time_functions import time_correct, time_string_to_minute
time_pattern = r'^([0-1][0-9]|2[0-3]|[0-9]):([0-5][0-9]|[0-9])$'
time_pattern = r'^(([0-1][0-9]|2[0-3]|[0-9]):([0-5][0-9]|[0-9])|-)$'
weekdays_names = (
"monday",
"tuesday",
......@@ -223,12 +223,15 @@ class OneScheduleEdit(ParentClassForAllSchedules):
time = item.text()
done1 = True
while done1:
if time == '-':
item.setText('-')
break
if not re.match(time_pattern, time):
time, done1 = QInputDialog.getText(
self, 'Ошибка', 'Введён некорректный формат времени\nПример ввода: 11:45')
continue
if re.match(time_pattern, time) is not None:
if len(time) != 5:
if len(time) != 5 and time != '-':
time = time_correct(time)
all_times = schedules.get_all_schedules_times()
print(f'All times: {all_times}')
......@@ -241,25 +244,30 @@ class OneScheduleEdit(ParentClassForAllSchedules):
if lesson_finish is not None and lesson_start is not None:
lesson_start = lesson_start.text()
lesson_finish = lesson_finish.text()
if lesson_finish == '-' or lesson_start == '-':
item.setText(time)
break
if item.column() == 1:
lesson_start = time
logging.info(f'Установлено время начала урока {lesson_start}')
else:
lesson_finish = time
logging.info(f'Установлено время окончания урока {lesson_finish}')
lesson_time = time_string_to_minute(lesson_finish) - \
time_string_to_minute(lesson_start)
if lesson_time <= 0:
logging.info(
f'Введены время начала урока {lesson_start}, окончания - {lesson_finish}'
', недопустимые значения')
time, done1 = QInputDialog.getText(
self, 'Ошибка',
'Урок не может начинаться позже, чем заканчивается :(\nВведите другое значение времени')
continue
else:
item.setText(time)
break
if lesson_finish != '-' and lesson_start != '-':
lesson_time = time_string_to_minute(lesson_finish) - \
time_string_to_minute(lesson_start)
if lesson_time <= 0:
logging.info(
f'Введены время начала урока {lesson_start}, окончания - {lesson_finish}'
', недопустимые значения')
time, done1 = QInputDialog.getText(
self, 'Ошибка',
'Урок не может начинаться позже, чем заканчивается :(\nВведите другое значение '
'времени')
continue
else:
item.setText(time)
break
else:
item.setText(time)
break
......
......@@ -131,6 +131,8 @@ class AllSchedules:
for lesson in schedules[schedule].lessons:
all_times.append(schedules[schedule].lessons[lesson]["start"])
all_times.append(schedules[schedule].lessons[lesson]["end"])
while '-' in all_times:
all_times.remove('-')
if schedules[schedule].pre_call != 0:
all_times.append(time_before(schedules[schedule].lessons[lesson]["start"],
schedules[schedule].pre_call))
......
......@@ -12,6 +12,7 @@ def time_correct(time: str) -> str:
@param time:
@return:
"""
if time == '-': return time
time = time.split(':')
for i in range(2):
if len(time[i]) == 1:
......
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать