示例#1
0
def visit_save_view(request):
    health_id = request.matchdict['health_id']
    form_id = request.matchdict["form"]
    visit_date = request.POST["visit_date"]
    health_unit = request.POST["health_unit"]
    observations = []

    person = None
    with transaction.manager:
        person = models.DBSession.query(models.Person).\
            filter(models.Person.health_id == health_id).first()

    form = Form(request, schema=VisitSchema())
    if form.validate():
        for param,value in request.POST.iteritems():
            try:
                param =int(param)
                print param, value,'\n'
                with transaction.manager:
                    concept = models.DBSession.query(models.Concept).get(param)
                    if concept:
                        observation = models.Observation()
                        observation.concept = param
                        observation.concept_value
                        observations.append(observation)
            except ValueError:
                continue
        
        visit = form.bind(models.Visit())
        visit.person = person.id
        visit.observations = observations
        models.DBSession.add(visit)
        models.DBSession.flush()
        #with transaction.manager:
        #    visit.observations = observations
        #    models.DBSession.merge(visit)
    else:
        #print form.all_errors()
        print form.is_error(visit_date)
    print request.POST
    return HTTPFound(request.route_url("patients_list_page"))
示例#2
0
def visit_save_view(request):
    health_id = request.matchdict["health_id"]
    form_id = request.matchdict["form"]
    visit_date = request.POST["visit_date"]
    health_unit = request.POST["health_unit"]
    observations = []

    person = None
    with transaction.manager:
        person = models.DBSession.query(models.Person).filter(models.Person.health_id == health_id).first()

    form = Form(request, schema=VisitSchema())
    if form.validate():
        for param, value in request.POST.iteritems():
            try:
                param = int(param)
                print param, value, "\n"
                with transaction.manager:
                    concept = models.DBSession.query(models.Concept).get(param)
                    if concept:
                        observation = models.Observation()
                        observation.concept = param
                        observation.concept_value
                        observations.append(observation)
            except ValueError:
                continue

        visit = form.bind(models.Visit())
        visit.person = person.id
        visit.observations = observations
        models.DBSession.add(visit)
        models.DBSession.flush()
        # with transaction.manager:
        #    visit.observations = observations
        #    models.DBSession.merge(visit)
    else:
        # print form.all_errors()
        print form.is_error(visit_date)
    print request.POST
    return HTTPFound(request.route_url("patients_list_page"))
示例#3
0
    def test_validate_bad_input_with_validators(self):
        from pyramid_simpleform import Form

        request = testing.DummyRequest()
        request.method = "POST"

        form = Form(request, validators=dict(name=validators.NotEmpty()))

        self.assert_(not form.validate())
        self.assert_(form.is_validated)
        self.assert_(form.is_error('name'))

        self.assert_(form.errors_for('name') == ['Please enter a value'])
示例#4
0
    def test_validate_bad_input_with_validators(self):
        from pyramid_simpleform import Form

        request = testing.DummyRequest()
        request.method = "POST"

        form = Form(request, validators=dict(name=validators.NotEmpty()))

        self.assert_(not form.validate())
        self.assert_(form.is_validated)
        self.assert_(form.is_error("name"))

        self.assert_(form.errors_for("name") == ["Please enter a value"])