Logic error in UCS@school lib: ucs-school-lib/modules/ucsschool/lib/models/group.py: ---[cut]--- class _MayHaveSchoolSuffix(object): def get_relative_name(self): # type: () -> str # schoolname-1a => 1a if ( self.school and self.name.lower().endswith("-%s" % self.school.lower()) or self.name.lower().endswith(" %s" % self.school.lower()) ): return self.name[: -(len(self.school) + 1)] return self.name ---[cut]--- If self.school is None, the code will throw a traceback because "and" has higher priority than "or". Currently the code semantically looks like this: if ( (self.school and self.name.lower().endswith("-%s" % self.school.lower())) or self.name.lower().endswith(" %s" % self.school.lower()) ): but it should be if self.school and ( self.name.lower().endswith("-%s" % self.school.lower()) or self.name.lower().endswith(" %s" % self.school.lower()) ):
- Fixed with ucs-school-lib 15.0.3 - Unittest has been added
Jenkins looks good -> OK changelog -> OK build -> OK
Errata updates for UCS@school 5.2 v2 have been released. https://docs.software-univention.de/ucsschool-changelog/5.2v2/en/changelog.html https://docs.software-univention.de/ucsschool-changelog/5.2v2/de/changelog.html If this error occurs again, please clone this bug.