From cb924f846faca2690b9f02639ec48ce01339a649 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Fri, 11 Aug 2023 11:24:57 +0200 Subject: [PATCH] =?UTF-8?q?Vyt=C3=A1hnuty=20konstanty=20do=20settings=5Fco?= =?UTF-8?q?mmon.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (Takže teď lze jednoduše měnit e-maily a také testovací data (settings_local.py) nemusí mít 30 ročníků pro otestování zlomů) --- korektury/admin.py | 5 +++-- korektury/views.py | 2 +- mamweb/settings_common.py | 13 ++++++++++++- odevzdavatko/views.py | 3 ++- personalni/models.py | 4 ++-- tvorba/models.py | 2 +- various/autentizace/utils.py | 5 +++-- various/autentizace/views.py | 2 +- vysledkovky/utils.py | 6 +++--- 9 files changed, 28 insertions(+), 14 deletions(-) diff --git a/korektury/admin.py b/korektury/admin.py index ba2f5064..e8a79679 100644 --- a/korektury/admin.py +++ b/korektury/admin.py @@ -1,3 +1,4 @@ +from django.conf import settings from django.contrib import admin from reversion.admin import VersionAdmin from korektury.models import KorekturovanePDF @@ -40,8 +41,8 @@ class KorekturovanePDFAdmin(VersionAdmin): super().save_model(request, obj, form, change) if not change and obj.poslat_mail: # Je nový a má se poslat mail odkaz = request.build_absolute_uri(reverse('korektury', kwargs={'pdf': obj.id})) - odesilatel = 'korekturovatko-nove-pdf@mam.mff.cuni.cz' - prijemce = 'org@mam.mff.cuni.cz' + odesilatel = settings.KOREKTURY_NOVE_PDF_EMAIL + prijemce = settings.KONFERA_ORGOVE_EMAIL predmet = f'Nové korektury: {obj.nazev}' text = f'''\ V korekturovátku se objevil nový soubor: {obj.nazev} diff --git a/korektury/views.py b/korektury/views.py index 47f281d1..8e4c7c02 100644 --- a/korektury/views.py +++ b/korektury/views.py @@ -161,7 +161,7 @@ class KorekturyView(generic.TemplateView): from django.urls import reverse odkaz = self.request.build_absolute_uri(reverse('korektury', kwargs={'pdf': oprava.pdf.pk})) odkaz = f"{odkaz}#op{oprava.id}-pointer" - from_email = 'korekturovatko@mam.mff.cuni.cz' + from_email = settings.KOREKTURY_EMAIL subject = 'Nová korektura od {} v {}'.format(autor, oprava.pdf.nazev) texty = [(oprava.autor.osoba.plne_jmeno(),oprava.text)] for kom in Komentar.objects.filter(oprava=oprava): diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index 802b7bb9..ef20b3b6 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -155,7 +155,18 @@ CISLO_IMG_DIR = os.path.join('cislo', 'img') # MaM-specifické konstanty -# TODO (e-maily atd.) +ROCNIK_ZRUSENI_TEMAT = 25 +ROCNIK_INFLACE_BODU = 25 +ROCNIK_INFLACE_TITULU = 26 +# +NOVE_CISLO_EMAIL = 'zadani@mam.mff.cuni.cz' +NOVE_RESENI_EMAIL = 'submitovatko@mam.mff.cuni.cz' +KOREKTURY_NOVE_PDF_EMAIL = 'korekturovatko-nove-pdf@mam.mff.cuni.cz' +KOREKTURY_EMAIL = 'korekturovatko@mam.mff.cuni.cz' +REGISTRACE_EMAIL = 'registrace@mam.mff.cuni.cz' +PASSWD_RESET_EMAIL = 'login@mam.mff.cuni.cz' +# +KONFERA_ORGOVE_EMAIL = 'org@mam.mff.cuni.cz' # CKEditor = WYSIWYG html editor diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 2dd8e6c2..0119bf87 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -10,6 +10,7 @@ from django.shortcuts import redirect, get_object_or_404, render from django.urls import reverse from django.db import transaction from django.db.models import Q +from django.conf import settings from dataclasses import dataclass import datetime @@ -503,7 +504,7 @@ class NahrajReseniView(LoginRequiredMixin, CreateView): EmailMessage( subject="Nové řešení k " + seznam_do_subjectu, body=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í? + from_email=settings.NOVE_RESENI_EMAIL, to=list(prijemci), ).send() diff --git a/personalni/models.py b/personalni/models.py index 177f3b27..113a445c 100644 --- a/personalni/models.py +++ b/personalni/models.py @@ -302,7 +302,7 @@ class Resitel(SeminarModelBase): # - proto se započítávají dvojnásobně a byly posunuté hranice titulů # - staré tituly se ale nemají odebrat, pokud řešitel v t.č. minulém (26.) ročníku měl titul, má ho mít pořád. from odevzdavatko.models import Hodnoceni - hodnoceni_do_25_rocniku = Hodnoceni.objects.filter(deadline_body__cislo__rocnik__rocnik__lte=25,reseni__in=self.reseni_set.all()) + hodnoceni_do_25_rocniku = Hodnoceni.objects.filter(deadline_body__cislo__rocnik__rocnik__lte=settings.ROCNIK_INFLACE_BODU,reseni__in=self.reseni_set.all()) novejsi_hodnoceni = Hodnoceni.objects.filter(reseni__in=self.reseni_set.all()).difference(hodnoceni_do_25_rocniku) def body_z_hodnoceni(hh : list): @@ -340,7 +340,7 @@ class Resitel(SeminarModelBase): return Titul.akad from odevzdavatko.models import Hodnoceni - hodnoceni_do_26_rocniku = Hodnoceni.objects.filter(deadline_body__cislo__rocnik__rocnik__lte=26,reseni__in=self.reseni_set.all()) + hodnoceni_do_26_rocniku = Hodnoceni.objects.filter(deadline_body__cislo__rocnik__rocnik__lte=settings.ROCNIK_INFLACE_TITULU,reseni__in=self.reseni_set.all()) novejsi_body = body_z_hodnoceni( Hodnoceni.objects.filter(reseni__in=self.reseni_set.all()) .difference(hodnoceni_do_26_rocniku) diff --git a/tvorba/models.py b/tvorba/models.py index e5bdabcf..9101404b 100644 --- a/tvorba/models.py +++ b/tvorba/models.py @@ -267,7 +267,7 @@ class Cislo(SeminarModelBase): # parametry e-mailu odkaz = self.absolute_url() - poslat_z_mailu = 'zadani@mam.mff.cuni.cz' + poslat_z_mailu = settings.NOVE_CISLO_EMAIL predmet = 'Vyšlo číslo {}'.format(self.kod()) # TODO Možná nechceme všem psát „Ahoj“, např. příjemcům… text_mailu = 'Ahoj,\n' \ diff --git a/various/autentizace/utils.py b/various/autentizace/utils.py index d8bea060..057c5e80 100644 --- a/various/autentizace/utils.py +++ b/various/autentizace/utils.py @@ -1,3 +1,4 @@ +from django.conf import settings from django.contrib.auth.tokens import PasswordResetTokenGenerator from django.contrib.sites.shortcuts import get_current_site from django.urls import reverse_lazy @@ -27,5 +28,5 @@ Organizátoři M&M Tento e-mail byl vygenerován automaticky, chceš-li nás kontaktovat, napiš nám na adresu mam@matfyz.cz. """ % url, # TODO: templates/autentizace a django/contrib/auth/forms.py říkají, jak na to lépe - from_email="registrace@mam.mff.cuni.cz", # FIXME: Chceme to mít radši tady, nebo v nastavení? - ) \ No newline at end of file + from_email=settings.REGISTRACE_EMAIL, + ) diff --git a/various/autentizace/views.py b/various/autentizace/views.py index 73b51c54..a5f22138 100644 --- a/various/autentizace/views.py +++ b/various/autentizace/views.py @@ -33,7 +33,7 @@ class PasswordResetView(auth_views.PasswordResetView): """ Chci resetovat heslo. """ template_name = 'autentizace/reset_hesla.html' success_url = reverse_lazy('reset_password_done') - from_email = 'login@mam.mff.cuni.cz' + from_email = settings.PASSWD_RESET_EMAIL email_template_name = 'autentizace/password_reset_email.html' subject_template_name = 'autentizace/password_reset_subject.txt' diff --git a/vysledkovky/utils.py b/vysledkovky/utils.py index 4e691e85..edb006a2 100644 --- a/vysledkovky/utils.py +++ b/vysledkovky/utils.py @@ -2,6 +2,8 @@ import abc from functools import cached_property from typing import Union, Iterable # TODO: s pythonem 3.10 přepsat na '|' +from django.conf import settings + from tvorba.models import Rocnik, Cislo, Deadline, Problem, Clanek from odevzdavatko.models import Hodnoceni from personalni.models import Resitel @@ -9,8 +11,6 @@ from soustredeni.models import Konfera from django.db.models import Q, Sum from personalni.utils import resi_v_rocniku -ROCNIK_ZRUSENI_TEMAT = 25 - class FixedIterator: def next(self): @@ -351,7 +351,7 @@ class VysledkovkaCisla(Vysledkovka): @cached_property def temata_a_spol(self) -> list[Problem]: - if self.rocnik.rocnik < ROCNIK_ZRUSENI_TEMAT: + if self.rocnik.rocnik < settings.ROCNIK_ZRUSENI_TEMAT: return self.hlavni_problemy else: return list(filter(self.ne_clanek_ne_konfera, self.hlavni_problemy))