Ignore:
Timestamp:
13 Jul 2006, 11:37:54 (18 years ago)
Author:
joachim
Message:

=Courses and Certificates Folder added

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WAeUP_SRP/trunk/Widgets.py

    r204 r295  
    11#-*- mode: python; mode: fold -*-
     2
     3from cgi import escape
     4
    25from Globals import InitializeClass
    36##from Products.CPSSchemas.Widget import CPSWidgetType
    4 from Products.CPSSchemas.BasicWidgets import CPSStringWidget, CPSEmailWidget
     7from Products.CMFCore.utils import getToolByName
     8from Products.CPSSchemas.BasicWidgets import CPSWidget, CPSStringWidget, CPSEmailWidget
     9from Products.CPSSchemas.BasicWidgets import renderHtmlTag,CPSSelectWidget, CPSStringWidget
    510from Products.CPSSchemas.ExtendedWidgets import CPSDateTimeWidget
    611from Products.CPSSchemas.Widget import widgetRegistry
     
    1217
    1318from zLOG import LOG, DEBUG
     19
     20class CPSSelectWidgetForRecord(CPSSelectWidget): ###(
     21    """Select widget. with record names"""
     22    meta_type = 'Select Widget for Records'
     23
     24    field_types = ('CPS String Field',)
     25    field_inits = ({'is_searchabletext': 1,},)
     26
     27    _properties = CPSSelectWidget._properties + (
     28        {'id': 'record_id', 'type': 'string', 'mode': 'w',
     29         'label': 'Record Id', 'is_required' : 1},
     30        )
     31
     32    def render(self, mode, datastructure, **kw):
     33        """Render in mode from datastructure."""
     34        value = datastructure[self.getWidgetId()]
     35        vocabulary = self._getVocabulary(datastructure)
     36        portal = getToolByName(self, 'portal_url').getPortalObject()
     37        cpsmcat = portal.translation_service
     38        if mode == 'view':
     39            if self.translated:
     40                return escape(cpsmcat(vocabulary.getMsgid(value, value)).encode('ISO-8859-15', 'ignore'))
     41            else:
     42                return escape(vocabulary.get(value, value))
     43        elif mode == 'edit':
     44            html_widget_id = self.getHtmlWidgetId()
     45            res = renderHtmlTag('select',
     46                                name='%s.%s:records' % (self.record_id,html_widget_id),
     47                                id=html_widget_id)
     48            in_selection = 0
     49            for k, v in vocabulary.items():
     50                if self.translated:
     51                    kw = {'value': k,
     52                          'contents': cpsmcat(vocabulary.getMsgid(k, k)).encode('ISO-8859-15', 'ignore')
     53                          }
     54                else:
     55                    kw = {'value': k, 'contents': v}
     56                if value == k:
     57                    kw['selected'] = 'selected'
     58                    in_selection = 1
     59                res += renderHtmlTag('option', **kw)
     60            if value and not in_selection:
     61                kw = {'value': value, 'contents': 'invalid: '+ str(value),
     62                      'selected': 'selected'}
     63                res += renderHtmlTag('option', **kw)
     64            res += '</select>'
     65            return res
     66        raise RuntimeError('unknown mode %s' % mode)
     67
     68InitializeClass(CPSSelectWidgetForRecord)
     69
     70widgetRegistry.register(CPSSelectWidgetForRecord)
     71
     72###)
     73
     74class CPSStringWidgetForRecord(CPSStringWidget):
     75    """String widget."""
     76    meta_type = 'String Widget For Record'
     77
     78    field_types = ('CPS String Field',)
     79    field_inits = ({'is_searchabletext': 1,},)
     80    _properties = CPSStringWidget._properties + (
     81        {'id': 'record_id', 'type': 'string', 'mode': 'w',
     82         'label': 'Record Id', 'is_required' : 1},
     83        )
     84
     85    def render(self, mode, datastructure, **kw):
     86        """Render in mode from datastructure."""
     87        value = datastructure[self.getWidgetId()]
     88        if mode == 'view':
     89            return escape(value)
     90        elif mode == 'edit':
     91            # XXX TODO should use an other name than kw !
     92            # XXX change this everywhere
     93            html_widget_id = self.getHtmlWidgetId()
     94            kw = {'type': 'text',
     95                  'id'  : html_widget_id,
     96                  'name': '%s.%s:records' % (self.record_id,html_widget_id),
     97                  'value': escape(value),
     98                  'size': self.display_width,
     99                  }
     100            if self.size_max:
     101                kw['maxlength'] = self.size_max
     102            return renderHtmlTag('input', **kw)
     103        raise RuntimeError('unknown mode %s' % mode)
     104
     105InitializeClass(CPSStringWidgetForRecord)
     106
     107widgetRegistry.register(CPSStringWidgetForRecord)
    14108
    15109class StudentIdWidget(CPSStringWidget): ###(
Note: See TracChangeset for help on using the changeset viewer.