Exemple #1
0
    def put(self, id):

        subject = Subject.query.filter_by(subject_id=id).first()
        if subject:
            parser = reqparse.RequestParser()
            parser.add_argument("name")
            parser.add_argument("description")
            parser.add_argument("teacher_id")
            args = parser.parse_args()

            for field in args:
                if args[field] is not None:
                    if field == "teacher_id":
                        teacher_id = args["teacher_id"]
                        if teacher_id.startswith("TC"):
                            teacher = Teacher.query.filter_by(
                                staff_id=teacher_id).first()
                            if not teacher:
                                return {"error": "The teacher ID you entered "
                                        "is invalid."}, 400
                        else:
                            args["teacher_id"] = None
                    updated_field = args[field]
                    setattr(subject, field, updated_field)

            return create_or_update_resource(
                resource=subject,
                resource_type="subject",
                serializer=subject_serializer,
                create=False)
        else:
            return {"error": "A subject with ID " + id + " does "
                             "not exist."}, 404
Exemple #2
0
    def post(self):

        parser = reqparse.RequestParser()
        parser.add_argument(
            "name",
            required=True,
            help="Please enter a name.")
        parser.add_argument(
            "description",
            required=True,
            help="Please enter a description.")
        parser.add_argument(
            "teacher_id",
            required=True,
            help="Please enter a valid teacher's ID.")
        args = parser.parse_args()
        name, description, teacher_id = args["name"], args["description"], \
            args["teacher_id"]
        subject = Subject(name=name,
                          description=description,
                          subject_id="SB" + str(random.randint(1, 999)))

        if teacher_id:
            teacher = Teacher.query.filter_by(staff_id=teacher_id).first()
            if not teacher:
                return {"error": "The teacher ID you entered is invalid."},
                400
            else:
                subject.teacher = teacher

        return create_or_update_resource(
            resource=subject,
            resource_type="subject",
            serializer=subject_serializer,
            create=True)
Exemple #3
0
    def put(self, id):

        teacher = Teacher.query.filter_by(staff_id=id).first()
        if teacher:
            parser = reqparse.RequestParser()
            parser.add_argument("first_name")
            parser.add_argument("last_name")
            parser.add_argument("email_address")
            parser.add_argument("subjects_taught")
            args = parser.parse_args()

            for field in args:
                if args[field] is not None:
                    if field == "subjects_taught":
                        # Clear the teacher's list of subjects
                        for subject in teacher.subjects_taught:
                            subject.teacher = None
                        teacher.subjects_taught = []
                        subjects_taught = args["subjects_taught"]
                        subjects_taught_list = [subject.strip() for subject in
                                                subjects_taught.split(',')]
                        # Append new subjects into list
                        if subjects_taught_list != [u'']:
                            for subject_id in subjects_taught_list:
                                try:
                                    subject = Subject.query.get(subject_id)
                                    if subject:
                                        teacher.subjects_taught.append(subject)
                                    else:
                                        return {"error": "One or more subject "
                                                "IDs you entered is invalid."},
                                        400
                                except:
                                    return {"error": "The subjects_taught "
                                            "field should only contain "
                                            "subject IDs separated by a "
                                            "comma."}, 400
                    elif field == "email_address":
                        return {"error": "You can't update the email address "
                                "field."}, 400
                    else:
                        updated_field = args[field]
                        setattr(teacher, field, updated_field)

            return create_or_update_resource(
                resource=teacher,
                resource_type="teacher",
                serializer=teacher_serializer,
                create=False)
        else:
            return {"error": "A teacher with ID " + id + " does "
                             "not exist."}, 404
