コード例 #1
0
    def test_json(self, **kw):
        user = UserO(u"test")
        root = self.app.GetRoot()
        obj = root.Create("type1", data1_2, user)
        obj.data["fjson"] = {}
        obj.Commit(user=user)
        self.remove.append(obj.id)
        v = Viewy()

        form = JsonMappingForm(request=Request(),
                               app=self.app,
                               context=obj,
                               view=v)
        form.fields = (
            FieldConf(id="parameter1", datatype="string", size=1000),
            FieldConf(id="parameter2", datatype="string", size=100),
        )
        form.jsonDataField = "fjson"
        form.Setup()

        data = {"parameter1": "True", "parameter2": "test"}
        form.request = data
        form.Process()

        data["edit$"] = 1
        form.request = data
        form.Process()

        self.assert_(obj.data.get("ftext"))
コード例 #2
0
 def test_password(self):
     field = FieldConf(datatype="password",
                       id="field",
                       name="Field",
                       settings={"single": True})
     self.assert_(password_node(field, {}, {}, testform()))
     field = FieldConf(datatype="password",
                       id="field",
                       name="Field",
                       settings={"single": False})
     self.assert_(password_node(field, {}, {}, testform()))
     nodes, buttons = SchemaFactory(testform(), [field], [], force=False)
     self.assert_(len(nodes) == 1)
コード例 #3
0
 def editbasics(self):
     fields = (
         FieldConf(id=u"title",           datatype="string", size=255,  required=0, name=_(u"Application title")),
         FieldConf(id=u"description",     datatype="text",   size=5000, required=0, name=_(u"Application description")),
         FieldConf(id=u"workflowEnabled", datatype="bool",   size=2,    required=0, name=_(u"Enable workflow engine")),
         FieldConf(id=u"fulltextIndex",   datatype="bool",   size=2,    required=0, name=_(u"Enable fulltext index")),
         FieldConf(id=u"frontendCodepage",datatype="string", size=10,   required=1, name=_(u"Codepage used in html frontend")),
     )
     form = ConfigurationForm(view=self, context=self.context.configuration, app=self.context)
     form.fields = fields
     form.Setup() 
     # process and render the form.
     result, data, action = form.Process()
     return {u"content": data, u"result": result, u"head": form.HTMLHead()}
コード例 #4
0
 def test_widget(self):
     field = FieldConf(datatype="string",
                       id="field",
                       name="Field",
                       required=True,
                       default="widget")
     nodes, buttons = SchemaFactory(testform(), [field], [], force=False)
     self.assert_(len(nodes) == 1)
     field = FieldConf(datatype="string",
                       id="field",
                       name="Field",
                       required=False,
                       default="widget")
     nodes, buttons = SchemaFactory(testform(), [field], [], force=False)
     self.assert_(len(nodes) == 1)
コード例 #5
0
 def contact(self):
     context = self.context
     # add topic if choices available
     fields = context.configuration.contactForm
     topics = context.data.topics
     if topics:
         li = []
         for t in topics.split("\n"):
             t = t.replace("\r", "")
             li.append({"id": t, "name": t})
         fc = FieldConf(id="topic",
                        datatype="radio",
                        size=200,
                        default="",
                        required=1,
                        name="Topic",
                        listItems=li)
         # make a new field list
         fn = [fc]
         for f in fields:
             fn.append(f)
         fields = fn
     # setup the form
     form = ContactForm(context=context,
                        request=self.request,
                        view=self,
                        app=context.app)
     form.fields = fields
     form.mail = Mail(context.data.mailtitle,
                      context.configuration.mailtmpl)
     form.mail.recv = (context.data.receiver, context.data.receiverName)
     form.anchor = u"#contact" + str(context.id)
     form.Setup()
     result, data, action = form.Process()
     return data
