Vytáhnuty konstanty do settings_common.py
(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ů)
This commit is contained in:
parent
206d37e21c
commit
cb924f846f
9 changed files with 28 additions and 14 deletions
|
@ -1,3 +1,4 @@
|
||||||
|
from django.conf import settings
|
||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from reversion.admin import VersionAdmin
|
from reversion.admin import VersionAdmin
|
||||||
from korektury.models import KorekturovanePDF
|
from korektury.models import KorekturovanePDF
|
||||||
|
@ -40,8 +41,8 @@ class KorekturovanePDFAdmin(VersionAdmin):
|
||||||
super().save_model(request, obj, form, change)
|
super().save_model(request, obj, form, change)
|
||||||
if not change and obj.poslat_mail: # Je nový a má se poslat mail
|
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}))
|
odkaz = request.build_absolute_uri(reverse('korektury', kwargs={'pdf': obj.id}))
|
||||||
odesilatel = 'korekturovatko-nove-pdf@mam.mff.cuni.cz'
|
odesilatel = settings.KOREKTURY_NOVE_PDF_EMAIL
|
||||||
prijemce = 'org@mam.mff.cuni.cz'
|
prijemce = settings.KONFERA_ORGOVE_EMAIL
|
||||||
predmet = f'Nové korektury: {obj.nazev}'
|
predmet = f'Nové korektury: {obj.nazev}'
|
||||||
text = f'''\
|
text = f'''\
|
||||||
V korekturovátku se objevil nový soubor: {obj.nazev}
|
V korekturovátku se objevil nový soubor: {obj.nazev}
|
||||||
|
|
|
@ -161,7 +161,7 @@ class KorekturyView(generic.TemplateView):
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
odkaz = self.request.build_absolute_uri(reverse('korektury', kwargs={'pdf': oprava.pdf.pk}))
|
odkaz = self.request.build_absolute_uri(reverse('korektury', kwargs={'pdf': oprava.pdf.pk}))
|
||||||
odkaz = f"{odkaz}#op{oprava.id}-pointer"
|
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)
|
subject = 'Nová korektura od {} v {}'.format(autor, oprava.pdf.nazev)
|
||||||
texty = [(oprava.autor.osoba.plne_jmeno(),oprava.text)]
|
texty = [(oprava.autor.osoba.plne_jmeno(),oprava.text)]
|
||||||
for kom in Komentar.objects.filter(oprava=oprava):
|
for kom in Komentar.objects.filter(oprava=oprava):
|
||||||
|
|
|
@ -155,7 +155,18 @@ CISLO_IMG_DIR = os.path.join('cislo', 'img')
|
||||||
|
|
||||||
|
|
||||||
# MaM-specifické konstanty
|
# 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
|
# CKEditor = WYSIWYG html editor
|
||||||
|
|
|
@ -10,6 +10,7 @@ from django.shortcuts import redirect, get_object_or_404, render
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from django.db.models import Q
|
from django.db.models import Q
|
||||||
|
from django.conf import settings
|
||||||
|
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
import datetime
|
import datetime
|
||||||
|
@ -503,7 +504,7 @@ class NahrajReseniView(LoginRequiredMixin, CreateView):
|
||||||
EmailMessage(
|
EmailMessage(
|
||||||
subject="Nové řešení k " + seznam_do_subjectu,
|
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() }",
|
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),
|
to=list(prijemci),
|
||||||
).send()
|
).send()
|
||||||
|
|
||||||
|
|
|
@ -302,7 +302,7 @@ class Resitel(SeminarModelBase):
|
||||||
# - proto se započítávají dvojnásobně a byly posunuté hranice titulů
|
# - 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.
|
# - 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
|
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)
|
novejsi_hodnoceni = Hodnoceni.objects.filter(reseni__in=self.reseni_set.all()).difference(hodnoceni_do_25_rocniku)
|
||||||
|
|
||||||
def body_z_hodnoceni(hh : list):
|
def body_z_hodnoceni(hh : list):
|
||||||
|
@ -340,7 +340,7 @@ class Resitel(SeminarModelBase):
|
||||||
return Titul.akad
|
return Titul.akad
|
||||||
|
|
||||||
from odevzdavatko.models import Hodnoceni
|
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(
|
novejsi_body = body_z_hodnoceni(
|
||||||
Hodnoceni.objects.filter(reseni__in=self.reseni_set.all())
|
Hodnoceni.objects.filter(reseni__in=self.reseni_set.all())
|
||||||
.difference(hodnoceni_do_26_rocniku)
|
.difference(hodnoceni_do_26_rocniku)
|
||||||
|
|
|
@ -267,7 +267,7 @@ class Cislo(SeminarModelBase):
|
||||||
# parametry e-mailu
|
# parametry e-mailu
|
||||||
odkaz = self.absolute_url()
|
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())
|
predmet = 'Vyšlo číslo {}'.format(self.kod())
|
||||||
# TODO Možná nechceme všem psát „Ahoj“, např. příjemcům…
|
# TODO Možná nechceme všem psát „Ahoj“, např. příjemcům…
|
||||||
text_mailu = 'Ahoj,\n' \
|
text_mailu = 'Ahoj,\n' \
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
from django.conf import settings
|
||||||
from django.contrib.auth.tokens import PasswordResetTokenGenerator
|
from django.contrib.auth.tokens import PasswordResetTokenGenerator
|
||||||
from django.contrib.sites.shortcuts import get_current_site
|
from django.contrib.sites.shortcuts import get_current_site
|
||||||
from django.urls import reverse_lazy
|
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.
|
Tento e-mail byl vygenerován automaticky, chceš-li nás kontaktovat, napiš nám na adresu mam@matfyz.cz.
|
||||||
""" % url,
|
""" % url,
|
||||||
# TODO: templates/autentizace a django/contrib/auth/forms.py říkají, jak na to lépe
|
# 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í?
|
from_email=settings.REGISTRACE_EMAIL,
|
||||||
)
|
)
|
||||||
|
|
|
@ -33,7 +33,7 @@ class PasswordResetView(auth_views.PasswordResetView):
|
||||||
""" Chci resetovat heslo. """
|
""" Chci resetovat heslo. """
|
||||||
template_name = 'autentizace/reset_hesla.html'
|
template_name = 'autentizace/reset_hesla.html'
|
||||||
success_url = reverse_lazy('reset_password_done')
|
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'
|
email_template_name = 'autentizace/password_reset_email.html'
|
||||||
subject_template_name = 'autentizace/password_reset_subject.txt'
|
subject_template_name = 'autentizace/password_reset_subject.txt'
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,8 @@ import abc
|
||||||
from functools import cached_property
|
from functools import cached_property
|
||||||
from typing import Union, Iterable # TODO: s pythonem 3.10 přepsat na '|'
|
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 tvorba.models import Rocnik, Cislo, Deadline, Problem, Clanek
|
||||||
from odevzdavatko.models import Hodnoceni
|
from odevzdavatko.models import Hodnoceni
|
||||||
from personalni.models import Resitel
|
from personalni.models import Resitel
|
||||||
|
@ -9,8 +11,6 @@ from soustredeni.models import Konfera
|
||||||
from django.db.models import Q, Sum
|
from django.db.models import Q, Sum
|
||||||
from personalni.utils import resi_v_rocniku
|
from personalni.utils import resi_v_rocniku
|
||||||
|
|
||||||
ROCNIK_ZRUSENI_TEMAT = 25
|
|
||||||
|
|
||||||
|
|
||||||
class FixedIterator:
|
class FixedIterator:
|
||||||
def next(self):
|
def next(self):
|
||||||
|
@ -351,7 +351,7 @@ class VysledkovkaCisla(Vysledkovka):
|
||||||
|
|
||||||
@cached_property
|
@cached_property
|
||||||
def temata_a_spol(self) -> list[Problem]:
|
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
|
return self.hlavni_problemy
|
||||||
else:
|
else:
|
||||||
return list(filter(self.ne_clanek_ne_konfera, self.hlavni_problemy))
|
return list(filter(self.ne_clanek_ne_konfera, self.hlavni_problemy))
|
||||||
|
|
Loading…
Reference in a new issue