territories-dashboard-lib 0.1.23__py3-none-any.whl → 0.1.24__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of territories-dashboard-lib might be problematic. Click here for more details.

Files changed (15) hide show
  1. territories_dashboard_lib/indicators_lib/format.py +8 -7
  2. territories_dashboard_lib/indicators_lib/views.py +1 -1
  3. territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/indicators/comparaison/main-values.mjs +6 -2
  4. territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/indicators/details/histogram.mjs +4 -2
  5. territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/indicators/details/top10.mjs +3 -1
  6. territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/indicators/format.mjs +11 -4
  7. territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/indicators/theme/main-value.mjs +1 -1
  8. territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/js/pages/indicators/utils.mjs +3 -1
  9. territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/react/indicatorMap.bundle.js +1 -1
  10. territories_dashboard_lib/website_lib/static/territories_dashboard_lib/website/react/sankeyGraph.bundle.js +1 -1
  11. {territories_dashboard_lib-0.1.23.dist-info → territories_dashboard_lib-0.1.24.dist-info}/METADATA +1 -1
  12. {territories_dashboard_lib-0.1.23.dist-info → territories_dashboard_lib-0.1.24.dist-info}/RECORD +15 -15
  13. {territories_dashboard_lib-0.1.23.dist-info → territories_dashboard_lib-0.1.24.dist-info}/WHEEL +0 -0
  14. {territories_dashboard_lib-0.1.23.dist-info → territories_dashboard_lib-0.1.24.dist-info}/licenses/licence.md +0 -0
  15. {territories_dashboard_lib-0.1.23.dist-info → territories_dashboard_lib-0.1.24.dist-info}/top_level.txt +0 -0
@@ -8,27 +8,28 @@ def _remove_useless_0(value):
8
8
  return value
9
9
 
10
10
 
11
- def format_indicator_value(value, force_integer=False):
11
+ def format_indicator_value(value, *, force_integer=False, precise=False):
12
12
  if value is None:
13
13
  return "-"
14
14
 
15
15
  abs_value = abs(value)
16
16
 
17
- if abs_value > 999999:
17
+ if abs_value > 999 and precise:
18
+ nb = f"{round(value):,}".replace(",", " ")
19
+ elif abs_value > 999999:
18
20
  nb = _remove_useless_0(_get_precision((value / 1_000_000), force_integer)) + "M"
19
21
  elif abs_value > 999:
20
22
  nb = _remove_useless_0(_get_precision((value / 1_000), force_integer)) + "k"
21
-
22
23
  else:
23
24
  nb = _remove_useless_0(_get_precision(value, force_integer))
24
25
  return nb.replace(".", ",")
25
26
 
26
27
 
27
- def _format_value(k, v):
28
+ def _format_value(k, v, *, precise=False):
28
29
  if k.lower().startswith("valeur"):
29
- v = format_indicator_value(v)
30
+ v = format_indicator_value(v, precise=precise)
30
31
  return v
31
32
 
32
33
 
33
- def format_data(data):
34
- return {k: _format_value(k, v) for k, v in data.items()}
34
+ def format_data(data, *, precise=False):
35
+ return {k: _format_value(k, v, precise=precise) for k, v in data.items()}
@@ -465,7 +465,7 @@ def indicator_details_table_view(request, name, payload):
465
465
  indicator = get_object_or_404(Indicator, name=name)
466
466
  filters = get_filters(request, indicator)
467
467
  count, data = get_count_and_data_for_indicator_table(indicator, payload, filters)
