示例#1
0
 def acquire_label(self, field_name):
     label_name = "%s__%s__%s" % (self.__class__.__name__, field_name, self.jeeves_id)
     if JeevesLib.doesLabelExist(label_name):
         return JeevesLib.getLabel(label_name)
     else:
         label = JeevesLib.mkLabel(label_name, uniquify=False)
         restrictor = getattr(self, "jeeves_restrict_" + field_name)
         JeevesLib.restrict(label, lambda ctxt: restrictor(self, ctxt), True)
         return label
示例#2
0
 def acquire_label(self, field_name):
     label_name = '%s__%s__%s' % \
                     (self.__class__.__name__, field_name, self.jeeves_id)
     if JeevesLib.doesLabelExist(label_name):
         return JeevesLib.getLabel(label_name)
     else:
         label = JeevesLib.mkLabel(label_name, uniquify=False)
         restrictor = getattr(self, 'jeeves_restrict_' + field_name)
         JeevesLib.restrict(label, lambda ctxt: restrictor(self, ctxt),
                            True)
         return label
示例#3
0
def acquire_label_by_name(app_label, label_name):
  if JeevesLib.doesLabelExist(label_name):
    return JeevesLib.getLabel(label_name)
  else:
    label = JeevesLib.mkLabel(label_name, uniquify=False)
    model_name, field_name, jeeves_id = label_name.split('__')
    model = get_model(app_label, model_name)
    # TODO: optimization: most of the time this obj will be the one we are
    # already fetching
    obj = model.objects.get(use_base_env=True, jeeves_id=jeeves_id)
    restrictor = getattr(model, 'jeeves_restrict_' + field_name)
    JeevesLib.restrict(label, lambda ctxt : restrictor(obj, ctxt), True)
    return label
示例#4
0
def acquire_label_by_name(app_label, label_name):
    if JeevesLib.doesLabelExist(label_name):
        return JeevesLib.getLabel(label_name)
    else:
        label = JeevesLib.mkLabel(label_name, uniquify=False)
        model_name, field_name, jeeves_id = label_name.split('__')
        model = get_model(app_label, model_name)
        # TODO: optimization: most of the time this obj will be the one we are
        # already fetching
        obj = model.objects.get(use_base_env=True, jeeves_id=jeeves_id)
        restrictor = getattr(model, 'jeeves_restrict_' + field_name)
        JeevesLib.restrict(label, lambda ctxt: restrictor(obj, ctxt), True)
        return label
示例#5
0
def acquire_label_by_name(app_label, label_name, obj):
    """Gets a label by name.
    """
    if JeevesLib.doesLabelExist(label_name):
        return JeevesLib.getLabel(label_name)
    else:
        label = JeevesLib.mkLabel(label_name, uniquify=False)
        model_name, field_name, jeeves_id = label_name.split("__")
        model = get_model(app_label, model_name)
        # NOTE(JY): Optimization implemented. Make sure it's correct.
        # TODO: optimization: most of the time this obj will be the one we are
        # already fetching
        """
        if obj == None:
            obj = model.objects.get(use_base_env=True
                , skip_optimize=True, jeeves_id=jeeves_id)
        """
        restrictor = getattr(model, "jeeves_restrict_" + field_name)
        JeevesLib.restrict(label, lambda ctxt: restrictor(obj, ctxt), True)
        return label
示例#6
0
def acquire_label_by_name(app_label, label_name, obj):
    """Gets a label by name.
    """
    if JeevesLib.doesLabelExist(label_name):
        return JeevesLib.getLabel(label_name)
    else:
        label = JeevesLib.mkLabel(label_name, uniquify=False)
        model_name, field_name, jeeves_id = label_name.split('__')
        model = get_model(app_label, model_name)
        # NOTE(JY): Optimization implemented. Make sure it's correct.
        # TODO: optimization: most of the time this obj will be the one we are
        # already fetching
        '''
        if obj == None:
            obj = model.objects.get(use_base_env=True
                , skip_optimize=True, jeeves_id=jeeves_id)
        '''
        restrictor = getattr(model, 'jeeves_restrict_' + field_name)
        JeevesLib.restrict(label, lambda ctxt: restrictor(obj, ctxt), True)
        return label
示例#7
0
        def acquire_label_by_name(app_label, label_name, obj=None):
            """Gets a label by name.
            """
            if JeevesLib.doesLabelExist(label_name):
                return JeevesLib.getLabel(label_name)
            else:
                label = JeevesLib.mkLabel(label_name, uniquify=False)
                model_name, field_name, jeeves_id = label_name.split('__')

                # Get the model that corresponds to the application label and
                # model name.
                # TODO: Make get_model faster?
                model = apps.get_model(app_label, model_name)

                # Gets the current row so we can feed it to the policy.
                # TODO: Figure out why we need the faceted value here...
                obj = model.objects.get(use_base_env=True, jeeves_id=jeeves_id)

                restrictor = getattr(model, 'jeeves_restrict_' + field_name)
                JeevesLib.restrict(label, lambda ctxt: restrictor(obj, ctxt), True)
                return label
示例#8
0
        def acquire_label_by_name(app_label, label_name, obj=None):
            """Gets a label by name.
            """
            if JeevesLib.doesLabelExist(label_name):
                return JeevesLib.getLabel(label_name)
            else:
                label = JeevesLib.mkLabel(label_name, uniquify=False)
                model_name, field_name, jeeves_id = label_name.split('__')

                # Get the model that corresponds to the application label and
                # model name.
                # TODO: Make get_model faster?
                model = apps.get_model(app_label, model_name)

                # Gets the current row so we can feed it to the policy.
                # TODO: Figure out why we need the faceted value here...
                obj = model.objects.get(use_base_env=True, jeeves_id=jeeves_id)

                restrictor = getattr(model, 'jeeves_restrict_' + field_name)
                JeevesLib.restrict(label, lambda ctxt: restrictor(obj, ctxt), True)
                return label