コード例 #6
0
    def test_json(self, **kw):
        form = JsonMappingForm(request=Request(), app=self.app, view=self.view)
        form.fields = (
            FieldConf(id="parameter1", datatype="text", size=1000),
            FieldConf(id="parameter2", datatype="string", size=100),
        )
        form.Setup()

        data = {"parameter1": "True", "parameter2": "test"}
        r, v, e = form.Validate(data)
        self.assert_(r, e)
        self.assert_(isinstance(v, dict))
        data = {"parameter1": "True", "parameter2": "test"}
        r, v = form.Extract(data)
        self.assert_(r, v)
        self.assert_(isinstance(v, dict))
コード例 #7
0
 def test_html3(self, **kw):
     form = HTMLForm(loadFromType="type1",
                     app=self.app,
                     view=self.view,
                     request=Request())
     form.formUrl = "form/url"
     form.cssID = u"upload"
     form.css_class = u"niveform"
     form.subsets = {
         u"test": {
             "fields": [
                 u"ftext",
                 FieldConf(
                     **{
                         "id": "section1",
                         "name": "Section 1",
                         "datatype": "number"
                     })
             ]
         }
     }
     form.Setup(subset=u"test")
     v, d, e = form.Validate(data1_2)
     self.assert_(v, e)
     form.Render(d, msgs=None, errors=None)
コード例 #8
0
    def test_values2(self, **kw):
        form = Form(loadFromType="type1", app=self.app, view=self.view)
        subsets = {"test": {"fields": ["ftext", u"funit"]}}
        form.subsets = subsets
        form.Setup(subset="test")
        v, d, e = form.Validate(data1_2)
        self.assert_(v, e)

        form = Form(loadFromType="type1", app=self.app, view=self.view)
        subsets = {
            u"test": {
                "fields": [
                    u"ftext",
                    FieldConf(**{
                        "id": "section1",
                        "name": "Section 1",
                        "datatype": "unit"
                    })
                ]
            }
        }
        form.subsets = subsets
        form.Setup(subset=u"test")
        v, d, e = form.Validate(data1_2)
        self.assert_(v, e)

        result, data = form.Extract(data1_1)
        self.assert_(data)
        result, data = form.Extract(data1_2)
        self.assert_(data)
コード例 #9
0
ファイル: search.py プロジェクト: comlorda/nive
    def _GetFieldDefinitions(self, fields, pool_type=None):
        f = []
        for fld in fields:
            if IFieldConf.providedBy(fld):
                f.append(fld)
                continue
            if not isinstance(fld, basestring):
                continue
            if fld in ("__preview__", ):
                continue
            # skip custom flds
            if fld[0] == "+":
                continue
            # Aggregate functions, custom flds
            if fld[0] == "-":
                f.append(
                    FieldConf(**{
                        "id": fld,
                        "name": fld,
                        "datatype": "string"
                    }))
                continue

            fl = self.app.GetFld(fld, pool_type)
            if fl:
                f.append(fl)
        return f
コード例 #10
0
ファイル: test_field.py プロジェクト: comlorda/nive
 def test_configuration(self):
     from nive.definitions import FieldConf
     schema = DummySchema()
     field = self._makeOne(schema, configuration=FieldConf())
     self.assert_(field.configuration)
     field = self._makeOne(schema)
     self.assertFalse(field.configuration)
コード例 #11
0
 def test_widget(self):
     field = FieldConf(datatype="string",
                       id="field",
                       name="Field",
                       widget=Widget)
     nodes, buttons = SchemaFactory(testform(), [field], [], force=False)
     self.assert_(len(nodes) == 1)
コード例 #12
0
 def test_widget2(self):
     field = FieldConf(datatype="string",
                       id="field",
                       name="Field",
                       widget="nive.components.reform.widget.Widget")
     nodes, buttons = SchemaFactory(testform(), [field], [], force=False)
     self.assert_(len(nodes) == 1)
