territories-dashboard-lib 0.1.0__py3-none-any.whl → 0.1.1__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.
- territories_dashboard_lib/commons/__init__.py +0 -0
- territories_dashboard_lib/commons/decorators.py +36 -0
- territories_dashboard_lib/commons/models.py +9 -0
- territories_dashboard_lib/geo_lib/__init__.py +0 -0
- territories_dashboard_lib/geo_lib/admin.py +64 -0
- territories_dashboard_lib/geo_lib/enums.py +7 -0
- territories_dashboard_lib/geo_lib/migrations/0001_initial.py +51 -0
- territories_dashboard_lib/geo_lib/migrations/__init__.py +0 -0
- territories_dashboard_lib/geo_lib/models.py +58 -0
- territories_dashboard_lib/geo_lib/urls.py +27 -0
- territories_dashboard_lib/geo_lib/views.py +239 -0
- territories_dashboard_lib/indicators_lib/__init__.py +0 -0
- territories_dashboard_lib/indicators_lib/admin.py +140 -0
- territories_dashboard_lib/indicators_lib/enums.py +59 -0
- territories_dashboard_lib/indicators_lib/export.py +29 -0
- territories_dashboard_lib/indicators_lib/format.py +34 -0
- territories_dashboard_lib/indicators_lib/methodo_pdf.py +99 -0
- territories_dashboard_lib/indicators_lib/migrations/0001_initial.py +138 -0
- territories_dashboard_lib/indicators_lib/migrations/__init__.py +0 -0
- territories_dashboard_lib/indicators_lib/models.py +230 -0
- territories_dashboard_lib/indicators_lib/payloads.py +54 -0
- territories_dashboard_lib/indicators_lib/query/commons.py +223 -0
- territories_dashboard_lib/indicators_lib/query/comparison.py +70 -0
- territories_dashboard_lib/indicators_lib/query/details.py +64 -0
- territories_dashboard_lib/indicators_lib/query/histogram.py +82 -0
- territories_dashboard_lib/indicators_lib/query/indicator_card.py +102 -0
- territories_dashboard_lib/indicators_lib/query/top_10.py +100 -0
- territories_dashboard_lib/indicators_lib/query/utils.py +20 -0
- territories_dashboard_lib/indicators_lib/refresh_filters.py +17 -0
- territories_dashboard_lib/indicators_lib/table.py +154 -0
- territories_dashboard_lib/indicators_lib/urls.py +97 -0
- territories_dashboard_lib/indicators_lib/views.py +490 -0
- territories_dashboard_lib/superset_lib/__init__.py +0 -0
- territories_dashboard_lib/superset_lib/admin.py +22 -0
- territories_dashboard_lib/superset_lib/guest_token.py +64 -0
- territories_dashboard_lib/superset_lib/logic.py +67 -0
- territories_dashboard_lib/superset_lib/migrations/0001_initial.py +45 -0
- territories_dashboard_lib/superset_lib/migrations/__init__.py +0 -0
- territories_dashboard_lib/superset_lib/models.py +52 -0
- territories_dashboard_lib/superset_lib/serializers.py +10 -0
- territories_dashboard_lib/superset_lib/urls.py +10 -0
- territories_dashboard_lib/superset_lib/views.py +19 -0
- territories_dashboard_lib/tracking_lib/__init__.py +0 -0
- territories_dashboard_lib/tracking_lib/enums.py +7 -0
- territories_dashboard_lib/tracking_lib/logic.py +78 -0
- territories_dashboard_lib/tracking_lib/migrations/0001_initial.py +45 -0
- territories_dashboard_lib/tracking_lib/migrations/__init__.py +0 -0
- territories_dashboard_lib/tracking_lib/models.py +79 -0
- territories_dashboard_lib/website_lib/__init__.py +0 -0
- territories_dashboard_lib/website_lib/admin.py +40 -0
- territories_dashboard_lib/website_lib/context_processors.py +27 -0
- territories_dashboard_lib/website_lib/forms.py +47 -0
- territories_dashboard_lib/website_lib/migrations/0001_initial.py +91 -0
- territories_dashboard_lib/website_lib/migrations/__init__.py +0 -0
- territories_dashboard_lib/website_lib/models.py +148 -0
- territories_dashboard_lib/website_lib/navigation.py +124 -0
- territories_dashboard_lib/website_lib/params.py +268 -0
- territories_dashboard_lib/website_lib/serializers.py +105 -0
- territories_dashboard_lib/website_lib/static_content.py +20 -0
- territories_dashboard_lib/website_lib/templatetags/htmlparams.py +75 -0
- territories_dashboard_lib/website_lib/templatetags/other_filters.py +30 -0
- territories_dashboard_lib/website_lib/views.py +212 -0
- {territories_dashboard_lib-0.1.0.dist-info → territories_dashboard_lib-0.1.1.dist-info}/METADATA +1 -1
- territories_dashboard_lib-0.1.1.dist-info/RECORD +67 -0
- territories_dashboard_lib-0.1.0.dist-info/RECORD +0 -5
- {territories_dashboard_lib-0.1.0.dist-info → territories_dashboard_lib-0.1.1.dist-info}/WHEEL +0 -0
- {territories_dashboard_lib-0.1.0.dist-info → territories_dashboard_lib-0.1.1.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
from django import template
|
|
2
|
+
|
|
3
|
+
register = template.Library()
|
|
4
|
+
|
|
5
|
+
"""
|
|
6
|
+
This tag is used to give some html as argument to an {% include %} tag.
|
|
7
|
+
|
|
8
|
+
For instance:
|
|
9
|
+
|
|
10
|
+
{% htmlparams %}
|
|
11
|
+
{% htmlparam content %}
|
|
12
|
+
<span>click me</span>
|
|
13
|
+
{% endhtmlparam %}
|
|
14
|
+
{% include "website/components/button.html"%}
|
|
15
|
+
{% endhtmlparams %}
|
|
16
|
+
|
|
17
|
+
you have to wrap {% include %} within {% htmlparams %} then you can add {% htmlparam VARIABLE_NAME %} with some html within and use the variable within the component.
|
|
18
|
+
|
|
19
|
+
Included button:
|
|
20
|
+
|
|
21
|
+
<button>
|
|
22
|
+
{{ content }}
|
|
23
|
+
</button>
|
|
24
|
+
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class HtmlParamNode(template.Node):
|
|
29
|
+
def __init__(self, var_name, nodelist):
|
|
30
|
+
self.var_name = var_name
|
|
31
|
+
self.nodelist = nodelist
|
|
32
|
+
|
|
33
|
+
def render(self, context):
|
|
34
|
+
# do not render anything but stores the output in the context
|
|
35
|
+
output = self.nodelist.render(context)
|
|
36
|
+
context[self.var_name] = output
|
|
37
|
+
return ""
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class HtmlParamsNode(template.Node):
|
|
41
|
+
def __init__(self, nodelist):
|
|
42
|
+
self.nodelist = template.NodeList()
|
|
43
|
+
self.paramnodelist = template.NodeList()
|
|
44
|
+
for node in nodelist:
|
|
45
|
+
if isinstance(node, HtmlParamNode):
|
|
46
|
+
self.paramnodelist.append(node)
|
|
47
|
+
else:
|
|
48
|
+
self.nodelist.append(node)
|
|
49
|
+
|
|
50
|
+
def render(self, context):
|
|
51
|
+
with context.push():
|
|
52
|
+
## Render the htmlparam nodes to update the context
|
|
53
|
+
self.paramnodelist.render(context)
|
|
54
|
+
output = self.nodelist.render(context)
|
|
55
|
+
return output
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
@register.tag(name="htmlparam")
|
|
59
|
+
def do_htmlparam(parser, token):
|
|
60
|
+
try:
|
|
61
|
+
tag_name, var_name = token.split_contents()
|
|
62
|
+
except ValueError:
|
|
63
|
+
raise template.TemplateSyntaxError(
|
|
64
|
+
"%r tag requires a single argument" % token.contents.split()[0]
|
|
65
|
+
)
|
|
66
|
+
nodelist = parser.parse(("endhtmlparam",))
|
|
67
|
+
parser.delete_first_token()
|
|
68
|
+
return HtmlParamNode(var_name, nodelist)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
@register.tag(name="htmlparams")
|
|
72
|
+
def do_htmlparams(parser, token):
|
|
73
|
+
nodelist = parser.parse(("endhtmlparams",))
|
|
74
|
+
parser.delete_first_token()
|
|
75
|
+
return HtmlParamsNode(nodelist)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
from django import template
|
|
2
|
+
from django.urls import reverse
|
|
3
|
+
|
|
4
|
+
register = template.Library()
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
@register.filter
|
|
8
|
+
def get_item(dictionary, key):
|
|
9
|
+
return dictionary.get(key)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
@register.filter
|
|
13
|
+
def indicator_api_urls(indicator_dict):
|
|
14
|
+
view_names = [
|
|
15
|
+
"download-indicator-methodo",
|
|
16
|
+
"statistics",
|
|
17
|
+
"values",
|
|
18
|
+
"histogram",
|
|
19
|
+
"top-10",
|
|
20
|
+
"details-table",
|
|
21
|
+
"details-table-export",
|
|
22
|
+
"comparison-histogram",
|
|
23
|
+
"proportions",
|
|
24
|
+
]
|
|
25
|
+
return {
|
|
26
|
+
view_name: reverse(
|
|
27
|
+
f"indicators-api:{view_name}", kwargs={"name": indicator_dict["name"]}
|
|
28
|
+
)
|
|
29
|
+
for view_name in view_names
|
|
30
|
+
}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
from django.shortcuts import get_object_or_404, redirect, render
|
|
2
|
+
from django.urls import reverse
|
|
3
|
+
from django.views.decorators.gzip import gzip_page
|
|
4
|
+
|
|
5
|
+
from territories_dashboard_lib.indicators_lib.models import Indicator, Theme
|
|
6
|
+
from territories_dashboard_lib.superset_lib.logic import make_filter
|
|
7
|
+
from territories_dashboard_lib.superset_lib.models import Dashboard
|
|
8
|
+
from territories_dashboard_lib.superset_lib.serializers import serialize_dashboard
|
|
9
|
+
from territories_dashboard_lib.tracking_lib.logic import track_page
|
|
10
|
+
from territories_dashboard_lib.website_lib.models import (
|
|
11
|
+
GlossaryItem,
|
|
12
|
+
LandingPage,
|
|
13
|
+
StaticPage,
|
|
14
|
+
)
|
|
15
|
+
from territories_dashboard_lib.website_lib.params import with_params
|
|
16
|
+
from territories_dashboard_lib.website_lib.serializers import (
|
|
17
|
+
serialize_indicator,
|
|
18
|
+
serialize_sub_themes,
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@gzip_page
|
|
23
|
+
def landing_page_view(request):
|
|
24
|
+
landing_page = LandingPage.objects.first()
|
|
25
|
+
response = render(
|
|
26
|
+
request,
|
|
27
|
+
"territories_dashboard_lib/website/pages/page.html",
|
|
28
|
+
{"landing_page": landing_page},
|
|
29
|
+
)
|
|
30
|
+
response = track_page(request=request, response=response)
|
|
31
|
+
return response
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@gzip_page
|
|
35
|
+
def static_page_view(request, page_url):
|
|
36
|
+
static_page = get_object_or_404(StaticPage, url=page_url)
|
|
37
|
+
return render(
|
|
38
|
+
request,
|
|
39
|
+
"territories_dashboard_lib/website/pages/static/page.html",
|
|
40
|
+
{"static_page": static_page},
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
@gzip_page
|
|
45
|
+
def lexique_page_view(request):
|
|
46
|
+
lexique = GlossaryItem.objects.all()
|
|
47
|
+
context = {"lexique": lexique}
|
|
48
|
+
response = render(
|
|
49
|
+
request, "territories_dashboard_lib/website/pages/lexique/page.html", context
|
|
50
|
+
)
|
|
51
|
+
return response
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def themes_redirect_view(request):
|
|
55
|
+
first_theme = Theme.objects.order_by("ordering").first()
|
|
56
|
+
target_url = reverse("website:theme", kwargs={"theme_name": first_theme.name})
|
|
57
|
+
get_params = request.GET.urlencode()
|
|
58
|
+
if get_params:
|
|
59
|
+
target_url = f"{target_url}?{get_params}"
|
|
60
|
+
return redirect(target_url)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
@gzip_page
|
|
64
|
+
@with_params
|
|
65
|
+
def comparison_view(request, *, theme_name, context):
|
|
66
|
+
theme = get_object_or_404(Theme, name=theme_name)
|
|
67
|
+
sub_themes = serialize_sub_themes(theme)
|
|
68
|
+
themes = Theme.objects.order_by("ordering")
|
|
69
|
+
context["theme"] = theme
|
|
70
|
+
context["themes"] = themes
|
|
71
|
+
context["sub_themes"] = sub_themes
|
|
72
|
+
response = render(
|
|
73
|
+
request,
|
|
74
|
+
"territories_dashboard_lib/website/pages/indicators/comparaison/[theme]/page.html",
|
|
75
|
+
context,
|
|
76
|
+
)
|
|
77
|
+
response = track_page(
|
|
78
|
+
request=request,
|
|
79
|
+
response=response,
|
|
80
|
+
params=context["params"],
|
|
81
|
+
theme=theme,
|
|
82
|
+
)
|
|
83
|
+
return response
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def comparison_redirect_view(request):
|
|
87
|
+
first_theme = Theme.objects.order_by("ordering").first()
|
|
88
|
+
target_url = reverse("website:comparison", kwargs={"theme_name": first_theme.name})
|
|
89
|
+
get_params = request.GET.urlencode()
|
|
90
|
+
if get_params:
|
|
91
|
+
target_url = f"{target_url}?{get_params}"
|
|
92
|
+
return redirect(target_url)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
@gzip_page
|
|
96
|
+
@with_params
|
|
97
|
+
def theme_page_view(request, *, theme_name, context):
|
|
98
|
+
theme = get_object_or_404(Theme, name=theme_name)
|
|
99
|
+
sub_themes = serialize_sub_themes(theme)
|
|
100
|
+
themes = Theme.objects.all().order_by("ordering")
|
|
101
|
+
context["theme"] = theme
|
|
102
|
+
context["themes"] = themes
|
|
103
|
+
context["sub_themes"] = sub_themes
|
|
104
|
+
response = render(
|
|
105
|
+
request,
|
|
106
|
+
"territories_dashboard_lib/website/pages/indicators/themes/page.html",
|
|
107
|
+
context,
|
|
108
|
+
)
|
|
109
|
+
response = track_page(
|
|
110
|
+
request=request,
|
|
111
|
+
response=response,
|
|
112
|
+
params=context["params"],
|
|
113
|
+
theme=theme,
|
|
114
|
+
)
|
|
115
|
+
return response
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def apply_filters(request, indicator):
|
|
119
|
+
filters = []
|
|
120
|
+
for dimension in indicator.dimensions.all():
|
|
121
|
+
url_filters = request.GET.getlist(dimension.db_name)
|
|
122
|
+
db_filters = [f for f in dimension.filters.all()]
|
|
123
|
+
for f in db_filters:
|
|
124
|
+
f.set_from_url = "!" + f.db_name in url_filters or f.db_name in url_filters
|
|
125
|
+
f.current = (
|
|
126
|
+
f.default
|
|
127
|
+
and "!" + f.db_name not in url_filters
|
|
128
|
+
or f.db_name in url_filters
|
|
129
|
+
)
|
|
130
|
+
filters.append([dimension, db_filters])
|
|
131
|
+
return filters
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
@gzip_page
|
|
135
|
+
@with_params
|
|
136
|
+
def indicator_details_view(request, *, indicator_name, context):
|
|
137
|
+
indicator = get_object_or_404(Indicator, name=indicator_name)
|
|
138
|
+
theme = indicator.sub_theme.theme
|
|
139
|
+
sub_themes = serialize_sub_themes(theme)
|
|
140
|
+
themes = Theme.objects.all().order_by("ordering")
|
|
141
|
+
filters = apply_filters(request, indicator)
|
|
142
|
+
context["indicator"] = serialize_indicator(indicator)
|
|
143
|
+
context["themes"] = themes
|
|
144
|
+
context["theme"] = theme
|
|
145
|
+
context["subtheme"] = indicator.sub_theme
|
|
146
|
+
context["sub_themes"] = sub_themes
|
|
147
|
+
context["filters"] = filters
|
|
148
|
+
response = render(
|
|
149
|
+
request,
|
|
150
|
+
"territories_dashboard_lib/website/pages/indicators/details/page.html",
|
|
151
|
+
context=context,
|
|
152
|
+
)
|
|
153
|
+
response = track_page(
|
|
154
|
+
request=request,
|
|
155
|
+
response=response,
|
|
156
|
+
params=context["params"],
|
|
157
|
+
indicator=indicator,
|
|
158
|
+
theme=theme,
|
|
159
|
+
)
|
|
160
|
+
return response
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
@with_params
|
|
164
|
+
def superset_view(request, dashboard_name, context):
|
|
165
|
+
dashboard = get_object_or_404(Dashboard, short_name=dashboard_name)
|
|
166
|
+
context["dashboard"] = serialize_dashboard(dashboard)
|
|
167
|
+
filter_string = make_filter(
|
|
168
|
+
dashboard,
|
|
169
|
+
context["params"]["territory_id"],
|
|
170
|
+
context["params"]["territory_mesh"],
|
|
171
|
+
)
|
|
172
|
+
if filter_string:
|
|
173
|
+
context["dashboard_filter"] = filter_string
|
|
174
|
+
response = render(
|
|
175
|
+
request,
|
|
176
|
+
"territories_dashboard_lib/website/pages/superset/page.html",
|
|
177
|
+
context=context,
|
|
178
|
+
)
|
|
179
|
+
response = track_page(request=request, response=response)
|
|
180
|
+
return response
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
def handler_404_view(request, exception):
|
|
184
|
+
return render(request, "territories_dashboard_lib/website/404.html", status=404)
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
def handler_500_view(request):
|
|
188
|
+
return render(request, "territories_dashboard_lib/website/500.html", status=500)
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
@gzip_page
|
|
192
|
+
def sitemap_view(request):
|
|
193
|
+
context = {
|
|
194
|
+
"themes": [
|
|
195
|
+
{"title": theme.title, "name": theme.name}
|
|
196
|
+
for theme in Theme.objects.all().order_by("ordering")
|
|
197
|
+
],
|
|
198
|
+
"indicators": [
|
|
199
|
+
{"title": indicator.title, "name": indicator.name}
|
|
200
|
+
for indicator in Indicator.objects.all().order_by("index_in_theme")
|
|
201
|
+
],
|
|
202
|
+
"static_pages": [
|
|
203
|
+
{"title": static_page.name, "url": static_page.url}
|
|
204
|
+
for static_page in StaticPage.objects.all()
|
|
205
|
+
],
|
|
206
|
+
"lexique": GlossaryItem.objects.exists(),
|
|
207
|
+
}
|
|
208
|
+
response = render(
|
|
209
|
+
request, "territories_dashboard_lib/website/pages/sitemap/page.html", context
|
|
210
|
+
)
|
|
211
|
+
response = track_page(request=request, response=response)
|
|
212
|
+
return response
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
territories_dashboard_lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
territories_dashboard_lib/commons/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
+
territories_dashboard_lib/commons/decorators.py,sha256=_ACVnbaiCPuplT_81oA0nf_d6l7z0wTCFXMYwXIabew,1225
|
|
4
|
+
territories_dashboard_lib/commons/models.py,sha256=TQIvoXHSFrnIOQcVptHiMe4ZOdw5byse8sVLjnyeWTI,215
|
|
5
|
+
territories_dashboard_lib/geo_lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
+
territories_dashboard_lib/geo_lib/admin.py,sha256=4Ek5WP-D3o1mBgPMqIBTPEsT7GeNo9REaw_FguIRw-M,1664
|
|
7
|
+
territories_dashboard_lib/geo_lib/enums.py,sha256=AwMKwYQP5Z9Qm_5FlO7AtHlJUU92obHXpSpAO1vGuwY,135
|
|
8
|
+
territories_dashboard_lib/geo_lib/models.py,sha256=r7lPzm0akEnbVTFSG3B_7dtDzFMSHzqpgt2MeNNhL8c,2191
|
|
9
|
+
territories_dashboard_lib/geo_lib/urls.py,sha256=W0Zc2z7dn06p4pyFAf0EKATpXAbM0byxCpJK-LRYLak,602
|
|
10
|
+
territories_dashboard_lib/geo_lib/views.py,sha256=OYpT70suyDUSqJbzJ5tXjYJqpgoh2ou-rFVDs3pLAUs,7512
|
|
11
|
+
territories_dashboard_lib/geo_lib/migrations/0001_initial.py,sha256=-H_5uG0IaPesUfGDkYWdtqHqfWOIKvoQQuAZkfGAu-E,3092
|
|
12
|
+
territories_dashboard_lib/geo_lib/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
|
+
territories_dashboard_lib/indicators_lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
|
+
territories_dashboard_lib/indicators_lib/admin.py,sha256=IhmZEYuxt0WCr8rDjc6Iht-uOL7gRgDQNYjq6B0_uaI,4057
|
|
15
|
+
territories_dashboard_lib/indicators_lib/enums.py,sha256=0HZcKtq97AbV2hbPPn7_BtUtSefp5EvgvTWhqx6rn3o,1267
|
|
16
|
+
territories_dashboard_lib/indicators_lib/export.py,sha256=bvrqa2K4aSw17JWF-P2sGBryeab2JZjoE25Ntf68dIk,859
|
|
17
|
+
territories_dashboard_lib/indicators_lib/format.py,sha256=W-ajQjrH6E2mseSq4Lozl0bhmEq481tGFIGsjYS8MMo,891
|
|
18
|
+
territories_dashboard_lib/indicators_lib/methodo_pdf.py,sha256=LpDHMFSNavvfJOI7gDicdY7uF27JpUd-ceUMnOY_FNU,2920
|
|
19
|
+
territories_dashboard_lib/indicators_lib/models.py,sha256=xTi4_Exoc9AdBICRCpN2oLhZPiRdCwa9GX8bo1xb1GQ,8058
|
|
20
|
+
territories_dashboard_lib/indicators_lib/payloads.py,sha256=I03bgoNoLTehd8lfby0xbSy2zUXKRILMUOqYGqvg-Ig,1288
|
|
21
|
+
territories_dashboard_lib/indicators_lib/refresh_filters.py,sha256=loO3Iw97AAWnwQnkRg77q1zUPU7kY5mGlkTCe_glKzs,654
|
|
22
|
+
territories_dashboard_lib/indicators_lib/table.py,sha256=BsvimE68NxXdRI7xnUVYK1axZRZTywVpSUDEtAYWlMo,5332
|
|
23
|
+
territories_dashboard_lib/indicators_lib/urls.py,sha256=BrizGcGJzvcijMvkImMzsi4zRzsgw4fl_cIScsfDYcU,2482
|
|
24
|
+
territories_dashboard_lib/indicators_lib/views.py,sha256=NH-Mppel-A5eT0gxbdfnU0B5UT1RZTSW1kIn8q7_zrs,16755
|
|
25
|
+
territories_dashboard_lib/indicators_lib/migrations/0001_initial.py,sha256=3EyizMGkqve5Gtxrmf-mADzzmOhcAVWe-P0y1TIBKCs,8092
|
|
26
|
+
territories_dashboard_lib/indicators_lib/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
27
|
+
territories_dashboard_lib/indicators_lib/query/commons.py,sha256=6UlN7lYArYt2BKPaweBMtfwUg2cZtl3UCEHb9ecWmjA,7838
|
|
28
|
+
territories_dashboard_lib/indicators_lib/query/comparison.py,sha256=ypT8jed99NubgBWqsjZ_4vs9xX2rArnxeGFQ2IY3cKM,2540
|
|
29
|
+
territories_dashboard_lib/indicators_lib/query/details.py,sha256=NHFO3yat7kRtxsuEuOUAgt0yuMzAVVAumzI2auxffSg,2277
|
|
30
|
+
territories_dashboard_lib/indicators_lib/query/histogram.py,sha256=NpQdAqVzm-bB5AuMZF3jOzEJKLjecwafhlorkYQY6IU,2964
|
|
31
|
+
territories_dashboard_lib/indicators_lib/query/indicator_card.py,sha256=pu-oGTQ8-niIFtZP09HIgJJWkFfJb1CGX99EdsojJDw,3232
|
|
32
|
+
territories_dashboard_lib/indicators_lib/query/top_10.py,sha256=ugx2FD9_IHyaZHkOS0rEDxy3L-dE-F_Gl8sRsQPu2qw,3516
|
|
33
|
+
territories_dashboard_lib/indicators_lib/query/utils.py,sha256=nCeQCLzfq35KZzun9hpM5U34TN7JowB4t3NshIzfLAo,649
|
|
34
|
+
territories_dashboard_lib/superset_lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
35
|
+
territories_dashboard_lib/superset_lib/admin.py,sha256=3Yj3PjCd-jC0g4uMNmah-OST-yoE7DDEzJkx2kWlrXg,563
|
|
36
|
+
territories_dashboard_lib/superset_lib/guest_token.py,sha256=smsl11NS2Sgsuz5UJlvI_lDaBi6Fj9rdpSVmuUol8Fs,2300
|
|
37
|
+
territories_dashboard_lib/superset_lib/logic.py,sha256=t3Fl4trVOX9tPeAZTerraHvWGzzV5mml8ZQTsas51AI,2391
|
|
38
|
+
territories_dashboard_lib/superset_lib/models.py,sha256=D_IKcYggr8OeH4Gc9KxmU0ArQ3lq8DFN-e0JDQs9Dng,2613
|
|
39
|
+
territories_dashboard_lib/superset_lib/serializers.py,sha256=k5DcdwN-k5w9dPchiyxBZtG3BAULp8c00JTO3DR6rA4,250
|
|
40
|
+
territories_dashboard_lib/superset_lib/urls.py,sha256=URXJLciWDTlzU7gIymlK0nWwAm3Iq8bMkhO0P7RwMuk,254
|
|
41
|
+
territories_dashboard_lib/superset_lib/views.py,sha256=AdFNT81Z61zWsyXRqCzGsVXb--lZ2xRfpYVNDiOAyyw,586
|
|
42
|
+
territories_dashboard_lib/superset_lib/migrations/0001_initial.py,sha256=Y6iY33EVPMg0XIJu8EErKRJMguYqE7IaZhthZ69OxXA,3461
|
|
43
|
+
territories_dashboard_lib/superset_lib/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
44
|
+
territories_dashboard_lib/tracking_lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
45
|
+
territories_dashboard_lib/tracking_lib/enums.py,sha256=9aK0giXZaXTaEJhNj7LeHGilRdVBGLuEAK4lqxO_u-g,128
|
|
46
|
+
territories_dashboard_lib/tracking_lib/logic.py,sha256=9kr3Q1dwRfkNB1mWq3EQd5KViziZ6ur0lyFVVMIuhGY,2507
|
|
47
|
+
territories_dashboard_lib/tracking_lib/models.py,sha256=hvB5gu3o-zZH2hjUsRf_8YF57XkVqQSsnTjSOWRoGIY,3110
|
|
48
|
+
territories_dashboard_lib/tracking_lib/migrations/0001_initial.py,sha256=eH6eegaxN6LuSerZ80_N8iXixF6-YKw79nqmIPimXPY,3494
|
|
49
|
+
territories_dashboard_lib/tracking_lib/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
|
+
territories_dashboard_lib/website_lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
|
+
territories_dashboard_lib/website_lib/admin.py,sha256=TUDxtX3O-ga33jvSowX6HMBHxdqprM9-nSFmsZ2m6Bk,876
|
|
52
|
+
territories_dashboard_lib/website_lib/context_processors.py,sha256=Xq9W_w86Oh242VSGAjScHlgpnXuNcnNt3kSRIqK-ETc,863
|
|
53
|
+
territories_dashboard_lib/website_lib/forms.py,sha256=BNbHx6CgMlA33z6eD-1VaI7AkyO20ZsloJKsec4BcoU,1146
|
|
54
|
+
territories_dashboard_lib/website_lib/models.py,sha256=bsvSKXSQJaG5oKcXqRNN3rC5Ra8M3uZhqou4FkjgAcI,4750
|
|
55
|
+
territories_dashboard_lib/website_lib/navigation.py,sha256=D9YNfBVPpO9bRgNT02j99sp0A0_uqDaBgc25BbQOako,3994
|
|
56
|
+
territories_dashboard_lib/website_lib/params.py,sha256=xmROBlWVv-T8ABTGaGEEuJjFan50yq44iwLYAn5Hzh8,9466
|
|
57
|
+
territories_dashboard_lib/website_lib/serializers.py,sha256=-QvQx0jpbGaBrHcrqLG0Lrb9z4TRIu6VbxOqSfWKtHo,3680
|
|
58
|
+
territories_dashboard_lib/website_lib/static_content.py,sha256=08Fw3190RsTZ8wXwZkmskh-86widq7NRmTD9Ve-9PJY,589
|
|
59
|
+
territories_dashboard_lib/website_lib/views.py,sha256=ZNz23Vrws-L49xeZzrhSJA8KFpqSnURn-9-b0RdR9JE,6760
|
|
60
|
+
territories_dashboard_lib/website_lib/migrations/0001_initial.py,sha256=4g2YgUUBEdak_iW717cJojCv5kqnNV_46GVnw8u8eAw,5701
|
|
61
|
+
territories_dashboard_lib/website_lib/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
62
|
+
territories_dashboard_lib/website_lib/templatetags/htmlparams.py,sha256=jWXlmT-nFh7YefVP_zJSXEA1YgT37wnWqelPhmj7UoM,2092
|
|
63
|
+
territories_dashboard_lib/website_lib/templatetags/other_filters.py,sha256=7jcQB8LmnlrDycLyRYuOA62O9nBHROCvogOpegdrarY,661
|
|
64
|
+
territories_dashboard_lib-0.1.1.dist-info/METADATA,sha256=306CuYRMWozn0vPR0us8KYHUESMpIVYKujrqvBxsUR4,9518
|
|
65
|
+
territories_dashboard_lib-0.1.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
66
|
+
territories_dashboard_lib-0.1.1.dist-info/top_level.txt,sha256=Cih-lil8CSXTpDZV6fgHKIKIBtUjDaNpmkiuW2TSzsk,26
|
|
67
|
+
territories_dashboard_lib-0.1.1.dist-info/RECORD,,
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
territories_dashboard_lib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
territories_dashboard_lib-0.1.0.dist-info/METADATA,sha256=12Eurxjrz439a8GAt8IIQqDy1Pfzgify-QRX9p9_Itg,9518
|
|
3
|
-
territories_dashboard_lib-0.1.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
4
|
-
territories_dashboard_lib-0.1.0.dist-info/top_level.txt,sha256=Cih-lil8CSXTpDZV6fgHKIKIBtUjDaNpmkiuW2TSzsk,26
|
|
5
|
-
territories_dashboard_lib-0.1.0.dist-info/RECORD,,
|
{territories_dashboard_lib-0.1.0.dist-info → territories_dashboard_lib-0.1.1.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|