Browse Source

Přesun kódu modelů personálního

v3
Jonas Havelka 1 year ago
parent
commit
ebf8165c53
  1. 2
      api/tests/test_skola_autocomplete.py
  2. 2
      api/views/autocomplete.py
  3. 2
      api/views/exports.py
  4. 3
      korektury/models.py
  5. 2
      odevzdavatko/forms.py
  6. 2
      odevzdavatko/templatetags/jmena.py
  7. 2
      odevzdavatko/views.py
  8. 2
      personalni/admin.py
  9. 2
      personalni/forms.py
  10. 8
      personalni/models.py
  11. 2
      personalni/utils.py
  12. 4
      personalni/views.py
  13. 3
      prednasky/models.py
  14. 2
      prednasky/views.py
  15. 2
      seminar/admin.py
  16. 2
      seminar/management/commands/testdata.py
  17. 1
      seminar/models/__init__.py
  18. 5
      seminar/models/novinky.py
  19. 2
      seminar/models/odevzdavatko.py
  20. 14
      seminar/models/soustredeni.py
  21. 5
      seminar/models/treenode.py
  22. 12
      seminar/models/tvorba.py
  23. 2
      seminar/testutils.py
  24. 2
      seminar/utils.py
  25. 2
      seminar/views/views_all.py
  26. 2
      soustredeni/views.py
  27. 2
      vyroci/views.py
  28. 2
      vysledkovky/utils.py

2
api/tests/test_skola_autocomplete.py

@ -1,6 +1,6 @@
from django.test import TestCase
from django.urls import reverse
from seminar.models.personalni import Skola
from personalni.models import Skola
import seminar.views as v
from seminar.utils import sync_skoly

2
api/views/autocomplete.py

@ -5,7 +5,7 @@ from dal import autocomplete
from django.shortcuts import get_object_or_404
from django.db.models import Q
from seminar.models.personalni import Skola, Resitel
from personalni.models import Skola, Resitel
from seminar.models.tvorba import Problem, Nastaveni
from .helpers import LoginRequiredAjaxMixin

2
api/views/exports.py

@ -1,4 +1,4 @@
from seminar.models.personalni import Skola
from personalni.models import Skola
from django.core import serializers as ser
from django.http import HttpResponse
def exportSkolView(request):

3
korektury/models.py

@ -16,12 +16,11 @@ import os
from django.db import models
from django.utils import timezone
from django.conf import settings
from django.utils.encoding import force_text
from django.core.exceptions import ObjectDoesNotExist
from django.utils.functional import cached_property
from django.utils.text import get_valid_filename
from seminar.models.personalni import Organizator
from personalni.models import Organizator
import subprocess
from reversion import revisions as reversion

2
odevzdavatko/forms.py

@ -4,7 +4,7 @@ from django.forms import formset_factory
from django.forms.models import inlineformset_factory
from django.utils import timezone
from seminar.models.personalni import Resitel
from personalni.models import Resitel
from seminar.models.tvorba import Problem, Deadline, Nastaveni
from seminar.models.odevzdavatko import *

2
odevzdavatko/templatetags/jmena.py

@ -2,7 +2,7 @@ from django import template
register = template.Library()
from personalni.utils import normalizuj_jmeno
from seminar.models.personalni import Osoba # jen kvůli typové anotaci…
from personalni.models import Osoba # jen kvůli typové anotaci…
@register.filter
def jmeno_jako_prefix(o: Osoba):

2
odevzdavatko/views.py

@ -18,7 +18,7 @@ import logging
from seminar.models.odevzdavatko import *
from seminar.models.tvorba import Problem, Nastaveni, Rocnik, Deadline
from seminar.models.personalni import Resitel, Organizator, Osoba
from personalni.models import Resitel, Organizator, Osoba
from . import forms as f
from .forms import OdevzdavatkoTabulkaFiltrForm as FiltrForm
from seminar.utils import resi_v_rocniku

2
personalni/admin.py

@ -1,7 +1,7 @@
from django.contrib import admin
from django.contrib.auth.models import Group
from django_reverse_admin import ReverseModelAdmin
from seminar.models.personalni import *
from .models import *
@admin.register(Osoba)

2
personalni/forms.py

@ -4,7 +4,7 @@ from django.contrib.auth.forms import PasswordResetForm
from django.core.exceptions import ObjectDoesNotExist
from django.contrib.auth.models import User
from seminar.models.personalni import *
from .models import *
from datetime import date
import logging

8
seminar/models/personalni.py → personalni/models.py

