Skip to content

Commit f82fa54

Browse files
committed
feat(schedule): Поддержка нового формата файла старшинств для НЦК
Signed-off-by: Roman Chursanov <[email protected]>
1 parent bd4bc28 commit f82fa54

File tree

1 file changed

+26
-42
lines changed

1 file changed

+26
-42
lines changed

tgbot/services/schedule/parsers.py

Lines changed: 26 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -840,6 +840,14 @@ async def get_duties_for_month(
840840
"Файл графика дежурных 'Старшинство_НТП.xlsx' не найден"
841841
)
842842
schedule_file = duty_file
843+
# For НЦК division, use separate seniority file
844+
elif division == "НЦК":
845+
duty_file = self.file_manager.uploads_folder / "Старшинство_НЦК.xlsx"
846+
if not duty_file.exists():
847+
raise FileNotFoundError(
848+
"Файл графика дежурных 'Старшинство_НЦК.xlsx' не найден"
849+
)
850+
schedule_file = duty_file
843851
else:
844852
schedule_file = self.file_manager.find_schedule_file(division)
845853
if not schedule_file:
@@ -854,8 +862,8 @@ async def get_duties_for_month(
854862
except Exception as e:
855863
logger.warning(f"Failed to read schedule with primary sheet name: {e}")
856864

857-
# For НТП divisions, try different sheet name patterns
858-
if division in ["НТП", "НТП1", "НТП2"]:
865+
# For НТП and НЦК divisions, try different sheet name patterns
866+
if division in ["НТП", "НТП1", "НТП2", "НЦК"]:
859867
# Try just the month name
860868
month_names = [
861869
"Январь",
@@ -875,31 +883,15 @@ async def get_duties_for_month(
875883
try:
876884
df = self.read_excel_file(schedule_file, month_name)
877885
logger.debug(
878-
f"Successfully read НТП duty sheet with name: {month_name}"
886+
f"Successfully read {division} duty sheet with name: {month_name}"
879887
)
880888
except Exception as e2:
881889
logger.warning(
882-
f"Failed to read НТП duty sheet with month name '{month_name}': {e2}"
890+
f"Failed to read {division} duty sheet with month name '{month_name}': {e2}"
883891
)
884892
df = None
885893
else:
886-
# Try alternative English month names for НЦК
887-
english_months = {
888-
1: "January",
889-
2: "February",
890-
3: "March",
891-
4: "April",
892-
5: "May",
893-
6: "June",
894-
7: "July",
895-
8: "August",
896-
9: "September",
897-
10: "October",
898-
11: "November",
899-
12: "December",
900-
}
901-
alt_sheet_name = f"Дежурство {english_months[date.month]}"
902-
df = self.read_excel_file(schedule_file, alt_sheet_name)
894+
df = None
903895

904896
if df is None:
905897
logger.debug(
@@ -1008,6 +1000,14 @@ async def get_duties_for_date(
10081000
"Файл графика дежурных 'Старшинство_НТП.xlsx' не найден"
10091001
)
10101002
schedule_file = duty_file
1003+
# For НЦК division, use separate seniority file
1004+
elif division == "НЦК":
1005+
duty_file = self.file_manager.uploads_folder / "Старшинство_НЦК.xlsx"
1006+
if not duty_file.exists():
1007+
raise FileNotFoundError(
1008+
"Файл графика дежурных 'Старшинство_НЦК.xlsx' не найден"
1009+
)
1010+
schedule_file = duty_file
10111011
else:
10121012
schedule_file = self.file_manager.find_schedule_file(division)
10131013
if not schedule_file:
@@ -1022,8 +1022,8 @@ async def get_duties_for_date(
10221022
except Exception as e:
10231023
logger.warning(f"Failed to read schedule with primary sheet name: {e}")
10241024

1025-
# For НТП divisions, try different sheet name patterns
1026-
if division in ["НТП", "НТП1", "НТП2"]:
1025+
# For НТП and НЦК divisions, try different sheet name patterns
1026+
if division in ["НТП", "НТП1", "НТП2", "НЦК"]:
10271027
# Try just the month name
10281028
month_names = [
10291029
"Январь",
@@ -1043,31 +1043,15 @@ async def get_duties_for_date(
10431043
try:
10441044
df = self.read_excel_file(schedule_file, month_name)
10451045
logger.debug(
1046-
f"Successfully read НТП duty sheet with name: {month_name}"
1046+
f"Successfully read {division} duty sheet with name: {month_name}"
10471047
)
10481048
except Exception as e2:
10491049
logger.warning(
1050-
f"Failed to read НТП duty sheet with month name '{month_name}': {e2}"
1050+
f"Failed to read {division} duty sheet with month name '{month_name}': {e2}"
10511051
)
10521052
df = None
10531053
else:
1054-
# Try alternative English month names for НЦК
1055-
english_months = {
1056-
1: "January",
1057-
2: "February",
1058-
3: "March",
1059-
4: "April",
1060-
5: "May",
1061-
6: "June",
1062-
7: "July",
1063-
8: "August",
1064-
9: "September",
1065-
10: "October",
1066-
11: "November",
1067-
12: "December",
1068-
}
1069-
alt_sheet_name = f"Дежурство {english_months[date.month]}"
1070-
df = self.read_excel_file(schedule_file, alt_sheet_name)
1054+
df = None
10711055

10721056
if df is None:
10731057
logger.debug(

0 commit comments

Comments
 (0)