diff --git a/mo/util_dsn.py b/mo/util_dsn.py new file mode 100644 index 0000000000000000000000000000000000000000..b442e2561d4656561cdd89a710c473a8901eed6c --- /dev/null +++ b/mo/util_dsn.py @@ -0,0 +1,28 @@ +# Utility na práci s mailovými nedoručenkami + +from typing import Optional + + +dsn_explanation = { + '4.2.2': 'schránka je plná', + '4.4.1': 'server nepřijímá spojení', + '5.1.1': 'adresa neexistuje', + '5.1.10': 'doména nepřijímá poštu', # Null MX + '5.2.1': 'schránka je zablokována', + '5.2.2': 'schránka je plná', + '5.4.1': 'server nepřijímá spojení', + '5.4.6': 'cyklické přeposílání pošty', + '5.4.14': 'cyklické přeposílání pošty', # nestandardní status od MS Exchange + '5.7.1': 'příjem pošty zakázán pravidly cílové sítě', +} + + +def format_dsn_status(status: Optional[str]) -> str: + if not status: + return '–' + else: + explain = dsn_explanation.get(status) + if explain: + return f'{status} – {explain}' + else: + return status diff --git a/mo/web/jinja.py b/mo/web/jinja.py index 2a890c51434ce4960bc27fdb3557ba42af5460f5..6df9522b145eeed32face2372f84428444e8bdcd 100644 --- a/mo/web/jinja.py +++ b/mo/web/jinja.py @@ -14,6 +14,7 @@ import mo.place_level import mo.points from mo.rights import Right from mo.util import assert_not_none +from mo.util_dsn import format_dsn_status import mo.util_format as util_format from mo.web import app from mo.web.org_place import place_breadcrumbs @@ -69,6 +70,7 @@ jg.update(Right=Right) jg.update(place_breadcrumbs=place_breadcrumbs) # Funkce asset_url se přidává v mo.ext.assets +jf.update(dsn_status=format_dsn_status) jf.update(user_url=user_url) diff --git a/mo/web/templates/parts/dsn.html b/mo/web/templates/parts/dsn.html index 5feed0194e76aad13702ad877ab671823276a3a6..f7260c86299e87ae8124f016eeb7c069791d4610 100644 --- a/mo/web/templates/parts/dsn.html +++ b/mo/web/templates/parts/dsn.html @@ -8,7 +8,7 @@ <td>{{ dsn.arrived_at|time_and_timedelta }} <tr> <th>Kód chyby - <td>{{ dsn.status }} + <td>{{ dsn.status|dsn_status }} <tr> <th>Chybová zpráva <td>{{ dsn.diag_code|or_dash }}