diff --git a/seminar/models.py b/seminar/models.py index 8f83e8b7..ea81f791 100644 --- a/seminar/models.py +++ b/seminar/models.py @@ -12,7 +12,7 @@ from django.utils import timezone from django.conf import settings from django.utils.encoding import force_text from django.utils.text import slugify -from django.urls import reverse +from django.urls import reverse, reverse_lazy from django.core.cache import cache from django.core.exceptions import ObjectDoesNotExist, ValidationError from django.contrib.contenttypes.models import ContentType @@ -46,7 +46,7 @@ class SeminarModelBase(models.Model): return False # def get_absolute_url(self): - # return self.verejne_url() # TODO "absolute" + # return "https://" + str(get_current_site(None)) + self.verejne_url() def admin_url(self): model_name = self.__class__.__name__.lower() @@ -575,6 +575,9 @@ class Cislo(SeminarModelBase): def verejne_url(self): return reverse('seminar_cislo', kwargs={'rocnik': self.rocnik.rocnik, 'cislo': self.poradi}) + def absolute_url(self): + return "https://" + str(get_current_site(None)) + self.verejne_url() + def nasledujici(self): "Vrací None, pokud je toto poslední" return self.relativni_v_rocniku(1) @@ -643,7 +646,7 @@ class Cislo(SeminarModelBase): def posli_cislo_mailem(self): # parametry e-mailu - odkaz = "https://" + str(get_current_site(None)) + self.verejne_url() + odkaz = self.absolute_url() poslat_z_mailu = 'zadani@mam.mff.cuni.cz' predmet = 'Vyšlo číslo {}'.format(self.kod()) @@ -1115,6 +1118,12 @@ class Reseni(SeminarModelBase): zverejneno = models.BooleanField('řešení zveřejněno', default=False, help_text='Udává, zda je řešení zveřejněno') + def verejne_url(self): + return str(reverse_lazy('odevzdavatko_detail_reseni', args=[self.object.id])) + + def absolute_url(self): + return "https://" + str(get_current_site(None)) + self.verejne_url() + # má OneToOneField s: # Konfera diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index 98c3483a..b9cf6a3d 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -1103,7 +1103,7 @@ class NahrajReseniView(LoginRequiredMixin, CreateView): send_mail( subject="Nové řešení k " + seznam_do_subjectu, - message=f"Řešitel{ '' if resitel.pohlavi_muz else 'ka' } { resitel } právě nahrál{'' if resitel.pohlavi_muz else 'a' } nové řešení k { seznam }.\n\nHurá do opravování: { 'https://%s%s' % (str(get_current_site(self.request)), str(reverse_lazy('odevzdavatko_detail_reseni', args=[self.object.id]))) }", + message=f"Řešitel{ '' if resitel.pohlavi_muz else 'ka' } { resitel } právě nahrál{'' if resitel.pohlavi_muz else 'a' } nové řešení k { seznam }.\n\nHurá do opravování: { self.object.absolute_url() }", from_email="submitovatko@mam.mff.cuni.cz", # FIXME: Chceme to mít radši tady, nebo v nastavení? recipient_list=list(prijemci), )