• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python form.applyChanges函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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


示例16: handleApply

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

        if data['selected_group']:
            self.group_obj = self.hlite[data['selected_group']]
            content = self.getContent()
            del data['selected_group']
            changes = form.applyChanges(self, content, data)
            if self.group_obj.id not in self.highlights:
                self.highlights[self.group_obj.id] = content
                interface.alsoProvides(self.context, IHighlighted)
            if changes:
                content.author = getActiveUser()
                self.context.reindexObject(idxs=['object_provides',
                                                 'hlite_groups'])
                self.status = self.successMessage
                self.refreshActions = True
                self.updateWidgets()
            else:
                self.status = self.noChangesMessage
        else:
            self.status = _(u'Please select a group.')
开发者ID:danilogbotelho,项目名称:Highlights-Manager,代码行数:25,代码来源:highlight.py


示例17: applyChanges

 def applyChanges(self, data):
     '''See interfaces.IEditForm'''
     content = self.getContent()
     changed = form.applyChanges(self, content, data)
     for group in self.groups:
         groupChanged = group.applyChanges(data)
         for interface, names in groupChanged.items():
             changed[interface] = changed.get(interface, []) + names
     return changed
开发者ID:CGTIC,项目名称:Plone_SP,代码行数:9,代码来源:group.py


示例18: applyChanges

    def applyChanges(self, data):
        changed = super(ParamGroupMixin, self).applyChanges(data)
        # apply algo params:
        new_params = {}
        for group in self.param_groups:
            if self.is_toolkit_selected(group.toolkit, data[self.func_select_field]):
                content = group.getContent()
                param_changed = applyChanges(group, content, data)
                new_params[group.toolkit] = content
        self.context.parameters = new_params

        return changed
开发者ID:sarahrichmond,项目名称:org.bccvl.site,代码行数:12,代码来源:experiment.py


示例19: create

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

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

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

        if IAcquirer.providedBy(content):
            content = content.__of__(container)

        for behavior in get_default_variant_aspects(self.context):
            name = dotted_name(behavior)
            enable_behaviors(content, (name,), (behavior,), reindex=False)

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

        return aq_base(content)
开发者ID:espenmn,项目名称:bda.plone.productshop2,代码行数:21,代码来源:forms.py


示例20: applyChanges

    def applyChanges(self):
        data, errors = self.extractData()
        content = self.getContent()
        if errors:
            self.status = self.formErrorsMessage
            return

        changes = form.applyChanges(self, content, data)
        # ``changes`` is a dictionary; if empty, there were no changes
        if changes:
            self.setConfiguration(content)
        return changes
开发者ID:collective,项目名称:collective.table,代码行数:12,代码来源:source.py



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python interfaces.IAddForm类代码示例发布时间:2022-05-26
下一篇:
Python widget.addFieldClass函数代码示例发布时间:2022-05-26
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap