def set_data(self, data):
        assert self.context
        assert self.form_fields

        alteredFields = []
        for datum in getFieldsInOrder(self.interface):
            if datum[0] in data:
                if data[datum[0]] != getattr(self.context, datum[0]):
                    alteredFields.append(datum[0])

        # Create the content folder and object and apply changes.
        folder = GSContentPage(self.context, mode='add', id=data['id'])
        if folder.status['error']:
            retval = u'%s' % folder.status['msg']

        changed = form.applyChanges(folder, self.form_fields, data)

        # All good, so redirect to the edit page.
        if changed:
            url = '%s/edit_page.html' % folder.context.absolute_url(0)
            self.request.response.redirect(url)
            return
        else:
            retval = u'Problem creating page'

        assert retval
        assert type(retval) == unicode
        self.status = retval
Ejemplo n.º 2
0
 def profileWidgetNames(self):
     retval = [
         'form.%s' % f[0] for f in getFieldsInOrder(self.profileInterface)
     ]
     retval = [f for f in retval if f not in self.__hiddenFieldNames]
     assert type(retval) == list
     return retval
Ejemplo n.º 3
0
    def handle_reset(self, action, data):
        # This may seem a bit daft, but there is method to my madness. The
        #   "showImage" value is set by simple assignment, while the
        #   "image" is set using
        assert self.context
        assert self.form_fields

        alteredFields = [datum[0]
                         for datum in getFieldsInOrder(IGSProfileImage)
                         if data[datum[0]] != getattr(self.context, datum[0])]

        if 'showImage' in alteredFields:
            self.context.showImage = data['showImage']
        if 'image' in alteredFields:
            self.set_image(data['image'])

        if alteredFields:
            fields = [IGSProfileImage.get(name).title
                      for name in alteredFields]
            f = ' and '.join([i for i in (', '.join(fields[:-1]), fields[-1])
                              if i])
            self.status = 'Changed %s' % f
        else:
            self.status = "No fields changed."
        assert self.status
        assert type(self.status) == unicode
Ejemplo n.º 4
0
    def set_data(self, data):
        assert self.context
        assert self.form_fields

        alteredFields = []
        for datum in getFieldsInOrder(self.interface):
            if datum[0] in data:
                if data[datum[0]] != getattr(self.context, datum[0]):
                    alteredFields.append(datum[0])

        # Create the content folder and object and apply changes.
        folder = GSContentPage(self.context, mode='add', id=data['id'])
        if folder.status['error']:
            retval = u'%s' % folder.status['msg']

        changed = form.applyChanges(folder, self.form_fields, data)

        # All good, so redirect to the edit page.
        if changed:
            url = '%s/edit_page.html' % folder.context.absolute_url(0)
            self.request.response.redirect(url)
            return
        else:
            retval = u'Problem creating page'

        assert retval
        assert type(retval) == unicode
        self.status = retval
 def properties(self):
     retval = ODict()
     retval['email'] = EmailAddress(
         title='Email',
         description='The email address of the new member')
     ifs = getFieldsInOrder(self.schema)
     for interface in ifs:
         key = unicode(interface[0])
         retval[key] = interface[1]
     assert isinstance(retval, ODict)
     assert retval
     return retval
Ejemplo n.º 6
0
    def getFields(self):
        r"""Return a list of fields in required + alphabetical order.

        The required attributes are listed first, then the optional
        attributes."""
        # The `Interface` class have no security declarations, so that we are
        # not able to access any API methods on proxied objects.  If we only
        # remove security proxies, the location proxy's module will be
        # returned.
        iface = removeAllProxies(self.context)
        # Make sure that the required fields are shown first
        sorter = lambda x: (not x[1].required, x[0].lower())
        return [interface.getFieldInfoDictionary(field)
                for name, field in interface.getFieldsInOrder(iface, sorter)]
    def siteProperties(self):
        '''Whole-heartily nicked from the GSProfile code, the site-wide
        user properties rely on a bit of voodoo: the schemas themselves
        are defined in the file-system, but which schema to use is 
        stored in the "GlobalConfiguration" instance.
        '''
        site_root = self.group.site_root()
        assert hasattr(site_root, 'GlobalConfiguration')
        config = site_root.GlobalConfiguration
        ifName = config.getProperty('profileInterface', 'IGSCoreProfile')
        # --=mpj17=-- Sometimes profileInterface is set to ''
        ifName = (ifName and ifName) or 'IGSCoreProfile'

        assert hasattr(profileinterfaces, ifName), \
                'Interface "%s" not found.' % ifName
        profileInterface = getattr(profileinterfaces, ifName)
        retval = interface.getFieldsInOrder(profileInterface)
        return retval
Ejemplo n.º 8
0
    def siteProperties(self):
        '''Whole-heartily nicked from the GSProfile code, the site-wide
        user properties rely on a bit of voodoo: the schemas themselves
        are defined in the file-system, but which schema to use is 
        stored in the "GlobalConfiguration" instance.
        '''
        site_root = self.group.site_root()
        assert hasattr(site_root, 'GlobalConfiguration')
        config = site_root.GlobalConfiguration
        ifName = config.getProperty('profileInterface', 'IGSCoreProfile')
        # --=mpj17=-- Sometimes profileInterface is set to ''
        ifName = (ifName and ifName) or 'IGSCoreProfile'

        assert hasattr(profileinterfaces, ifName), \
                'Interface "%s" not found.' % ifName
        profileInterface = getattr(profileinterfaces, ifName)
        retval = interface.getFieldsInOrder(profileInterface)
        return retval
 def profileFieldIds(self):
     retval = [f[0] for f in getFieldsInOrder(self.profileInterface)]
     assert type(retval) == list
     return retval
 def profileWidgetNames(self):
     retval = ['form.%s' % f[0] for f in
               getFieldsInOrder(self.profileInterface)]
     retval = [f for f in retval if f not in self.__hiddenFieldNames]
     assert type(retval) == list
     return retval