Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
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)
Пример #4
0
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)
Пример #5
0
 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)
Пример #6
0
  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)
Пример #7
0
 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)
Пример #8
0
    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)