コード例 #13
0
 def test_actions(self):
     field = FieldConf(datatype="string", id="field", name="Field")
     action1 = Conf(id="action1", name="Action 1", cls="btn", hidden=False)
     action2 = Conf(id="action2", name="Action 2", cls="btn", hidden=True)
     nodes, buttons = SchemaFactory(testform(), [field], [action1, action2],
                                    force=False)
     self.assert_(len(buttons) == 1)
コード例 #14
0
 def test_hidden(self):
     field = FieldConf(datatype="string",
                       hidden=True,
                       id="field",
                       name="Field")
     self.assert_(hidden_node(field, {}, {}, testform()))
     nodes, buttons = SchemaFactory(testform(), [field], [], force=False)
     self.assert_(len(nodes) == 1)
コード例 #15
0
ファイル: view.py プロジェクト: comlorda/nive
 def editroot(self):
     root = self.context.app.root(name="")
     if not IPersistentRoot.providedBy(root):
         return {
             u"content":
             _(u"The default root does not support persistent data storage."
               ),
             u"result":
             False,
             u"head":
             u""
         }
     fields = (FieldConf(id=u"pool_filename",
                         datatype="string",
                         size=30,
                         required=1,
                         name=_(u"Root url name"),
                         settings={"validator": RootnameValidator},
                         default=root.configuration.id),
               FieldConf(id=u"title",
                         datatype="string",
                         size=255,
                         required=0,
                         name=_(u"Root title"),
                         default=root.configuration.name),
               FieldConf(id=u"description",
                         datatype="text",
                         size=5000,
                         required=0,
                         name=_(u"Root description")),
               FieldConf(
                   id="pool_groups",
                   datatype="checkbox",
                   size=250,
                   default="",
                   name=_(u"Permission"),
                   description=_(
                       u"Only displayed to users in the selected group")))
     form = RootForm(view=self, context=root, app=self.context)
     form.fields = fields
     form.Setup()
     # process and render the form.
     result, data, action = form.Process()
     return {u"content": data, u"result": result, u"head": form.HTMLHead()}
コード例 #16
0
    def test_validator(self):
        def Validator():
            return

        field = FieldConf(datatype="string",
                          id="field",
                          name="Field",
                          validator=Validator)
        nodes, buttons = SchemaFactory(testform(), [field], [], force=False)
        self.assert_(len(nodes) == 1)
コード例 #17
0
 def test_list(self):
     field = FieldConf(datatype="list",
                       id="field",
                       name="Field",
                       settings={
                           "addempty": True,
                           "controlset": "yes"
                       })
     self.assert_(list_node(field, {}, {}, testform()))
     nodes, buttons = SchemaFactory(testform(), [field], [], force=False)
     self.assert_(len(nodes) == 1)
コード例 #18
0
ファイル: view.py プロジェクト: comlorda/nive_cms
    def delete(self):
        self.ResetFlashMessages()

        class DeleteForm(HTMLForm):
            def Delete(self, action, **kw):
                redirectSuccess = kw.get("redirectSuccess")
                msgs = []
                result, data, errors = self.Validate(self.request)
                if result:
                    obj = self.context
                    user = kw.get("user") or self.view.User()
                    obj = self.context.obj(data.get("id"))
                    if not obj:
                        result = False
                        msgs = [_(u"Object not found")]
                    else:
                        result = self.context.Delete(id, user=user, obj=obj)
                return self._FinishFormProcessing(result, data, msgs, errors,
                                                  **kw)

        form = DeleteForm(view=self)
        form.actions = [
            Conf(id="default",
                 method="StartRequestGET",
                 name=u"Initialize",
                 hidden=True),
            Conf(id="delete",
                 method="Delete",
                 name=_(u"Delete all"),
                 hidden=False),
        ]
        form.fields = [
            FieldConf(id="id",
                      name=u"ids",
                      datatype="number",
                      hidden=True,
                      required=True),
        ]
        form.use_ajax = True
        form.Setup()
        result, data, action = form.Process(redirectSuccess="page_url")
        obj = self.context.obj(self.GetFormValue(u"id"))
        return {
            u"content": data,
            u"result": result,
            u"cmsview": self,
            u"objToDelete": obj,
            u"head": form.HTMLHead()
        }