468
- formated_data = [format_data(element) for element in data]
468
+ formated_data = [format_data(element, precise=True) for element in data]
469
469
  keys = [
470
470
  {"db": key, "label": get_label(payload, indicator, key)}
471
471
  for key in (formated_data[0].keys() if formated_data else [])
@@ -17,13 +17,17 @@ function updateMainValues(indicator) {
17
17
  `#card-${indicator.id} .territory-value > span:first-child`
18
18
  );
19
19
 
20
- const value = formatIndicatorValue(data.values[0].valeur);
20
+ const value = formatIndicatorValue(data.values[0].valeur, {
21
+ precise: true,
22
+ });
21
23
  element.innerHTML = `<strong>${params.territory_name} : </strong>${value}`;
22
24
 
23
25
  const cmpElement = document.querySelector(
24
26
  `#card-${indicator.id} .compared-territory-value > span:first-child`
25
27
  );
26
- const cmpValue = formatIndicatorValue(data.cmp_values[0].valeur);
28
+ const cmpValue = formatIndicatorValue(data.cmp_values[0].valeur, {
29
+ precise: true,
30
+ });
27
31
  cmpElement.innerHTML = `<strong>${params.cmp_territory_name} : </strong>${cmpValue}`;
28
32
  }
29
33
 
@@ -20,7 +20,9 @@ function getDatalabels(dataset, mesh) {
20
20
  weight: "bold",
21
21
  },
22
22
  formatter: function (value, context) {
23
- const formatted = formatIndicatorValue(value.y, true);
23
+ const formatted = formatIndicatorValue(value.y, {
24
+ forceInteger: true,
25
+ });
24
26
  if (!formatted) {
25
27
  return "";
26
28
  }
@@ -60,7 +62,7 @@ function getScales(labels, maxFromData) {
60
62
  }
61
63
  return formatIndicatorValue(
62
64
  Number.parseFloat(labels[v]),
63
- true
65
+ { forceInteger: true }
64
66
  );
65
67
  }
66
68
  if (value === labels.length - 1) {
@@ -17,7 +17,9 @@ function getPlugins(indicator) {
17
17
  align: "center",
18
18
  color: "white",
19
19
  formatter: function (value) {
20
- return formatIndicatorValue(value);
20
+ return `${formatIndicatorValue(value, { precise: true })} ${
21
+ indicator.unite
22
+ }`;
21
23
  },
22
24
  },
23
25
  tooltip: getToolTip(indicator.unite),
@@ -24,12 +24,18 @@ function getPrecision(value, forceInteger) {
24
24
  return value.toFixed(1);
25
25
  }
26
26
 
27
- function formatIndicatorValue(value, forceInteger) {
28
- if (value === undefined || isNaN(value) || value === null) {
27
+ function formatIndicatorValue(
28
+ value,
29
+ { forceInteger = false, precise = false } = {}
30
+ ) {
31
+ if (value === undefined || value === null || isNaN(value)) {
29
32
  return "-";
30
33
  }
31
34
  let nb = null;
32
- if (Math.abs(value) > 999999) {
35
+
36
+ if (Math.abs(value) > 999 && precise) {
37
+ nb = new Intl.NumberFormat("fr-FR").format(Math.round(value));
38
+ } else if (Math.abs(value) > 999999) {
33
39
  nb =
34
40
  removeUseless0(
35
41
  getPrecision(
@@ -48,7 +54,8 @@ function formatIndicatorValue(value, forceInteger) {
48
54
  } else {
49
55
  nb = removeUseless0(getPrecision(value, forceInteger));
50
56
  }
51
- return nb.replace(".", ",");
57
+ nb = nb.replace(".", ",");
58
+ return nb;
52
59
  }
53
60
 
54
61
  export { formatIndicatorValue };
@@ -16,7 +16,7 @@ function updateMainValueDOM(indicator) {
16
16
  removeDelaySpinner(`#card-${indicator.id} .delay-spinner`);
17
17
  document.querySelector(
18
18
  `#card-${indicator.id} .main-value span:first-child`
19
- ).textContent = `${formatIndicatorValue(val)}`;
19
+ ).textContent = `${formatIndicatorValue(val, { precise: true })}`;
20
20
  }
21
21
 
22
22
  export { updateMainValueDOM };
@@ -36,7 +36,9 @@ export function getToolTip(unite) {
36
36
  context.dataset.label === unite
37
37
  ? ""
38
38
  : ` ${context.dataset.label}: `;
39
- return `${prefix} ${formatIndicatorValue(value)} ${unite}`;
39
+ return `${prefix} ${formatIndicatorValue(value, {
40
+ precise: true,
41
+ })} ${unite}`;
40
42
  },
41
43
  },
42
44
  };