def write_title(fieldmap, worksheet, language, directory=None): fields = get_interface_fields(fieldmap.interface) basefields = get_interface_fields(fieldmap.baseinterface) indexes = fieldmap.indexes() minix = min(indexes) maxix = max(indexes) write = lambda col, value: worksheet.write( 0, col, value, colstyle(fieldmap, col) ) for ix in xrange(minix, maxix + 1): field = fieldmap.indexmap[ix] typ = fieldmap.typename if field in fieldmap.titles: title = fieldmap.titles[field] elif directory and '.item' in typ and field in CATEGORIES: title = getattr(directory, field) elif field in fields: title = fields[field].title elif field in basefields: title = basefields[field].title else: title = field write(ix, translate(title, target_language=language)) for childmap in fieldmap.children: write_title(childmap, worksheet, language)
def write_title(fieldmap, worksheet, language, directory=None): fields = get_interface_fields(fieldmap.interface) basefields = get_interface_fields(fieldmap.baseinterface) indexes = fieldmap.indexes() minix = min(indexes) maxix = max(indexes) write = lambda col, value: worksheet.write(0, col, value, colstyle(fieldmap, col)) for ix in xrange(minix, maxix + 1): name = fieldmap.indexmap[ix] typ = fieldmap.typename title = None if directory and '.item' in typ and name in CATEGORIES: title = getattr(directory, name) if not title: if name in fields: title = fields[name].title elif name in basefields: title = basefields[name].title elif name in fieldmap.titles: title = fieldmap.titles[name] else: title = name write(ix, translate(title, target_language=language)) for childmap in fieldmap.children: write_title(childmap, worksheet, language)
def add_defaults(attributes, fieldmap): mapfields = fieldmap.fieldmap.keys() # The whole reason to add these defaults is that by manually creating # these values they are not applied (and without defaults some objects # end up with missing attributes if the respective fields were left out). # Needs some more investigating... ifields = get_interface_fields(fieldmap.interface) fields = set(ifields.keys()) - set(mapfields) for field in fields: default = ifields[field].default attributes[field] = default
def get_required_fields(obj, fieldmap): fields = get_interface_fields(fieldmap.interface) return [k for k, v in fields.items() if v.required]