コード例 #19
0
 def editportal(self):
     fields = (
         FieldConf(id=u"portalDefaultUrl", datatype="string", size=200, required=1, name=_(u"Redirect for portal root (/) requests")),
         FieldConf(id=u"favicon",      datatype="string", size=200,  required=0, name=_(u"Favicon asset path")),
         FieldConf(id=u"robots",       datatype="text",   size=10000,required=0, name=_(u"robots.txt contents")),
         FieldConf(id=u"loginUrl",     datatype="string", size=200,  required=1, name=_(u"Login form url")),
         FieldConf(id=u"forbiddenUrl", datatype="string", size=200,  required=1, name=_(u"Redirect for unauthorized requests")),
         FieldConf(id=u"logoutUrl",    datatype="string", size=200,  required=1, name=_(u"Redirect on logout")),
         FieldConf(id=u"accountUrl",   datatype="string", size=200,  required=0, name=_(u"User account page url")),
     )
     form = ConfigurationForm(view=self, context=self.context.portal.configuration, app=self.context)
     form.fields = fields
     form.Setup() 
     # process and render the form.
     result, data, action = form.Process()
     return {u"content": data, u"result": result, u"head": form.HTMLHead()}
コード例 #20
0
ファイル: admin.py プロジェクト: nive-cms/nive
 def design(self):
     fields = (FieldConf(
         id=u"columns",
         datatype="lines",
         size=100,
         required=0,
         name=_(u"Column names"),
         description=
         _(u"Column names used in the main template. For multiple columns enter one per line."
           )), )
     form = ConfigurationForm(view=self,
                              context=self.context.configuration,
                              app=self.context)
     form.fields = fields
     form.Setup()
     # process and render the form.
     result, data, action = form.Process()
     return {u"content": data, u"result": result, u"head": form.HTMLHead()}
コード例 #21
0
 def editdatabase(self):
     dbtypes=[{"id":"MySql","name":"MySql"},{"id":"Sqlite3","name":"Sqlite3"}]
     fields = (
         FieldConf(id=u"context",  datatype="list",   size=20,   required=1, name=_(u"Database type to be used"), listItems=dbtypes, 
                   description=_(u"Supports 'Sqlite3' and 'MySql' by default. MySql requires python-mysqldb installed.")),
         FieldConf(id=u"fileRoot", datatype="string", size=500,  required=0, name=_(u"Relative or absolute root directory for files")),
         FieldConf(id=u"dbName",   datatype="string", size=500,  required=1, name=_(u"Database file path or name"),
                   description=_(u"Sqlite3=database file path, MySql=database name")),
         FieldConf(id=u"host",     datatype="string", size=100,  required=0, name=_(u"Database server host")),
         FieldConf(id=u"port",     datatype="number", size=8,    required=0, name=_(u"Database server port")),
         FieldConf(id=u"user",     datatype="string", size=100,  required=0, name=_(u"Database server user")),
         FieldConf(id=u"password", datatype="password", size=100,required=0, name=_(u"Database server password")),
     )
     form = ConfigurationForm(view=self, context=self.context.dbConfiguration, app=self.context)
     form.fields = fields
     form.Setup()
     # process and render the form.
     result, data, action = form.Process()
     return {u"content": data, u"result": result, u"head": form.HTMLHead()}
コード例 #22
0
    def test_values3(self, **kw):
        form = Form(loadFromType="type1", app=self.app, view=self.view)
        subsets = {
            u"test": {
                "fields": [
                    u"ftext",
                    FieldConf(id="section1",
                              name="Section 1",
                              datatype="string",
                              schema=schema.String())
                ]
            }
        }
        form.subsets = subsets
        form.Setup(subset=u"test")
        v, d, e = form.Validate(data1_2)
        self.assert_(v, e)

        result, data = form.Extract(data1_1)
        self.assert_(data)
        result, data = form.Extract(data1_2)
        self.assert_(data)
