customeranalytics 0.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.
Files changed (254) hide show
  1. customeranalytics/__init__.py +319 -0
  2. customeranalytics/configs.py +480 -0
  3. customeranalytics/data_storage_configurations/__init__.py +245 -0
  4. customeranalytics/data_storage_configurations/data_access.py +165 -0
  5. customeranalytics/data_storage_configurations/data_works_pipeline.py +207 -0
  6. customeranalytics/data_storage_configurations/es_create_index.py +544 -0
  7. customeranalytics/data_storage_configurations/logger.py +36 -0
  8. customeranalytics/data_storage_configurations/query_es.py +157 -0
  9. customeranalytics/data_storage_configurations/reports.py +684 -0
  10. customeranalytics/data_storage_configurations/schedule_data_integration.py +355 -0
  11. customeranalytics/docs/queries.yaml +245 -0
  12. customeranalytics/docs/web_configs.yaml +2 -0
  13. customeranalytics/exploratory_analysis/__init__.py +109 -0
  14. customeranalytics/exploratory_analysis/churn.py +232 -0
  15. customeranalytics/exploratory_analysis/cohorts.py +535 -0
  16. customeranalytics/exploratory_analysis/descriptive_statistics.py +470 -0
  17. customeranalytics/exploratory_analysis/funnels.py +407 -0
  18. customeranalytics/exploratory_analysis/product_analytics.py +340 -0
  19. customeranalytics/exploratory_analysis/promotion_analytics.py +299 -0
  20. customeranalytics/exploratory_analysis/rfm.py +202 -0
  21. customeranalytics/exploratory_analysis/sample_data/sample_data_avg_order_count_per_promo_per_cust.csv +99 -0
  22. customeranalytics/exploratory_analysis/sample_data/sample_data_chart_1_search.csv +2 -0
  23. customeranalytics/exploratory_analysis/sample_data/sample_data_chart_2_search.csv +46 -0
  24. customeranalytics/exploratory_analysis/sample_data/sample_data_chart_3_search.csv +2 -0
  25. customeranalytics/exploratory_analysis/sample_data/sample_data_chart_4_search.csv +2 -0
  26. customeranalytics/exploratory_analysis/sample_data/sample_data_churn.csv +2 -0
  27. customeranalytics/exploratory_analysis/sample_data/sample_data_churn_weekly.csv +10 -0
  28. customeranalytics/exploratory_analysis/sample_data/sample_data_client_feature_predicted.csv +1590 -0
  29. customeranalytics/exploratory_analysis/sample_data/sample_data_client_kpis.csv +7060 -0
  30. customeranalytics/exploratory_analysis/sample_data/sample_data_clvrfm_anomaly.csv +561 -0
  31. customeranalytics/exploratory_analysis/sample_data/sample_data_clvsegments_amount.csv +8 -0
  32. customeranalytics/exploratory_analysis/sample_data/sample_data_customer_journey.csv +18 -0
  33. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_clv.csv +103 -0
  34. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_cohort_downloads.csv +68 -0
  35. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_cohort_from_1_to_2.csv +66 -0
  36. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_cohort_from_2_to_3.csv +64 -0
  37. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_cohort_from_3_to_4.csv +55 -0
  38. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_dimension_values.csv +199 -0
  39. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_funnel.csv +36 -0
  40. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_funnel_downloads.csv +68 -0
  41. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_inorganic_ratio.csv +6070 -0
  42. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_orders.csv +57 -0
  43. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_organic_orders.csv +64 -0
  44. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_products_of_sales.csv +12574 -0
  45. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_promotion_discount.csv +64 -0
  46. customeranalytics/exploratory_analysis/sample_data/sample_data_daily_promotion_revenue.csv +6070 -0
  47. customeranalytics/exploratory_analysis/sample_data/sample_data_dcohort_anomaly.csv +6 -0
  48. customeranalytics/exploratory_analysis/sample_data/sample_data_dcohort_anomaly_2.csv +118 -0
  49. customeranalytics/exploratory_analysis/sample_data/sample_data_deliver.csv +47 -0
  50. customeranalytics/exploratory_analysis/sample_data/sample_data_deliver_kpis.csv +2 -0
  51. customeranalytics/exploratory_analysis/sample_data/sample_data_deliver_weekday_hour.csv +25 -0
  52. customeranalytics/exploratory_analysis/sample_data/sample_data_dfunnel_anomaly.csv +118 -0
  53. customeranalytics/exploratory_analysis/sample_data/sample_data_dimension_kpis.csv +199 -0
  54. customeranalytics/exploratory_analysis/sample_data/sample_data_dorders_anomaly.csv +85 -0
  55. customeranalytics/exploratory_analysis/sample_data/sample_data_frequency_clusters.csv +6 -0
  56. customeranalytics/exploratory_analysis/sample_data/sample_data_frequency_recency.csv +3740 -0
  57. customeranalytics/exploratory_analysis/sample_data/sample_data_hourly_funnel.csv +25 -0
  58. customeranalytics/exploratory_analysis/sample_data/sample_data_hourly_funnel_downloads.csv +25 -0
  59. customeranalytics/exploratory_analysis/sample_data/sample_data_hourly_inorganic_ratio.csv +2353 -0
  60. customeranalytics/exploratory_analysis/sample_data/sample_data_hourly_orders.csv +25 -0
  61. customeranalytics/exploratory_analysis/sample_data/sample_data_hourly_organic_orders.csv +2353 -0
  62. customeranalytics/exploratory_analysis/sample_data/sample_data_inorganic_orders_per_promotion_per_day.csv +6070 -0
  63. customeranalytics/exploratory_analysis/sample_data/sample_data_kpis.csv +2 -0
  64. customeranalytics/exploratory_analysis/sample_data/sample_data_monetary_clusters.csv +6 -0
  65. customeranalytics/exploratory_analysis/sample_data/sample_data_monetary_frequency.csv +3740 -0
  66. customeranalytics/exploratory_analysis/sample_data/sample_data_monthly_funnel.csv +5 -0
  67. customeranalytics/exploratory_analysis/sample_data/sample_data_monthly_funnel_downloads.csv +5 -0
  68. customeranalytics/exploratory_analysis/sample_data/sample_data_monthly_orders.csv +4 -0
  69. customeranalytics/exploratory_analysis/sample_data/sample_data_most_combined_products.csv +11 -0
  70. customeranalytics/exploratory_analysis/sample_data/sample_data_most_ordered_categories.csv +11 -0
  71. customeranalytics/exploratory_analysis/sample_data/sample_data_most_ordered_products.csv +11 -0
  72. customeranalytics/exploratory_analysis/sample_data/sample_data_order_and_payment_amount_differences.csv +91 -0
  73. customeranalytics/exploratory_analysis/sample_data/sample_data_prepare.csv +101 -0
  74. customeranalytics/exploratory_analysis/sample_data/sample_data_prepare_weekday_hour.csv +25 -0
  75. customeranalytics/exploratory_analysis/sample_data/sample_data_product_kpis.csv +201 -0
  76. customeranalytics/exploratory_analysis/sample_data/sample_data_product_usage_before_after_amount_accept.csv +11 -0
  77. customeranalytics/exploratory_analysis/sample_data/sample_data_product_usage_before_after_amount_reject.csv +7 -0
  78. customeranalytics/exploratory_analysis/sample_data/sample_data_product_usage_before_after_orders_accept.csv +11 -0
  79. customeranalytics/exploratory_analysis/sample_data/sample_data_product_usage_before_after_orders_reject.csv +11 -0
  80. customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_comparison.csv +91 -0
  81. customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_kpis.csv +99 -0
  82. customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_number_of_customer.csv +99 -0
  83. customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_usage_before_after_amount_accept.csv +81 -0
  84. customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_usage_before_after_amount_reject.csv +11 -0
  85. customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_usage_before_after_orders_accept.csv +55 -0
  86. customeranalytics/exploratory_analysis/sample_data/sample_data_promotion_usage_before_after_orders_reject.csv +37 -0
  87. customeranalytics/exploratory_analysis/sample_data/sample_data_purchase_amount_distribution.csv +22 -0
  88. customeranalytics/exploratory_analysis/sample_data/sample_data_recency_clusters.csv +6 -0
  89. customeranalytics/exploratory_analysis/sample_data/sample_data_recency_monetary.csv +3740 -0
  90. customeranalytics/exploratory_analysis/sample_data/sample_data_rfm.csv +2001 -0
  91. customeranalytics/exploratory_analysis/sample_data/sample_data_ride.csv +101 -0
  92. customeranalytics/exploratory_analysis/sample_data/sample_data_ride_weekday_hour.csv +25 -0
  93. customeranalytics/exploratory_analysis/sample_data/sample_data_segmentation.csv +11 -0
  94. customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_daily_before_after_amount.csv +10 -0
  95. customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_daily_before_after_orders.csv +9 -0
  96. customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_monthly_before_after_amount.csv +10 -0
  97. customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_monthly_before_after_orders.csv +11 -0
  98. customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_weekly_before_after_amount.csv +10 -0
  99. customeranalytics/exploratory_analysis/sample_data/sample_data_segments_change_weekly_before_after_orders.csv +10 -0
  100. customeranalytics/exploratory_analysis/sample_data/sample_data_user_counts_per_order_seq.csv +47 -0
  101. customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_average_order_per_user.csv +13 -0
  102. customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_average_payment_amount.csv +13 -0
  103. customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_average_session_per_user.csv +13 -0
  104. customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_cohort_downloads.csv +13 -0
  105. customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_cohort_from_1_to_2.csv +13 -0
  106. customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_cohort_from_2_to_3.csv +13 -0
  107. customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_cohort_from_3_to_4.csv +12 -0
  108. customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_funnel.csv +25 -0
  109. customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_funnel_downloads.csv +25 -0
  110. customeranalytics/exploratory_analysis/sample_data/sample_data_weekly_orders.csv +10 -0
  111. customeranalytics/ml_process/__init__.py +64 -0
  112. customeranalytics/ml_process/ab_test.py +615 -0
  113. customeranalytics/ml_process/anomaly_detection.py +456 -0
  114. customeranalytics/ml_process/clv_prediction.py +301 -0
  115. customeranalytics/ml_process/customer_segmentation.py +354 -0
  116. customeranalytics/ml_process/delivery_analytics.py +754 -0
  117. customeranalytics/utils.py +186 -0
  118. customeranalytics/web/app/__init__.py +37 -0
  119. customeranalytics/web/app/base/__init__.py +9 -0
  120. customeranalytics/web/app/base/forms.py +16 -0
  121. customeranalytics/web/app/base/models.py +43 -0
  122. customeranalytics/web/app/base/routes.py +126 -0
  123. customeranalytics/web/app/base/static/assets/css/app.css +20 -0
  124. customeranalytics/web/app/base/static/assets/fonts/Inter-Black.woff +0 -0
  125. customeranalytics/web/app/base/static/assets/fonts/Inter-Black.woff2 +0 -0
  126. customeranalytics/web/app/base/static/assets/fonts/Inter-BlackItalic.woff +0 -0
  127. customeranalytics/web/app/base/static/assets/fonts/Inter-BlackItalic.woff2 +0 -0
  128. customeranalytics/web/app/base/static/assets/fonts/Inter-Bold.woff +0 -0
  129. customeranalytics/web/app/base/static/assets/fonts/Inter-Bold.woff2 +0 -0
  130. customeranalytics/web/app/base/static/assets/fonts/Inter-BoldItalic.woff +0 -0
  131. customeranalytics/web/app/base/static/assets/fonts/Inter-BoldItalic.woff2 +0 -0
  132. customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraBold.woff +0 -0
  133. customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraBold.woff2 +0 -0
  134. customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraBoldItalic.woff +0 -0
  135. customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraBoldItalic.woff2 +0 -0
  136. customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraLight-BETA.woff +0 -0
  137. customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraLight-BETA.woff2 +0 -0
  138. customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraLightItalic-BETA.woff +0 -0
  139. customeranalytics/web/app/base/static/assets/fonts/Inter-ExtraLightItalic-BETA.woff2 +0 -0
  140. customeranalytics/web/app/base/static/assets/fonts/Inter-Italic.woff +0 -0
  141. customeranalytics/web/app/base/static/assets/fonts/Inter-Italic.woff2 +0 -0
  142. customeranalytics/web/app/base/static/assets/fonts/Inter-Light-BETA.woff +0 -0
  143. customeranalytics/web/app/base/static/assets/fonts/Inter-Light-BETA.woff2 +0 -0
  144. customeranalytics/web/app/base/static/assets/fonts/Inter-LightItalic-BETA.woff +0 -0
  145. customeranalytics/web/app/base/static/assets/fonts/Inter-LightItalic-BETA.woff2 +0 -0
  146. customeranalytics/web/app/base/static/assets/fonts/Inter-Medium.woff +0 -0
  147. customeranalytics/web/app/base/static/assets/fonts/Inter-Medium.woff2 +0 -0
  148. customeranalytics/web/app/base/static/assets/fonts/Inter-MediumItalic.woff +0 -0
  149. customeranalytics/web/app/base/static/assets/fonts/Inter-MediumItalic.woff2 +0 -0
  150. customeranalytics/web/app/base/static/assets/fonts/Inter-Regular.woff +0 -0
  151. customeranalytics/web/app/base/static/assets/fonts/Inter-Regular.woff2 +0 -0
  152. customeranalytics/web/app/base/static/assets/fonts/Inter-SemiBold.woff +0 -0
  153. customeranalytics/web/app/base/static/assets/fonts/Inter-SemiBold.woff2 +0 -0
  154. customeranalytics/web/app/base/static/assets/fonts/Inter-SemiBoldItalic.woff +0 -0
  155. customeranalytics/web/app/base/static/assets/fonts/Inter-SemiBoldItalic.woff2 +0 -0
  156. customeranalytics/web/app/base/static/assets/fonts/Inter-Thin-BETA.woff +0 -0
  157. customeranalytics/web/app/base/static/assets/fonts/Inter-Thin-BETA.woff2 +0 -0
  158. customeranalytics/web/app/base/static/assets/fonts/Inter-ThinItalic-BETA.woff +0 -0
  159. customeranalytics/web/app/base/static/assets/fonts/Inter-ThinItalic-BETA.woff2 +0 -0
  160. customeranalytics/web/app/base/static/assets/fonts/Inter-italic.var.woff2 +0 -0
  161. customeranalytics/web/app/base/static/assets/fonts/Inter-upright.var.woff2 +0 -0
  162. customeranalytics/web/app/base/static/assets/fonts/Inter.var.woff2 +0 -0
  163. customeranalytics/web/app/base/static/assets/fonts/fa-brands-400.eot +0 -0
  164. customeranalytics/web/app/base/static/assets/fonts/fa-brands-400.svg +3570 -0
  165. customeranalytics/web/app/base/static/assets/fonts/fa-brands-400.ttf +0 -0
  166. customeranalytics/web/app/base/static/assets/fonts/fa-brands-400.woff +0 -0
  167. customeranalytics/web/app/base/static/assets/fonts/fa-brands-400.woff2 +0 -0
  168. customeranalytics/web/app/base/static/assets/fonts/fa-regular-400.eot +0 -0
  169. customeranalytics/web/app/base/static/assets/fonts/fa-regular-400.svg +801 -0
  170. customeranalytics/web/app/base/static/assets/fonts/fa-regular-400.ttf +0 -0
  171. customeranalytics/web/app/base/static/assets/fonts/fa-regular-400.woff +0 -0
  172. customeranalytics/web/app/base/static/assets/fonts/fa-regular-400.woff2 +0 -0
  173. customeranalytics/web/app/base/static/assets/fonts/fa-solid-900.eot +0 -0
  174. customeranalytics/web/app/base/static/assets/fonts/fa-solid-900.svg +5028 -0
  175. customeranalytics/web/app/base/static/assets/fonts/fa-solid-900.ttf +0 -0
  176. customeranalytics/web/app/base/static/assets/fonts/fa-solid-900.woff +0 -0
  177. customeranalytics/web/app/base/static/assets/fonts/fa-solid-900.woff2 +0 -0
  178. customeranalytics/web/app/base/static/assets/img/avatars/avatar-1.png +0 -0
  179. customeranalytics/web/app/base/static/assets/img/avatars/avatar-2.png +0 -0
  180. customeranalytics/web/app/base/static/assets/img/avatars/avatar-3.png +0 -0
  181. customeranalytics/web/app/base/static/assets/img/avatars/avatar-4.png +0 -0
  182. customeranalytics/web/app/base/static/assets/img/avatars/avatar-5.png +0 -0
  183. customeranalytics/web/app/base/static/assets/img/avatars/info.jpeg +0 -0
  184. customeranalytics/web/app/base/static/assets/img/icons/customanality.png +0 -0
  185. customeranalytics/web/app/base/static/assets/img/icons/icon-48x48.png +0 -0
  186. customeranalytics/web/app/base/static/assets/js/app.js +2 -0
  187. customeranalytics/web/app/base/static/assets/js/app.js.LICENSE +566 -0
  188. customeranalytics/web/app/base/static/assets/js/app.js.LICENSE.txt +556 -0
  189. customeranalytics/web/app/base/static/assets/js/modules/bootstrap.js +15 -0
  190. customeranalytics/web/app/base/static/assets/js/modules/chartjs.js +4 -0
  191. customeranalytics/web/app/base/static/assets/js/modules/feather.js +8 -0
  192. customeranalytics/web/app/base/static/assets/js/modules/flatpickr.js +4 -0
  193. customeranalytics/web/app/base/static/assets/js/modules/moment.js +4 -0
  194. customeranalytics/web/app/base/static/assets/js/modules/sidebar.js +23 -0
  195. customeranalytics/web/app/base/static/assets/js/modules/theme.js +16 -0
  196. customeranalytics/web/app/base/templates/accounts/login.html +81 -0
  197. customeranalytics/web/app/base/templates/accounts/register.html +80 -0
  198. customeranalytics/web/app/base/templates/includes/footer.html +28 -0
  199. customeranalytics/web/app/base/templates/includes/navigation.html +51 -0
  200. customeranalytics/web/app/base/templates/includes/scripts.html +3 -0
  201. customeranalytics/web/app/base/templates/includes/sidebar.html +146 -0
  202. customeranalytics/web/app/base/templates/layouts/base-fullscreen.html +36 -0
  203. customeranalytics/web/app/base/templates/layouts/base.html +84 -0
  204. customeranalytics/web/app/base/util.py +30 -0
  205. customeranalytics/web/app/home/__init__.py +9 -0
  206. customeranalytics/web/app/home/forms.py +1039 -0
  207. customeranalytics/web/app/home/models.py +438 -0
  208. customeranalytics/web/app/home/profiles.py +310 -0
  209. customeranalytics/web/app/home/routes.py +386 -0
  210. customeranalytics/web/app/home/search.py +288 -0
  211. customeranalytics/web/app/home/static/assets/img/avatars/avatar-1.png +0 -0
  212. customeranalytics/web/app/home/static/assets/img/avatars/avatar-2.png +0 -0
  213. customeranalytics/web/app/home/static/assets/img/avatars/avatar-3.png +0 -0
  214. customeranalytics/web/app/home/static/assets/img/avatars/avatar-4.png +0 -0
  215. customeranalytics/web/app/home/static/assets/img/avatars/avatar-5.png +0 -0
  216. customeranalytics/web/app/home/static/assets/img/icons/customanality.png +0 -0
  217. customeranalytics/web/app/home/static/assets/img/icons/icon-48x48.png +0 -0
  218. customeranalytics/web/app/home/templates/abtest-product.html +280 -0
  219. customeranalytics/web/app/home/templates/abtest-promotion.html +362 -0
  220. customeranalytics/web/app/home/templates/abtest-segments.html +298 -0
  221. customeranalytics/web/app/home/templates/add-data-delivery.html +184 -0
  222. customeranalytics/web/app/home/templates/add-data-product.html +177 -0
  223. customeranalytics/web/app/home/templates/add-data-purchase.html +392 -0
  224. customeranalytics/web/app/home/templates/anomaly.html +261 -0
  225. customeranalytics/web/app/home/templates/clv.html +211 -0
  226. customeranalytics/web/app/home/templates/cohorts.html +308 -0
  227. customeranalytics/web/app/home/templates/customer-segmentation.html +308 -0
  228. customeranalytics/web/app/home/templates/data-es.html +152 -0
  229. customeranalytics/web/app/home/templates/data-execute.html +397 -0
  230. customeranalytics/web/app/home/templates/delivery.html +404 -0
  231. customeranalytics/web/app/home/templates/funnel-customer.html +240 -0
  232. customeranalytics/web/app/home/templates/funnel-session.html +236 -0
  233. customeranalytics/web/app/home/templates/index.html +524 -0
  234. customeranalytics/web/app/home/templates/index2.html +515 -0
  235. customeranalytics/web/app/home/templates/page-403.html +46 -0
  236. customeranalytics/web/app/home/templates/page-404.html +45 -0
  237. customeranalytics/web/app/home/templates/page-500.html +45 -0
  238. customeranalytics/web/app/home/templates/pages-blank.html +33 -0
  239. customeranalytics/web/app/home/templates/pages-sign-in.html +67 -0
  240. customeranalytics/web/app/home/templates/pages-sign-up.html +61 -0
  241. customeranalytics/web/app/home/templates/product.html +203 -0
  242. customeranalytics/web/app/home/templates/profile.html +1009 -0
  243. customeranalytics/web/app/home/templates/rfm.html +254 -0
  244. customeranalytics/web/app/home/templates/search.html +167 -0
  245. customeranalytics/web/app/home/templates/settings.html +205 -0
  246. customeranalytics/web/app/home/templates/stats-desc.html +230 -0
  247. customeranalytics/web/app/home/templates/stats-purchase.html +221 -0
  248. customeranalytics/web/config.py +30 -0
  249. customeranalytics/web/db.sqlite3 +0 -0
  250. customeranalytics/web/run.py +30 -0
  251. customeranalytics-0.1.dist-info/METADATA +1102 -0
  252. customeranalytics-0.1.dist-info/RECORD +254 -0
  253. customeranalytics-0.1.dist-info/WHEEL +4 -0
  254. customeranalytics-0.1.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,397 @@
