当前位置: 首页>>代码示例>>Python>>正文


Python form.applyChanges函数代码示例

本文整理汇总了Python中z3c.form.form.applyChanges函数的典型用法代码示例。如果您正苦于以下问题:Python applyChanges函数的具体用法?Python applyChanges怎么用?Python applyChanges使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了applyChanges函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: handleAdd

    def handleAdd(self, action):

        data, errors = self.extractData()
        if errors:
            self.status = self.formErrorsMessage
            return

        typeName = self.tileType.__name__

        # Traverse to a new tile in the context, with no data
        tile = self.context.restrictedTraverse(
            '@@%s/%s' % (typeName, self.tileId,))

        dataManager = ITileDataManager(tile)
        content = {}
        applyChanges(self, content, data)
        dataManager.set(content)

        # Look up the URL - we need to do this after we've set the data to
        # correctly account for transient tiles
        tileURL = absoluteURL(tile, self.request)
        contextURL = absoluteURL(tile.context, self.request)

        notify(ObjectCreatedEvent(tile))
        notify(ObjectAddedEvent(tile, self.context, self.tileId))

        IStatusMessage(self.request).addStatusMessage(
                _(u"Tile created at ${url}",
                  mapping={'url': tileURL}),
                type=u'info',
            )

        self.request.response.redirect(contextURL)
开发者ID:datakurre,项目名称:jyu.portfolio.layout,代码行数:33,代码来源:add-tile.py

示例2: create

 def create(self, data):
     fd = IntFieldDescription(data['title'],
                              str(data['name']),
                              data['required'])
     form.applyChanges(self, fd, data)
     self._fd = fd
     return fd
开发者ID:asley,项目名称:schooltool,代码行数:7,代码来源:demographics.py

示例3: handleSave

    def handleSave(self, action):
        data, errors = self.extractData()
        if errors:
            self.status = self.formErrorsMessage
            return

        typeName = self.tileType.__name__

        # Traverse to a new tile in the context, with no data
        tile = self.context.restrictedTraverse('@@%s/%s' % (typeName, self.tileId,))

        dataManager = ITileDataManager(tile)
        content = dataManager.get()
        applyChanges(self, content, data)
        dataManager.set(content)

        # Look up the URL - we need to do this after we've set the data to
        # correctly account for transient tiles
        contextURL = absoluteURL(tile.context, self.request)

        notify(ObjectModifiedEvent(tile))

        # Get the tile URL, possibly with encoded data
        IStatusMessage(self.request).addStatusMessage(_(u"Tile saved",), type=u'info')

        self.request.response.redirect(contextURL)
开发者ID:datakurre,项目名称:jyu.portfolio.layout,代码行数:26,代码来源:edit-tile.py

示例4: createAndAdd

    def createAndAdd(self, data):
        # Filter away data values that does not come from the 'core' schema.
        # Additional values can come from AutoExtensibleForm/FormExtender
        # schemas,and the portlet Assignment creation will fail if the
        # portlet AddForm create() method is using "Assignment(**data)"
        # instead of explicit parameters.
        # Extender values are set by form.applyChanges below, via the usual
        # z3cform adapter lookups.
        schema_keys = field.Fields(self.schema).keys()
        unextended_data = {key: data[key]
                           for key in schema_keys if data.has_key(key)}
        obj = self.create(unextended_data)

        # Acquisition wrap temporarily to satisfy things like vocabularies
        # depending on tools
        container = aq_inner(self.context)

        if IAcquirer.providedBy(obj):
            obj = obj.__of__(container)
        form.applyChanges(self, obj, data)
        obj = aq_base(obj)

        zope.event.notify(zope.lifecycleevent.ObjectCreatedEvent(obj))
        self.add(obj)
        return obj
开发者ID:headnet,项目名称:plone.app.portlets,代码行数:25,代码来源:formhelper.py