コード例 #23
0
ファイル: test_helper.py プロジェクト: comlorda/nive
    def test_listitems(self):
        self._loadApp()
        r = self.app.root()

        self.assert_(
            len(
                LoadListItems(self.app.GetFld("pool_type"),
                              app=self.app,
                              obj=None,
                              pool_type=None,
                              force=True)) == 3)
        LoadListItems(FieldConf(id="test",
                                datatype="list",
                                settings={"codelist": "users"}),
                      app=self.app)
        self.assert_(
            LoadListItems(FieldConf(id="test",
                                    datatype="list",
                                    settings={"codelist": "groups"}),
                          app=self.app))
        self.assert_(
            LoadListItems(FieldConf(id="test",
                                    datatype="list",
                                    settings={"codelist": "languages"}),
                          app=self.app))
        self.assert_(
            LoadListItems(FieldConf(id="test",
                                    datatype="list",
                                    settings={"codelist": "countries"}),
                          app=self.app))
        self.assert_(
            LoadListItems(FieldConf(id="test",
                                    datatype="list",
                                    settings={"codelist": "types"}),
                          app=self.app))
        self.assert_(
            LoadListItems(FieldConf(id="test",
                                    datatype="list",
                                    settings={"codelist": "meta"}),
                          app=self.app))
コード例 #24
0
ファイル: dbStructureUpdater.py プロジェクト: comlorda/nive
from pyramid.threadlocal import get_current_request