1
+ {% extends "layouts/base.html" %}
2
+
3
+ {% block title %} schedule data source {% endblock %}
4
+
5
+ <!-- Specific Page CSS goes HERE -->
6
+ {% block stylesheets %}{% endblock stylesheets %}
7
+
8
+ {% block content %}
9
+
10
+ <main class="content">
11
+ <div class="container-fluid p-0">
12
+ <div class="col-md-12">
13
+ <div class="card">
14
+ <div class="card-header">
15
+ <h5 class="card-title">Schedule</h5>
16
+ <h6 class="card-subtitle text-muted">Schedule active connections</h6>
17
+ </div>
18
+ <div class="card-body">
19
+ {% if values['connect_accept'] == True %}
20
+ <form method="POST">
21
+ <div class="row">
22
+ <div class="mb-3 col-md-3">
23
+ <label class="form-label" for="inputCity">Tag Schedule Name</label>
24
+ <input name="schedule_tag" type="text" class="form-control" id="inputCity" required>
25
+ </div>
26
+ <div class="mb-3 col-md-3">
27
+ <label class="form-label" for="inputState">Time Period</label>
28
+ <select name="time_period" id="inputState" class="form-control" required>
29
+ <option value="once" selected>Once</option>
30
+ <option value="daily">daily</option>
31
+ <option value="weekly">weekly</option>
32
+ </select>
33
+ </div>
34
+ <div class="mb-3 col-md-3">
35
+ <label class="form-label" for="inputState">Active Connections</label>
36
+ <select name="tag" id="es_edit" class="form-control" required>
37
+ <option value= "{{ values['es_connection']['tag'] }}" selected>{{ values['es_connection']['tag'] }}</option>
38
+ </select>
39
+ </div>
40
+
41
+ </div>
42
+
43
+ <button name="schedule" type="submit" value="True" class="btn btn-primary mb-1">Create Schedule Job</button>
44
+ </form>
45
+ <form method="POST">
46
+ <button style="background-color: #92a8d1;" name="delete" type="submit" value="True" class="btn btn-primary">Delete Schedule Job</button>
47
+ </form>
48
+ {% endif %}
49
+ {% if values['connect_accept'] != True %}
50
+ <div class="mb-2">
51
+ <strong style="color:red;">Please create Both Session & Customer Data Source</strong>
52
+ </div>
53
+ {% endif %}
54
+ </div>
55
+ </div>
56
+ <div class="card">
57
+ <div class="card-header">
58
+ <h5 class="card-title">DATA CONNECTIONS</h5>
59
+ <div class="mb-2">
60
+ <h6 class="card-subtitle text-muted">This is the overall picture of all connections which are
61
+ <strong style="color:#F1B600;">Sessions</strong>,
62
+ <strong style="color:#40E0D0;">Customers</strong>.
63
+ At the table below they are with individual colors.
64
+ Each connection has information such as data source type, data/query path, data source name, etc.
65
+ There are also columns for the scheduling process which are
66
+ <strong style="color:#40A0E0;;">Last Time Triggered Scheduling Job</strong>,
67
+ <strong style="color:#40A0E0;;">Schedule Time Period</strong>,
68
+ <strong style="color:#40A0E0;;">Schedule Status</strong>
69
+ </h6>
70
+ </div>
71
+ </div>
72
+ {% if values['connect_accept'] != True %}
73
+ <div class="card-header">
74
+ <div class="mb-2">
75
+ <strong style="color:red;">Please create Both Session & Customer Data Source</strong>
76
+ </div>
77
+ </div>
78
+ {% endif %}
79
+ {% if values['connect_accept'] == True %}
80
+ {% if values['has_product_data_source'] != True %}
81
+ <div class="card-header">
82
+ <div class="mb-1">
83
+ <h6 class="card-subtitle text-muted">
84
+ <strong style="color:red;">You have both Session and Customer Data Source.
85
+ But You may want to add Basket Data Source which covers products, prices and categories of products.
86
+ This might help us to create Product Analytics and A/B Tests based on products, e.g.
87
+ </strong>
88
+ </h6>
89
+
90
+ </div>
91
+ </div>
92
+
93
+ {% endif %}
94
+
95
+ <table class="table scroll">
96
+ <thead>
97
+ <tr>
98
+ {% for i in values['schedule_columns'] %}
99
+ {% if i in ['Sessions Connection Tag Name', 'Sessions Connection Data Source', 'Sessions Connection Data Query/Path'] %}
100
+ <th style="font-size:50%;color:#F1B600;">{{ i }}</th>
101
+ {% endif %}
102
+ {% if i in ['Customers Connection Tag Name', 'Customers Connection Data Source', 'Customers Connection Data Query/Path'] %}
103
+ <th style="font-size:50%;color:#40E0D0;">{{ i }}</th>
104
+ {% endif %}
105
+ {% if i in ['Last Time Triggered Scheduling Job', 'Schedule Time Period', 'Schedule Status'] %}
106
+ <th style="font-size:50%;color:#40A0E0;">{{ i }}</th>
107
+ {% endif %}
108
+
109
+ {% if i not in ['Sessions Connection Tag Name', 'Sessions Connection Data Source', 'Sessions Connection Data Query/Path', 'Customers Connection Tag Name', 'Customers Connection Data Source', 'Customers Connection Data Query/Path', 'Last Time Triggered Scheduling Job', 'Schedule Time Period', 'Schedule Status'] %}
110
+ <th style="font-size:60%;">{{ i }}</th>
111
+ {% endif %}
112
+ {% endfor %}
113
+ </tr>
114
+ </thead>
115
+ <tbody>
116
+ {% for i in values['schedule'] %}
117
+ <tr>
118
+ <td style="font-size:60%;">{{ values['es_connection']['tag'] }}</td>
119
+ <td style="font-size:60%;">
120
+ {% if i['dimension'] != '....' %}
121
+ <i class="align-middle mr-2" data-feather="check" style="color:#008000;"></i>
122
+ {% endif %}
123
+ {% if i['dimension'] == '....' %}
124
+ <i class="align-middle mr-2" data-feather="x-circle" style="color:#FF0000;"></i>
125
+ {% endif %}
126
+ </td>
127
+ <td style="font-size:60%;">{{ i['orders_data_source_tag'] }}</td>
128
+ <td style="font-size:60%;">{{ i['orders_data_source_type'] }}</td>
129
+ <td style="font-size:60%;" >
130
+ {% if i['orders_data_query_path'] != '...' %}
131
+ <a data-toggle="modal" data-target="#edit_query_path_{{ i['orders_data_source_tag'] }}" style="color:green;">{{ i['orders_data_query_path'] }}</a>
132
+ <form method="POST">
133
+ <div class="modal fade" id="edit_query_path_{{ i['orders_data_source_tag'] }}" tabindex="-1" role="dialog" aria-hidden="true">
134
+ <div class="modal-dialog" role="document">
135
+ <div class="modal-content">
136
+ <div class="modal-header">
137
+ <h4 class="card-subtitle text-muted"></h4>
138
+ <button type="button" class="btn-close" data-dismiss="modal" aria-label="Close"></button>
139
+ </div>
140
+ <div class="modal-body m-3">
141
+ <div class="card">
142
+ <div class="card-body">
143
+ <h5 class="card-title">Edit Query/Path for - {{ i['orders_data_source_tag'] }}</h5>
144
+ <div class="mb-3">
145
+ {{ i['orders_data_query_path'] }}
146
+ </div>
147
+ <textarea name="orders_data_query_path" class="form-control" placeholder="SELECT * FROM table .... / raw_data.csv" rows="5" required></textarea>
148
+ </div>
149
+ </div>
150
+ </div>
151
+ <div class="modal-footer">
152
+ <button name="edit" value="True" type="submit" class="btn btn-primary">Save changes</button>
153
+
154
+ </div>
155
+ </div>
156
+ </div>
157
+ </div>
158
+ </form>
159
+ {% endif %}
160
+ {% if i['orders_data_query_path'] == '....' %}
161
+ {{ i['orders_data_query_path'] }}
162
+ {% endif %}
163
+
164
+ </td>
165
+ <td style="font-size:60%;">{{ i['downloads_data_source_tag'] }}</td>
166
+ <td style="font-size:60%;">{{ i['downloads_data_source_type'] }}</td>
167
+ <td style="font-size:60%;" >
168
+ {% if i['downloads_data_query_path'] != '...' %}
169
+ <a data-toggle="modal" data-target="#edit_query_path_{{ i['downloads_data_source_tag'] }}" style="color:green;">{{ i['downloads_data_query_path'] }}</a>
170
+ <form method="POST">
171
+ <div class="modal fade" id="edit_query_path_{{ i['downloads_data_source_tag'] }}" tabindex="-1" role="dialog" aria-hidden="true">
172
+ <div class="modal-dialog" role="document">
173
+ <div class="modal-content">
174
+ <div class="modal-header">
175
+ <h4 class="card-subtitle text-muted"></h4>
176
+ <button type="button" class="btn-close" data-dismiss="modal" aria-label="Close"></button>
177
+ </div>
178
+ <div class="modal-body m-3">
179
+ <div class="card">
180
+ <div class="card-body">
181
+ <h5 class="card-title">Edit Query/Path for - {{ i['downloads_data_source_tag'] }}</h5>
182
+ <div class="mb-3">
183
+
184
+ </div>
185
+ <textarea name="downloads_data_query_path" class="form-control" placeholder="SELECT * FROM table .... / raw_data.csv" rows="5" required></textarea>
186
+ </div>
187
+ </div>
188
+ </div>
189
+ <div class="modal-footer">
190
+ <button name="edit" value="True" type="submit" class="btn btn-primary">Save changes</button>
191
+
192
+ </div>
193
+ </div>
194
+ </div>
195
+ </div>
196
+ </form>
197
+ {% endif %}
198
+ {% if i['downloads_data_query_path'] == '...' %}
199
+ {{ i['downloads_data_query_path'] }}
200
+ {% endif %}
201
+
202
+ </td>
203
+
204
+ <td style="font-size:60%;">{{ i['ses_actions'] }}</td>
205
+ <td style="font-size:60%;">{{ i['d_actions'] }}</td>
206
+ <td style="font-size:60%;">{{ i['promotion_id'] }}</td>
207
+
208
+ <td style="font-size:60%;">{{ i['max_date_of_order_data'] }}</td>
209
+ <td style="font-size:60%;">{{ i['time_period'] }}</td>
210
+ <td style="font-size:60%;">
211
+ {% if i['schedule_tag'] != '....' %}
212
+ <i class="align-middle mr-2" data-feather="check" style="color:#008000;"></i>
213
+ {% endif %}
214
+ {% if i['schedule_tag'] == '....' %}
215
+ <i class="align-middle mr-2" data-feather="x-circle" style="color:#FF0000;"></i>
216
+ {% endif %}
217
+ </td>
218
+ </tr>
219
+ {% endfor %}
220
+ </tbody>
221
+ </table>
222
+ <div class="card-header">
223
+ <h5 class="card-title">OPTIONAL DATA CONNECTIONS</h5>
224
+ <div class="mb-2">
225
+ <h6 class="card-subtitle text-muted">This is the overall picture of all optional connections which are
226
+ <strong style="color:#976966;">Deliveries</strong>,
227
+ <strong style="color:#9797C3;">Products</strong>.
228
+ At the table below they are with individual colors.
229
+ Each connection has information such as data source type, data/query path, data source name, etc.
230
+ </h6>
231
+ </div>
232
+ </div>
233
+ <table class="table scroll">
234
+ <thead>
235
+ <tr>
236
+ {% for i in values['schedule_columns_optional'] %}
237
+ {% if i in ['Baskets Connection Tag Name', 'Baskets Connection Data Source', 'Baskets Connection Data Query/Path'] %}
238
+ <th style="font-size:50%;color:#9797C3;">{{ i }}</th>
239
+ {% endif %}
240
+
241
+ {% if i in ['Deliveries Connection Tag Name', 'Deliveries Connection Data Source', 'Deliveries Connection Data Query/Path'] %}
242
+ <th style="font-size:50%;color:#976966;">{{ i }}</th>
243
+ {% endif %}
244
+
245
+ {% if i not in ['Deliveries Connection Tag Name', 'Deliveries Connection Data Source', 'Deliveries Connection Data Query/Path', 'Baskets Connection Tag Name', 'Baskets Connection Data Source', 'Baskets Connection Data Query/Path'] %}
246
+ <th style="font-size:60%;">{{ i }}</th>
247
+ {% endif %}
248
+ {% endfor %}
249
+ </tr>
250
+ </thead>
251
+ <tbody>
252
+ {% for i in values['schedule'] %}
253
+ <tr>
254
+ <td style="font-size:60%;">{{ i['products_data_source_tag'] }}</td>
255
+ <td style="font-size:60%;">{{ i['products_data_source_type'] }}</td>
256
+ <td style="font-size:60%;" >
257
+ {% if i['products_data_query_path'] != '...' %}
258
+ <a data-toggle="modal" data-target="#edit_query_path_{{ i['products_data_source_tag'] }}" style="color:green;">{{ i['products_data_query_path'] }}</a>
259
+ <form method="POST">
260
+ <div class="modal fade" id="edit_query_path_{{ i['products_data_source_tag'] }}" tabindex="-1" role="dialog" aria-hidden="true">
261
+ <div class="modal-dialog" role="document">
262
+ <div class="modal-content">
263
+ <div class="modal-header">
264
+ <h4 class="card-subtitle text-muted"></h4>
265
+ <button type="button" class="btn-close" data-dismiss="modal" aria-label="Close"></button>
266
+ </div>
267
+ <div class="modal-body m-3">
268
+ <div class="card">
269
+ <div class="card-body">
270
+ <h5 class="card-title">Edit Query/Path for - {{ i['products_data_source_tag'] }}</h5>
271
+ <div class="mb-3">
272
+
273
+ </div>
274
+ <textarea name="products_data_query_path" class="form-control" placeholder="SELECT * FROM table .... / raw_data.csv" rows="5" required></textarea>
275
+ </div>
276
+ </div>
277
+ </div>
278
+ <div class="modal-footer">
279
+ <button name="edit" value="True" type="submit" class="btn btn-primary">Save changes</button>
280
+
281
+ </div>
282
+ </div>
283
+ </div>
284
+ </div>
285
+ </form>
286
+ {% endif %}
287
+ {% if i['products_data_query_path'] == '...' %}
288
+ {{ i['products_data_query_path'] }}
289
+ {% endif %}
290
+ </td>
291
+
292
+ <td style="font-size:60%;">{{ i['deliveries_data_source_tag'] }}</td>
293
+ <td style="font-size:60%;">{{ i['deliveries_data_source_type'] }}</td>
294
+ <td style="font-size:60%;" >
295
+ {% if i['deliveries_data_query_path'] != '...' %}
296
+ <a data-toggle="modal" data-target="#edit_query_path_{{ i['products_data_source_tag'] }}" style="color:green;">{{ i['deliveries_data_query_path'] }}</a>
297
+ <form method="POST">
298
+ <div class="modal fade" id="edit_query_path_{{ i['deliveries_data_query_path'] }}" tabindex="-1" role="dialog" aria-hidden="true">
299
+ <div class="modal-dialog" role="document">
300
+ <div class="modal-content">
301
+ <div class="modal-header">
302
+ <h4 class="card-subtitle text-muted"></h4>
303
+ <button type="button" class="btn-close" data-dismiss="modal" aria-label="Close"></button>
304
+ </div>
305
+ <div class="modal-body m-3">
306
+ <div class="card">
307
+ <div class="card-body">
308
+ <h5 class="card-title">Edit Query/Path for - {{ i['deliveries_data_query_path'] }}</h5>
309
+ <div class="mb-3">
310
+
311
+ </div>
312
+ <textarea name="products_data_query_path" class="form-control" placeholder="SELECT * FROM table .... / raw_data.csv" rows="5" required></textarea>
313
+ </div>
314
+ </div>
315
+ </div>
316
+ <div class="modal-footer">
317
+ <button name="edit" value="True" type="submit" class="btn btn-primary">Save changes</button>
318
+ </div>
319
+ </div>
320
+ </div>
321
+ </div>
322
+ </form>
323
+ {% endif %}
324
+ {% if i['products_data_query_path'] == '...' %}
325
+ {{ i['products_data_query_path'] }}
326
+ {% endif %}
327
+ </td>
328
+ </tr>
329
+ {% endfor %}
330
+ </tbody>
331
+ </table>
332
+
333
+ {% endif %}
334
+
335
+ </div>
336
+ {% if values['tag'] != '....' %}
337
+ <div class="card">
338
+ <div class="row">
339
+ <div class="col-md-12 mb-3">
340
+ <div class="card">
341
+ <div class="card-header">
342
+ <h5 class="card-title">Logs</h5>
343
+ <h6 class="card-subtitle text-muted">Last 20 events of logs.</h6>
344
+ </div>
345
+ <div class="card-body scroll">
346
+ {% if values['logs'] != '....' %}
347
+ {% for i in values['logs'] %}
348
+ <div class="mb-2">
349
+ <h6 class="card-subtitle" style="{{ i['color'] }}">{{ i['info'] }}</h6>
350
+ </div>
351
+ {% endfor %}
352
+ {% endif %}
353
+ </div>
354
+ </div>
355
+ </div>
356
+ </div>
357
+ </div>
358
+ {% endif %}
359
+
360
+ </div>
361
+ </div>
362
+ </main>
363
+
364
+ {% endblock content %}
365
+
366
+ <script>
367
+ function myFunction() {
368
+ // Get the checkbox
369
+ var checkBox = document.getElementById("myCheck");
370
+ // Get the output text
371
+ var text = document.getElementById("text");
372
+
373
+ // If the checkbox is checked, display the output text
374
+ if (checkBox.checked == true){
375
+ text.style.display = "block";
376
+ } else {
377
+ text.style.display = "none";
378
+ }
379
+ }
380
+
381
+ .scrolling-wrapper-flexbox {
382
+ display: flex;
383
+ flex-wrap: nowrap;
384
+ overflow-x: auto;
385
+
386
+ .card {
387
+ flex: 0 0 auto;
388
+ }
389
+ }
390
+
391
+ .scroll {
392
+ max-height: 100px;
393
+ overflow-y: auto;
394
+ }
395
+
396
+ </script>
397
+ {% block javascripts %}{% endblock javascripts %}