示例5: create

    def create(self, data):
        LOG.info('create: '+str(self.portal_type))
        fti = getUtility(IDexterityFTI, name=self.portal_type)

        container = aq_inner(self.context)
        options = {}
        options['portal_type'] = self.portal_type
        options['sql_id'] = data.get('ISQLContent.sql_id')
        content = createObject(fti.factory, **options)

        # Note: The factory may have done this already, but we want to be sure
        # that the created type has the right portal type. It is possible
        # to re-define a type through the web that uses the factory from an
        # existing type, but wants a unique portal_type!

        if hasattr(content, '_setPortalTypeName'):
            content._setPortalTypeName(fti.getId())

        # Acquisition wrap temporarily to satisfy things like vocabularies
        # depending on tools
        if IAcquirer.providedBy(content):
            content = content.__of__(container)
        # Don't set empty data in SQL DB:
        for k,v in data.items():
            if not v:
                del data[k]
        form.applyChanges(self, content, data)
        for group in self.groups:
            form.applyChanges(group, content, data)

        return aq_base(content)
开发者ID:Martronic-SA,项目名称:collective.behavior.sql,代码行数:31,代码来源:add.py

示例6: create

    def create(self, data):
        fti = getUtility(IDexterityFTI, name=self.portal_type)


        container = aq_inner(self.context)
        content = createObject(fti.factory)

        # Note: The factory may have done this already, but we want to be sure
        # that the created type has the right portal type. It is possible
        # to re-define a type through the web that uses the factory from an
        # existing type, but wants a unique portal_type!

        if hasattr(content, '_setPortalTypeName'):
            content._setPortalTypeName(fti.getId())

        # Acquisition wrap temporarily to satisfy things like vocabularies
        # depending on tools
        if IAcquirer.providedBy(content):
            content = content.__of__(container)

        form.applyChanges(self, content, data)
        for group in self.groups:
            form.applyChanges(group, content, data)

        return aq_base(content)
开发者ID:adam139,项目名称:plone.dexterity,代码行数:25,代码来源:add.py

示例7: populateContextFromDraft

    def populateContextFromDraft(self):
        """Will populate the temporary content object from values contained
        within the draft
        """
        data, errors = self.extractData()
        if errors:
            return None

        fti = zope.component.getUtility(IDexterityFTI, name=self.portal_type)
        container = aq_inner(self.context)
        content = zope.component.createObject(fti.factory)

        if hasattr(content, '_setPortalTypeName'):
            content._setPortalTypeName(fti.getId())

        # Acquisition wrap temporarily to satisfy things like vocabularies
        # depending on tools
        if IAcquirer.providedBy(content):
            content = content.__of__(container)

        applyChanges(self, content, data)
        for group in self.groups:
            applyChanges(group, content, data)

        return aq_base(content)
开发者ID:collective,项目名称:dexterity.draftspreviewbehavior,代码行数:25,代码来源:draftform.py

示例8: handle_assign

 def handle_assign(self, action):
     data, errors = self.extractData()
     if not errors:
         issue = self.getContent()
         info = getAdapter(issue, IWorkflowInfo, name="project.issue")
         form.applyChanges(self, issue, data)
         info.fireTransition("responsibility_assigned")
     self.request.response.redirect(".")
开发者ID:ilshad,项目名称:tacklets,代码行数:8,代码来源:forms.py

示例9: create

 def create(self, data):
     """ Create
     """
     name = INameChooser(
         self.context).chooseName(data.get('title', ''), None)
     ob = PortalType(id=name)
     form.applyChanges(self, ob, data)
     return ob
开发者ID:eea,项目名称:eea.faceted.tool,代码行数:8,代码来源:portaltype.py

示例10: save

    def save(self, action):
        data, errors = self.extractData()
        if errors:
            self.status = self.formErrorsMessage
            return

        content = self.getContent()
        form.applyChanges(self, content, data)
开发者ID:PMR2,项目名称:pmr2.json,代码行数:8,代码来源:form.py

示例11: autosave

