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 1 year 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 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}

2
korektury/views.py

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

13
mamweb/settings_common.py

@ -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

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

4
personalni/models.py

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

2
tvorba/models.py

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

5
various/autentizace/utils.py

@ -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,
) )

2
various/autentizace/views.py

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

6
vysledkovky/utils.py

@ -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…
Cancel
Save