def __get__(self, instance, instance_type): """?? """ if instance is None: return self cache = self.get_cache(instance) def get_obj(jeeves_id): """?? """ if jeeves_id is None: return None if jeeves_id not in cache: cache[jeeves_id] = self.field.to.objects.get( **{self.field.join_field.name: jeeves_id}) return cache[jeeves_id] # TODO: Why do we need to facetMap this guy? If we know the viewer, # can we get rid of it? r = getattr(instance, self.field.get_attname()) if not isinstance(JeevesLib.get_viewer(), FNull): robj = get_obj(r) if isinstance(robj, FObject): return robj.v else: return r else: return JeevesLib.facetMapper(fexpr_cast(r), get_obj)
def __get__(self, instance, instance_type): """?? """ if instance is None: return self cache = self.get_cache(instance) def get_obj(jeeves_id): """?? """ if jeeves_id is None: return None if jeeves_id not in cache: cache[jeeves_id] = self.field.to.objects.get(**{self.field.join_field.name: jeeves_id}) return cache[jeeves_id] # TODO: Why do we need to facetMap this guy? If we know the viewer, # can we get rid of it? r = getattr(instance, self.field.get_attname()) if not isinstance(JeevesLib.get_viewer(), FNull): robj = get_obj(r) if isinstance(robj, FObject): return robj.v else: return r else: return JeevesLib.facetMapper(fexpr_cast(r), get_obj)
def jall(lst): def myall(lst): acc = True for elt in lst: acc = JeevesLib.jand(lambda: elt, lambda: acc) return acc if isinstance(lst, list): return myall(lst) else: # lst is a JList return JeevesLib.facetMapper(lst.l, myall)
def jall(lst): def myall(lst): acc = True for elt in lst: acc = JeevesLib.jand(lambda: elt, lambda: acc) return acc if isinstance(lst, list): return myall(lst) else: # lst is a JList return JeevesLib.facetMapper(lst.l, myall)
def __set__(self, instance, value): cache = self.get_cache(instance) def getID(obj): if obj is None: return None obj_jid = getattr(obj, self.field.join_field.name) if obj_jid is None: raise Exception("Object must be saved before it can be attached via JeevesForeignKey.") cache[obj_jid] = obj return obj_jid ids = JeevesLib.facetMapper(fexpr_cast(value), getID) setattr(instance, self.field.get_attname(), ids)
def __get__(self, instance, instance_type): if instance is None: return self cache = self.get_cache(instance) def getObj(jeeves_id): if jeeves_id is None: return None if jeeves_id not in cache: cache[jeeves_id] = self.field.to.objects.get(**{self.field.join_field.name:jeeves_id}) return cache[jeeves_id] if instance is None: return self return JeevesLib.facetMapper(fexpr_cast(getattr(instance, self.field.get_attname())), getObj)
def __set__(self, instance, value): cache = self.get_cache(instance) def get_id(obj): """Gets the ID associated with an object. """ if obj is None: return None obj_jid = getattr(obj, self.field.join_field.name) if obj_jid is None: raise Exception("Object must be saved before it can be \ attached via JeevesForeignKey.") cache[obj_jid] = obj return obj_jid ids = JeevesLib.facetMapper(fexpr_cast(value), get_id) setattr(instance, self.field.get_attname(), ids)
def __get__(self, instance, instance_type): if instance is None: return self cache = self.get_cache(instance) def getObj(jeeves_id): if jeeves_id is None: return None if jeeves_id not in cache: cache[jeeves_id] = self.field.to.objects.get( **{self.field.join_field.name: jeeves_id}) return cache[jeeves_id] if instance is None: return self return JeevesLib.facetMapper( fexpr_cast(getattr(instance, self.field.get_attname())), getObj)