'Returns a dict with cleaned metadata values.  Omits
fields with empty string value.'

@property
def cleaned_metadata(self):

    clean = {}
    for key in self.metadata_field_keys:
        if ((key in self.data) and (self.data[key] != u'')):
            clean[key] = self.cleaned_data[key]
    troubleshooting = clean.get('troubleshooting')
    if troubleshooting:
        try:
            parsed = json.loads(troubleshooting)
        except ValueError:
            parsed = None
        if parsed:
            if (('modifiedPreferences' in parsed) and isinstance(parsed['modifiedPreferences'], dict)):
                for pref in parsed['modifiedPreferences'].keys():
                    if pref.startswith('print.macosx.pagesetup'):
                        del parsed['modifiedPreferences'][pref]
                clean['troubleshooting'] = json.dumps(parsed)
            version = parsed.get('application', {}).get('version')
            if version:
                clean['ff_version'] = version
    return clean
