Esempio n. 1
0
    def get(self):
        mail = self.request.get("mail")
        name = self.request.get("name")
        child_id = self.request.get("child_id")

        if child_id:
            child = Child.get_by_id(child_id)
        else:
            child = None

        if mail:
            parent = Parent.get_by_id(mail)
            if parent:
                parent.parent_id = mail
                parent.name = name
                if child_id:
                    parent.child = child
                parent.put()
                ret = parent.to_dict()
            else:
                ret = {"status": "no record"}
        else:
            ret = {"status": "no key"}

        json_string = json.dumps(ret, ensure_ascii=False)
        self.response.content_type = "application/json"
        self.response.out.write(json_string)
Esempio n. 2
0
def create_parent(parent_fname, parent_lname, 
                email, phone, address1, address2, 
                city, state, zipcode, last_login,
                created_on, password):

    """Create and return a new PARENT """
    print("In crud.py - create parent ", parent_fname, parent_lname,
        email, phone, address1, address2, 
        city, state, zipcode, last_login, created_on, password)

    parent = Parent(parent_fname = parent_fname, 
                    parent_lname = parent_lname, 
                    email = email, 
                    phone = phone,
                    address1 = address1,
                    address2 = address2,
                    state = state, 
                    city = city,
                    zipcode = zipcode,
                    last_login = last_login,
                    created_on = created_on,
                    password = password
                    )

    db.session.add(parent)
    db.session.commit()

    return parent
Esempio n. 3
0
def create_parent():
    """Create a parent"""
    # Handle input data
    try:
        json_data = request.get_json()
    except:
        return {"error": "Invalid input data"}, 400
    if not json_data:
        return {"error": "No input data provided"}, 400
    # Validate input data
    try:
        data = parent_schema.load(json_data)
    except ValidationError as err:
        return err.messages, 422
    # Load data
    first_name = data["first_name"]
    last_name = data["last_name"]
    street = data["street"]
    city = data["city"]
    state = data["state"]
    zip_code = data["zip_code"]

    parent = Parent(first_name, last_name, street, city, state, zip_code)
    db.session.add(parent)
    db.session.commit()
    return parent_schema.dump(parent), 201
Esempio n. 4
0
def test_update():
    parent = Parent()
    parent.save()

    assert parent.id != None
    assert Parent.objects.count() == 4

    # Update
    child = Child()
    child.save()

    assert child.parent_id is None
    child.parent_id = parent.id
    child.save()

    assert Child.objects.count() == 22
    assert child.parent_id == parent.id
Esempio n. 5
0
def create_parent(fname, lname, email, password, household_id=None, 
                mobile_number=None):
    """Add a new parent to the parents table and return the parent."""

    parent = Parent(fname=fname, lname=lname, email=email, password=password, 
                    household_id=household_id, mobile_number=mobile_number)
    
    db.session.add(parent)
    db.session.commit()

    return parent
Esempio n. 6
0
    def get(self):
        mail = self.request.get("mail")
        name = self.request.get("name")

        ret = []

        if mail:
            parent = Parent.get_by_id(mail)
            if parent:
                ret.append(parent.to_dict())
        elif name:
            query = Parent.query(Parent.name == name)
            for p in query:
                ret.append(p.to_dict())
        else:
            query = Parent.query()
            for p in query:
                ret.append(p.to_dict())

        json_string = json.dumps(ret, ensure_ascii=False)
        self.response.content_type = "application/json"
        self.response.out.write(json_string)
Esempio n. 7
0
    def get(self):
        mail = self.request.get("mail")

        if mail:
            parent = Parent.get_by_id(mail)
            if parent:
                ret = parent.to_dict()
            else:
                ret = {"status": "no record"}
        else:
            ret = {"status": "no key"}

        json_string = json.dumps(ret, ensure_ascii=False)
        self.response.content_type = "application/json"
        self.response.out.write(json_string)
Esempio n. 8
0
    def get(self):
        mail = self.request.get("mail")
        name = self.request.get("name")
        child_id = self.request.get("child_id")

        if child_id:
            child_key = ndb.Key(Child, child_id)
        else:
            child_key = None

        if mail:
            parent = Parent.get_by_id(mail)
            if parent:
                ret = {"status": "record already exists"}
            else:
                key = Parent(id=mail, parent_id=mail, name=name, child=child_key).put()
                parent = key.get()
                ret = parent.to_dict()
        else:
            ret = {"status": "no key"}

        json_string = json.dumps(ret, ensure_ascii=False)
        self.response.content_type = "application/json"
        self.response.out.write(json_string)
Esempio n. 9
0
def create():
    """Validates and stores parent data"""
    parent_form = ParentForm(request.form)
    if request.method == "POST" and parent_form.validate():
        first_name = parent_form.first_name.data
        last_name = parent_form.last_name.data
        street = parent_form.street.data
        city = parent_form.city.data
        state = parent_form.state.data
        zip_code = parent_form.zip_code.data

        parent = Parent(first_name, last_name, street, city, state, zip_code)

        db.session.add(parent)
        db.session.commit()

        flash("Parent created successfully!")
        return redirect(url_for("index"))
    return render_template("create.html", parent_form=parent_form)
Esempio n. 10
0
def signup_post():
    if request.method == "POST":
        parent = request.form.get('parent')
        zipcode = request.form.get('zipcode')
        username = request.form.get('username')
        password = request.form.get('password')
        new_parent = Parent(parent=parent,
                            zipcode=zipcode,
                            username=username,
                            password=password)
        db.session.add(new_parent)
        db.session.commit()

        parent_id = new_parent.parent_id
        session["parent_id"] = parent_id

        flash("New parent profile created!")
        return redirect(f"/profile/{parent_id}")
    else:
        return redirect(f"/")
Esempio n. 11
0
def load_parents():
    """Load parents from p.user into database."""

    print("parents")

    # Delete all rows in table, so if we need to run this a second time,
    # we won't be trying to add duplicate parents

    # Read u.user file and insert data
    for row in open("data/p.user"):
        row = row.rstrip()
        parent_id, parent, zipcode, username, password = row.split("|")

        parent = Parent(parent_id=parent_id,
                        parent=parent,
                        zipcode=zipcode,
                        username=username,
                        password=password)

        # We need to add to the session or it won't ever be stored
        db.session.add(parent)

    # Once we're done, we should commit our work
    db.session.commit()
Esempio n. 12
0
def load_user(parent_id):
    return Parent.get(parent_id)
Esempio n. 13
0
def test_save():
    parent = Parent()
    parent.save()

    assert parent.id is not None
    assert Parent.objects.count() == 3
Esempio n. 14
0
def test_parent_bulk_save_objects():
    Parent.bulk_save_objects([Parent(), Parent()])
    assert Parent.objects.count() == 2
Esempio n. 15
0
def test_type_error_bulk_save_objects():
    with pytest.raises(TypeError):
        Child.bulk_save_objects([Parent(), Child()])