@ -11,7 +11,7 @@ from django_countries.fields import CountryField
from reversion import revisions as reversion
from .base import SeminarModelBase
from seminar.models.base import SeminarModelBase
logger = logging.getLogger(__name__)
@ -252,7 +252,7 @@ class Resitel(SeminarModelBase):
def vsechny_body(self):
"Spočítá body odjakživa."
vsechna_reseni = self.reseni_set.all()
from .odevzdavatko import Hodnoceni
from seminar.models.odevzdavatko import Hodnoceni
vsechna_hodnoceni = Hodnoceni.objects.filter(
reseni__in=vsechna_reseni)
return sum(h.body for h in list(vsechna_hodnoceni) if h.body is not None)
@ -299,7 +299,7 @@ class Resitel(SeminarModelBase):
# - body z 25. ročníku a dříve byly shledány dvakrát hodnotnějšími
# - 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 import Hodnoceni
from seminar.models.odevzdavatko import Hodnoceni
hodnoceni_do_25_rocniku = Hodnoceni.objects.filter(deadline_body__cislo__rocnik__rocnik__lte=25,reseni__in=self.reseni_set.all())
novejsi_hodnoceni = Hodnoceni.objects.filter(reseni__in=self.reseni_set.all()).difference(hodnoceni_do_25_rocniku)
@ -337,7 +337,7 @@ class Resitel(SeminarModelBase):
else:
return Titul.akad
from .odevzdavatko import Hodnoceni
from seminar.models.odevzdavatko import Hodnoceni
hodnoceni_do_26_rocniku = Hodnoceni.objects.filter(deadline_body__cislo__rocnik__rocnik__lte=26,reseni__in=self.reseni_set.all())
novejsi_body = body_z_hodnoceni(
Hodnoceni.objects.filter(reseni__in=self.reseni_set.all())

2
personalni/utils.py

@ -1,4 +1,4 @@
from seminar.models.personalni import *
from .models import *
from various.utils import bez_diakritiky_translate
import re

4
personalni/views.py

@ -9,8 +9,8 @@ from django.contrib.auth.mixins import LoginRequiredMixin
from django.db import transaction
from django.http import HttpResponse
from seminar.models.odevzdavatko import *
from seminar.models.personalni import Organizator, Resitel, Osoba
from seminar.models.odevzdavatko import Hodnoceni
from .models import *
from seminar.models.tvorba import Tema, Uloha, Clanek, Nastaveni
from seminar.models.soustredeni import Soustredeni
from .forms import PrihlaskaForm, ProfileEditForm, PoMaturiteProfileEditForm

3
prednasky/models.py

@ -1,9 +1,8 @@
from django.db import models
from django.utils.encoding import force_text
from seminar.models.soustredeni import Soustredeni
from seminar.models.personalni import Organizator
from personalni.models import Organizator
STAV_NAVRH = 1
STAV_BUDE = 2

2
prednasky/views.py

@ -7,7 +7,7 @@ from django.forms import Form
from prednasky.models import Prednaska, Hlasovani, Seznam, STAV_NAVRH
from seminar.models.soustredeni import Soustredeni
from seminar.models.personalni import Osoba
from personalni.models import Osoba
def newPrednaska(request):
# hlasovani se vztahuje k nejnovejsimu soustredeni

2
seminar/admin.py

@ -10,7 +10,7 @@ from django.utils.safestring import mark_safe
# Todo: reversion
from seminar.models.tvorba import Rocnik, Cislo, Deadline, ZmrazenaVysledkovka, Problem, Uloha, Tema, Clanek, Nastaveni
from seminar.models.personalni import Resitel
from personalni.models import Resitel
from seminar.models.soustredeni import Konfera
from seminar.models.novinky import Novinky
from seminar.models.pomocne import Text, Obrazek

2
seminar/management/commands/testdata.py

@ -7,7 +7,7 @@ from django.core.management.base import BaseCommand
from django.core.management import call_command
from django.conf import settings
from seminar.models.personalni import Skola, Resitel
from personalni.models import Skola, Resitel
from seminar.models.tvorba import Rocnik, Cislo, Problem
from seminar.models.odevzdavatko import Reseni
from seminar.testutils import create_test_data

1
seminar/models/__init__.py

@ -1,7 +1,6 @@
from .tvorba import *
from .odevzdavatko import *
from .base import *
from .personalni import *
from .soustredeni import *
from .pomocne import *
from .treenode import *

5
seminar/models/novinky.py

@ -4,7 +4,8 @@ from imagekit.processors import ResizeToFit
from reversion import revisions as reversion
from . import personalni as pm
from personalni.models import Organizator
@reversion.register(ignore_duplicates=True)
class Novinky(models.Model):
@ -26,7 +27,7 @@ class Novinky(models.Model):
],
options={'quality': 95})
autor = models.ForeignKey(pm.Organizator, verbose_name='Autor novinky', null=True,
autor = models.ForeignKey(Organizator, verbose_name='Autor novinky', null=True,
on_delete=models.SET_NULL)
zverejneno = models.BooleanField('Zveřejněno', default=False)

2
seminar/models/odevzdavatko.py

@ -10,7 +10,7 @@ from django.utils import timezone
from django.conf import settings
from seminar.models.tvorba import Cislo, Deadline, Problem, Uloha, aux_generate_filename
from seminar.models.personalni import Resitel
from personalni.models import Resitel
from seminar.models.base import SeminarModelBase

14
seminar/models/soustredeni.py

@ -7,7 +7,7 @@ from reversion import revisions as reversion
from django.conf import settings
from . import personalni as pm
from personalni.models import Resitel, Organizator
from .base import SeminarModelBase
from seminar.models.tvorba import Rocnik, Problem, aux_generate_filename
@ -41,10 +41,10 @@ class Soustredeni(SeminarModelBase):
misto = models.CharField('místo soustředění', max_length=256, blank=True, default='',
help_text='Místo (název obce, volitelně též objektu')
ucastnici = models.ManyToManyField(pm.Resitel, verbose_name='účastníci soustředění',
ucastnici = models.ManyToManyField(Resitel, verbose_name='účastníci soustředění',
help_text='Seznam účastníků soustředění', through='Soustredeni_Ucastnici')
organizatori = models.ManyToManyField(pm.Organizator,
organizatori = models.ManyToManyField(Organizator,
verbose_name='Organizátoři soustředění',
help_text='Seznam organizátorů soustředění',
through='Soustredeni_Organizatori')
@ -91,7 +91,7 @@ class Soustredeni_Ucastnici(SeminarModelBase):
# Interní ID
id = models.AutoField(primary_key = True)
resitel = models.ForeignKey(pm.Resitel, verbose_name='řešitel', on_delete=models.PROTECT)
resitel = models.ForeignKey(Resitel, verbose_name='řešitel', on_delete=models.PROTECT)
soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění',
on_delete=models.PROTECT)
@ -117,7 +117,7 @@ class Soustredeni_Organizatori(SeminarModelBase):
# Interní ID
id = models.AutoField(primary_key = True)
organizator = models.ForeignKey(pm.Organizator, verbose_name='organizátor',
organizator = models.ForeignKey(Organizator, verbose_name='organizátor',
on_delete=models.PROTECT)
soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění',
@ -162,7 +162,7 @@ class Konfera(Problem):
help_text='Abstrakt konfery tak, jak byl uveden ve sborníku')
# FIXME: Umíme omezit jen na účastníky daného soustřeďka?
ucastnici = models.ManyToManyField(pm.Resitel, verbose_name='účastníci konfery',
ucastnici = models.ManyToManyField(Resitel, verbose_name='účastníci konfery',
help_text='Seznam účastníků konfery', through='Konfery_Ucastnici')
soustredeni = models.ForeignKey(Soustredeni, verbose_name='soustředění',
@ -203,7 +203,7 @@ class Konfery_Ucastnici(models.Model):
# Interní ID
id = models.AutoField(primary_key = True)
resitel = models.ForeignKey(pm.Resitel, verbose_name='řešitel', on_delete=models.PROTECT)
resitel = models.ForeignKey(Resitel, verbose_name='řešitel', on_delete=models.PROTECT)
konfera = models.ForeignKey(Konfera, verbose_name='konfera', on_delete=models.CASCADE)

5
seminar/models/treenode.py

@ -8,7 +8,8 @@ from unidecode import unidecode # Používám pro získání ID odkazu (ještě
from polymorphic.models import PolymorphicModel
from . import personalni as pm, Reseni
from .odevzdavatko import Reseni
from personalni.models import Organizator
from .pomocne import Text
@ -165,7 +166,7 @@ class OrgTextNode(TreeNode):
verbose_name = 'Organizátorský článek (Node)'
verbose_name_plural = 'Organizátorské články (Node)'
organizator = models.ForeignKey(pm.Organizator,
organizator = models.ForeignKey(Organizator,
null=False,
blank=False,
on_delete=models.DO_NOTHING,

12
seminar/models/tvorba.py

@ -31,7 +31,7 @@ from polymorphic.models import PolymorphicModel
from django.core.mail import EmailMessage
from . import personalni as pm
from personalni.models import Prijemce, Organizator
from .base import SeminarModelBase
@ -305,7 +305,7 @@ class Cislo(SeminarModelBase):
resitele_vsichni.filter(zasilat_cislo_papirove=True))
paticka_prijemce = "---\nPokud tyto e-maily nechcete nadále dostávat, prosíme, ozvěte se nám na mam@matfyz.cz."
posli(predmet, text_mailu + paticka_prijemce, pm.Prijemce.objects.filter(zasilat_cislo_emailem=True))
posli(predmet, text_mailu + paticka_prijemce, Prijemce.objects.filter(zasilat_cislo_emailem=True))
def save(self, *args, **kwargs):
super().save(*args, **kwargs)
@ -461,15 +461,15 @@ class Problem(SeminarModelBase,PolymorphicModel):
poznamka = models.TextField('org poznámky (HTML)', blank=True,
help_text='Neveřejný návrh úlohy, návrh řešení, text zadání, poznámky ...')
autor = models.ForeignKey(pm.Organizator, verbose_name='autor problému',
autor = models.ForeignKey(Organizator, verbose_name='autor problému',
related_name='autor_problemu_%(class)s', null=True, blank=True,
on_delete=models.SET_NULL)
garant = models.ForeignKey(pm.Organizator, verbose_name='garant zadaného problému',
garant = models.ForeignKey(Organizator, verbose_name='garant zadaného problému',
related_name='garant_problemu_%(class)s', null=True, blank=True,
on_delete=models.SET_NULL)
opravovatele = models.ManyToManyField(pm.Organizator, verbose_name='opravovatelé',
opravovatele = models.ManyToManyField(Organizator, verbose_name='opravovatelé',
blank=True, related_name='opravovatele_%(class)s')
kod = models.CharField('lokální kód', max_length=32, blank=True, default='',
@ -693,7 +693,7 @@ class Pohadka(SeminarModelBase):
id = models.AutoField(primary_key=True)
autor = models.ForeignKey(
pm.Organizator,
Organizator,
verbose_name="Autor pohádky",
# Při nahrávání z TeXu není vyplnění vyžadováno, v adminu je

2
seminar/testutils.py

@ -12,7 +12,7 @@ import unidecode
import logging
from korektury.testutils import create_test_pdf
from seminar.models.personalni import *
from personalni.models import *
from seminar.models.tvorba import *
from seminar.models.odevzdavatko import *
from seminar.models.soustredeni import *

2
seminar/utils.py

@ -16,7 +16,7 @@ from django.core.exceptions import ObjectDoesNotExist
import logging
from seminar.models.personalni import Organizator, Resitel, Skola, Prijemce
from personalni.models import Organizator, Resitel, Skola, Prijemce
from seminar.models.tvorba import Clanek, Rocnik
from seminar.models.treenode import CisloNode
from seminar.models.soustredeni import Konfery_Ucastnici, Soustredeni_Ucastnici

2
seminar/views/views_all.py

@ -10,7 +10,7 @@ from django.views.generic.base import RedirectView
from django.core.exceptions import PermissionDenied
from seminar.models.tvorba import Rocnik, Cislo, Nastaveni, Deadline, Problem, Tema, Clanek
from seminar.models.personalni import Resitel, Organizator
from personalni.models import Resitel, Organizator
from seminar.models.novinky import Novinky
#from .models import VysledkyZaCislo, VysledkyKCisluZaRocnik, VysledkyKCisluOdjakziva
from seminar import utils

2
soustredeni/views.py

@ -4,7 +4,7 @@ from django.views import generic
from django.conf import settings
from django.contrib.staticfiles.finders import find
from seminar.models.soustredeni import *
from seminar.models.personalni import Resitel
from personalni.models import Resitel
from seminar.models.tvorba import Nastaveni
import csv
import tempfile

2
vyroci/views.py

@ -1,6 +1,6 @@
from django.views.generic import FormView, ListView
from seminar.models.personalni import Osoba
from personalni.models import Osoba
from seminar.views import formularOKView
from .forms import UcastnikVyrociForm
from .models import UcastnikVyroci

2
vysledkovky/utils.py

@ -4,7 +4,7 @@ from typing import Union, Iterable # TODO: s pythonem 3.10 přepsat na '|'
from seminar.models.tvorba import Rocnik, Cislo, Deadline, Problem, Clanek
from seminar.models.odevzdavatko import Hodnoceni
from seminar.models.personalni import Resitel
from personalni.models import Resitel
from seminar.models.soustredeni import Konfera
from django.db.models import Q, Sum
from seminar.utils import resi_v_rocniku

Loading…
Cancel
Save