コード例 #1
0
 def get_all_attendances(self, page: int, grade: str, year: int, per_page: int = 20) -> (List, Any):
     """
     get all attendance
     :params page
     :params grade
     :params year
     :params per_page
     :return: attendance list of dict
     """
     try:
         if year and not grade:
             attendances = AttendanceModel.get_attendances_by_year(page, year, per_page)
         elif grade and not year:
             attendances = AttendanceModel.get_attendances_by_grade(page, grade, per_page)
         elif year and grade:
             attendances = AttendanceModel.get_attendances_by_grade_year(page, grade, year, per_page)
         else:
             attendances = AttendanceModel.get_all_attendances(page, per_page)
         return {
             "attendances": [attendance.attendance_dict(school, student) for attendance, school, student in
                             attendances.items],
             "total_count": attendances.total,
             "current_page": attendances.page,
             "next_page": attendances.next_num,
             "prev_page": attendances.prev_num,
             "pages": attendances.pages
         }
     except SQLAlchemyError as error:
         self.logger.error("Error: {}".format(error))
         raise SQLCustomError(description="GET Attendance SQL ERROR")
コード例 #2
0
    def get_all_attendances(self,
                            page: int,
                            grade: Optional[str],
                            year: Optional[int],
                            keyword: Optional[str],
                            per_page: int = 20) -> (List, Any):
        """
        get all attendance
        :params page
        :params grade
        :params year
        :params keyword
        :params per_page
        :return: attendance list of dict
        """
        try:
            if year or grade or keyword:
                self.logger.info(
                    f"Searching attendances: year: {year}, grade: {grade}, keyword: {keyword}"
                )
                attendances = AttendanceModel.search_attendances(
                    grade=grade,
                    year=year,
                    keyword=keyword,
                    page=page,
                    per_page=per_page)
            else:
                self.logger.info("Getting all attendances")
                attendances = AttendanceModel.get_all_attendances(
                    page=page, per_page=per_page)

            return {
                "attendances": [
                    attendance.attendance_dict(attendance.school,
                                               attendance.student)
                    for attendance in attendances.items
                ],
                "total_count":
                attendances.total,
                "current_page":
                attendances.page,
                "next_page":
                attendances.next_num,
                "prev_page":
                attendances.prev_num,
                "pages":
                attendances.pages
            }
        except SQLAlchemyError as error:
            self.logger.error("Error: {}".format(error))
            raise SQLCustomError(description="GET Attendance SQL ERROR")
コード例 #3
0
 def get_all_attendances(self, page) -> (List, Any):
     """
     get all attendance
     :params page
     :return: attendance list of dict
     """
     try:
         self.logger.info("Get attendance list")
         attendances = AttendanceModel.get_all_attendances(page)
         return [
             attendance.attendance_dict(school, student)
             for attendance, school, student in attendances.items
         ], attendances.total
     except SQLAlchemyError as error:
         self.logger.error("Error: {}".format(error))
         raise SQLCustomError(description="GET Attendance SQL ERROR")