Exemplo n.º 1
0
        def check_model(model):
            if model is None:
                raise http.NotFoundError()

            if IReference.providedBy(model):
                return process_reference(model)

            if model.reference is not None:
                return process_reference(model.reference)

            return model
Exemplo n.º 2
0
Arquivo: model.py Projeto: sylane/feat
    def _wrap_source(self, source, view, model_factory):
        if source is None:
            return source

        if IReference.providedBy(source):
            return source

        if IModel.providedBy(source):
            return self._init_model(source, view)

        if not IModelFactory.providedBy(model_factory):
            if callable(model_factory):
                ctx = self.model.make_context(key=self.name, view=view)
                d = model_factory(source, ctx)
                d.addCallback(self._got_model_factory, source, view)
                return d

        return self._got_model_factory(model_factory, source, view)
Exemplo n.º 3
0
def render_value(value, context):
    if IReference.providedBy(value):
        return value.resolve(context)
    return value
Exemplo n.º 4
0
 def process_reference(reference):
     reference = IReference(reference)
     context = self.make_context(request, remaining[1:])
     address = reference.resolve(context)
     raise http.MovedPermanently(location=address)