Example #1
0
    def get(self, course_id):
        course = CourseModel.find_by_id(course_id)

        if course is None:
            return {"message": "Course not found."}, 404

        return course.json(), 201
Example #2
0
    def delete(cls, course_id: int = None):
        course = CourseModel.find_by_id(course_id)
        if course:
            course.delete_from_db()
            return {"message": gettext("course_deleted")}, 200

        return {"message": gettext("course_not_found")}, 404
Example #3
0
    def put(self, _id):
        data = self.parser.parse_args()
        course = CourseModel.find_by_id(_id)

        if course:
            course.name = data["name"]
            course.category = data["category"]
            course.trainers = data["trainers"]
            course.description = data["description"]
            course.target_audience = data["target_audience"]
            course.outcomes = data["outcomes"]
            course.requirements = data["requirements"]
            course.start_date = date(*data["start_date"])
            course.end_date = date(*data["end_date"])
            course.total_lectures = data["total_lectures"]
            course.lectures_per_week = data["lectures_per_week"]
            course.lecture_duration = timedelta(*data["lecture_duration"])
            course.min_spg = data["min_students_per_group"]
            course.max_spg = data["max_students_per_group"]
        else:
            valid_data = {
                key: val
                for key, val in data.items() if val is not None
            }
            course = CourseModel(**valid_data)

        try:
            course.save_to_db()
        except:
            return {
                "message": "An error occurred while saving to the database."
            }, 500

        return course.json()
Example #4
0
 def delete(self, course_id):
     course = CourseModel.find_by_id(course_id)
     if course:
         course.delete_from_db()
         return {
             'message': 'The course has been deleted from the database.'
         }
     return {'message': 'Course not found.'}, 404
Example #5
0
    def get(cls, name: str = None, course_id: int = None):
        course = CourseModel.find_by_name(name)
        if course_id:
            course = CourseModel.find_by_id(course_id)
            if course:
                return course_schema.dump(course), 200
        if course:
            return {"course_intances": course_list_schema.dump(course)}, 200

        return {"message": gettext("course_not_found")}, 404
Example #6
0
def steps_count(course_id):
    course = CourseModel.find_by_id(course_id)

    steps_number = 0
    for chapter in course.chapters:
        steps_number += 1
    for quiz in course.quizzes:
        steps_number += 1

    return steps_number
Example #7
0
    def delete(self):
        data = Course.getparser.parse_args()
        course = CourseModel.find_by_id(data['id'])
        msgstr = []
        if course:
            course.delete_from_db()
            msgstr.append({'status': "SUCCESS", "code": 200, "message": "Course with ID {} deleted successfully!".format(data['id'])})
        else:
            msgstr.append({'status': "ERROR", "code": 500, "message": "Course with ID {} not found!".format(data['id'])})

        return {'messages': msgstr}
Example #8
0
    def delete(self, course_id):
        course = CourseModel.find_by_id(course_id)

        if course is None:
            return {"message": "Course not found."}, 404

        try:
            course.delete()
        except:
            return {"message": "An error occurred while deleting Course."}, 500

        return {"message": "Course deleted."}, 200
Example #9
0
def update_steps_number(course_id):
    course = CourseModel.find_by_id(course_id)

    steps_number = 0
    for chapter in course.chapters:
        steps_number += 1
    for quiz in course.quizzes:
        steps_number += 1

    for step in course.steps:
        step.final_step = steps_number

    db.session.commit()
Example #10
0
    def delete(self, _id):
        course = CourseModel.find_by_id(_id)
        if course:
            try:
                course.delete_from_db()
            except:
                return {
                    "message": "An error occurred while deleting this course."
                }, 500

            return {'message': 'Course deleted.'}

        return {
            'message': "The course you're trying to delete doesn't exist."
        }, 400
