Ignore:
Timestamp:
19 Apr 2012, 12:43:37 (13 years ago)
Author:
uli
Message:

Lots of trash to sketch filtered imports.

Location:
main/waeup.kofa/trunk/src/waeup/kofa/utils
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.kofa/trunk/src/waeup/kofa/utils/batching.py

    r8202 r8214  
    3232from waeup.kofa.interfaces import (
    3333    IBatchProcessor, FatalCSVError, IObjectConverter,
    34     ICSVExporter, DELETIONMARKER)
     34    ICSVExporter, DELETION_MARKER, IGNORE_MARKER)
    3535
    3636class BatchProcessor(grok.GlobalUtility):
     
    205205            if hasattr(obj, key):
    206206                # Set attribute to None if value is marked for deletion
    207                 if value == DELETIONMARKER:
    208                     setattr(obj, key, None)
    209                 elif value is not None:
     207                if value != '<IGNORE>':
    210208                    setattr(obj, key, value)
     209                #if value == DELETIONMARKER:
     210                #    setattr(obj, key, None)
     211                #elif value is not None:
     212                #    setattr(obj, key, value)
    211213        return
    212214
  • main/waeup.kofa/trunk/src/waeup/kofa/utils/converters.py

    r8175 r8214  
    3030from waeup.kofa.interfaces import (
    3131    IObjectConverter, IResultEntryField, IFieldConverter, SubjectSource,
    32     GradeSource)
     32    GradeSource, DELETION_MARKER, IGNORE_MARKER)
    3333from waeup.kofa.schema.interfaces import IPhoneNumber
    3434from waeup.kofa.schoolgrades import ResultEntry
     
    114114class DefaultFieldConverter(grok.Adapter):
    115115    grok.context(Interface)
    116     grok.provides(IFieldConverter)
    117 
    118     def request_data(self, name, value, schema_field, prefix=''):
     116    grok.implements(IFieldConverter)
     117
     118    def request_data(self, name, value, schema_field, prefix='',
     119                     mode='create'):
    119120        return {prefix: value}
    120121
    121122class ListFieldConverter(grok.Adapter):
    122123    grok.context(IList)
    123     grok.provides(IFieldConverter)
    124 
    125     def request_data(self, name, value, schema_field, prefix=''):
     124    grok.implements(IFieldConverter)
     125
     126    def request_data(self, name, value, schema_field, prefix='',
     127                     mode='create'):
    126128        value_type = schema_field.value_type
    127129        try:
     
    144146    """
    145147    grok.context(IPhoneNumber)
    146     grok.provides(IFieldConverter)
    147 
    148     def request_data(self, name, value, schema_field, prefix=''):
     148    grok.implements(IFieldConverter)
     149
     150    def request_data(self, name, value, schema_field, prefix='',
     151                     mode='create'):
    149152        parts = value.split('-', 2)
    150153        country = ''
     
    168171class ResultEntryConverter(grok.Adapter):
    169172    grok.context(IResultEntryField)
    170     grok.provides(IFieldConverter)
    171 
    172     def request_data(self, name, value, schema_field, prefix=''):
     173    grok.implements(IFieldConverter)
     174
     175    def request_data(self, name, value, schema_field, prefix='',
     176                     mode='create'):
    173177        """Turn CSV values into ResultEntry-compatible form data.
    174178
     
    208212
    209213    grok.context(Interface)
    210     grok.provides(IObjectConverter)
     214    grok.implements(IObjectConverter)
    211215
    212216    def __init__(self, iface):
     
    217221        return
    218222
    219     def fromStringDict(self, data_dict, context, form_fields=None):
     223    def fromStringDict(self, data_dict, context, form_fields=None,
     224                       mode='create'):
    220225        """Convert values in `data_dict`.
    221226
     
    262267
    263268        request = TestRequest(form={})
     269        new_data = dict()
    264270        for key, val in data_dict.items():
    265271            field = form_fields.get(key, None)
     
    269275                schema_field = field.interface[field.__name__]
    270276                field_converter = IFieldConverter(schema_field)
     277                if mode == 'update':
     278                    if val == DELETION_MARKER:
     279                        val = schema_field.missing_value
     280                        if schema_field.required:
     281                            val = schema_field.default
     282                        new_data[key] = val
     283                        continue
     284                    if val == IGNORE_MARKER:
     285                        continue
    271286                request.form.update(
    272287                    field_converter.request_data(
     
    283298            form_fields, 'form', obj, request)
    284299
    285         new_data = dict()
     300        #new_data = dict()
    286301        errors = getWidgetsData(widgets, 'form', new_data)
    287302
Note: See TracChangeset for help on using the changeset viewer.