0
0
mirror of https://github.com/PostHog/posthog.git synced 2024-11-29 03:04:16 +01:00
Commit Graph

27 Commits

Author SHA1 Message Date
Tim Glaser
31f3185776
Closes #1020 WIP shared dashboards (#1071)
* add test for caching funnels and refreshing

* Closes #1020 WIP shared dashboards

* Make webpack work

* Progress?

* Hash the entire filter and add share tokens

* Make webpack work properly

* Fix sentry error

* Tighten up the caching logic

* Correctly refresh items and show in frontend'

* Add some padding

* fix caching, update layout

* Add cypress tests

* Fix merge conflict mistake

* Convert share_token to boolean

* Hide text when small

* Redo tooltip for lock

* Remove move cursor when in shared mode

* Improve spacing

* Fix state being incorrect

* Use selectors instead of value

* Use const instead of let

* Fix type errors et al

* Increase cache size

* Fix dashboard tests

* Fix team tests

* Add wait time

* Fix tests

* Fix refreshing

* Fix dashboard tests

* Fix test

* Excluded deleted dashboard items and don't show refreshing

* Fix renaming issue

* Fix migrations and fix display of status change

* Use grid for responsive header

* Don't load annotations

* Eslint

* Fix variable naming

Co-authored-by: Eric <eeoneric@gmail.com>
2020-07-23 10:41:59 +02:00
Michael Matloka
4fe9b3c0ad
Aggregate functions on Trends (closes #1193) (#1217)
* Update entityFilterLogic for filter.math_property

* Add new math types and math_property to ActionFilterRow

* Add backend support for new math types

* Update data-attrs

* Add dropdown Cy test

* Add API tests

* Improve process_math style

* Add resiliency to non-number property value occurences

* Annotate for clarity

* Update UI text

* Update UI text a bit more

* Reword tooltip

* Update UI slightly

* Update capitalization

* Improve internal style

* Improve code style

* Filter out property `token`

* Utilize formatted string

* Don't show empty dropdown contents

* Add event_properties_numerical for the future

* Fix dropdown button title
2020-07-21 16:18:11 +02:00
James Greenhill
56ec7e9be7
Closes #1059: Async processing of Event -> Action mapping (#1170)
* Make Async processing of event -> action mappings optional for large installations

* black format python

* Bump frequency for mapping Events -> Actions to hourly

* make the recalculation of action -> events incremental

* just use naive datetime for default start

* add created_at field for events to base incremental event->action mapping off of

* use timezone aware now's

* remove old test for a migration long gone

* use naive date for default start period on calculate_events_for_period

* default old events to created_at null and fix time calculated

* set last calculated when EmptyResultSet

* black format migration

* update migration to not conflict

* consolidate calculate_events functions

* Consolidate logic and handle nulls in created_at gracefully

* add ACTION_EVENT_MAPPING_INTERVAL_MINUTES as env var

* Feedbacked, no env var for calc period and add null=true on event model

* update migrations w/ feedback

* black format migration
2020-07-14 12:36:43 -07:00
Eric Duong
9fb2f64cba
Annotations (#1120)
* draw a vertical line

* some annotation

* progress

* progress on logic and mouse events

* popover aligned

* comment popup working

* fix spacing

* add model

* annotation endpoint

* initial working

* frontend create dashbaord item with annotations working/ modified model

* remove plugin

* add sizing hook

* fully working basic implementation

* style the notes

* annotations delete

* annotations base complete

* tweaking spacing and styling

* enforce input limit

* format

* add margin

* restrict deletes to proper users

* modify styling

* add api tests

* add error boundary to graph

* fix code comments

* fix lint

* fix how name is determined

* nit

* refactor into logic

* ux fixes

* colors

* inting errors

* fix dashbaord test

* remove hardcoded test

* fix linting again

* remove autofocus

* add dynamic spacing for annotations and fix margins

* more patches

* disable annotations on compared graph

* code fixes

* fix mouseover detail

* add patch

* add control for mousedown

* add condition

* add escape key functionality

* refine boundary recalculation condition

* missing call

* fix dragging listener

* some refactoring and add control for dragging/popup

* better control when clustered

* one more tweak

* use ref again

* add condition

* another condition

* remove animations

* limit area

* adjust spacing

* condition

* minor fix

* colors

* more patches

* use draggablecancel

Co-authored-by: Marius Andra <marius.andra@gmail.com>
2020-07-10 10:28:15 -04:00
Eric Duong
f8f27316c5
Team timestamp with proper defaults (#1083)
* team-timestamp

* add updated_at field

* update manifest

* use proper default

* remove blank
2020-06-30 11:46:41 +02:00
Karl-Aksel Puulmann
02b68b6b1b
Add index to Action model (#1085)
This is a micro-optimization, likely doesn't matter for the actual bug
but something I noticed debugging issue 1059.

The query in question is:

```
last_updated_action_ts = Action.objects.filter(team_id=self.team_id).aggregate(models.Max("updated_at"))['updated_at__max']
```

The query plan before:
```
d25vf5hht9th9v> explain analyze SELECT MAX("posthog_action"."updated_at") AS "updated_at__
  max"
    FROM "posthog_action"
   WHERE "posthog_action"."team_id" = 1;
+----------------------------------------------------------------------------------------------------
| QUERY PLAN
|----------------------------------------------------------------------------------------------------
| Aggregate  (cost=5.46..5.47 rows=1 width=8) (actual time=0.026..0.026 rows=1 loops=1)
|   ->  Bitmap Heap Scan on posthog_action  (cost=2.06..5.46 rows=2 width=8) (actual time=0.019..0.02
|         Recheck Cond: (team_id = 1)
|         Heap Blocks: exact=1
|         ->  Bitmap Index Scan on posthog_action_team_id_3a21e3a6  (cost=0.00..2.06 rows=2 width=0)
|               Index Cond: (team_id = 1)
| Planning Time: 0.145 ms
| Execution Time: 0.062 ms
```

After:
```
+----------------------------------------------------------------------------------------------------
| QUERY PLAN
|----------------------------------------------------------------------------------------------------
| Result  (cost=2.06..2.06 rows=1 width=8) (actual time=0.024..0.024 rows=1 loops=1)
|   InitPlan 1 (returns $0)
|     ->  Limit  (cost=0.06..2.06 rows=1 width=8) (actual time=0.020..0.020 rows=1 loops=1)
|           ->  Index Only Scan using posthog_act_team_id_8c04de_idx on posthog_action  (cost=0.06..4
|                 Index Cond: ((team_id = 1) AND (updated_at IS NOT NULL))
|                 Heap Fetches: 1
| Planning Time: 0.147 ms
| Execution Time: 0.049 ms
```
2020-06-25 20:52:38 +02:00
Marius Andra
684bb13772
Toolbar BETA Toggle (#951)
* per-user toggle to use new toolbar

* add migration

* fix test and remove setting

* add choices to toolbar setting

* fix latest_migrations.manifest

* update text

* add hint to restart the browser

* fix test now that the setting is gone

* simplify language
2020-06-25 13:46:49 +02:00
Eric Duong
c6428e9190
Onboarding Wizard (#1051)
* intiial working

* remove animation and added snippets

* full flow working

* reorganize

* more cleanup

* fix linting

* add test for the onboarding flow

* add elixir and send event script

* try without cache

* restore cache and move directory

* udpate case

* add lazy loading to onboarding flow

* move field to team

* .

* update styling

* add default

* migration with default working

* add missing model field

* conditional test based on DOM

* add promise return

* try wait

* test again x2
2020-06-24 12:03:28 -04:00
Tim Glaser
dfb9fd5dee
Revert "Add created_at to team model (#1075)" (#1082)
This reverts commit 9e90215709.
2020-06-24 15:20:17 +02:00
Eric Duong
9e90215709
Add created_at to team model (#1075)
* team-timestamp

* add updated_at field

* update manifest
2020-06-24 09:03:06 -04:00
Karl-Aksel Puulmann
5257c30ff1
Enable discarding of IP address data (#1081)
* Add migration to add `anonymize_ips` boolean field

Issue #947

* Add setting to not capture ip data

This solves issue 947
2020-06-24 10:38:45 +02:00
Tim Glaser
f61e9c111b
517 feature flags (#1017)
* WIP #517 feature flags

* Fix default filters

* Move decide to its own file

* Bump posthog-js 1.2.2

* Fix decide endpoint

* Add logic, update posthog-js

* yarn lock

* update snippet

* Add cypress tests

* Add example code

* Fix example code

* Add tests for query size

* Add errors when trying to create feature flag with same key

* Add explanation comment

* Fix cypress tests

* Do caching of teams in Team model

* Use <= instead of <

* Instrumentation and fix

* Fix ci test

* Add patch for team

* Debug test

* It passed
2020-06-22 10:57:09 +02:00
Tim Glaser
5201fab32f
Fix long href inserts (#1027)
* Bump posthog-js 1.2.2

* Fix long href insertions
2020-06-16 10:33:32 +02:00
Eric Duong
f0d6db7714
1022 caching adjustments (#1023)
* refreshing spinner

* expire results that haven't been accessed in more than 7 days

* missing param
2020-06-15 22:41:28 +02:00
Eric Duong
063d73953a
Use redis to cache results (#972)
* initial working

* small adjustments and make tests run

* working cache

* edited arg handling in actions

* caching dashboard trend items with periodic update

* funnel and trend cache working

* update intervals

* update tests

* updated types and funnel refersh logic

* refresh working

* refresh dashboart item logic

* refresh from dashboard working for trends components

* refresh from dashboard working for funnels and funnel refactored to hook

* dashboard item reload

* let deleted items run stale

* fix tests

* tweak decorator logic

* update datetime format and default expiry

* add team to cache signature

* make sure different workers pick up task

* use tooltip and change dashboard refresh order

* fix redundant calls and cache overwriting

* updated types

* Show tooltip when never refreshed

Co-authored-by: Tim Glaser <tim.glaser@hiberly.com>
2020-06-15 19:38:55 +02:00
Tim Glaser
37fa876732
Revert "Closes #888 filter on elements (#917)" (#968)
This reverts commit ac46f09429.
2020-06-09 17:58:18 +01:00
Tim Glaser
ac46f09429
Closes #888 filter on elements (#917)
* Closes #888 filter on elements

* Add joinfield as requirement

* Fix tests

* Use correct element

* Fix paths query

* Delete old migration test

* Clean up

* Add frontend filters for elements, closes #419

* Add element api

* Fix paths and add test

* Keep elements field, otherwise breaks parititons

* Don't use join field

* Remove other join field references

* Fix test
2020-06-08 14:58:51 +01:00
James Greenhill
db574b61c7
Cache actions and events queries between event processings (#845)
* Cache actions and events queries between event processings

* feedbacked

* BaseTest -> TransactionBaseTest, BaseTest is causing problems
2020-06-01 09:51:46 +01:00
Tim Glaser
4b31532025
Add property filters to actions + lots of improvements (#841)
* Add property filters to actions

* Show calculating of acitons and other improvements

* Fix delete, add toast back in and change toast colour

* Fix cypress tests

* Fix e2e

* Fix cy tests

* Remove double events

* Fix tests and event not saving

* change name

* Fix tes

* Empty result set error
2020-05-27 11:26:36 +01:00
Tim Glaser
df48f475ba
Closes #790 opt out to boolean and allow anonymizing of data (#821)
* Closes #790 opt out to boolean and allow anonymizing of data

* Add deprecated note
2020-05-21 15:38:28 +01:00
Marius Andra
bc7eabc315
Resize dashboard items (#746)
* Fix Error404

* resize and drag dashboard items

* fix funnel resize issues

* store layouts in kea

* layouts for different breakpoints

* save layouts after updating

* colors in submenu, but disabled

* save item colors

* 1920-sidebar breakpoint

* add graph colors for graphs with backgrounds

* pie chart label color and z-index to put over the chart if a long number
2020-05-13 11:14:09 +01:00
Tim Glaser
8e6b4f56b5
Closes #169 break down by cohort (#690)
* Closes #169 break down by cohort

* Fix test

* Prettier breakdown filters

* Rerender each time it's opened

* Fix tests

* Add 'all users' option in breakdown

* Make people work with cohorts

* Precalculate cohorts

* Return last_calculation

* Show precalculation in the frontend

* Closes #675 fix icon alignment

* Frontend fixes, antd and more

* Make sure unsetting breakdown doesn't break things

* Semantic name for migration

* Separate data migration + cohort key bugfix

* Correctly filter people by event

* Typing
2020-05-11 22:06:35 +01:00
Marius Andra
c324582076
703 multiple dashboards (#740)
* create dashboard model

* add pinned dashboards to submenu

* rename "Default Dashboard" -> "Dashboard"

* refactor SaveToDashboard modal

* save onto right dashboard

* load and show dashboard data

* move logic to separate file

* dashboard selection

* prompt for name

* add promise cancellation for prompts, so that they close when we change the url

* show a global loading progress bar if it takes more than 500ms for any loader to work

* add dashboards on the dashboard page

* pin dashboards

* rename dashboard

* cut off text nicely in the sidebar

* delete dashboards

* dash item "more" link in antd style

* revert to ellipsis

* trigger by click, redirect well with delete

* remember last visited dash, update icons

* better view icons

* refactor Dashboard into subcomponents

* add a sad hedgehog for the 404 page

* fix loading keys

* add a few more overlay hedgehogs

* add new dashboard from "no dashboards" page

* use a hedgehog with a better license

* better redirect when deleting dashboard

* update dashboard items design

* dark sidebar

* make a few other scenes darker

* add a few styles that can be toggled

* add menu to change color of dashboard panel

* move to prompt logic

* new dashboard on dashboards page

* show success message in model

* refactor shared listeners

* rename dashboard item

* add new dashboard when adding to dashboards

* redirect after adding

* fix icon alignment

* undo deleting dashboards

* replace antd message with toast to close programmatically

* remove the style dropdown for now

* set the scene on a new "thread" to avoid react's reconciliation triggering logic building on the current run heap

* fix action run heap issue properly

* use table in dashboard list, link to all dashboards

* support links without hrefs

* empty dashboard style fix

* ignore type

* save created_by user

* remove nprogress spinner

* use antd table to render dashboards

* show "all dashboards" as the default when clicking the link

* pin dashboards automatically

* soft delete

* remove nprogress

* remove nprogress

* remove all caps

* export deleteWithUndo function

* add delete and pin links to dashboards list
2020-05-11 18:09:02 +02:00
Tim Glaser
65c4b6386e
Move models to separate files (#631)
* Move models to separate files

* Remove FunnelStep and move action step into separate file

* Add delete funnelstep migration
2020-04-23 10:26:14 +01:00
Tim Glaser
89137eb481
Closes #613 add more indexes and fix issues to allow loading of /tren… (#630)
* Closes #613 add more indexes and fix issues to allow loading of /trends with millions of events

* Fix signup test
2020-04-21 09:48:30 +01:00
Tim Glaser
12e3b3128f
Fix unable to sign up to teams (#610) 2020-04-16 17:56:11 +01:00
Tim Glaser
0b5d2d6a17
Fix migration conflicts (#582) 2020-04-16 10:14:04 +01:00