コード例 #1
0
ファイル: models.py プロジェクト: tstalka/commcare-hq
    def to_xml(self):
        xData = ElementTree.Element(self.data_type.tag)
        for attribute in self.data_type.item_attributes:
            try:
                xData.attrib[attribute] = serialize(
                    self.item_attributes[attribute])
            except KeyError as e:
                # This should never occur, buf if it does, the OTA restore on mobile will fail and
                # this error would have been raised and email-logged.
                raise FixtureTypeCheckError(
                    "Table with tag %s has an item with id %s that doesn't have an attribute as defined in its types definition"
                    % (self.data_type.tag, self.get_id))
        for field in self.data_type.fields:
            escaped_field_name = clean_fixture_field_name(field.field_name)
            if field.field_name not in self.fields:
                xField = ElementTree.SubElement(xData, escaped_field_name)
                xField.text = ""
            else:
                for field_with_attr in self.fields[
                        field.field_name].field_list:
                    xField = ElementTree.SubElement(xData, escaped_field_name)
                    xField.text = serialize(field_with_attr.field_value)
                    for attribute in field_with_attr.properties:
                        val = field_with_attr.properties[attribute]
                        xField.attrib[attribute] = serialize(val)

        return xData
コード例 #2
0
ファイル: models.py プロジェクト: ansarbek/commcare-hq
    def to_xml(self):
        xData = ElementTree.Element(self.data_type.tag)
        for attribute in self.data_type.item_attributes:
            try:
                xData.attrib[attribute] = serialize(self.item_attributes[attribute])
            except KeyError as e:
                # This should never occur, buf if it does, the OTA restore on mobile will fail and
                # this error would have been raised and email-logged.
                raise FixtureTypeCheckError(
                    "Table with tag %s has an item with id %s that doesn't have an attribute as defined in its types definition"
                    % (self.data_type.tag, self.get_id)
                )
        for field in self.data_type.fields:
            escaped_field_name = clean_fixture_field_name(field.field_name)
            if not self.fields.has_key(field.field_name):
                xField = ElementTree.SubElement(xData, escaped_field_name)
                xField.text = ""
            else:
                for field_with_attr in self.fields[field.field_name].field_list:
                    xField = ElementTree.SubElement(xData, escaped_field_name)
                    xField.text = serialize(field_with_attr.field_value)
                    for attribute in field_with_attr.properties:
                        val = field_with_attr.properties[attribute]
                        xField.attrib[attribute] = serialize(val)

        return xData
コード例 #3
0
 def _row_to_row_elem(row, index, is_total_row=False):
     row_elem = E.row(index=str(index), is_total_row=str(is_total_row))
     for k in sorted(row.keys()):
         value = serialize(row[k])
         row_elem.append(E.column(value, id=k))
         if not is_total_row and k in deferred_fields:
             filter_options_by_field[k].add(value)
     return row_elem
コード例 #4
0
ファイル: mobile_ucr.py プロジェクト: tlwakwella/commcare-hq
 def _row_to_row_elem(row, index, is_total_row=False):
     row_elem = E.row(index=str(index), is_total_row=str(is_total_row))
     for k in sorted(row.keys()):
         value = serialize(row[k])
         row_elem.append(E.column(value, id=k))
         if not is_total_row and k in deferred_fields:
             filter_options_by_field[k].add(value)
     return row_elem
コード例 #5
0
 def _row_to_row_elem(deferred_fields,
                      filter_options_by_field,
                      row,
                      index,
                      is_total_row=False):
     row_elem = E.row(index=str(index), is_total_row=str(is_total_row))
     if toggles.ADD_ROW_INDEX_TO_MOBILE_UCRS.enabled(
             restore_user.domain):
         row_elem.append(E('row_index', str(index)))
     for k in sorted(row.keys()):
         value = serialize(row[k])
         row_elem.append(E(k, value))
         if not is_total_row and k in deferred_fields:
             filter_options_by_field[k].add(value)
     return row_elem