Compare commits

...

4 commits

Author SHA1 Message Date
Pavel "LEdoian" Turinsky
e29bce66a4 Merge branch 'maillink' into maillink_dev_ledoian 2023-01-08 18:38:16 +01:00
Pavel "LEdoian" Turinsky
efe1b4bb5a Použití {%maillink%} v detailu řešení
Ten řádek má sice pořád 117 znaků, ale IMHO je to o dost lepší.

Mně to i správně vyplňuje subjecty v Thunderbirdu, takže můj kód asi
není úplně mimo :-)
2023-01-08 08:53:41 +01:00
Pavel "LEdoian" Turinsky
ff996c2924 Přejmenování hodnocení
Označení bylo zavádějící, protože se vůbec nejedná o objekt Hodnocení.
Neříkám, že nové jméno je nějak úchvatné, ale aspoň mě nemate a na
proměnnou s životností dva řádky je to stejně jedno…
2023-01-08 08:51:01 +01:00
Pavel 'LEdoian' Turinsky
6994db438b Přidání tagu {% maillink %}
Vyrábí odkazy, které vedou na poslání mailu.

Psal jsem to spíš po paměti, nejsem si jistý, že to takhle je přesně
podle příslušného RFC, ale jako PoC dobrý a když to nebude fungovat, tak
se implementace opraví.

Všimněte si, že to je otestované, takže když někdo opraví testy
(=předpis chování), tak je pak snadné z diffu a všeho odvodit úpravu.

V Django dokumentaci se píše něco o tom, že by se měl použít spíš
`format_html` a `conditional_escape`, ale zatím jsem to víc nezkoumal.

Je žádoucí z tagu {% maillink %} odddělit i tag {% mailurl %}, který by
vracel samotnou URL. Obojí dává smysl umět (speciálně bastlení odkazů z
URL je stejně strašně nepřehledné, takže je lepší to zavřít do {%
maillink %} a nikdy nevidět), ale zatím to oddělené není… (Ale jsou na
to testy, takže by se mělo aspoň dát poznat, že rozdělení nerozbije
chování.)
2023-01-05 04:47:50 +01:00
2 changed files with 10 additions and 3 deletions

View file

@ -1,6 +1,7 @@
{% extends "base.html" %} {% extends "base.html" %}
{% load static %} {% load static %}
{% load deadliny %} {% load deadliny %}
{% load mail %}
{% block content %} {% block content %}
@ -14,7 +15,10 @@
{% if edit %} {% if edit %}
<p>Řešitelé: <p>Řešitelé:
{% for r in object.resitele.all %}{{ r }} (<a href="mailto:{{ r.osoba.email }}?subject={{ "Oprava řešení M&M " | urlencode }}{{ object.problem.all.0.hlavni_problem | urlencode }}">{{ r.osoba.email }}</a>){% if forloop.revcounter0 != 0 %}, {% endif %}{% endfor %} {% for r in object.resitele.all %}
{{ r }}
({% maillink r.osoba.email to=r.osoba.email subject=mailsubject %}){% if forloop.revcounter0 != 0 %}, {% endif %}
{% endfor %}
</p> </p>
{% else %} {% else %}
<p>Řešitelé: {{ object.resitele.all | join:", " }}</p> <p>Řešitelé: {{ object.resitele.all | join:", " }}</p>

View file

@ -235,8 +235,11 @@ class DetailReseniView(DetailView):
def get_context_data(self, **kw): def get_context_data(self, **kw):
self.check_access() self.check_access()
ctx = super().get_context_data(**kw) ctx = super().get_context_data(**kw)
hodnoceni = self.aktualni_hodnoceni() detaily_hodnoceni = self.aktualni_hodnoceni()
ctx["hodnoceni"] = hodnoceni ctx["hodnoceni"] = detaily_hodnoceni
# Subject případného mailu (template neumí použitelně spojovat řetězce: https://stackoverflow.com/q/4386168)
ctx["mailsubject"] = "Oprava řešení M&M "+self.reseni.problem.first().hlavni_problem.nazev
return ctx return ctx
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):