Changeset 345

Show
Ignore:
Timestamp:
05/06/08 10:49:49 (7 months ago)
Author:
johnbywater
Message:

Changed to route acquiring of initial field values of update form through maniulator.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/dm/view/base.py

    r342 r345  
    11831183 
    11841184    def getInitialParams(self): 
    1185         domainObject = self.getManipulatedDomainObject() 
    1186         return domainObject.asRequestParams() 
     1185        manipulator = self.getManipulator() 
     1186        return manipulator.getUpdateParams() 
    11871187         
    11881188    def manipulateDomainObject(self): 
  • trunk/src/dm/view/manipulator.py

    r310 r345  
    317317        for metaAttr in self.metaObject.attributes: 
    318318            if not metaAttr.isAssociateList: 
     319                # Todo: Fix this up to check the fields like update(). 
    319320                if self.data.has_key(metaAttr.name): 
    320321                    attrValue = metaAttr.makeValueFromMultiValueDict( 
     
    384385                return field 
    385386        return None 
     387 
     388    def getUpdateParams(self): 
     389        return self.domainObject.asRequestParams() 
    386390 
    387391 
  • trunk/src/dm/webkit/__init__.py

    r315 r345  
    1515    from django.forms import Manipulator 
    1616    from django.forms import SelectField, SelectMultipleField, TextField 
    17     from django.forms import LargeTextField, PasswordField, IntegerField 
    18     from django.forms import URLField, CheckboxField, DatetimeField, DateField 
     17    from django.forms import TextField, LargeTextField 
     18    from django.forms import PasswordField, IntegerField, SmallIntegerField 
     19    from django.forms import URLField, CheckboxField 
     20    from django.forms import DatetimeField, DateField, TimeField 
    1921    from django.forms import FileUploadField, EmailField, RadioSelectField 
    2022    from django.core.validators import ValidationError 
     
    5557 
    5658 
    57 # Django extensions, without a home. 
     59## Django extensions, without a home. Perhaps push back into ScanBooker? 
     60
     61 
    5862if webkitName == 'django': 
    5963 
     
    6266    ransi_date_re = sre.compile('^%s$' % _rdatere) 
    6367 
    64     class RDateField(TextField): 
    65         """A FormField that automatically converts its data to a datetime.date objec 
    66     t. 
     68    class RDateField(DateField): 
     69        """Automatically converts its data to a datetime.date object. 
    6770        The data should be in the format DD-MM-YYYY""" 
    68         def __init__(self, field_name, is_required=False, validator_list=None): 
    69             if validator_list is None: validator_list = [] 
    70             validator_list = [self.isValidDate] + validator_list 
    71             TextField.__init__(self, field_name, length=10, maxlength=10, 
    72                 is_required=is_required, validator_list=validator_list) 
    7371     
    7472        def isValidDate(self, field_data, all_data): 
     
    7876                        'Enter a valid date in DD-MM-YYYY format.' 
    7977                    ) 
    80             except validators.ValidationError, e: 
     78            except ValidationError, e: 
    8179                raise validators.CriticalValidationError, e.messages 
    8280     
     
    8583            import time, datetime 
    8684            try: 
    87                 time_tuple = time.strptime(data, '%d-%m-%Y') 
    88                 return datetime.date(*time_tuple[0:3]) 
     85                t = time.strptime(data, '%d-%m-%Y') 
     86                return datetime.date(t[0], t[1], t[2]) 
    8987            except (ValueError, TypeError): 
    9088                return None 
     89                 
    9190        html2python = staticmethod(html2python) 
    92      
    93         def render(self, data): 
    94             return super(RDateField, self).render(data) 
    95      
    96      
     91