def autosave(event):
    context = getattr(event, 'object', None)
    request = getattr(context, 'REQUEST', getRequest())
    if not request.URL.endswith('/@@z3cform_validate_field'):
        return

    draft = getCurrentDraft(request)
    if draft is None:
        return

    view = getattr(request, 'PUBLISHED', None)
    form = getattr(view, 'context', None)
    if hasattr(aq_base(form), 'form_instance'):
        form = form.form_instance

    if IAddForm.providedBy(form):
        target = getattr(draft, '_draftAddFormTarget', None)
        if not target:
            return
        target = target.__of__(context)
    else:
        target = context

    fti = queryUtility(IDexterityFTI, name=target.portal_type)
    if IDraftable.__identifier__ not in fti.behaviors:
        return

    if not hasattr(form, "extractData"):
        return

    data, errors = form.extractData()
    if not errors:
        content = DraftProxy(draft, target)

        # Drop known non-draftable values
        map(data.pop, [key for key in AUTOSAVE_BLACKLIST if key in data])

        # Values are applied within savepoint to allow revert of any
        # unexpected side-effects from setting field values
        sp = transaction.savepoint(optimistic=True)
        try:
            applyChanges(form, content, data)
            for group in getattr(form, 'groups', []):
                applyChanges(group, content, data)
        except Exception:
            # If shortname was not blacklisted, it could fail because the
            # behavior trying to rename object on add form.
            pass
        values = dict(draft.__dict__)
        sp.rollback()

        for key, value in values.items():
            setattr(draft, key, value)

        # Disable Plone 5 implicit CSRF to update draft
        if HAS_PLONE_PROTECT:
            alsoProvides(request, IDisableCSRFProtection)
开发者ID:datakurre,项目名称:plone.app.drafts,代码行数:57,代码来源:dexterity.py

示例12: create

 def create(self, data):
     """ Create
     """
     valid_input = input_is_valid(self, data)
     if not valid_input:
         return
     ob = PortalType(id=data.get('title', 'ADDTitle'))
     form.applyChanges(self, ob, data)
     return ob
开发者ID:collective,项目名称:eea.versions,代码行数:9,代码来源:views.py

示例13: create

 def create(self, data):
     # create object
     content = Graph()
     # apply form.rdftype
     content.add((content.identifier, RDF['type'], self.rdftype))
     # apply form data
     form.applyChanges(self, content, data)
     for group in self.groups:
         form.applyChanges(group, content, data)
     return content
开发者ID:gu-eresearch,项目名称:gu.z3cform.rdf,代码行数:10,代码来源:testing.py

示例14: create

 def create(self, data):
     # Dexterity base AddForm bypasses self.applyData and uses form.applyData directly,
     # we'll have to override it to find a place to apply our algo_group data'
     newob = super(SpeciesTraitsAdd, self).create(data)
     # apply values to algo dict manually to make sure we don't write data on read
     new_params = {}
     for group in self.param_groups:
         if group.toolkit == data['algorithm']:
             content = group.getContent()
             applyChanges(group, content, data)
             new_params[group.toolkit] = content
     newob.parameters = new_params
     return newob
开发者ID:sarahrichmond,项目名称:org.bccvl.site,代码行数:13,代码来源:experiment.py

示例15: applyChangesToSchedule

    def applyChangesToSchedule(self, schedule, data):
        changes = form.applyChanges(self, schedule, data)
        # ``changes`` is a dictionary; if empty, there were no changes
        if changes:
            # Construct change-descriptions for the object-modified event
            descriptions = []
            for interface, names in changes.items():
                descriptions.append(
                    zope.lifecycleevent.Attributes(interface, *names))
            # Send out a detailed object-modified event
            zope.event.notify(
                zope.lifecycleevent.ObjectModifiedEvent(schedule, *descriptions))

        schedule_changed = bool(changes)
        timetable = schedule.timetable
        for day in timetable.periods.templates.values():
            for period in day.values():
                key = self.getPeriodKey(day, period)
                selected = bool(self.request.get(key))
                scheduled = schedule.hasPeriod(period)
                if selected and not scheduled:
                    schedule.addPeriod(period)
                    schedule_changed = True
                elif not selected and scheduled:
                    schedule.removePeriod(period)
                    schedule_changed = True
        return schedule_changed
开发者ID:achouhans,项目名称:schooltool-2.8.5,代码行数:27,代码来源:timetable.py


注:本文中的z3c.form.form.applyChanges函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。