Example #11
0
 def post(cls):
     data = request.get_json()
     course = CourseModel.find_by_id(data['course_id'])
     user = UserModel.find_by_id(data['user_id'])
     if user:
         if course:
             if user not in course.users:
                 return {"message": gettext('user_not_enrolled')}, 400
             else:
                 course.disenroll_user(user)
         else:
             return {"message": gettext("course_not_found")}, 404
     else:
         return {"message": gettext("user_not_found")}, 404
     return {"message": gettext("user_disenrolled").format
             (course.name, week_list[course.day_week].capitalize() +
              course.start_time.strftime(' - %H:%M'))}, 200
    def put(self, _id):
        data = Course.parser.parse_args()

        course = CourseModel.find_by_id(_id)

        if course:
            course.price = data['price']
            course.description = data['description']
            course.on_discount = data['on_discount']
            course.title = data['title']
            course.date_updated = datetime.datetime.utcnow()
            course.image_path = data['image_path']

        else:
            course = CourseModel(**data)

        course.save_to_db()

        return course.json()
Example #13
0
    def put(self):
        data = Course.putparser.parse_args()
        course = CourseModel.find_by_id(data['id'])

        jsonstr = []
        msgstr = []
        if course:
            if data['type'] == "confirmrequest":
                course.requestuserid = data['userid']
                course.requestdate = datetime.today()
                course.save_to_db()

            if data['type'] == "cancelrequest":
                course.requestuserid = None
                course.requestdate = None
                course.acceptuserid = None
                course.acceptdate = None
                course.save_to_db()

            if data['type'] == "takeclass":
                course.acceptuserid = data['userid']
                course.acceptdate = datetime.today()
                course.save_to_db()

            if data['type'] == "canceltake":
                course.acceptuserid = None
                course.acceptdate = None
                course.save_to_db()

            if data['type'] == "editclass":
                course.name = data['classname']
                course.starttime = data['starttime']
                course.endtime = data['endtime']
                course.classdate = data['classdate']
                course.save_to_db()

            msgstr.append({'status': "SUCCESS", "code": 200,
                           "message": "Course with ID {} updated successfully!".format(data['id'])})
            return {'courses': course.json(), 'messages': msgstr}

        else:
            msgstr.append({'status': "ERROR", "code": 500, "message": "Course with ID {} not found!".format(data['id'])})
            return {'messages': msgstr}
Example #14
0
    def put(self, course_id):
        data = parser.parse_args()

        course = CourseModel.find_by_id(course_id)

        if course is None:
            new_course = CourseModel(**data)
            try:
                new_course.save()
            except:
                return {"message": "An error occurred while inserting Course."}, 500

            return new_course.json(), 201

        try:
            course.update(**data)
        except:
            return {"message": "An error occurred while updating Course."}, 500

        return course.json(), 200
Example #15
0
    def get(self):
        data = Course.getparser.parse_args()
        msgstr = []
        if data['id'] is not None:
            course = CourseModel.find_by_id(data['id'])
            if course:
                msgstr.append({'status': "SUCCESS", "code": 200})
                return {'courses': course.json(), 'messages': msgstr}
            msgstr.append({"status": "NULL", "code": 400, "message": "A course with ID '{}' was not found.".format(data['id'])})
        elif data['userid'] is not None:
            courses = CourseModel.find_by_userid(data['userid'], data['allrequests'])
            if courses:
                msgstr.append({"status": "SUCCESS", "code": 200})
                return {'courses': [course.json() for course in courses], 'messages': msgstr}
            if data['allrequests'] == None:
                msgstr.append({"status": "NULL", "code": 400, "message": "No courses for USERID '{}' were found.".format(data['userid'])})
            else:
                msgstr.append({"status": "NULL", "code": 400, "message": "No sub requests found."})
        else:
            msgstr.append({"status": "ERROR", "code": 400})

        return {'messages': msgstr}
 def get(self, _id):
     course = CourseModel.find_by_id(_id)
     if course:
         return course.json()
     return {'message': 'course not found'}, 404
Example #17
0
 def add_course(self, course_id):
     course = CourseModel.find_by_id(course_id)
     self.course = course
