Esempio n. 1
0
    def render_field_view(self, field):
        fieldname = field.getName()
        field = self.context.Schema()[fieldname]
        ret = {'fieldName': fieldname, 'mode': 'view'}
        try:
            adapter = getAdapter(self.context,
                                 interface=IHeaderTableFieldRenderer,
                                 name=fieldname)
        except ComponentLookupError:
            adapter = None
        if adapter:
            ret = {'fieldName': fieldname,
                   'mode': 'structure',
                   'html': adapter(field)}
        else:
            if field.getType().find("ool") > -1:
                value = field.get(self.context)
                ret = {'fieldName': fieldname,
                       'mode': 'structure',
                       'html': t(_('Yes')) if value else t(_('No'))
                }
            elif field.getType().find("Reference") > -1:
                # Prioritize method retrieval over schema's field
                targets = None
                if hasattr(self.context, 'get%s' % fieldname):
                    fieldaccessor = getattr(self.context, 'get%s' % fieldname)
                    if callable(fieldaccessor):
                        targets = fieldaccessor()
                if not targets:
                    targets = field.get(self.context)

                if targets:
                    if not type(targets) == list:
                        targets = [targets,]
                    sm = getSecurityManager()
                    if all([sm.checkPermission(view, ta) for ta in targets]):
                        a = ["<a href='%s'>%s</a>" % (target.absolute_url(),
                                                      target.Title())
                             for target in targets]
                        ret = {'fieldName': fieldname,
                               'mode': 'structure',
                               'html': ", ".join(a)}
                    else:
                        ret = {'fieldName': fieldname,
                               'mode': 'structure',
                               'html': ", ".join([ta.Title() for ta in targets])}
                else:
                    ret = {'fieldName': fieldname,
                           'mode': 'structure',
                           'html': ''}
            elif field.getType().lower().find('datetime') > -1:
                value = field.get(self.context)
                ret = {'fieldName': fieldname,
                       'mode': 'structure',
                       'html': self.ulocalized_time(value, long_format=True)
                }
        return ret
Esempio n. 2
0
File: add.py Progetto: nafwa03/olims
 def getContacts(self):
     adapter = getAdapter(self.context.aq_parent, name='getContacts')
     return adapter()
Esempio n. 3
0
 def getContacts(self):
     adapter = getAdapter(self.context.aq_parent, name='getContacts')
     return adapter()
Esempio n. 4
0
    def render_field_view(self, field):
        fieldname = field.getName()
        field = self.context.Schema()[fieldname]
        ret = {'fieldName': fieldname, 'mode': 'view'}
        try:
            adapter = getAdapter(self.context,
                                 interface=IHeaderTableFieldRenderer,
                                 name=fieldname)
        except ComponentLookupError:
            adapter = None
        if adapter:
            ret = {
                'fieldName': fieldname,
                'mode': 'structure',
                'html': adapter(field)
            }
        else:
            if field.getType().find("ool") > -1:
                value = field.get(self.context)
                ret = {
                    'fieldName': fieldname,
                    'mode': 'structure',
                    'html': t(_('Yes')) if value else t(_('No'))
                }
            elif field.getType().find("Reference") > -1:
                # Prioritize method retrieval over schema's field
                targets = None
                if hasattr(self.context, 'get%s' % fieldname):
                    fieldaccessor = getattr(self.context, 'get%s' % fieldname)
                    if callable(fieldaccessor):
                        targets = fieldaccessor()
                if not targets:
                    targets = field.get(self.context)

                if targets:
                    if not type(targets) == list:
                        targets = [
                            targets,
                        ]
                    sm = getSecurityManager()
                    if all([sm.checkPermission(view, ta) for ta in targets]):
                        a = [
                            "<a href='%s'>%s</a>" %
                            (target.absolute_url(), target.Title())
                            for target in targets
                        ]
                        ret = {
                            'fieldName': fieldname,
                            'mode': 'structure',
                            'html': ", ".join(a)
                        }
                    else:
                        ret = {
                            'fieldName': fieldname,
                            'mode': 'structure',
                            'html': ", ".join([ta.Title() for ta in targets])
                        }
                else:
                    ret = {
                        'fieldName': fieldname,
                        'mode': 'structure',
                        'html': ''
                    }
            elif field.getType().lower().find('datetime') > -1:
                value = field.get(self.context)
                ret = {
                    'fieldName': fieldname,
                    'mode': 'structure',
                    'html': self.ulocalized_time(value, long_format=True)
                }
        return ret