Ignore:
Timestamp:
28 Aug 2010, 06:35:39 (14 years ago)
Author:
Henrik Bettermann
Message:

implement Phone Widget and apply to application, first_time_login and personal_edit student front end

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WAeUP_SRP/trunk/Widgets.py

    r5186 r5505  
    99##from Products.CPSSchemas.Widget import CPSWidgetType
    1010from Products.CMFCore.utils import getToolByName
    11 from Products.CPSSchemas.BasicWidgets import CPSBooleanWidget, CPSWidget, CPSStringWidget, CPSEmailWidget,CPSImageWidget
     11from Products.CPSSchemas.BasicWidgets import CPSBooleanWidget, CPSWidget, CPSStringWidget, CPSEmailWidget,CPSImageWidget,CPSIntWidget
    1212from Products.CPSSchemas.BasicWidgets import CPSFileWidget, CPSPasswordWidget
    1313from Products.CPSSchemas.BasicWidgets import renderHtmlTag,CPSSelectWidget, CPSStringWidget
     
    25532553###)
    25542554
     2555class PhoneWidget(CPSIntWidget): ###(
     2556    """ Phone Widget"""
     2557    meta_type = "Phone Widget"
     2558   
     2559    def validate(self, datastructure, **kw):
     2560        """Validate datastructure and update datamodel."""
     2561
     2562        valid = CPSIntWidget.validate(self, datastructure, **kw)
     2563        if not valid:
     2564            return 0
     2565        else:
     2566            widget_id = self.getWidgetId()
     2567            value = datastructure[widget_id]
     2568            #import pdb;pdb.set_trace()
     2569            if value == '234':
     2570                value = ''
     2571                datamodel = datastructure.getDataModel()
     2572                datamodel[self.fields[0]] = value
     2573            elif value.startswith('2340'):
     2574                err = 'Wrong Nigerian phone format'
     2575                datastructure.setError(widget_id, err)
     2576                return 0
     2577            return 1
     2578
     2579    def render(self, mode, datastructure, **kw):
     2580        """Render in mode from datastructure."""
     2581        value = datastructure[self.getWidgetId()]
     2582        #import pdb;pdb.set_trace()
     2583        if mode == 'view':
     2584            if value == '':
     2585                return ''
     2586            else:
     2587                return '+' + escape(value)
     2588        elif mode == 'edit':
     2589            if value == '':
     2590                value = 234
     2591            tag = renderHtmlTag('input',
     2592                                 type='text',
     2593                                 name=self.getHtmlWidgetId(),
     2594                                 value=value)
     2595            return '<strong>+</strong>' + tag
     2596        raise RuntimeError('unknown mode %s' % mode)
     2597
     2598
     2599InitializeClass(PhoneWidget)
     2600
     2601widgetRegistry.register(PhoneWidget)
     2602
     2603
     2604
     2605
    25552606###########
    25562607
Note: See TracChangeset for help on using the changeset viewer.