Steve Howell
c0fd8660d2
subject -> topic: Fix analytics test (minor).
2018-11-14 23:24:06 -08:00
Yashashvi Dave
02a5849d4c
statistics: Guest user can't access realm statistics.
...
Don't allow guest user to access realm statistics from
UI or at API level.
Fixes part of #10749 .
2018-11-02 11:43:09 -07:00
Vishnu Ks
201b99a6f8
models: Add USER_REACTIVATED event type constant to RealmAuditLog.
2018-07-10 15:42:26 +05:30
Vishnu Ks
d0b89cbb44
models: Add USER_DEACTIVATED event type constant to RealmAuditLog.
2018-07-10 15:42:26 +05:30
Vishnu Ks
ce3fffdbb2
models: Add USER_ACTIVATED event type constant to RealmAuditLog.
2018-07-10 15:42:26 +05:30
Vishnu Ks
2c8effe9fe
models: Add USER_CREATED event type constant to RealmAuditLog.
2018-07-10 15:42:26 +05:30
Nikhil Kumar Mishra
fa9d79e203
stats: Add 1 day actives and total users to number of users chart.
2018-05-20 10:56:16 -07:00
Nikhil Kumar Mishra
26decb4c48
stats: Add 1day_actives::day CountStat to analytics tables.
2018-05-20 10:56:16 -07:00
Rishi Gupta
1af7fc7344
stats: Add /stats/installation.
2018-05-18 15:12:36 -07:00
Rishi Gupta
2fe3fba6ce
stats: Rename data.realm to data.everyone.
...
We use "Everyone" for the button labels already.
Soon we'll support "Everyone" meaning either the installation or the realm,
depending on the URL route used to access the stats.
2018-05-18 15:12:36 -07:00
Aditya Bansal
5adf983c3c
analytics: Change use of typing.Text to str.
2018-05-10 14:19:49 -07:00
Shubham Dhama
b26c38bc47
analytics: Make stats of all realms accessible to server admins.
...
In this commit:
Two new URLs are added, to make all realms accessible for server
admins. One is for the stats page itself and another for getting
chart data i.e. chart data API requests.
For the above two new URLs corresponding two view functions are
added.
2018-04-18 11:06:50 -07:00
Rishi Gupta
fbd8dde1f8
invitations: Add LoggingCountStat to keep track of sent invitations.
2017-12-06 20:35:50 -08:00
rht
01885cdedc
analytics: Use Python 3 syntax for typing (final).
2017-11-22 12:16:59 -08:00
Tim Abbott
a0cfe45150
analytics: Wrap some longer lines.
2017-11-17 13:19:48 -08:00
rht
d1689b5884
analytics: Use python 3 syntax for typing.
2017-11-17 13:16:49 -08:00
Tim Abbott
2b43a0302a
python: Sort imports in smaller apps.
2017-11-15 15:55:49 -08:00
rht
17a19993f1
analytics/tests: Remove unused imports (F401).
2017-11-07 16:37:11 -08:00
rht
c4fcff7178
refactor: Replace super(.*self) with Python 3-specific super().
...
We change all the instances except for the `test_helpers.py`
TimeTrackingCursor monkey-patching, which actually needs to specify
the base class.
2017-10-30 14:30:25 -07:00
rht
691598a88b
py3: Remove "from six.moves import range".
...
This is no longer required, since in Python 3, this is what the range
built-in does.
2017-10-17 23:28:14 -07:00
Rishi Gupta
c7bdabbda8
analytics: Disallow non-UTC fill times in process_count_stat.
...
No change in behavior, but we aren't supporting non-UTC times in analytics
as a whole any more, so might as well change this check as well.
2017-10-05 11:22:06 -07:00
Rishi Gupta
0596c4a810
analytics: Enforce various datetime arguments are in UTC.
...
Sort of a hacky hammer, but
* The original design of the analytics system mistakenly attempted to play
nicely with non-UTC datetimes.
* Timezone errors are really hard to find and debug, and don't jump out that
easily when reading code.
I don't know of any outstanding errors, but putting a few "assert this
timezone is in UTC" around will hopefully reduce the chance that there are
any current or future timezone errors.
Note that none of these functions are called outside of the analytics code
(and tests). This commit also doesn't change any current behavior, assuming
a database where all datetimes have been being stored in UTC.
2017-10-05 11:22:06 -07:00
Rishi Gupta
0f31cddf49
analytics: Add management command to clear single stat.
2017-10-05 11:22:06 -07:00
Tim Abbott
575bd0e255
analytics: Update name for old Android app.
2017-10-03 11:59:41 -07:00
rht
4494112862
analytics: Remove absolute_import.
2017-09-27 20:20:07 -07:00
Umair Khan
6d4ba50ceb
result.json: Upgrade test_views.
2017-08-17 09:03:35 -07:00
Tim Abbott
e3e2d9093c
analytics: Remove references to UserProfile.objects.get.
2017-08-15 12:48:33 -07:00
neiljp (Neil Pilgrim)
b782db48e1
mypy: Remove superfluous older 'type: ignore' annotations.
2017-08-08 11:27:51 -07:00
Vishnu Ks
a99c60ce07
analytics: Add translation tags to stats.html.
2017-07-16 16:16:43 -07:00
Vishnu Ks
e5c5960faa
analytics: Remove unused get_user_profile_by_email import.
2017-07-14 13:35:43 -07:00
Vishnu Ks
0a67e00702
analytics: Use example_user in test_views.py.
2017-07-14 13:35:43 -07:00
Tim Abbott
0b60f11cf8
analytics: Display Zulip Electron app as the main desktop app.
...
This should make the /stats data significantly clearer.
2017-07-07 18:31:47 -07:00
Tim Abbott
31caab4229
analytics: Rename 'new iOS app' to 'Mobile app'.
2017-07-07 18:31:13 -07:00
Aditya Bansal
061cb9ae44
pep8: Add compliance with rule E261 to analytics/tests/test_views.py.
2017-05-31 17:07:15 -07:00
umkay
d9b23b39d3
mypy: Fix strict-optional in analytics.
2017-05-26 15:39:39 -07:00
Aditya Bansal
3f0b22ce31
pep8: Add compliance with rule E261 to test_counts.py.
2017-05-07 23:21:50 -07:00
Rishi Gupta
61bf445da4
analytics: Restrict fill_to_time to hour boundaries in process_count_stat.
2017-04-28 16:15:07 -07:00
Rishi Gupta
f595f4f7f2
analytics: Change Number of Users chart to use realm_active_humans::day.
...
Previously we showed the total number of users with an active account. This
changes it to show only the number of users that have logged in in the past
two weeks.
2017-04-25 18:35:13 -07:00
Rishi Gupta
5e49da9285
analytics: Only update daily stats on day boundaries.
...
Previously we would update FillState for daily stats on hourly boundaries as
well. This would create two extra queries on the FillState table every hour
(for each CountStat), which adds roughly 50ms of extra processing for each
CountStat each day, as well as two extra lines each hour in the analytics
log. This can be a minor annoyance when backfilling stats.
2017-04-18 11:02:51 -07:00
Rishi Gupta
b335ad2794
models: Add MIN_INTERVAL_LENGTH to UserActivityInterval.
...
Was previously a floating magic number appearing in both
zerver/lib/actions.py and analytics/lib/counts.py.
2017-04-18 11:02:51 -07:00
hackerkid
b2504084ab
Replace timezone.now with timezone_now.
2017-04-16 12:28:56 -07:00
hackerkid
55c3d12078
Replace timezone.utc with timezone_utc.
2017-04-16 12:28:56 -07:00
Rishi Gupta
49bd330304
analytics: Add class DependentCountStat and stat realm_active_humans::day.
2017-04-14 11:41:07 -07:00
Rishi Gupta
62de1cf898
test_counts: Modernize TestProcessCountStat tests.
2017-04-14 11:41:07 -07:00
Rishi Gupta
1e8d2b984d
counts.py: Rename DataCollector-level operations to be more generic.
...
We're about to use these for DependentCountStats that will run SQL queries
on the analytics tables instead of the zerver tables.
2017-04-14 11:41:07 -07:00
Rishi Gupta
6dff22cbaf
counts.py: Change check for LoggingCountStat to use isinstance.
...
I think this is more pythonic?
We could also get rid of LoggingCountStats altogether, since it's now just a
special case of CountStat (is_logging == data_collector.pull_function is None).
But I think it's nice to keep the distinction since they behave so differently.
2017-04-14 11:41:07 -07:00
Rishi Gupta
118b44d4f0
counts.py: Change DataCollector to take a pull_function argument.
...
This will allow us to appropriately generalize CountStat to include
LoggingCountStat and CustomPullCountStat. It'll also make life easier when
we introduce DependentCountStat.
2017-04-14 11:41:07 -07:00
Rishi Gupta
6369d23633
counts.py: Rename ZerverCountQuery to DataCollector.
...
Not the final form of DataCollector, but the name change causes a big diff
so separating it out.
2017-04-14 11:41:07 -07:00
Rishi Gupta
b3991e2557
counts.py: Move CountStat.group_by into ZerverCountQuery.
...
Part of a larger refactoring to reduce cyclic dependencies between CountStat
and DataCollector (coming soon).
2017-04-14 11:41:07 -07:00
Rishi Gupta
341e1b54fc
counts.py: Remove zerver_table from ZerverCountQuery.
...
Was only needed for filter_args, which are now gone.
2017-04-14 11:41:07 -07:00