示例#1
0
 def get_json_value(self):
     compjson = []
     for key in self.record_ids:
         record = self.records[key]
         json_record = {}
         json_record['id'] = key
         for header in self.headers:
             json_record[header.name] = adapt_value(record[header.name])
         for rec_name in record.keys():
             if isinstance(rec_name, six.text_type) and rec_name.startswith('__') and (rec_name not in self.headers):
                 json_record[rec_name] = record[rec_name]
         compjson.append(json_record)
     return compjson
示例#2
0
文件: models.py 项目: loudubewe/core
 def get_value_for_evaluate(self, field_list, field_value):
     dep_field = self.get_field_by_name(field_list[0])
     if (dep_field is None
             or is_simple_field(dep_field)) and not isinstance(
                 field_value, LucteriosModel):
         field_value = adapt_value(field_value)
         formatnum, formatstr = extract_format(
             get_format_from_field(dep_field))
         field_val = format_to_string(field_value, formatnum, formatstr)
     elif field_value is None:
         field_val = ""
     elif isinstance(field_value,
                     LucteriosModel) and not hasattr(field_value, "all"):
         field_val = field_value.evaluate("#" + ".".join(field_list[1:]))
     else:
         field_val = eval_sublist(field_list, field_value)
     return field_val
示例#3
0
    def evaluate(self, text):
        def eval_sublist(field_list, field_value):
            field_val = []
            for sub_model in field_value.all():
                field_val.append(
                    sub_model.evaluate("#" + ".".join(field_list[1:])))
            return "{[br/]}".join(field_val)

        if text == '#':
            return six.text_type(self)
        value = text
        if text is not None:
            for field in self.TO_EVAL_FIELD.findall(text):
                field_list = field[1:].split('.')
                if hasattr(self, field_list[0]):
                    field_value = getattr(self, field_list[0])
                else:
                    field_value = ""
                if PrintFieldsPlugIn.is_plugin(field_list[0]):
                    field_val = PrintFieldsPlugIn.get_plugin(
                        field_list[0]).evaluate("#" + ".".join(field_list[1:]))
                elif field_list[0][-4:] == '_set':
                    field_val = eval_sublist(field_list, field_value)
                else:
                    dep_field = self.get_field_by_name(field_list[0])
                    if (dep_field is None
                            or is_simple_field(dep_field)) and not isinstance(
                                field_value, LucteriosModel):
                        field_value = adapt_value(field_value)
                        formatnum, formatstr = extract_format(
                            get_format_from_field(dep_field))
                        field_val = format_to_string(field_value, formatnum,
                                                     formatstr)
                    else:
                        if field_value is None:
                            field_val = ""
                        elif isinstance(field_value,
                                        LucteriosModel) and not hasattr(
                                            field_value, "all"):
                            field_val = field_value.evaluate(
                                "#" + ".".join(field_list[1:]))
                        else:
                            field_val = eval_sublist(field_list, field_value)
                value = value.replace(field, six.text_type(field_val))
        return value
示例#4
0
 def get_reading_comp(self, field_name, prefix=''):
     sub_value = self.item
     for fieldname in field_name.split('.'):
         if sub_value is not None:
             try:
                 sub_value = getattr(sub_value, fieldname)
             except ObjectDoesNotExist:
                 getLogger("lucterios.core").exception(
                     "fieldname '%s' not found", fieldname)
                 sub_value = None
     value = adapt_value(sub_value)
     dep_field = self.item.get_field_by_name(field_name)
     if isinstance(dep_field, EmailField):
         comp = XferCompLinkLabel(prefix + field_name)
         comp.set_link('mailto:' + value)
     else:
         comp = XferCompLabelForm(prefix + field_name)
     comp.set_value(value)
     comp.set_format(get_format_from_field(dep_field))
     return comp