Ejemplo n.º 1
0
 def _get_fixture(self, user_id, fixture_id):
     query_url = '%(base)s/%(user)s/%(fixture)s' % {"base": settings.FIXTURE_API_URL,
                                                    "user": user_id,
                                                    "fixture": fixture_id}
     q = query_factory(self.vars.get('host'), self.vars['domain'], self.auth, format="raw")
     try:
         results = q(query_url)
     except (HTTPError, URLError), e:
         fixture_name = query_url[query_url.rfind('/') + 1:]
         if "user-group" in fixture_name:
             raise TouchFormsNotFound('This form requires that the user be in a case sharing group '
                                      'but one could not be found.')
         elif "commtrack:locations" in fixture_name:
             raise TouchFormsNotFound('This form requires that the user be assigned to a location '
                                      'but one could not be found.')
         elif "item-list" in fixture_name:
             raise TouchFormsNotFound('Unable to fetch lookup table %s. '
                                      'Ensure the logged in user has access '
                                      'to this lookup table.' % fixture_name)
         elif "commtrack:products" in fixture_name:
             raise TouchFormsNotFound('Unable to retrieve the product list for this user. Ensure '
                                      'the logged in user is assigned a product list.')
         else:
             raise TouchFormsNotFound('Unable to fetch fixture %s. Ensure the logged in user has access '
                                      'to this fixture.' % fixture_name)
Ejemplo n.º 2
0
    def __init__(self,
                 sessionvars,
                 auth,
                 restore_xml=None,
                 force_sync=False,
                 form_context=None,
                 uses_sqlite=False):
        self.vars = sessionvars
        self.auth = auth
        self.uses_sqlite = uses_sqlite
        if self.uses_sqlite:
            username = sessionvars['username']
            if '@' not in username:
                self.username = username + '@' + sessionvars[
                    'domain'] + '.commcarehq.org'
            else:
                # Web User
                self.username = username
            self.sandbox = SqlSandboxUtils.getStaticStorage(
                self.username, settings.SQLITE_DBS_DIRECTORY)
            self.host = settings.URL_HOST
            self.domain = sessionvars['domain']
            self.query_func = query_factory(self.host, self.domain, self.auth,
                                            'raw')
            self.query_url = get_restore_url({
                'as': self.username,
                'version': '2.0'
            })
            CommCareInstanceInitializer.__init__(self, self.sandbox)

            if force_sync or self.needs_sync():
                self.perform_ota_restore(restore_xml)
        else:
            self.fixtures = {}
            self.form_context = form_context or {}
Ejemplo n.º 3
0
    def __init__(self,
                 host,
                 domain,
                 auth,
                 additional_filters=None,
                 preload=False,
                 form_context=None):

        self.cached_lookups = {}
        self.form_context = form_context or {}

        if self.form_context.get('case_model', None):
            case_model = self.form_context['case_model']
            self.cached_lookups[('case-id', case_model['case_id'])] = [
                case_from_json(case_model)
            ]

        self._objects = {}
        self.ids = {}
        self.fully_loaded = False  # when we've loaded every possible object
        self.query_func = query_factory(host, domain, auth)
        self.additional_filters = additional_filters or {}
        if preload:
            self.load_all_objects()
        else:
            self.load_object_ids()
