Přidání Znalosti do modelu

This commit is contained in:
Jonas Havelka 2025-01-24 15:13:37 +01:00
parent 174087edc7
commit f61533df0a
3 changed files with 76 additions and 3 deletions

View file

@ -4,7 +4,7 @@ from reversion.admin import VersionAdmin
from django.utils.safestring import mark_safe
from django.utils.html import escape
from .models import Prednaska, Seznam, STAV_NAVRH
from .models import Prednaska, Seznam, STAV_NAVRH, Znalost
from soustredeni.models import Soustredeni
@ -64,7 +64,7 @@ admin.site.register(Seznam, SeznamAdmin)
class PrednaskaAdmin(VersionAdmin):
list_display = ['nazev', 'org', 'obor']
list_filter = ['org', 'obor']
search_fields = []
search_fields = ['nazev']
filter_horizontal = ('seznamy', )
actions = ['move_to_soustredeni']
@ -97,3 +97,10 @@ class PrednaskaAdmin(VersionAdmin):
admin.site.register(Prednaska, PrednaskaAdmin)
class ZnalostAdmin(PrednaskaAdmin): # Trochu hack, ať nemusím vypisovat všechno znovu
list_display = []
list_filter = []
admin.site.register(Znalost, ZnalostAdmin)

View file

@ -0,0 +1,39 @@
# Generated by Django 4.2.16 on 2025-01-24 13:41
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('personalni', '0019_rename_upozorneni_resitel_upozornovat_na_opravy_reseni'),
('prednasky', '0018_post_split_soustredeni'),
]
operations = [
migrations.CreateModel(
name='Znalost',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('nazev', models.CharField(help_text='Např. Neuronové sítě', max_length=200, verbose_name='Nadpis')),
('text', models.TextField(blank=True, help_text='Např. Perceptron, vrstevnatá síť, forward a backward propagation', null=True, verbose_name='Detailní popis')),
('seznamy', models.ManyToManyField(to='prednasky.seznam')),
],
options={
'verbose_name': 'Znalost k přednáškám',
'verbose_name_plural': 'Znalosti k přednáškám',
'db_table': 'prednasky_znalost',
},
),
migrations.CreateModel(
name='HlasovaniOZnalostech',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('odpoved', models.CharField(choices=[(-1, 'Tohle celkem umím'), (0, 'Už jsem o tom slyšel, ale neřekl bychm, že to úplně umím'), (1, 'Tohle vůbec neznám')], max_length=16, verbose_name='odpověď')),
('seznam', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='prednasky.seznam')),
('ucastnik', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='personalni.osoba')),
('znalost', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='prednasky.znalost')),
],
),
]

View file

@ -1,7 +1,7 @@
from django.db import models
from soustredeni.models import Soustredeni
from personalni.models import Organizator
from personalni.models import Organizator, Osoba
STAV_NAVRH = 1
STAV_BUDE = 2
@ -63,6 +63,33 @@ class Prednaska(models.Model):
return "{} ({})".format(self.nazev, self.org)
class Znalost(models.Model):
class Meta:
db_table = 'prednasky_znalost'
verbose_name = 'Znalost k přednáškám'
verbose_name_plural = 'Znalosti k přednáškám'
nazev = models.CharField('Nadpis', max_length=200, blank=False, null=False, help_text = 'Např. Neuronové sítě')
text = models.TextField('Detailní popis', blank=True, null=True, help_text="Např. Perceptron, vrstevnatá síť, forward a backward propagation")
seznamy = models.ManyToManyField(Seznam)
def __str__(self):
return self.nazev
class HlasovaniOZnalostech(models.Model):
class ODPOVED(models.IntegerChoices):
UMIM = -1, 'Tohle celkem umím'
CIRCA = 0, 'Už jsem o tom slyšel, ale neřekl bychm, že to úplně umím'
NEUMIM = 1, 'Tohle vůbec neznám'
odpoved = models.CharField(u'odpověď', max_length=16, choices=ODPOVED.choices, blank=False, null=False)
znalost = models.ForeignKey(Znalost, on_delete=models.CASCADE, blank=False, null=False)
ucastnik = models.ForeignKey(Osoba, on_delete=models.CASCADE, blank=False, null=False)
seznam = models.ForeignKey(Seznam, on_delete=models.SET_NULL, blank=True, null=True)
class Hlasovani(models.Model):
class Meta:
db_table = 'prednasky_hlasovani'