Example #18
0
def round(course_name, enter_string):

    scores_dict = {
        'p1': {
            'name': '',
            'score_list': '',
            'front_9': '',
            'back_9': '',
            'total': ''
        },
        'p2': {
            'name': '',
            'score_list': '',
            'front_9': '',
            'back_9': '',
            'total': ''
        },
        'p3': {
            'name': '',
            'score_list': '',
            'front_9': '',
            'back_9': '',
            'total': ''
        },
        'p4': {
            'name': '',
            'score_list': '',
            'front_9': '',
            'back_9': '',
            'total': ''
        }
    }
    score_styles = {
        'p1': {
            'styles': []
        },
        'p2': {
            'styles': []
        },
        'p3': {
            'styles': []
        },
        'p4': {
            'styles': []
        }
    }

    scores = [
        score.json()
        for score in ScoreModel.find_round_by_enter_string(enter_string)
    ]
    course = CourseModel.find_by_id(scores[0]['course_id']).json()
    holes = [hole.json() for hole in HoleModel.find_by_course(course['id'])]
    round_date = [score['round_string'] for score in scores][0]
    date = datetime.strptime(round_date, '%Y%m%d%H%M%S')
    round_date = date.strftime('%m/%d/%Y')
    distance = [hole['distance'] for hole in holes]
    par = [hole['par'] for hole in holes]

    for i in range(1, 5):
        styles_list = []
        for score in scores:
            if score['scorecard_position'] == i:
                name = score['golfer'].name
                round_scores = [
                    score['score'] for score in scores
                    if score['scorecard_position'] == i
                ]
                front_9 = sum(round_scores[:9])
                back_9 = sum(round_scores[9:])
                total = sum(round_scores)
        if round_scores:
            for q in range(len(round_scores)):
                if round_scores[q] == 0:
                    round_scores[q] = ''
                    styles_list.append("par")
                else:
                    if round_scores[q] - par[q] <= -2:
                        styles_list.append("eagle")
                    elif round_scores[q] - par[q] == -1:
                        styles_list.append("birdie")
                    elif round_scores[q] - par[q] == 0:
                        styles_list.append("par")
                    elif round_scores[q] - par[q] == 1:
                        styles_list.append("bogey")
                    elif round_scores[q] - par[q] == 2:
                        styles_list.append("double-bogey")
                    elif round_scores[q] - par[q] >= 3:
                        styles_list.append("triple-bogey")

                    if name is not None and scores is not None:
                        player_string = "p" + str(i)
                        scores_dict[player_string] = {
                            'name': name,
                            'score_list': round_scores,
                            'front_9': front_9,
                            'back_9': back_9,
                            'total': total
                        }
                        score_styles[player_string] = {'styles': styles_list}

        name = round_scores = front_9 = back_9 = total = None

    round = {
        'scores': scores_dict,
        'score_styles': score_styles,
        'date': round_date,
        'course': {
            'name': course_name,
            'city': course['city'],
            'state': course['state'],
            'slope': course['slope'],
            'distance': {
                'hole_distances': distance,
                'front_9_distance': sum(distance[:9]),
                'back_9_distance': sum(distance[9:]),
                'total_distance': sum(distance)
            },
            'par': {
                'hole_pars': par,
                'front_9_par': sum(par[:9]),
                'back_9_par': sum(par[9:]),
                'total_par': sum(par)
            },
            'handicap': [hole['handicap'] for hole in holes],
        }
    }
    #    return round
    return render_template('submitted_scorecard.jinja2', round=round)
Example #19
0
 def get(self, _id):
     course = CourseModel.find_by_id(_id)
     if course:
         return course.json()
     return {"message": "No matching course."}, 404
 def delete(self, _id):
     course = CourseModel.find_by_id(_id)
     if course:
         course.delete_from_db()
         return {'message': 'course deleted.'}
     return {'message': 'course not found.'}, 404
Example #21
0
 def get(cls, course_id: int):
     course = CourseModel.find_by_id(course_id)
     if course:
         return {"registered users": [{"id": user.id, "name": user.name} for user in course.users]}
     else:
         return {"message": gettext("course_not_found")}, 404
Example #22
0
    def post(self, course_id, student_id):
        course = CourseModel.find_by_id(course_id)
        course.register_student(student_id)

        return course.json(), 200