Ejemplo n.º 4
0
 def _get_fixture(self, user_id, fixture_id):
     query_url = '%(base)s/%(user)s/%(fixture)s' % {
         "base": settings.FIXTURE_API_URL,
         "user": user_id,
         "fixture": fixture_id
     }
     q = query_factory(self.vars.get('host'),
                       self.vars['domain'],
                       self.auth,
                       format="raw")
     try:
         results = q(query_url)
     except (HTTPError, URLError), e:
         fixture_name = query_url[query_url.rfind('/') + 1:]
         if "user-group" in fixture_name:
             raise TouchFormsNotFound(
                 'This form requires that the user be in a case sharing group '
                 'but one could not be found.')
         elif "commtrack:locations" in fixture_name:
             raise TouchFormsNotFound(
                 'This form requires that the user be assigned to a location '
                 'but one could not be found.')
         elif "item-list" in fixture_name:
             raise TouchFormsNotFound(
                 'Unable to fetch lookup table %s. '
                 'Ensure the logged in user has access '
                 'to this lookup table.' % fixture_name)
         elif "commtrack:products" in fixture_name:
             raise TouchFormsNotFound(
                 'Unable to retrieve the product list for this user. Ensure '
                 'the logged in user is assigned a product list.')
         else:
             raise TouchFormsNotFound(
                 'Unable to fetch fixture %s. Ensure the logged in user has access '
                 'to this fixture.' % fixture_name)
Ejemplo n.º 5
0
 def _get_fixture(self, user_id, fixture_id):
     query_url = '%(base)s/%(user)s/%(fixture)s' % { "base": settings.FIXTURE_API_URL, 
                                                     "user": user_id,
                                                     "fixture": fixture_id }
     q = query_factory(self.vars.get('host'), self.vars['domain'], self.auth, format="raw")
     try:
         results = q(query_url)
     except (HTTPError, URLError), e:
         raise TouchFormsNotFound('Unable to fetch fixture at %s: %s' % (query_url, str(e)))
Ejemplo n.º 6
0
def get_loader(spec, **kwargs):
    if not spec:
        return lambda: None

    type, val = spec
    return {
        'uid': lambda: load_file(val),
        'raw': lambda: val,
        'url': lambda: query_factory(auth=kwargs.get('api_auth', None), format='raw')(val),
    }[type]
Ejemplo n.º 7
0
def get_loader(spec, **kwargs):
    if not spec:
        return lambda: None

    type, val = spec
    return {
        "uid": lambda: load_file(val),
        "raw": lambda: val,
        "url": lambda: query_factory(auth=kwargs.get("api_auth", None), format="raw")(val),
    }[type]
Ejemplo n.º 8
0
def get_loader(spec, **kwargs):
    if not spec:
        return lambda: None

    type, val = spec
    return {
        'uid': lambda: load_file(val),
        'raw': lambda: val,
        'url': lambda: query_factory(auth=kwargs.get('api_auth', None), format='raw')(val),
    }[type]
Ejemplo n.º 9
0
    def __init__(self, host, domain, auth, additional_filters=None, preload=False, form_context=None):
        self.cached_lookups = {}
        self.form_context = form_context or {}

        if self.form_context.get('case_model', None):
            case_model = self.form_context['case_model']
            self.cached_lookups[('case-id', case_model['case_id'])] = [case_from_json(case_model)]

        self._objects = {}
        self.ids = {}
        self.fully_loaded = False  # when we've loaded every possible object
        self.query_func = query_factory(host, domain, auth)
        self.additional_filters = additional_filters or {}
        if preload:
            self.load_all_objects()
        else:
            self.load_object_ids()
Ejemplo n.º 10
0
    def __init__(self, sessionvars, auth, restore_xml=None,
                 force_sync=False, form_context=None, uses_sqlite=False):
        self.vars = sessionvars
        self.auth = auth
        self.uses_sqlite = uses_sqlite
        if self.uses_sqlite:
            username = sessionvars['username']
            if '@' not in username:
                self.username = username + '@' + sessionvars['domain'] + '.commcarehq.org'
            else:
                # Web User
                self.username = username
            self.sandbox = SqlSandboxUtils.getStaticStorage(self.username, settings.SQLITE_DBS_DIRECTORY)
            self.host = settings.URL_HOST
            self.domain = sessionvars['domain']
            self.query_func = query_factory(self.host, self.domain, self.auth, 'raw')
            self.query_url = get_restore_url({'as': self.username, 'version': '2.0'})
            CommCareInstanceInitializer.__init__(self, self.sandbox)

            self.perform_ota_restore(restore_xml)
        else:
            self.fixtures = {}
            self.form_context = form_context or {}