Commit graph

517 commits

Author SHA1 Message Date
Pēteris Caune
7ef18cd706
Fix type warning and upgrade django-stubs-ext 2024-05-27 15:59:18 +03:00
Pēteris Caune
d56105e670
Update Slack integration to use channel name as the integration name
Fixes: #1003
2024-05-27 15:54:30 +03:00
Pēteris Caune
5202938b9c
Update log entry template to show body before UA 2024-05-10 16:09:13 +03:00
Pēteris Caune
4e108073ac
Add handling for Discord "max num of webhooks reached" OAuth response 2024-04-22 10:50:51 +03:00
Pēteris Caune
bd64fab619
Fix hc.front.views.docs_search to handle AND/OR/NOT as query strings 2024-04-18 15:36:48 +03:00
Pēteris Caune
28fdfd1362
Change Channel.notify() signature to take Flip object as an argument
... and pass it to Transport.notify_flip().

This allows us to pass flip-specific information (the flip timestamp,
the new status) to transport classes.
2024-04-12 13:54:16 +03:00
Pēteris Caune
b3bd21a408
Fix the sorting of events with identical timestamps
If timestamps are equal, put flips chronologically after pings.
We are showing events in reverse chronological order (newer
events at the top), so the flips will now display
*above* the pings that caused them.
2024-04-10 14:50:31 +03:00
Pēteris Caune
9bb5656d40
Implement dynamic favicon in the projects overview page
cc: #971
2024-04-10 14:36:42 +03:00
Pēteris Caune
27c065230a
Switch back to using integer timestamps in the log page
The live-updating code still needs float timestamps, but
we only need them for the most recent event (so we know
the lower threshold for fetching new events). We now send
the float timestamp separately:

* in the `/log/` view, we put it in HTML content, in a <script> tag
* in the `/log_events/` view we put it in response header

The main benefit of this is smaller response sizes for the
`/log/` and `/log_events/` views.
2024-04-09 14:24:43 +03:00
Pēteris Caune
d7948d9939
Show status changes (flips) in check's log page
Fixes: #447
2024-04-09 12:39:42 +03:00
Pēteris Caune
b5364651ee
Increase the event limit in the details page from 20 to 30 2024-03-21 14:52:46 +02:00
Pēteris Caune
9c5ee74c20
Improve tests 2024-03-21 14:34:50 +02:00
Pēteris Caune
b9e788b9c6
Change log_events response content type from JSON to HTML 2024-03-21 13:21:09 +02:00
Pēteris Caune
3026162a85
Fix date bounds check in log_events
log_events was using Check.created as the lower bound.
If a check has many pings, we need to use the oldest
visible ping's date as the lower bound, otherwise
we may return notifications older than the oldest visible
ping.
2024-03-21 11:37:46 +02:00
Pēteris Caune
855fac0973
Implement filtering by event type in the Log page
Fixes: #873
2024-03-21 11:04:45 +02:00
Pēteris Caune
47894f6add
Rearrange the log page to make room for more filters
* Switch from nouislider to simpler <input type="range">
* Move it to a sidebar

