コード例 #1
0
ファイル: basic.py プロジェクト: commtrack/temp-aquatest
 def testIsSchemaRegistered(self):
     """ given a form and version is that form registered """
     create_xsd_and_populate("5_singlerepeat.xsd", domain=self.domain)
     create_xsd_and_populate("data/8_singlerepeat_2.xsd", domain=self.domain)
     self.assertTrue(FormDefModel.is_schema_registered("xml_singlerepeat", self.domain))
     self.assertTrue(FormDefModel.is_schema_registered("xml_singlerepeat", self.domain,2))
     self.assertFalse(FormDefModel.is_schema_registered("xml_singlerepeat", self.domain,3))
     self.assertFalse(FormDefModel.is_schema_registered("nonexistent", self.domain,1))
コード例 #2
0
ファイル: basic.py プロジェクト: commtrack/temp-aquatest
 def testGetFormDef(self):
     """ Test get_formdef """
     create_xsd_and_populate("5_singlerepeat.xsd", domain=self.domain)
     create_xsd_and_populate("data/8_singlerepeat_2.xsd", domain=self.domain)
     formdef = FormDefModel.get_formdef("xml_singlerepeat", self.domain)
     self.assertTrue(formdef.version is None)
     self.assertTrue(formdef.uiversion is None)
     self.assertEqual(len(formdef.root.child_elements), 5)
     formdef2 = FormDefModel.get_formdef("xml_singlerepeat", self.domain, "2")
     self.assertTrue(formdef2.version == 2)
     self.assertTrue(formdef2.uiversion == 3)
     self.assertEqual(len(formdef2.root.child_elements), 5)
     nonexistant = FormDefModel.get_formdef("nonexistent", self.domain, "1")
     self.assertTrue(nonexistant is None)
コード例 #3
0
ファイル: models.py プロジェクト: commtrack/temp-aquatest
 def check_and_release_xforms(self):
     '''Checks this build's xforms against the xformmanager and releases
        them, if they pass compatibility tests'''
     errors = []
     to_skip = []
     to_register = []
     for form in self.xforms.all():
         try:
             formdef = xformvalidator.validate(form.file_location)
             modelform = FormDefModel.get_model(formdef.target_namespace,
                                                self.project.domain, 
                                                formdef.version)
             if modelform:
                 # if the model form exists we must ensure it is compatible
                 # with the version we are trying to release
                 existing_formdef = modelform.to_formdef()
                 differences = existing_formdef.get_differences(formdef)
                 if differences.is_empty():
                     # this is all good
                     to_skip.append(form)
                 else:
                     raise BuildError("""Schema %s is not compatible with %s.  
                                         Because of the following differences: 
                                         %s
                                         You must update your version number!"""
                                      % (existing_formdef, formdef, differences))
             else:
                 # this must be registered
                 to_register.append(form)
         except Exception, e:
             errors.append(e)
コード例 #4
0
ファイル: views.py プロジェクト: commtrack/commcare-hq
def xmlns_group_popup(request):
    """Popup (compact) view a group of forms for a particular xmlns.
       Used in modal dialogs."""
    xmlns = request.GET["xmlns"]
    group = FormDefModel.get_group_for_namespace(request.user.selected_domain, xmlns)
    return render_to_response(request, "xformmanager/xmlns_group_popup.html", 
                              {"group": group})
コード例 #5
0
ファイル: storageutility.py プロジェクト: commtrack/AquaTests
 def add_schema(self, formdef):
     formdef.force_to_valid()
     formdefmodel = FormDefModel.create_models(formdef)
     self.formdefmodel = formdefmodel
     self.formdef = self._strip_meta_def( formdef )
     queries = XFormDBTableCreator( self.formdef, self.formdefmodel ).create()
     self._execute_queries(queries)
     return formdefmodel
コード例 #6
0
ファイル: views.py プロジェクト: commtrack/AquaTests
def xmlns_group(request):
    """View a group of forms for a particular xmlns."""
    xmlns = request.GET["xmlns"]
    group = FormDefModel.get_group_for_namespace(request.extuser.domain, xmlns)
    data_groups = FormDataGroup.objects.filter(name=xmlns)
    return render_to_response(request, "xformmanager/xmlns_group.html", 
                                  {"group": group,
                                   "data_groups": data_groups
                                   })
コード例 #7
0
ファイル: storageutility.py プロジェクト: adewinter/data-hq
 def add_schema(self, formdef):
     """Given a xsd schema, create the django models and database
        tables reqiured to submit data to that form."""
     formdef.force_to_valid()
     formdefmodel = FormDefModel.create_models(formdef)
     self.formdefmodel = formdefmodel
     self.formdef = formdef 
     queries = XFormDBTableCreator( self.formdef, self.formdefmodel ).create()
     self._execute_queries(queries)
     return formdefmodel
コード例 #8
0
ファイル: views.py プロジェクト: commtrack/commcare-hq
                                
                        context['file_name'] = request.FILES['file'].name
                        request.session['schema_file'] = file_name
                        request.session['display_name'] = form.cleaned_data['form_display_name']
                        request.session['REMOTE_ADDR'] = request.META['REMOTE_ADDR']
                        request.session['file_size'] = request.FILES['file'].size
                        template='confirm_register.html'
                        return render_to_response(request, template, context)                    
            else:
                transaction.rollback()
                context['errors'] = form.errors
    
    context['upload_form'] = RegisterXForm()
    # group the formdefs by names
    context['registered_forms'] = FormDefModel.objects.all().filter(domain=request.user.selected_domain)
    context['form_groups'] = FormDefModel.get_groups(request.user.selected_domain)
    return render_to_response(request, template, context)


@login_and_domain_required
def xmlns_group(request):
    """View a group of forms for a particular xmlns."""
    xmlns = request.GET["xmlns"]
    group = FormDefModel.get_group_for_namespace(request.user.selected_domain, xmlns)
    
    data_groups = FormDataGroup.objects.filter(forms__in=group.forms).distinct()
    return render_to_response(request, "xformmanager/xmlns_group.html", 
                                  {"group": group,
                                   "data_groups": data_groups
                                   })
    
コード例 #9
0
ファイル: views.py プロジェクト: commtrack/AquaTests
                        context['file_name'] = request.FILES['file'].name
                        request.session['schema_file'] = file_name
                        request.session['display_name'] = form.cleaned_data['form_display_name']
                        request.session['REMOTE_ADDR'] = request.META['REMOTE_ADDR']
                        request.session['file_size'] = request.FILES['file'].size
                        template='confirm_register.html'
                        transaction.rollback()
                        return render_to_response(request, template, context)                    
            else:
                transaction.rollback()
                context['errors'] = form.errors
    
    context['upload_form'] = RegisterXForm()
    # group the formdefs by names
    context['registered_forms'] = FormDefModel.objects.all().filter(domain= extuser.domain)
    context['form_groups'] = FormDefModel.get_groups(extuser.domain)
    return render_to_response(request, template, context)


@extuser_required()
def xmlns_group(request):
    """View a group of forms for a particular xmlns."""
    xmlns = request.GET["xmlns"]
    group = FormDefModel.get_group_for_namespace(request.extuser.domain, xmlns)
    data_groups = FormDataGroup.objects.filter(name=xmlns)
    return render_to_response(request, "xformmanager/xmlns_group.html", 
                                  {"group": group,
                                   "data_groups": data_groups
                                   })
    
@extuser_required()