本文整理汇总了Python中model_report.utils.ReportRow.is_report_totals方法的典型用法代码示例。如果您正苦于以下问题:Python ReportRow.is_report_totals方法的具体用法?Python ReportRow.is_report_totals怎么用?Python ReportRow.is_report_totals使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类model_report.utils.ReportRow
的用法示例。
在下文中一共展示了ReportRow.is_report_totals方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_rows
# 需要导入模块: from model_report.utils import ReportRow [as 别名]
# 或者: from model_report.utils.ReportRow import is_report_totals [as 别名]
#.........这里部分代码省略.........
# gqs_values needs to already be sorted on the same key function
# for groupby to work properly
gqs_values.sort(key=get_key_values)
res = groupby(gqs_values, key=get_key_values)
row_values = {}
for key, values in res:
row_values = dict([(index, []) for index in m2m_indexes])
for v in values:
for index in m2m_indexes:
if v[index] not in row_values[index]:
row_values[index].append(v[index])
for index, vals in row_values.items():
key[index] = vals
values_results.append(key)
return values_results
qs_list = get_with_dotvalues(qs_list)
if self.model_m2m_fields:
qs_list = group_m2m_field_values(qs_list)
groupby_fn = None
if groupby_data and groupby_data['groupby']:
groupby_field = groupby_data['groupby']
if groupby_field in self.override_group_value:
transform_fn = self.override_group_value.get(groupby_field)
groupby_fn = lambda x: transform_fn(x[ffields.index(groupby_field)])
else:
groupby_fn = lambda x: x[ffields.index(groupby_field)]
else:
groupby_fn = lambda x: None
qs_list.sort(key=groupby_fn)
g = groupby(qs_list, key=groupby_fn)
row_report_totals = self.get_empty_row_asdict(self.report_totals, [])
for grouper, resources in g:
rows = list()
row_group_totals = self.get_empty_row_asdict(self.group_totals, [])
for resource in resources:
row = ReportRow()
if isinstance(resource, (tuple, list)):
for index, value in enumerate(resource):
if ffields[index] in self.group_totals:
row_group_totals[ffields[index]].append(value)
elif ffields[index] in self.report_totals:
row_report_totals[ffields[index]].append(value)
value = self._get_value_text(index, value)
value = ReportValue(value)
if ffields[index] in self.override_field_values:
value.to_value = self.override_field_values[
ffields[index]]
if ffields[index] in self.override_field_formats:
value.format = self.override_field_formats[
ffields[index]]
row.append(value)
else:
for index, column in enumerate(ffields):
value = get_field_value(resource, column)
if ffields[index] in self.group_totals:
row_group_totals[ffields[index]].append(value)
elif ffields[index] in self.report_totals:
row_report_totals[ffields[index]].append(value)
value = self._get_value_text(index, value)
value = ReportValue(value)
if column in self.override_field_values:
value.to_value = self.override_field_values[column]
if column in self.override_field_formats:
value.format = self.override_field_formats[column]
row.append(value)
rows.append(row)
if row_group_totals:
if groupby_data['groupby']:
header_group_total = compute_row_header(self.group_totals)
row = compute_row_totals(
self.group_totals,
row_group_totals,
is_group_total=True)
rows.append(header_group_total)
rows.append(row)
for k, v in row_group_totals.items():
if k in row_report_totals:
row_report_totals[k].extend(v)
if groupby_data and groupby_data['groupby']:
grouper = self._get_grouper_text(groupby_data['groupby'],
grouper)
else:
grouper = None
if isinstance(grouper, (list, tuple)):
grouper = grouper[0]
report_rows.append([grouper, rows])
if self.has_report_totals():
header_report_total = compute_row_header(self.report_totals)
row = compute_row_totals(
self.report_totals, row_report_totals, is_report_total=True)
header_report_total.is_report_totals = True
row.is_report_totals = True
report_rows.append([_('Totals'), [header_report_total, row]])
return report_rows
示例2: get_rows
# 需要导入模块: from model_report.utils import ReportRow [as 别名]
# 或者: from model_report.utils.ReportRow import is_report_totals [as 别名]
#.........这里部分代码省略.........
for index_row, old_row in enumerate(resources):
new_row = []
for index, actual_value in enumerate(old_row):
if index in dot_indexes_values:
new_value = dot_indexes_values[index][actual_value]
else:
new_value = actual_value
new_row.append(new_value)
new_resources.append(new_row)
resources = new_resources
return resources
def compute_row_totals(row_config, row_values):
total_row = self.get_empty_row_asdict(self.fields, ReportValue(" "))
for k, v in total_row.items():
if k in row_config:
fun = row_config[k]
value = fun(row_values[k])
value = ReportValue(value)
if k in self.override_field_values:
value.to_value = self.override_field_values[k]
if k in self.override_field_formats:
value.format = self.override_field_formats[k]
total_row[k] = value
row = self.reorder_dictrow(total_row)
row = ReportRow(row)
row.is_total = True
return row
def compute_row_header(row_config):
header_row = self.get_empty_row_asdict(self.fields, ReportValue(""))
for k, fun in row_config.items():
if hasattr(fun, "caption"):
value = fun.caption
else:
value = " "
header_row[k] = value
row = self.reorder_dictrow(header_row)
row = ReportRow(row)
row.is_caption = True
return row
qs_list = get_with_dotvalues(qs_list)
if groupby_data and groupby_data["groupby"]:
g = groupby(qs_list, lambda x: x[ffields.index(groupby_data["groupby"])])
else:
g = groupby(qs_list, lambda x: None)
row_report_totals = self.get_empty_row_asdict(self.report_totals, [])
for grouper, resources in g:
rows = list()
row_group_totals = self.get_empty_row_asdict(self.group_totals, [])
for resource in resources:
row = ReportRow()
if isinstance(resource, (tuple, list)):
for index, value in enumerate(resource):
if ffields[index] in self.group_totals:
row_group_totals[ffields[index]].append(value)
value = self._get_value_text(index, value)
value = ReportValue(value)
if ffields[index] in self.override_field_values:
value.to_value = self.override_field_values[ffields[index]]
if ffields[index] in self.override_field_formats:
value.format = self.override_field_formats[ffields[index]]
row.append(value)
else:
for index, column in enumerate(ffields):
value = get_field_value(resource, column)
if ffields[index] in self.group_totals:
row_group_totals[ffields[index]].append(value)
value = self._get_value_text(index, value)
value = ReportValue(value)
if column in self.override_field_values:
value.to_value = self.override_field_values[column]
if column in self.override_field_formats:
value.format = self.override_field_formats[column]
row.append(value)
rows.append(row)
if row_group_totals:
if groupby_data["groupby"]:
header_group_total = compute_row_header(self.group_totals)
row = compute_row_totals(self.group_totals, row_group_totals)
rows.append(header_group_total)
rows.append(row)
for k, v in row_group_totals.items():
row_report_totals[k].extend(v)
if groupby_data and groupby_data["groupby"]:
grouper = self._get_grouper_text(groupby_data["groupby"], grouper)
else:
grouper = None
report_rows.append([grouper, rows])
if self.has_report_totals():
header_report_total = compute_row_header(self.group_totals)
row = compute_row_totals(self.report_totals, row_report_totals)
header_report_total.is_report_totals = True
row.is_report_totals = True
report_rows.append([_("Totals"), [header_report_total, row]])
return report_rows
示例3: get_rows
# 需要导入模块: from model_report.utils import ReportRow [as 别名]
# 或者: from model_report.utils.ReportRow import is_report_totals [as 别名]
#.........这里部分代码省略.........
if flookup == 'day':
if 'sqlite' in backend:
extra_ffield.append([f, "strftime('%%d', " + fname + ")"])
elif 'postgres' in backend:
extra_ffield.append([f, "cast(extract(day from " + fname + ") as integer)"])
elif 'mysql' in backend:
extra_ffield.append([f, "DAY(" + fname + ")"])
else:
raise NotImplemented # mysql
break
obfields = list(self.list_order_by)
if groupby_data and groupby_data['groupby']:
if groupby_data['groupby'] in obfields:
obfields.remove(groupby_data['groupby'])
obfields.insert(0, groupby_data['groupby'])
qs = self.filter_query(qs)
qs = qs.order_by(*obfields)
if extra_ffield:
qs = qs.extra(select=dict(extra_ffield))
qs = qs.values_list(*ffields)
qs_list = list(qs)
qs_list = self.get_with_dotvalues(qs_list)
if self.model_m2m_fields:
qs_list = self.group_m2m_field_values(qs_list)
if groupby_data and groupby_data['groupby']:
groupby_field = groupby_data['groupby']
if groupby_field in self.override_group_value:
transform_fn = self.override_group_value.get(groupby_field)
groupby_fn = lambda x: transform_fn(x[ffields.index(groupby_field)])
else:
groupby_fn = lambda x: x[ffields.index(groupby_field)]
else:
groupby_fn = lambda x: None
qs_list.sort(key=groupby_fn)
g = groupby(qs_list, key=groupby_fn)
row_report_totals = self.get_empty_row_asdict(self.report_totals, [])
for grouper, resources in g:
rows = list()
row_group_totals = self.get_empty_row_asdict(self.group_totals, [])
for resource in resources:
row = ReportRow()
if isinstance(resource, (tuple, list)):
for index, value in enumerate(resource):
if ffields_include_self[index] in self.group_totals:
row_group_totals[ffields_include_self[index]].append(value)
elif ffields[index] in self.group_totals:
row_group_totals[ffields[index]].append(value)
elif ffields[index] in self.report_totals:
row_report_totals[ffields[index]].append(value)
value = self._get_value_text(index, value)
value = ReportValue(value)
if ffields[index] in self.override_field_values:
value.to_value = self.override_field_values[ffields[index]]
if ffields[index] in self.override_field_formats:
value.format = self.override_field_formats[ffields[index]]
row.append(value)
else:
for index, column in enumerate(ffields):
value = self.get_field_value(resource, column)
if ffields[index] in self.group_totals:
row_group_totals[ffields[index]].append(value)
elif ffields[index] in self.report_totals:
row_report_totals[ffields[index]].append(value)
value = self._get_value_text(index, value)
value = ReportValue(value)
if column in self.override_field_values:
value.to_value = self.override_field_values[column]
if column in self.override_field_formats:
value.format = self.override_field_formats[column]
row.append(value)
rows.append(row)
if row_group_totals:
if groupby_data['groupby']:
header_group_total = self.compute_row_header(self.group_totals)
row = self.compute_row_totals(self.group_totals, row_group_totals, is_group_total=True)
rows.append(header_group_total)
rows.append(row)
for k, v in row_group_totals.items():
if k in row_report_totals:
row_report_totals[k].extend(v)
if groupby_data and groupby_data['groupby']:
grouper = self._get_grouper_text(groupby_data['groupby'], grouper)
else:
grouper = None
if isinstance(grouper, (list, tuple)):
grouper = grouper[0]
report_rows.append([grouper, rows])
if self.has_report_totals():
header_report_total = self.compute_row_header(self.report_totals)
row = self.compute_row_totals(self.report_totals, row_report_totals, is_report_total=True)
header_report_total.is_report_totals = True
row.is_report_totals = True
report_rows.append([_('Totals'), [header_report_total, row]])
return report_rows
示例4: get_rows
# 需要导入模块: from model_report.utils import ReportRow [as 别名]
# 或者: from model_report.utils.ReportRow import is_report_totals [as 别名]
#.........这里部分代码省略.........
for k, fun in row_config.items():
if hasattr(fun, 'caption'):
value = force_unicode(fun.caption)
else:
value = ' '
header_row[k] = value
row = self.reorder_dictrow(header_row)
row = ReportRow(row)
row.is_caption = True
return row
def group_m2m_field_values(gqs_values):
values_results = []
m2m_indexes = [index for ffield, lkfield, index, field in self.model_m2m_fields]
def get_key_values(gqs_vals):
return [v if index not in m2m_indexes else None for index, v in enumerate(gqs_vals)]
res = groupby(gqs_values, key=get_key_values)
row_values = {}
for key, values in res:
row_values = dict([(index, []) for index in m2m_indexes])
for v in values:
for index in m2m_indexes:
if v[index] not in row_values[index]:
row_values[index].append(v[index])
for index, vals in row_values.items():
key[index] = vals
values_results.append(key)
return values_results
qs_list = get_with_dotvalues(qs_list)
if self.model_m2m_fields:
qs_list = group_m2m_field_values(qs_list)
if groupby_data and groupby_data['groupby']:
g = groupby(qs_list, lambda x: x[ffields.index(groupby_data['groupby'])])
else:
g = groupby(qs_list, lambda x: None)
row_report_totals = self.get_empty_row_asdict(self.report_totals, [])
for grouper, resources in g:
rows = list()
row_group_totals = self.get_empty_row_asdict(self.group_totals, [])
for resource in resources:
row = ReportRow()
if isinstance(resource, (tuple, list)):
for index, value in enumerate(resource):
if ffields[index] in self.group_totals:
row_group_totals[ffields[index]].append(value)
elif ffields[index] in self.report_totals:
row_report_totals[ffields[index]].append(value)
value = self._get_value_text(index, value)
value = ReportValue(value)
if ffields[index] in self.override_field_values:
value.to_value = self.override_field_values[ffields[index]]
if ffields[index] in self.override_field_formats:
value.format = self.override_field_formats[ffields[index]]
row.append(value)
else:
for index, column in enumerate(ffields):
value = get_field_value(resource, column)
if ffields[index] in self.group_totals:
row_group_totals[ffields[index]].append(value)
elif ffields[index] in self.report_totals:
row_report_totals[ffields[index]].append(value)
value = self._get_value_text(index, value)
value = ReportValue(value)
if column in self.override_field_values:
value.to_value = self.override_field_values[column]
if column in self.override_field_formats:
value.format = self.override_field_formats[column]
row.append(value)
rows.append(row)
if row_group_totals:
if groupby_data['groupby']:
header_group_total = compute_row_header(self.group_totals)
row = compute_row_totals(self.group_totals, row_group_totals, is_group_total=True)
rows.append(header_group_total)
rows.append(row)
for k, v in row_group_totals.items():
if k in row_report_totals:
row_report_totals[k].extend(v)
if groupby_data and groupby_data['groupby']:
grouper = self._get_grouper_text(groupby_data['groupby'], grouper)
else:
grouper = None
if isinstance(grouper, (list, tuple)):
grouper = grouper[0]
report_rows.append([grouper, rows])
if self.has_report_totals():
header_report_total = compute_row_header(self.report_totals)
row = compute_row_totals(self.report_totals, row_report_totals, is_report_total=True)
header_report_total.is_report_totals = True
row.is_report_totals = True
report_rows.append([_('Totals'), [header_report_total, row]])
return report_rows