c1785 1 month ago
parent 462de741c2
commit 36813aaa18

@ -167,6 +167,7 @@ class StudentDAL:
self.save_students(students) self.save_students(students)
return True return True
return False return False
def update_student_partial(self, sid:str, name:Optional[str]=None, height:Optional[float]=None, birth_date:Optional[date]=None, enrollment_date:Optional[date]=None, class_name:Optional[str]=None) ->bool: def update_student_partial(self, sid:str, name:Optional[str]=None, height:Optional[float]=None, birth_date:Optional[date]=None, enrollment_date:Optional[date]=None, class_name:Optional[str]=None) ->bool:
students = self.load_students() students = self.load_students()
for i, student in enumerate(students): for i, student in enumerate(students):

@ -22,6 +22,7 @@ class Student:
self._validation_errors.append("姓名长度需在2-20个字符之间且为可打印字符") self._validation_errors.append("姓名长度需在2-20个字符之间且为可打印字符")
if not self.name.isprintable(): if not self.name.isprintable():
self._validation_errors.append("姓名长度需在2-20个字符之间") self._validation_errors.append("姓名长度需在2-20个字符之间")
def _validate_date(self) -> None: def _validate_date(self) -> None:
today = date.today() today = date.today()
if self.birth_date > today: if self.birth_date > today:
@ -30,11 +31,14 @@ class Student:
self._validation_errors.append('入学日期不能在未来') self._validation_errors.append('入学日期不能在未来')
if self.birth_date > self.enrollment_date: if self.birth_date > self.enrollment_date:
self._validation_errors.append('入学日期不能早于出生日期') self._validation_errors.append('入学日期不能早于出生日期')
@property @property
def is_valid(self) -> bool: def is_valid(self) -> bool:
return len(self._validation_errors) == 0 return len(self._validation_errors) == 0
def get_errors(self) -> list[str]: def get_errors(self) -> list[str]:
return self._validation_errors.copy() return self._validation_errors.copy()
def __eq__(self, other) -> bool: def __eq__(self, other) -> bool:
if not isinstance(other, Student): if not isinstance(other, Student):
return NotImplemented return NotImplemented

Loading…
Cancel
Save