Merge remote-tracking branch 'origin/master' into vylepseni_odevzdavatka
# Conflicts: # odevzdavatko/templates/odevzdavatko/detail.html
This commit is contained in:
commit
ec0174dcdd
8 changed files with 51 additions and 17 deletions
|
@ -6,4 +6,4 @@ set -exuo pipefail
|
|||
ensure_web_installed
|
||||
|
||||
trap - ERR # Testy nejspíš selžou, ale nechceme kolem toho dělat další chybovou hlášku.
|
||||
./manage.py test -v2
|
||||
./manage.py test -v2 --keepdb "$@"
|
||||
|
|
|
@ -40,7 +40,10 @@ DATABASES = {
|
|||
'default': {
|
||||
'ENGINE': 'django.db.backends.sqlite3',
|
||||
'NAME': os.path.join(BASE_DIR, 'db-local.sqlite3'),
|
||||
}
|
||||
'TEST': {
|
||||
'NAME': os.path.join(BASE_DIR, 'db-test.sqlite3'),
|
||||
},
|
||||
},
|
||||
}
|
||||
#DATABASES = {
|
||||
# 'default': {
|
||||
|
|
|
@ -82,6 +82,13 @@ class NahrajReseniForm(forms.ModelForm):
|
|||
)
|
||||
}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
# FIXME Z nějakého důvodu se do této třídy dostaneme i bez resitele
|
||||
if 'resitele' in self.fields:
|
||||
# FIXME Mnohem hezčí by to bylo u definice resitele výše, ale nepodařilo se mi to.
|
||||
self.fields['resitele'].required = False
|
||||
|
||||
ReseniSPrilohamiFormSet = inlineformset_factory(m.Reseni,m.PrilohaReseni,
|
||||
form = NahrajReseniForm,
|
||||
fields = ('soubor','res_poznamka'),
|
||||
|
|
|
@ -108,7 +108,7 @@
|
|||
<td class="bodovani">{{ h.body_celkem }}</td>
|
||||
<td class="bodovani teamovaCast">{{ h.body_neprepocitane }}</td>
|
||||
<td class="bodovani teamovaCast">{{ h.body_neprepocitane_celkem }}</td>
|
||||
<td>{{ h.feedback }}</td>
|
||||
<td>{{ h.feedback | linebreaks }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
|
|
@ -160,7 +160,7 @@ def resitelEditView(request):
|
|||
|
||||
if resitel_edit:
|
||||
## Změny v řešiteli
|
||||
resitel_edit.prezdivka_resitele = fcd['prezdivka_resitele']
|
||||
resitel_edit.prezdivka_resitele = fcd['prezdivka_resitele'] if fcd['prezdivka_resitele'] != '' else None
|
||||
resitel_edit.skola = fcd['skola']
|
||||
resitel_edit.rok_maturity = fcd['rok_maturity']
|
||||
resitel_edit.zasilat = fcd['zasilat']
|
||||
|
|
18
seminar/migrations/0111_nikam2nezasilat_papirove.py
Normal file
18
seminar/migrations/0111_nikam2nezasilat_papirove.py
Normal file
|
@ -0,0 +1,18 @@
|
|||
# Generated by Django 2.2.28 on 2023-01-30 19:14
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('seminar', '0110_resitel_prezdivka'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='resitel',
|
||||
name='zasilat',
|
||||
field=models.CharField(choices=[('domu', 'Domů'), ('do_skoly', 'Do školy'), ('nikam', 'Nezasílat papírově')], default='domu', max_length=32, verbose_name='kam zasílat'),
|
||||
),
|
||||
]
|
|
@ -229,7 +229,7 @@ class Resitel(SeminarModelBase):
|
|||
ZASILAT_CHOICES = [
|
||||
(ZASILAT_DOMU, 'Domů'),
|
||||
(ZASILAT_DO_SKOLY, 'Do školy'),
|
||||
(ZASILAT_NIKAM, 'Nikam'),
|
||||
(ZASILAT_NIKAM, 'Nezasílat papírově'),
|
||||
]
|
||||
|
||||
zasilat = models.CharField('kam zasílat', max_length=32, choices=ZASILAT_CHOICES, blank=False, default=ZASILAT_DOMU)
|
||||
|
|
|
@ -270,21 +270,27 @@ class Cislo(SeminarModelBase):
|
|||
'Vaše M&M\n'.format(odkaz)
|
||||
|
||||
# Prijemci e-mailu
|
||||
emaily = map(lambda r: r.osoba.email, filter(lambda r: r.zasilat_cislo_emailem, aktivniResitele(self)))
|
||||
resitele_vsichni = aktivniResitele(self).filter(zasilat_cislo_emailem=True)
|
||||
|
||||
if not settings.POSLI_MAILOVOU_NOTIFIKACI:
|
||||
print("Poslal bych upozornění na tyto adresy: ", " ".join(emaily))
|
||||
return
|
||||
def posli(text, resitele):
|
||||
emaily = map(lambda resitel: resitel.osoba.email, resitele)
|
||||
if not settings.POSLI_MAILOVOU_NOTIFIKACI:
|
||||
print("Poslal bych upozornění na tyto adresy: ", " ".join(emaily))
|
||||
return
|
||||
|
||||
email = EmailMessage(
|
||||
subject=predmet,
|
||||
body=text_mailu,
|
||||
from_email=poslat_z_mailu,
|
||||
bcc=list(emaily)
|
||||
#bcc = příjemci skryté kopie
|
||||
)
|
||||
email = EmailMessage(
|
||||
subject=predmet,
|
||||
body=text,
|
||||
from_email=poslat_z_mailu,
|
||||
bcc=list(emaily)
|
||||
#bcc = příjemci skryté kopie
|
||||
)
|
||||
|
||||
email.send()
|
||||
email.send()
|
||||
|
||||
posli(text_mailu, resitele_vsichni.filter(zasilat=pm.Resitel.ZASILAT_NIKAM))
|
||||
posli(text_mailu + 'P. S. Také by vám brzy měla přijít papírová verze. Připomínáme, že pokud papírovou verzi čísla nevyužijete, můžete v https://mam.mff.cuni.cz/resitel/osobni-udaje/ zaškrtnout, abychom vám ji neposílali. Děkujeme. (Čísla vždy můžete nalézt v našem archivu a dál vám budou chodit e-mailem.)\n',
|
||||
resitele_vsichni.exclude(zasilat=pm.Resitel.ZASILAT_NIKAM))
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
super().save(*args, **kwargs)
|
||||
|
|
Loading…
Reference in a new issue