Skip to content
GitLab
Explore
Sign in
Commits on Source (1)
Why coding something custom when Django implements it natively?
· c37a6eff
ynerant
authored
May 08, 2020
c37a6eff
Hide whitespace changes
Inline
Side-by-side
apps.py
View file @
c37a6eff
...
...
@@ -7,7 +7,3 @@ from django.core.signals import got_request_exception
class
ScriptsConfig
(
AppConfig
):
name
=
'
scripts
'
def
ready
(
self
):
from
.
import
signals
got_request_exception
.
connect
(
signals
.
send_mail_on_exception
)
signals.py
deleted
100644 → 0
View file @
f0aa4269
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later
import
os
import
sys
from
django.conf
import
settings
from
django.core.mail
import
send_mail
from
django.template.loader
import
render_to_string
from
django.views.debug
import
ExceptionReporter
def
send_mail_on_exception
(
request
,
**
kwargs
):
"""
When an error occurs on the Note Kfet, a mail is automatically sent to the webmasters.
"""
if
settings
.
DEBUG
:
# Don't need to send a mail in debug mode, errors are already displayed in console and in the response view.
return
try
:
exc_info
=
sys
.
exc_info
()
exc_type
=
exc_info
[
0
]
exc
=
exc_info
[
1
]
tb
=
exc_info
[
2
]
reporter
=
ExceptionReporter
(
request
=
request
,
exc_type
=
exc_type
,
exc_value
=
exc
,
tb
=
tb
)
note_sender
=
os
.
getenv
(
"
NOTE_MAIL
"
,
"
notekfet@example.com
"
)
webmaster
=
os
.
getenv
(
"
WEBMASTER_MAIL
"
,
"
notekfet@example.com
"
)
message
=
render_to_string
(
'
scripts/mail-error500.txt
'
,
context
=
{
"
error
"
:
reporter
.
get_traceback_text
()})
message_html
=
render_to_string
(
'
scripts/mail-error500.html
'
,
context
=
{
"
error
"
:
reporter
.
get_traceback_html
()})
send_mail
(
"
Erreur dans la Note Kfet
"
,
message
,
note_sender
,
[
webmaster
],
html_message
=
message_html
)
except
BaseException
as
e
:
sys
.
stderr
.
write
(
"
Une erreur est survenue lors de l
'
envoi d
'
un mail, pour signaler une erreur.
"
)
raise
e