Commit graph

161 commits

Author SHA1 Message Date
Pēteris Caune
b859a71920
Rename "sign in" to "log in"
I like "sign in" better, but users from time
to time confuse "sign in" and "sign up" forms. To reduce
confusion potential, I'm renaming "sign in" to "log in".
2024-08-12 15:09:58 +03:00
Marlene Koh
2b318cab84
Fix crash when email host not configured (#930)
* Log exception when email host not configured instead of raising assertion error

* Fix tests

* Reset to master

* Check email host before sending email for project invites
2023-12-18 15:53:35 +02:00
Pēteris Caune
58d7c8cc55
Simplify DowntimeSummary 2023-09-27 17:16:16 +03:00
Pēteris Caune
f7af738c76
Add monthly uptime percentage display in Check Details page
Fixes: #773
2023-09-27 13:44:35 +03:00
Pēteris Caune
db5d8adeb5
Switch from namedtuple to dataclass for mutability 2023-09-27 11:03:58 +03:00
Pēteris Caune
46dbaff2c3
Update Check.downtimes() to return records in descending datetime order
This way we can avoid one sort operation in Check.downtimes()
and one reverse operation in the "details_downtimes.html" template.
2023-09-27 10:42:05 +03:00
Pēteris Caune
a6ab647a46
Improve type hints in hc.accounts.models 2023-09-08 15:54:47 +03:00
Pēteris Caune
05d2d0065e
Remove usage of backports.zoneinfo 2023-09-06 12:54:27 +03:00
Pēteris Caune
77e1ea731c
Improve type hints in hc.accounts.views 2023-09-06 12:51:27 +03:00
Pēteris Caune
d79069f669
Fix type warnings, improve type hints in hc.front.views 2023-09-06 11:18:47 +03:00
Pēteris Caune
65b3acf964
Improve type hints in hc.accounts.views 2023-09-06 10:02:50 +03:00
Pēteris Caune
0c83ca4fd8
Improve type hints in hc.accounts.forms 2023-09-05 18:31:35 +03:00
Pēteris Caune
9153c1a552
Improve type hints 2023-09-05 13:31:59 +03:00
Pēteris Caune
23eadc5e64
Fix type warnings 2023-09-02 17:19:31 +03:00
Pēteris Caune
3311712610
Improve type hints, add reusable JSON type aliases in hc.lib.typealias 2023-08-31 12:17:15 +03:00
Pēteris Caune
aaa172cd28
Improve type hints 2023-08-29 17:52:20 +03:00
Pēteris Caune
47ec070aee
Make Profile.user non-nullable
Each Profile must have a corresponding User object, there should
be no profiles with null "user_id" fields.
2023-08-29 16:19:08 +03:00
Pēteris Caune
d57ea3309a
Split report and reminder (nag) templates 2023-08-23 11:20:50 +03:00
Pēteris Caune
fbc6ac58ba
Clean up the report/reminder generation code 2023-08-22 15:31:45 +03:00
Pēteris Caune
70a5429ae3
Remove unused bits 2023-08-22 15:21:14 +03:00
Pēteris Caune
646f79c54e
Update email reminders to only show checks in the "down" state
Fixes: #881
2023-08-22 15:04:14 +03:00
Pēteris Caune
ea89237c16
Fix hc.accounts.views.check_token to handle non-UUID usernames
Fixes: #882
2023-08-22 13:45:54 +03:00
Pēteris Caune
32b607533a
Make QoL improvements in admin
* Add "view on site" links in Check, Channel, and Project admins
* Expose over_limit_date in Profile admin
* Display last notify duration ("Time" column) in Channel admin
* Add last notify duration filter for Channel admin
2023-07-11 12:14:45 +03:00
Pēteris Caune
4adba44381
Add convenience functions in Profile model
* is_past_over_limit_grace(): Returns True if this profile is
over limits for 31 or more days.
* schedule_for_deletion(): Sets the deletion_scheduled_date
field to 31 days in the future.
2023-07-11 10:14:10 +03:00
Pēteris Caune
34530e0e91
Add Profile.over_limit_date DB field 2023-06-16 16:28:03 +03:00
Pēteris Caune
0fa9222264
Switch to case-insensitive bounce id signatures 2023-05-24 18:13:36 +03:00
Pēteris Caune
8926fd5ac6
Add experimental support for setting custom MAIL FROM address
If settings.EMAIL_MAIL_FROM_TMPL is set, it will be used
as the MAIL FROM (envelope sender) address.

The EMAIL_MAIL_FROM_TMPL value should contain a "%s" placeholder.

This is intended for routing email bounce notifications to a specific
MX server. For example, if the site runs on example.com
but we want to receive bounce notifications at the mail server running
on bounces.example.com, we can set

    EMAIL_MAIL_FROM_TMPL = "%s@bounces.example.com"

Experimental, may change!
2023-05-23 15:38:39 +03:00
Pēteris Caune
c3b80b06cf
Add Profile.deletion_scheduled_deleted field and UI banner when it's set 2023-04-28 15:03:04 +03:00
Pēteris Caune
4d552efd67
Improve styling of the project switcher 2023-03-10 11:50:41 +02:00
Pēteris Caune
bad4b9adbf
Add a "Switch Project" menu in top navigation 2023-03-10 10:36:09 +02:00
Pēteris Caune
f849c5e1a1
Fix wording in the invite email when inviting read-only users 2023-01-12 10:14:18 +02:00
Pēteris Caune
18c17fb4b5
Fix project sort order to be case-insensitive everywhere in the UI
Fixes: #768
2022-12-22 11:39:20 +02:00
Pēteris Caune
260f6e36a7
Fix templates to use user's timezone when displaying dates 2022-12-01 15:21:40 +02:00
Pēteris Caune
818ccad56f
Fix week, month boundary calculation to use user's timezone 2022-12-01 13:46:21 +02:00
Pēteris Caune
34bd608acd
Update Profile.send_report to prepare weekly totals for weekly reports
Fixes: #736
2022-11-30 11:51:00 +02:00
seidnerj
c82c1a3a4a
Added duration to ping details (#720)
* Added duration to ping details. This is useful on a device with a small screen, since the duration cannot be seen in the main view so now one can see it in the ping's details.
* Changed terms across the board from "delta" to "duration"
* timedelta is now consistently imported as "td" across the entire project (even in Django generated migration files)
2022-11-01 09:18:34 +02:00
Pēteris Caune
161430fb10
Sort imports and add "from __future__ import annotations" 2022-10-17 16:52:15 +03:00
Pēteris Caune
218798b8d2
Fix mypy warnings 2022-08-17 14:21:00 +03:00
Pēteris Caune
1bab426fc2
Simplify Profile.checks_from_all_projects()
Curiously, Django ORM translates the old and the new
version to the exact same SQL
2022-08-08 17:02:55 +03:00
Pēteris Caune
51fd339602
Add auto-refresh and running indicator in My Projects
Fixes: #681
2022-08-02 16:37:25 +03:00
Pēteris Caune
a4c4df976c
Split the helper class in GetHelper and CreateHelper 2022-06-19 11:30:37 +03:00
Pēteris Caune
f7b4a6d71c
Remove support for unsigned login tokens 2022-05-30 16:59:13 +03:00
Pēteris Caune
c1ff8875e3
Implement login link expiration
Login links will now expire in 1 hour.
2022-05-30 15:48:51 +03:00
Pēteris Caune
6790d867a6
Add address verification step in the "Change Email" flow
A similar issue has come up multiple times: the user
changes account's email address, enters a bad address
by mistake, and gets locked out of their account.

This commit adds an extra step in the "Change Email" flow:

* In "Account Settings", user clicks on [Change Email]
* User gets a prompt for a 6-digit confirmation code, which
  has been sent to their old address. This is to prevent
  account takeover when Eve sits down at a computer where Alice
  is logged in.
* The user enters the confirmation code, and a "Change Email"
  form loads.
* The user enters their new email address.
* (The new step!) Instead of changing the email right away,
  we send a special login link to user's specified new address.
* (The new step, continued) The user clicks on the login link,
  their account's email address gets updated, and they get
  logged in.

The additional step makes sure the user can receive email
at their new address. If they cannot receive email there,
they cannot complete the "Change Email" procedure.
2022-05-20 17:54:45 +03:00
Pēteris Caune
62c631a1e8
Increase the default profile limits
Accounts on self-hosted instances should have "unlimited" limits.
I had originally assumed 500 checks should be *enough for everybody*,
but in practice people do have accounts with 1000+ checks,
and may want to do scale testing with even more checks
(see #649). This commit raises the "unlimited" limits higher
to make it less likely users bump into them.
2022-05-07 20:51:07 +03:00
Pēteris Caune
8b0cbde680
Remove X-Bounce-Url from report email headers (unused) 2022-02-21 11:10:55 +02:00
Pēteris Caune
a155f40861
Upgrade to Django 4
Replace usages of pytz with zoneinfo, upgrade to cronsim==2.0,
which is compatible with zoneinfo.
2022-01-05 16:01:48 +02:00
Pēteris Caune
ea7535775c
Switch to "from django.utils.timezone import now" 2021-12-11 10:43:26 +02:00
Pēteris Caune
3dfdbc09ca
Add ability to create/revoke individual keys 2021-09-09 14:55:17 +03:00
Pēteris Caune
5b9008e321
Implement alternative ping URLs, WIP 2021-09-09 09:32:10 +03:00