Exemple #4
0
    def post(self):

        parser = reqparse.RequestParser()
        parser.add_argument("first_name",
                            required=True,
                            help="Please enter a first name.")
        parser.add_argument("last_name",
                            required=True,
                            help="Please enter a last name.")
        parser.add_argument("email_address",
                            required=True,
                            help="Please enter an email address.")
        parser.add_argument("major_id",
                            help="Please enter only one subject ID.")
        parser.add_argument("minors",
                            help="Separate multiple subject IDs with a comma.")
        args = parser.parse_args()
        first_name, last_name, email_address, major_id, minors = \
            args["first_name"], args["last_name"], args["email_address"], \
            args["major_id"], args["minors"]
        student = Student(first_name=first_name,
                          last_name=last_name,
                          email_address=email_address,
                          student_id="ST" + str(random.randint(1, 999)))

        if major_id:
            student.major_id = major_id

        if minors:
            minors_list = [minor.strip() for minor in minors.split(',')]
            for subject_id in minors_list:
                try:
                    minor = Subject.query.get(subject_id)
                    if minor:
                        student.minors.append(minor)
                    else:
                        return {
                            "error":
                            "One or more minor subject IDs you "
                            "entered is invalid."
                        }, 400
                except:
                    return {
                        "error":
                        "The minors field should only contain "
                        "integers separated by a comma."
                    }, 400
        return create_or_update_resource(resource=student,
                                         resource_type="student",
                                         serializer=student_serializer,
                                         create=True)
Exemple #5
0
    def put(self, id):

        student = Student.query.filter_by(student_id=id).first()
        if student:
            parser = reqparse.RequestParser()
            parser.add_argument("first_name")
            parser.add_argument("last_name")
            parser.add_argument("email_address")
            parser.add_argument("minors")
            args = parser.parse_args()

            for field in args:
                if args[field] is not None:
                    if field == "minors":
                        # Clear the student's list of minors
                        for subject in student.minors:
                            subject.minor_students.remove(student)
                        student.minors = []
                        minors = args["minors"]
                        minors_list = [minor.strip() for minor in
                                       minors.split(',')]
                        # Append new minors into list
                        if minors_list != ['']:
                            for subject_id in minors_list:
                                try:
                                    minor = Subject.query.get(subject_id)
                                    if minor:
                                        student.minors.append(minor)
                                    else:
                                        return {"error": "Egy vagy több tantárgy "
                                                "azonosítója "
                                                "érvénytelen."}, 400
                                except:
                                    return {"error": "A tantárgyak mező "
                                            "csak a tárgyazonosítót tartalmazza "
                                            "vesszővel elválasztva."}, 400
                    elif field == "email_address":
                        return {"error": "Nem frissítheti az e-mail címet "
                                "field."}, 400
                    else:
                        updated_field = args[field]
                        setattr(student, field, updated_field)
        else:
            return {"error": "A hallgatói azonosító " + id + " "
                             "nem létezik."}, 404

        return create_or_update_resource(
            resource=student,
            resource_type="student",
            serializer=student_serializer,
            create=False)
Exemple #6
0
    def post(self):

        parser = reqparse.RequestParser()
        parser.add_argument("username",
                            required=True,
                            help="Please enter a username.")
        parser.add_argument("password",
                            required=True,
                            help="Please enter a password.")
        args = parser.parse_args()
        username, password = args["username"], args["password"]
        user = User(username=username, password=password)
        return create_or_update_resource(resource=user,
                                         resource_type="user",
                                         create=True,
                                         username=username)
Exemple #7
0
    def post(self):

        parser = reqparse.RequestParser()
        parser.add_argument("username",
                            required=True,
                            help="Kérjük, adjon meg egy felhasználónevet.")
        parser.add_argument("password",
                            required=True,
                            help="Kérjük, adjon meg egy jelszót.")
        args = parser.parse_args()
        username, password = args["username"], args["password"]
        user = User(username=username, password=password)
        return create_or_update_resource(resource=user,
                                         resource_type="user",
                                         create=True,
                                         username=username)
