Choices na Enum (u přednášek)
This commit is contained in:
		
							parent
							
								
									2f814956a7
								
							
						
					
					
						commit
						e933c6978d
					
				
					 3 changed files with 24 additions and 31 deletions
				
			
		|  | @ -4,7 +4,7 @@ from reversion.admin import VersionAdmin | ||||||
| from django.utils.safestring import mark_safe | from django.utils.safestring import mark_safe | ||||||
| from django.utils.html import escape | from django.utils.html import escape | ||||||
| 
 | 
 | ||||||
| from .models import Prednaska, Seznam, STAV_NAVRH, Znalost | from .models import Prednaska, Seznam, Znalost | ||||||
| from soustredeni.models import Soustredeni | from soustredeni.models import Soustredeni | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | @ -71,7 +71,7 @@ class PrednaskaAdmin(VersionAdmin): | ||||||
| 
 | 
 | ||||||
| 	def move_to_soustredeni(self, request, queryset): | 	def move_to_soustredeni(self, request, queryset): | ||||||
| 		sous = Soustredeni.objects.first() | 		sous = Soustredeni.objects.first() | ||||||
| 		seznam = Seznam.objects.filter(soustredeni=sous, stav=STAV_NAVRH) | 		seznam = Seznam.objects.filter(soustredeni=sous, stav=Seznam.Stav.NAVRH) | ||||||
| 		if len(seznam) == 0: | 		if len(seznam) == 0: | ||||||
| 			self.message_user( | 			self.message_user( | ||||||
| 				request, | 				request, | ||||||
|  |  | ||||||
|  | @ -3,15 +3,6 @@ from django.db import models | ||||||
| from soustredeni.models import Soustredeni | from soustredeni.models import Soustredeni | ||||||
| from personalni.models import Organizator, Osoba | from personalni.models import Organizator, Osoba | ||||||
| 
 | 
 | ||||||
| STAV_NAVRH = 1 |  | ||||||
| STAV_BUDE = 2 |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| STAV_CHOICES = ( |  | ||||||
| (STAV_NAVRH, 'Návrh'), |  | ||||||
| (STAV_BUDE, 'Bude') |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
| class Seznam(models.Model): | class Seznam(models.Model): | ||||||
| 	class Meta: | 	class Meta: | ||||||
|  | @ -20,27 +11,18 @@ class Seznam(models.Model): | ||||||
| 		verbose_name_plural = 'Seznamy přednášek' | 		verbose_name_plural = 'Seznamy přednášek' | ||||||
| 		ordering = ['soustredeni', 'stav'] | 		ordering = ['soustredeni', 'stav'] | ||||||
| 
 | 
 | ||||||
|  | 	class Stav(models.IntegerChoices): | ||||||
|  | 		NAVRH = 1, "Návrh" | ||||||
|  | 		BUDE = 2, "Bude" | ||||||
|  | 
 | ||||||
| 	id = models.AutoField(primary_key = True)  | 	id = models.AutoField(primary_key = True)  | ||||||
| 	soustredeni = models.ForeignKey(Soustredeni,null = True, default = None,  | 	soustredeni = models.ForeignKey(Soustredeni,null = True, default = None,  | ||||||
| 		on_delete=models.PROTECT) | 		on_delete=models.PROTECT) | ||||||
| 	stav = models.IntegerField('Stav',choices=STAV_CHOICES,default = STAV_NAVRH) | 	stav = models.IntegerField('Stav', choices=Stav.choices, default=Stav.NAVRH) | ||||||
| 
 | 
 | ||||||
| 	def __str__(self): | 	def __str__(self): | ||||||
| 			return "Seznam {}přednášek na {}".format("návrhů "  | 			return "Seznam {}přednášek na {}".format("návrhů "  | ||||||
| 					if self.stav == STAV_NAVRH else "", self.soustredeni) | 					if self.stav == Seznam.Stav.NAVRH else "", self.soustredeni) | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| CHOICES_OBTIZNOST = ( |  | ||||||
| 				(1, 'Lehká'), |  | ||||||
| 				(2, 'Střední'), |  | ||||||
| 				(3, 'Těžká'), |  | ||||||
| 				) |  | ||||||
| 
 |  | ||||||
| CHOICES_BODY = ( |  | ||||||
| 		(-1, '-1'), |  | ||||||
| 		(0, '0'), |  | ||||||
| 		(1, '1'), |  | ||||||
| 		) |  | ||||||
| 
 | 
 | ||||||
| class Prednaska(models.Model): | class Prednaska(models.Model): | ||||||
| 	class Meta: | 	class Meta: | ||||||
|  | @ -49,12 +31,17 @@ class Prednaska(models.Model): | ||||||
| 		verbose_name_plural = 'Přednášky' | 		verbose_name_plural = 'Přednášky' | ||||||
| 		ordering = ['org', 'nazev'] | 		ordering = ['org', 'nazev'] | ||||||
| 
 | 
 | ||||||
|  | 	class Obtiznost(models.IntegerChoices): | ||||||
|  | 		LEHKA = 1, "Lehká" | ||||||
|  | 		STREDNI = 2, "Střední" | ||||||
|  | 		TEZKA = 3, "Těžká" | ||||||
|  | 
 | ||||||
| 	id = models.AutoField(primary_key = True)  | 	id = models.AutoField(primary_key = True)  | ||||||
| 	nazev = models.CharField('Název', max_length = 300) | 	nazev = models.CharField('Název', max_length = 300) | ||||||
| 	org = models.ForeignKey(Organizator, on_delete=models.PROTECT)  | 	org = models.ForeignKey(Organizator, on_delete=models.PROTECT)  | ||||||
| 	popis = models.TextField('Popis pro orgy',null = True, blank = True,help_text = 'Neveřejný popis pro ostatní orgy') | 	popis = models.TextField('Popis pro orgy',null = True, blank = True,help_text = 'Neveřejný popis pro ostatní orgy') | ||||||
| 	anotace = models.TextField('Anotace',null = True, blank = True, help_text = 'Veřejná anotace v hlasování') | 	anotace = models.TextField('Anotace',null = True, blank = True, help_text = 'Veřejná anotace v hlasování') | ||||||
| 	obtiznost = models.IntegerField('Obtížnost', choices=CHOICES_OBTIZNOST) | 	obtiznost = models.IntegerField('Obtížnost', choices=Obtiznost.choices) | ||||||
| 	obor = models.CharField('Obor', max_length = 5, help_text = 'Podmnožina MFIOB') | 	obor = models.CharField('Obor', max_length = 5, help_text = 'Podmnožina MFIOB') | ||||||
| 	klicova = models.CharField('Klíčová slova', max_length = 200, null = True, blank = True) | 	klicova = models.CharField('Klíčová slova', max_length = 200, null = True, blank = True) | ||||||
| 	seznamy = models.ManyToManyField(Seznam) | 	seznamy = models.ManyToManyField(Seznam) | ||||||
|  | @ -96,9 +83,15 @@ class Hlasovani(models.Model): | ||||||
| 		verbose_name = 'Hlasování' | 		verbose_name = 'Hlasování' | ||||||
| 		verbose_name_plural = 'Hlasování' | 		verbose_name_plural = 'Hlasování' | ||||||
| 		ordering = ['ucastnik', 'prednaska'] | 		ordering = ['ucastnik', 'prednaska'] | ||||||
|  | 
 | ||||||
|  | 	class Body(models.IntegerChoices): | ||||||
|  | 		NECHCI = -1, "rozhodně nechci" | ||||||
|  | 		JEDNO = 0, "je mi to jedno" | ||||||
|  | 		CHCI = 1, "rozhodně chci" | ||||||
|  | 
 | ||||||
| 	id = models.AutoField(primary_key = True)  | 	id = models.AutoField(primary_key = True)  | ||||||
| 	prednaska = models.ForeignKey(Prednaska, on_delete=models.CASCADE) | 	prednaska = models.ForeignKey(Prednaska, on_delete=models.CASCADE) | ||||||
| 	body = models.IntegerField('Body', default = 0, choices = CHOICES_BODY) | 	body = models.IntegerField('Body', default = Body.JEDNO, choices = Body.choices) | ||||||
| 	ucastnik = models.CharField('Účastník', max_length = 100) | 	ucastnik = models.CharField('Účastník', max_length = 100) | ||||||
| 	seznam = models.ForeignKey(Seznam,null=True,on_delete=models.SET_NULL) | 	seznam = models.ForeignKey(Seznam,null=True,on_delete=models.SET_NULL) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -10,14 +10,14 @@ from django.forms import Form | ||||||
| from various.views.pomocne import formularOKView | from various.views.pomocne import formularOKView | ||||||
| 
 | 
 | ||||||
| from various.models import Nastaveni | from various.models import Nastaveni | ||||||
| from prednasky.models import Prednaska, Hlasovani, Seznam, STAV_NAVRH | from prednasky.models import Prednaska, Hlasovani, Seznam | ||||||
| from soustredeni.models import Soustredeni | from soustredeni.models import Soustredeni | ||||||
| from personalni.models import Osoba | from personalni.models import Osoba | ||||||
| 
 | 
 | ||||||
| def newPrednaska(request): | def newPrednaska(request): | ||||||
| 	# hlasovani se vztahuje k nejnovejsimu soustredeni | 	# hlasovani se vztahuje k nejnovejsimu soustredeni | ||||||
| 	sous = Nastaveni.get_solo().aktualni_sous | 	sous = Nastaveni.get_solo().aktualni_sous | ||||||
| 	seznam = Seznam.objects.filter(soustredeni = sous, stav = STAV_NAVRH).first() | 	seznam = Seznam.objects.filter(soustredeni = sous, stav=Seznam.Stav.NAVRH).first() | ||||||
| 	if sous is None or seznam is None: | 	if sous is None or seznam is None: | ||||||
| 		return render(request, 'universal.html', { | 		return render(request, 'universal.html', { | ||||||
| 			'title': "Nelze hlasovat", | 			'title': "Nelze hlasovat", | ||||||
|  | @ -87,7 +87,7 @@ class SeznamListView(generic.ListView): | ||||||
| 
 | 
 | ||||||
| 		# hlasovani se vztahuje k nejnovejsimu soustredeni | 		# hlasovani se vztahuje k nejnovejsimu soustredeni | ||||||
| 		sous = Soustredeni.objects.first() | 		sous = Soustredeni.objects.first() | ||||||
| 		seznam = Seznam.objects.filter(soustredeni = sous, stav = STAV_NAVRH).first() | 		seznam = Seznam.objects.filter(soustredeni = sous, stav=Seznam.Stav.NAVRH).first() | ||||||
| 	 | 	 | ||||||
| 		for obj in self.object_list: | 		for obj in self.object_list: | ||||||
| 			hlasovani_set = obj.hlasovani_set.filter(seznam=seznam).only('body') | 			hlasovani_set = obj.hlasovani_set.filter(seznam=seznam).only('body') | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue