Ejemplo n.º 1
0
    def register_ctype(self, name, **kwargs):

        if name in self.registry:
            self.registry[name].update(kwargs)
        else:
            self.registry[name] = kwargs

        if kwargs.get('factory', None):
            clazz = kwargs['factory']
            path, clazz = ".".join(clazz.split(".")[:-1]), clazz.split(".")[-1]

            exec("from %s import %s" % (path, clazz))

            Registry.register(name, eval(clazz))
Ejemplo n.º 2
0
    def __call__(self):

        ctype = self.request.params.get("ctype", None)

        clazz = Registry.get(ctype)

        initial_data = self.request.params.copy()
        del initial_data['ctype']

        content = clazz("_TMP", data=initial_data)

        content.owner = self.user

        content_id = str(uuid.uuid1())
        content.set_id(content_id)

        alsoProvides(content, ITemporaryObject)

        self.context.add_content(content)

        self.request.registry.notify(
            TemporaryObjectCreated(content, self.request))

        return HTTPFound(location='%sedit' %
                         self.request.resource_url(content))
    def setup_class(self):
        self.config = testing.setUp()

        self.root = BaseFolder("root")
        self.root.__name__ = 'root'

        self.f0 = BaseFolder("f0")
        self.f1 = BaseFolder("f1")

        self.x0 = TestContent("x0")
        self.x1 = TestContent("x1")

        self.f0.add_content(self.x0)
        self.f0.add_content(self.x1)

        self.root.add_content(self.f0)
        self.root.add_content(self.f1)

        Registry.register('testcontent', TestContent)
Ejemplo n.º 4
0
    def __init__(self, context, request):

        BaseView.__init__(self, context, request)

        ctype = request.params.get("ctype", None)

        clazz = Registry.get(ctype)

        tmp_obj = clazz("TMP")

        form = tmp_obj.__form__(request)

        # note: If you want to prefill the formdata, you can use
        # the __form__ override, or if in pycms, use the IFormModifier

        pyramidformview.__init__(self, context, request,
                                 form,
                                 retrieve_data=False)

        self.ctype = ctype
        self.clazz = clazz