Changeset 295 for WAeUP_SRP/trunk/Widgets.py
- Timestamp:
- 13 Jul 2006, 11:37:54 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WAeUP_SRP/trunk/Widgets.py
r204 r295 1 1 #-*- mode: python; mode: fold -*- 2 3 from cgi import escape 4 2 5 from Globals import InitializeClass 3 6 ##from Products.CPSSchemas.Widget import CPSWidgetType 4 from Products.CPSSchemas.BasicWidgets import CPSStringWidget, CPSEmailWidget 7 from Products.CMFCore.utils import getToolByName 8 from Products.CPSSchemas.BasicWidgets import CPSWidget, CPSStringWidget, CPSEmailWidget 9 from Products.CPSSchemas.BasicWidgets import renderHtmlTag,CPSSelectWidget, CPSStringWidget 5 10 from Products.CPSSchemas.ExtendedWidgets import CPSDateTimeWidget 6 11 from Products.CPSSchemas.Widget import widgetRegistry … … 12 17 13 18 from zLOG import LOG, DEBUG 19 20 class 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 68 InitializeClass(CPSSelectWidgetForRecord) 69 70 widgetRegistry.register(CPSSelectWidgetForRecord) 71 72 ###) 73 74 class 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 105 InitializeClass(CPSStringWidgetForRecord) 106 107 widgetRegistry.register(CPSStringWidgetForRecord) 14 108 15 109 class StudentIdWidget(CPSStringWidget): ###(
Note: See TracChangeset for help on using the changeset viewer.