Browse Source

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ů)
v3
Jonas Havelka 9 months ago
parent
commit
cb924f846f
  1. 5
      korektury/admin.py
  2. 2
      korektury/views.py
  3. 13
      mamweb/settings_common.py
  4. 3
      odevzdavatko/views.py
  5. 4
      personalni/models.py
  6. 2
      tvorba/models.py
  7. 5
      various/autentizace/utils.py
  8. 2
      various/autentizace/views.py
  9. 6
      vysledkovky/utils.py

5
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}

2
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):

13
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

3
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()

4
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)

2
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' \

5
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í?
)
from_email=settings.REGISTRACE_EMAIL,
)

2
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'

6
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))

Loading…
Cancel
Save