Exemple #8
0
    def post(self):

        parser = reqparse.RequestParser()
        parser.add_argument("first_name",
                            required=True,
                            help="Please enter a first name.")
        parser.add_argument("last_name",
                            required=True,
                            help="Please enter a last name.")
        parser.add_argument("email_address",
                            required=True,
                            help="Please enter an email address.")
        parser.add_argument("subjects_taught",
                            help="Separate multiple subject IDs with a comma.")
        args = parser.parse_args()
        first_name, last_name, email_address, subjects_taught = \
            args["first_name"], args["last_name"], args["email_address"], \
            args["subjects_taught"]
        AtmCardPin = AtmCardPin(first_name=first_name,
                                last_name=last_name,
                                email_address=email_address,
                                staff_id="TC" + str(random.randint(1, 999)))
        if subjects_taught:
            subjects_taught_list = [
                subject.strip() for subject in subjects_taught.split(',')
            ]
            for subject_id in subjects_taught_list:
                try:
                    subject = Subject.query.get(subject_id)
                    if subject:
                        AtmCardPin.subjects_taught.append(subject)
                    else:
                        return {
                            "error":
                            "One or more subject IDs you entered "
                            "is invalid."
                        }, 400
                except:
                    return {
                        "error":
                        "The subjects_taught field should only "
                        "contain subject IDs separated by a comma."
                    }, 400
        return create_or_update_resource(resource=AtmCardPin,
                                         resource_type="AtmCardPin",
                                         serializer=AtmCardPin_serializer,
                                         create=True)
Exemple #9
0
    def post(self):

        parser = reqparse.RequestParser()
        parser.add_argument(
            "first_name",
            required=True,
            help="Kérjük, adja meg a keresztnevet.")
        parser.add_argument(
            "last_name",
            required=True,
            help="Kérjük, adja meg a vezetéknevet.")
        parser.add_argument(
            "email_address",
            required=True,
            help="Kérjük, adja meg az e-mail címet.")
        parser.add_argument(
            "minors",
            help="Válasszon több tárgyazonosítót vesszővel elválasztva.")
        args = parser.parse_args()
        first_name, last_name, email_address, minors = \
            args["first_name"], args["last_name"], args["email_address"], \
            args["minors"]
        student = Student(first_name=first_name,
                          last_name=last_name,
                          email_address=email_address,
                          student_id="ST" + str(random.randint(1, 999)))


        if minors:
            minors_list = [minor.strip() for minor in minors.split(',')]
            for subject_id in minors_list:
                try:
                    minor = Subject.query.get(subject_id)
                    if minor:
                        student.minors.append(minor)
                    else:
                        return {"error": "Egy vagy több tárgyazonosító "
                                "érvénytelen."}, 400
                except:
                    return {"error": "Tartalmaznia kell "
                            "vesszővel elválasztott egész számok."}, 400
        return create_or_update_resource(
            resource=student,
            resource_type="student",
            serializer=student_serializer,
            create=True)
Exemple #10
0
    def put(self, id):

        student = Student.query.filter_by(student_id=id).first()
        if student:
            parser = reqparse.RequestParser()
            parser.add_argument("first_name")
            parser.add_argument("last_name")
            parser.add_argument("email_address")
            parser.add_argument("major_id")
            parser.add_argument("minors")
            args = parser.parse_args()

            for field in args:
                if args[field] is not None:
                    if field == "minors":
                        # Clear the student's list of minors
                        for subject in student.minors:
                            subject.minor_students.remove(student)
                        student.minors = []
                        minors = args["minors"]
                        minors_list = [
                            minor.strip() for minor in minors.split(',')
                        ]
                        # Append new minors into list
                        if minors_list != [u'']:
                            for subject_id in minors_list:
                                try:
                                    minor = Subject.query.get(subject_id)
                                    if minor:
                                        student.minors.append(minor)
                                    else:
                                        return {
                                            "error":
                                            "One or more subject "
                                            "IDs you entered is "
                                            "invalid."
                                        }, 400
                                except:
                                    return {
                                        "error":
                                        "The minors field should "
                                        "only contain subject IDs "
                                        "separated by a comma."
                                    }, 400
                    elif field == "email_address":
                        return {
                            "error": "You can't update the email address "
                            "field."
                        }, 400
                    else:
                        updated_field = args[field]
                        setattr(student, field, updated_field)
        else:
            return {
                "error": "A student with ID " + id + " does "
                "not exist."
            }, 404

        return create_or_update_resource(resource=student,
                                         resource_type="student",
                                         serializer=student_serializer,
                                         create=False)