configuration = ToolConf(
    id="dbStructureUpdater",
    context="nive.tools.dbStructureUpdater.dbStructureUpdater",
    name=_(u"Database Structure"),
    description=
    _(u"Generate or update the database structure based on configuration settings."
      ),
    apply=(IApplication, ),
    mimetype="text/html",
    data=[
        FieldConf(
            id="modify",
            datatype="bool",
            default=0,
            name=_(u"Modify existing columns"),
            description=
            _(u"Change existing database columns to new configuration. Depending on the changes, data may be lost!"
              )),
        FieldConf(id="showSystem",
                  datatype="bool",
                  default=0,
                  name=_(u"Show system columns"),
                  description=u"")
    ],
    views=[
        ViewConf(name="",
                 view=ToolView,
                 attr="run",
                 permission="system",
                 context="nive.tools.dbStructureUpdater.dbStructureUpdater")
コード例 #25
0
#@nive_module
configuration = RootConf(
    id="editor",
    context="nive_cms.cmsview.cmsroot.cmsroot",
    template="root.pt",
    default=False,
    subtypes="*",
    name=_(u"Home"),
    extensions=("nive.extensions.persistentRoot.Persistent", ),
    description=__doc__)

configuration.data = [
    FieldConf(id=u"pool_filename",
              datatype="string",
              size=30,
              required=1,
              name=_(u"Root url name"),
              settings={"validator": RootnameValidator},
              default=u""),
    FieldConf(id=u"title",
              datatype="string",
              size=255,
              required=0,
              name=_(u"Root title"),
              default=configuration.name),
    FieldConf(id=u"description",
              datatype="text",
              size=5000,
              required=0,
              name=_(u"Root description")),
    FieldConf(id=u"pool_groups",
コード例 #26
0
ファイル: codeblock.py プロジェクト: timgates42/nive_cms
    },
    {
        'id': u'html',
        'name': _(u'HTML')
    },
    {
        'id': u'css',
        'name': _(u'CSS')
    },
]

configuration.data = [
    FieldConf(id="codetype",
              datatype="list",
              size=10,
              default="raw",
              name=_(u"Type"),
              listItems=ct,
              fulltext=False,
              description=u""),
    FieldConf(id="codeblock",
              datatype="code",
              size=50000,
              default="",
              name=_(u"Code"),
              fulltext=False,
              description=u""),
]

fields = ["title", "codeblock", "pool_groups"]
configuration.forms = {
    "create": {
コード例 #27
0
from nive.definitions import ConfigurationError
from nive.definitions import ToolConf, FieldConf
from nive.tools import Tool
from nive.i18n import _

configuration = ToolConf()
configuration.id = "sendMail"
configuration.context = "nive.components.tools.sendMail.sendMail"
configuration.name = _(u"Send mails to registered users")
configuration.description = __doc__
configuration.apply = None
configuration.data = [
    FieldConf(id="host",
              name=_(u"SMTP host"),
              datatype="string",
              required=1,
              readonly=1,
              default=u"",
              description=u""),
    FieldConf(id="port",
              name=_(u"SMTP port"),
              datatype="number",
              required=1,
              readonly=1,
              default=21,
              description=u""),
    FieldConf(id="sender",
              name=_(u"SMTP sender mail"),
              datatype="email",
              required=1,
              readonly=1,
コード例 #28
0
ファイル: user.py プロジェクト: nive-cms/nive
# user definition ------------------------------------------------------------------
from nive.definitions import StagUser, ObjectConf, FieldConf
#@nive_module
configuration = ObjectConf(
    id = "user",
    name = _(u"User"),
    dbparam = "users",
    context = "nive.userdb.user.user",
    template = "user.pt",
    selectTag = StagUser,
    container = False,
    description = __doc__
)

configuration.data = (
    FieldConf(id="name",     datatype="string",      size= 30, default=u"", required=1, name=_(u"User ID"), description=u""),
    FieldConf(id="password", datatype="password",    size=100, default=u"", required=1, name=_(u"Password"), description=u""),
    FieldConf(id="email",    datatype="email",       size=255, default=u"", required=1, name=_(u"Email"), description=u""),
    FieldConf(id="groups",   datatype="mcheckboxes", size=255, default=u"", name=_(u"Groups"), settings={"codelist":"groups"}, description=u""),
    
    FieldConf(id="notify",   datatype="bool",        size= 4,  default=True, name=_(u"Activate email notifications"), description=u""),
    
    FieldConf(id="surname",  datatype="string",      size=100, default=u"", name=_(u"Surname"), description=u""),
    FieldConf(id="lastname", datatype="string",      size=100, default=u"", name=_(u"Lastname"), description=u""),
    FieldConf(id="organisation", datatype="string",  size=255, default=u"", name=_(u"Organisation"), description=u""),
    
    FieldConf(id="lastlogin", datatype="datetime", size=0, readonly=True, default=u"", name=_(u"Last login"), description=u""),
    
)

#password2 = FieldConf(id="password2", datatype="password", size= 30, default="", required=1, name="Passwort - Wiederholung", description="")
コード例 #29
0
ファイル: test_widget.py プロジェクト: comlorda/nive
 def test_configuration(self):
     from nive.definitions import FieldConf
     widget = self._makeOne(configuration=FieldConf())
     self.assert_(widget.configuration)
     widget = self._makeOne()
     self.assertFalse(widget.configuration)
コード例 #30
0
ファイル: spacer.py プロジェクト: timgates42/nive_cms
class spacer(PageElementBase):
    pass
    


# type definition ------------------------------------------------------------------
#@nive_module
configuration = ObjectConf(
    id = "spacer",
    name = _(u"Spacer"),
    dbparam = "spacers",
    context = "nive_cms.spacer.spacer",
    template = "spacer.pt",
    selectTag = StagPageElement,
    icon = "nive_cms.cmsview:static/images/types/spacer.png",
    description = _(u"Styling element to add line breaks and vertical space between elements.")
)

configuration.data = [
    FieldConf(id="cssClass", datatype="list", size=5, default=u"", listItems=(), name=_(u"Styling"), description=u"")
]

fields =["cssClass", "pool_groups"]
configuration.forms = {"create": {"fields":fields}, "edit": {"fields":fields}}

jsonfields = fields + ["pool_type","pool_filename"]
configuration.toJson = tuple(jsonfields)

configuration.views = []