Browse Source

Reforma nastavení zasílání poštou

pull/28/head
Jonas Havelka 1 year ago
parent
commit
c97a841041
  1. 7
      personalni/views.py
  2. 42
      seminar/migrations/0112_resitel_zasilat_cislo_papirove.py
  3. 2
      seminar/models/personalni.py
  4. 4
      seminar/models/tvorba.py
  5. 2
      seminar/templates/seminar/archiv/obalky.tex
  6. 2
      seminar/utils.py

7
personalni/views.py

@ -165,6 +165,7 @@ def resitelEditView(request):
resitel_edit.rok_maturity = fcd['rok_maturity']
resitel_edit.zasilat = fcd['zasilat']
resitel_edit.zasilat_cislo_emailem = fcd['zasilat_cislo_emailem']
resitel_edit.zasilat_cislo_papirove = fcd['zasilat_cislo_papirove']
if fcd.get('skola'):
resitel_edit.skola = fcd['skola']
else:
@ -267,7 +268,8 @@ def prihlaskaView(request):
prezdivka_resitele=fcd['prezdivka_resitele'],
rok_maturity = fcd['rok_maturity'],
zasilat = fcd['zasilat'],
zasilat_cislo_emailem = fcd['zasilat_cislo_emailem']
zasilat_cislo_emailem = fcd['zasilat_cislo_emailem'],
zasilat_cislo_papirove = fcd['zasilat_cislo_papirove'],
)
if fcd.get('skola'):
@ -284,7 +286,7 @@ def prihlaskaView(request):
except m.Resitel.DoesNotExist:
# Stejný trik:
orig_resitel = r
resitel_attrs = ['skola', 'rok_maturity', 'zasilat', 'zasilat_cislo_emailem']
resitel_attrs = ['skola', 'rok_maturity', 'zasilat', 'zasilat_cislo_emailem', 'zasilat_cislo_papirove']
for attr in resitel_attrs:
new = getattr(r, attr)
old = getattr(orig_resitel, attr)
@ -345,6 +347,7 @@ def dataResiteluCsvResponse(queryset, columns=None, with_header=True):
'rok_maturity',
'zasilat',
'zasilat_cislo_emailem',
'zasilat_cislo_papirove',
'osoba__datum_registrace',
'osoba__datum_souhlasu_udaje',
'osoba__datum_souhlasu_zasilani',

42
seminar/migrations/0112_resitel_zasilat_cislo_papirove.py

@ -0,0 +1,42 @@
# Generated by Django 2.2.28 on 2023-03-13 22:02
from django.db import migrations, models
ZASILAT_DOMU = 'domu'
ZASILAT_DO_SKOLY = 'do_skoly'
ZASILAT_NIKAM = 'nikam'
def default_zasilat_papirove(apps, schema_editor):
Resitel = apps.get_model('seminar', 'Resitel')
for resitel in Resitel.objects.all():
resitel.zasilat_cislo_papirove = resitel.zasilat != ZASILAT_NIKAM
if resitel.zasilat == ZASILAT_NIKAM:
resitel.zasilat = ZASILAT_DOMU if resitel.osoba.ulice else ZASILAT_DO_SKOLY
resitel.save()
def vrat_nikam(apps, schema_editor):
Resitel = apps.get_model('seminar', 'Resitel')
for resitel in Resitel.objects.all():
if not resitel.zasilat_cislo_papirove:
resitel.zasilat = ZASILAT_NIKAM
resitel.save()
class Migration(migrations.Migration):
dependencies = [
('seminar', '0111_nikam2nezasilat_papirove'),
]
operations = [
migrations.AddField(
model_name='resitel',
name='zasilat_cislo_papirove',
field=models.BooleanField(default=True, help_text='True pokud chce řešitel dostávat číslo papírově', verbose_name='zasílat číslo papírově'),
),
migrations.RunPython(default_zasilat_papirove, vrat_nikam),
]

2
seminar/models/personalni.py

@ -236,6 +236,8 @@ class Resitel(SeminarModelBase):
zasilat_cislo_emailem = models.BooleanField('zasílat číslo emailem', help_text='True pokud chce řešitel dostávat číslo emailem', default=False)
zasilat_cislo_papirove = models.BooleanField('zasílat číslo papírově', help_text='True pokud chce řešitel dostávat číslo papírově', default=True)
poznamka = models.TextField('neveřejná poznámka', blank=True,
help_text='Neveřejná poznámka k řešiteli (plain text)')

4
seminar/models/tvorba.py

@ -290,9 +290,9 @@ class Cislo(SeminarModelBase):
paticka = "---\nK odběru těchto e-mailů jste se přihlásili na stránkách https://mam.matfyz.cz. Z odběru se lze odhlásit na https://mam.matfyz.cz/resitel/osobni-udaje/"
posli(text_mailu + paticka, resitele_vsichni.filter(zasilat=pm.Resitel.ZASILAT_NIKAM))
posli(text_mailu + paticka, resitele_vsichni.filter(zasilat=pm.Resitel.zasilat_cislo_papirove))
posli(text_mailu + 'P. S. Brzy budeme též rozesílat papírovou verzi čísla. 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. Čísla vždy můžete nalézt v našem archivu a dál vám budou chodit e-mailem. Děkujeme.\n' + paticka,
resitele_vsichni.exclude(zasilat=pm.Resitel.ZASILAT_NIKAM))
resitele_vsichni.exclude(zasilat=pm.Resitel.zasilat_cislo_papirove))
def save(self, *args, **kwargs):
super().save(*args, **kwargs)

2
seminar/templates/seminar/archiv/obalky.tex

@ -100,6 +100,7 @@
{% with o=r.osoba %}
{% with s=r.skola %}
{% spaceless %}
{% if r.zasilat_cislo_papirove %}
{% if r.zasilat == "do_skoly" %}
{% if o.stat == "CZ" %}
\obalka{{o.jmeno|sloz}}{{o.prijmeni|sloz}}{{s.nazev|sloz}}{{s.ulice|sloz}}{{s.psc|sloz}}{{s.mesto|sloz}}{{''|sloz}}
@ -115,6 +116,7 @@
{% endif %}
{% else %}
{% endif %}
{% endif %}
{% endspaceless %}
{% endwith %}
{% endwith %}

2
seminar/utils.py

@ -265,7 +265,7 @@ def merge_resitele(cilovy, zdrojovy):
# Postup:
# Sjednotit / upravit informace cílového řešitele
print('Upravuji data modelu')
fieldy_shoda = ['skola', 'rok_maturity', 'zasilat', 'zasilat_cislo_emailem']
fieldy_shoda = ['skola', 'rok_maturity', 'zasilat', 'zasilat_cislo_emailem', 'zasilat_cislo_papirove']
for f in fieldy_shoda:
zf = getattr(zdrojovy, f)

Loading…
Cancel
Save