Beispiel #1
0
    def find(self, query=None, create="true", user=None, code=None, **kwargs):

        self.query, self.create, self.user = self.sanitize(query), create, user

        if code:
            from model.user import User

            self.user = User.all().filter("short_code", code).get()

        if self.create == "true":
            self.create = True
        else:  # you must manually set create to something besides true
            self.create = False

        if query:
            logging.info("query for FindLocation " + query)
            from backend.location.update import get_loc_code

            loc_code = get_loc_code(query)

            # this is very imprecise! actual search is needed
            loc = None
            loc_results = self.search()
            logging.info(loc_results)
            if loc_results:
                loc_doc = loc_results[0]
                for f in loc_doc.fields:
                    logging.info(f.name)
                    logging.info(f.value)
                loc = Location.get_by_key_name(loc_doc.fields[1].value)

            if loc:
                logging.info("found location %s in db" % loc.code)
            if not loc and self.create:
                logging.info("creating new location for %s" % query)
                from backend.location.update import LocationUpdate

                loc_updater = LocationUpdate()
                loc = loc_updater.create_or_update(name=query, code=loc_code)  # a lot of other fields...

            return loc  # hasn't saved

        loc_query = Location.all()
        if self.user and not self.user.is_admin():
            loc_query = loc_query.filter("owner", self.user)
        locs = loc_query.fetch(1000)
        return locs
Beispiel #2
0
    def find(self, query=None, create='true', user=None, code=None, **kwargs):

        self.query, self.create, self.user = self.sanitize(query), create, user

        if code:
            from model.user import User
            self.user = User.all().filter('short_code', code).get()

        if self.create == 'true':
            self.create = True
        else:  # you must manually set create to something besides true
            self.create = False

        if query:
            logging.info('query for FindLocation ' + query)
            from backend.location.update import get_loc_code
            loc_code = get_loc_code(query)

            # this is very imprecise! actual search is needed
            loc = None
            loc_results = self.search()
            logging.info(loc_results)
            if loc_results:
                loc_doc = loc_results[0]
                for f in loc_doc.fields:
                    logging.info(f.name)
                    logging.info(f.value)
                loc = Location.get_by_key_name(loc_doc.fields[1].value)

            if loc:
                logging.info('found location %s in db' % loc.code)
            if not loc and self.create:
                logging.info('creating new location for %s' % query)
                from backend.location.update import LocationUpdate
                loc_updater = LocationUpdate()
                loc = loc_updater.create_or_update(
                    name=query, code=loc_code)  # a lot of other fields...

            return loc  # hasn't saved

        loc_query = Location.all()
        if self.user and not self.user.is_admin():
            loc_query = loc_query.filter('owner', self.user)
        locs = loc_query.fetch(1000)
        return locs