Changeset 8214 for main/waeup.kofa/trunk/src/waeup/kofa/utils
- Timestamp:
- 19 Apr 2012, 12:43:37 (13 years ago)
- 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 32 32 from waeup.kofa.interfaces import ( 33 33 IBatchProcessor, FatalCSVError, IObjectConverter, 34 ICSVExporter, DELETION MARKER)34 ICSVExporter, DELETION_MARKER, IGNORE_MARKER) 35 35 36 36 class BatchProcessor(grok.GlobalUtility): … … 205 205 if hasattr(obj, key): 206 206 # 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>': 210 208 setattr(obj, key, value) 209 #if value == DELETIONMARKER: 210 # setattr(obj, key, None) 211 #elif value is not None: 212 # setattr(obj, key, value) 211 213 return 212 214 -
main/waeup.kofa/trunk/src/waeup/kofa/utils/converters.py
r8175 r8214 30 30 from waeup.kofa.interfaces import ( 31 31 IObjectConverter, IResultEntryField, IFieldConverter, SubjectSource, 32 GradeSource )32 GradeSource, DELETION_MARKER, IGNORE_MARKER) 33 33 from waeup.kofa.schema.interfaces import IPhoneNumber 34 34 from waeup.kofa.schoolgrades import ResultEntry … … 114 114 class DefaultFieldConverter(grok.Adapter): 115 115 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'): 119 120 return {prefix: value} 120 121 121 122 class ListFieldConverter(grok.Adapter): 122 123 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'): 126 128 value_type = schema_field.value_type 127 129 try: … … 144 146 """ 145 147 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'): 149 152 parts = value.split('-', 2) 150 153 country = '' … … 168 171 class ResultEntryConverter(grok.Adapter): 169 172 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'): 173 177 """Turn CSV values into ResultEntry-compatible form data. 174 178 … … 208 212 209 213 grok.context(Interface) 210 grok. provides(IObjectConverter)214 grok.implements(IObjectConverter) 211 215 212 216 def __init__(self, iface): … … 217 221 return 218 222 219 def fromStringDict(self, data_dict, context, form_fields=None): 223 def fromStringDict(self, data_dict, context, form_fields=None, 224 mode='create'): 220 225 """Convert values in `data_dict`. 221 226 … … 262 267 263 268 request = TestRequest(form={}) 269 new_data = dict() 264 270 for key, val in data_dict.items(): 265 271 field = form_fields.get(key, None) … … 269 275 schema_field = field.interface[field.__name__] 270 276 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 271 286 request.form.update( 272 287 field_converter.request_data( … … 283 298 form_fields, 'form', obj, request) 284 299 285 new_data = dict()300 #new_data = dict() 286 301 errors = getWidgetsData(widgets, 'form', new_data) 287 302
Note: See TracChangeset for help on using the changeset viewer.