Also, fix a bug in _get_events where the "start" local variable
got clobbered, and made the date range for the Notification
query wrong.
2024-03-19 18:47:13 +02:00
Pēteris Caune
b0c0c1d8c3
Fix top nav in the badges page 2024-03-01 12:36:29 +02:00
Pēteris Caune
af6731a24f
Fix code to use project.check_set instead of Check.objects.filter(...)
No functional difference, just cleaner.
2024-02-28 10:01:52 +02:00
Pēteris Caune
1322bb1123
Add support for per-check status badges
Fixes: #853
2024-02-27 12:55:51 +02:00
Pēteris Caune
4959856e58
Redesign the "Status Badges" page 2024-02-26 12:34:26 +02:00
Michael Boateng
9770bc1ea0
Add auto-refresh functionality to log page (#963)
Add auto-refresh functionality to log page

Fixes: #957

---------

Co-authored-by: Pēteris Caune <cuu508@gmail.com>
2024-02-23 11:36:31 +02:00
Michael Boateng
6bfd9c901c
Make grace time editable when job is created (#953)
Fixes: #945
2024-02-08 15:34:52 +02:00
Pēteris Caune
16450a66c7
Add tooltips to tag buttons in the checks list screen
Fixes: #911
2024-01-22 15:20:09 +02:00
Pēteris Caune
9b27600cbe
Fix oncalendar_preview to require a logged in user 2023-12-13 12:55:12 +02:00
Pēteris Caune
0abfe58cef
Implement OnCalendar schedules in the "Add Check" dialog 2023-12-08 12:02:01 +02:00
Pēteris Caune
fa7e37360f
Tweak the number of iterations in oncalendar preview 2023-12-06 16:34:48 +02:00
Pēteris Caune
d65f41d192
Add support for systemd's OnCalendar schedules
(work-in-progress)

cc: #919
2023-12-06 15:42:57 +02:00
Pēteris Caune
18e1a3d9e4
Update Pushover onboarding code to generate lowercase state values
Since recently, Pushover seems to return them converted
to lowercase, this is a workaround for that.
2023-11-27 14:52:19 +02:00
Pēteris Caune
49d6f3fe5b
Fix "Ping Details" dialog to handle email bodies not yet uploaded to S3 2023-11-10 12:49:10 +02:00
Pēteris Caune
d7a2e24ccf
Replace "Slack integration" with "{site_name} integration for Slack" 2023-11-03 09:07:58 +02:00
Pēteris Caune
f73e4520fd
Update tests to check if logger.warning() gets called 2023-11-01 12:14:30 +02:00
Pēteris Caune
dea66b85af
Switch to using Pydantic for parsing ntfy configuration
Also, fix a bug in the "Edit ntfy integration" form,
where the token was not filled in the form on page load.
2023-10-26 10:32:41 +03:00
Pēteris Caune
65eddaacd6
Improve API error handling in hc.front.views.add_linenotify_complete 2023-10-25 14:46:57 +03:00
Pēteris Caune
bff59c92ed
Improve API error handling in hc.front.views.trello_settings 2023-10-25 14:20:51 +03:00
Pēteris Caune
da22899cd6
Improve OAuth error handling in hc.front.views.add_discord_complete 2023-10-25 13:49:14 +03:00
Pēteris Caune
511863594c
Improve OAuth error handling in hc.front.views.add_slack_complete 2023-10-25 13:40:56 +03:00
Pēteris Caune
cf552c86cb
Switch to using Pydantic for validating Pushbullet OAuth responses 2023-10-23 08:52:31 +03:00
Pēteris Caune
30a3a784c3
Move AuthenticatedHttpRequest to hc.accounts.http module
If AuthenticatedHttpRequest lives in the hc.lib.typealias
module then hc.lib.typealias imports User and Profile,
and so needs configured Django settings. Most of the stuff
in hc.lib is intended to work standalone, and not rely on Django.
2023-10-21 18:16:48 +03:00
Pēteris Caune
470f70b164
Update curl.get and curl.post to closer match requests fn signatures
In requests, "params" is a positional argument for the get function:

    requests.get(url, params=None, **kwargs)

So I made params positional here too.

In requests, "data" is a positional argument for the post function:

    requests.post(url, data=None, json=None, **kwargs)

So I data positional here too.
2023-10-21 11:45:45 +03:00
Pēteris Caune
52ab8c4703
Improve type hints in hc.lib.curl and hc.api.transports
This results in changes in other places too:

* curl.post() does not accept `data` as positional arg,
  it must now be a keyword argument
* we need asserts and if clauses in a few places to make sure
  we are not passing `None` in the arguments to hc.lib.curl.request
2023-10-20 19:11:08 +03:00
Pēteris Caune
bb7632f467
Fix mypy warning 2023-10-17 16:15:37 +03:00
Pēteris Caune
42a137e128
Switch to pydantic for validating Telegram incoming webhooks 2023-10-17 16:10:35 +03:00
Pēteris Caune
7b03e1f95b
Fix mypy warning 2023-10-12 11:55:47 +03:00
Pēteris Caune
2276fcff60
Rename my_checks -> checks; my_checks_desktop -> checks_table 2023-10-12 11:48:42 +03:00
Pēteris Caune
12114c647e
Fix channel sorting in the "my checks" page to show groups first 2023-10-12 11:43:20 +03:00
Florian Apolloner
ca10841503
Fix mypy warnings in hc.font.views (#904) 2023-10-06 17:39:20 +03:00
Pēteris Caune
4fc6ff5c26
Tweak CSS in the group form, make sure channel's name is preloaded 2023-10-06 17:06:41 +03:00
Florian Apolloner
7057f6d3a5
Notification groups. Fixes #894 (#901)
* MVP for notification groups.

* Addressed review comments.

* Push notification group to the front.

* Updated icons.

* Reduce code duplication.

* Show groups at the top.

* Add label to group forms.

* Add checkboxes for integration selection.

* CSS for checkboxes.

* Added tests for group notify.
2023-10-06 17:02:41 +03:00
Pēteris Caune
dcf9f327f6
Add Channel.email property
It replaces:

* Channel.email_value
* Channel.email_notify_up
* Channel.email_notify_down
2023-09-11 11:45:25 +03:00
Pēteris Caune
cf4498eca2
Add Channel.phone property
It has typed fields: value, notify_up, notify_down.
It replaces:

* Channel.phone_number
* Channel.sms_notify_up
* Channel.sms_notify_down
* Channel.whatsapp_notify_up
* Channel.whatsapp_notify_down
* Channel.signal_notify_up
* Channel.signal_notify_down
2023-09-09 11:09:52 +03:00