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.html import escape | ||||
| 
 | ||||
| from .models import Prednaska, Seznam, STAV_NAVRH, Znalost | ||||
| from .models import Prednaska, Seznam, Znalost | ||||
| from soustredeni.models import Soustredeni | ||||
| 
 | ||||
| 
 | ||||
|  | @ -71,7 +71,7 @@ class PrednaskaAdmin(VersionAdmin): | |||
| 
 | ||||
| 	def move_to_soustredeni(self, request, queryset): | ||||
| 		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: | ||||
| 			self.message_user( | ||||
| 				request, | ||||
|  |  | |||
|  | @ -3,15 +3,6 @@ from django.db import models | |||
| from soustredeni.models import Soustredeni | ||||
| 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 Meta: | ||||
|  | @ -20,27 +11,18 @@ class Seznam(models.Model): | |||
| 		verbose_name_plural = 'Seznamy přednášek' | ||||
| 		ordering = ['soustredeni', 'stav'] | ||||
| 
 | ||||
| 	class Stav(models.IntegerChoices): | ||||
| 		NAVRH = 1, "Návrh" | ||||
| 		BUDE = 2, "Bude" | ||||
| 
 | ||||
| 	id = models.AutoField(primary_key = True)  | ||||
| 	soustredeni = models.ForeignKey(Soustredeni,null = True, default = None,  | ||||
| 		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): | ||||
| 			return "Seznam {}přednášek na {}".format("návrhů "  | ||||
| 					if self.stav == STAV_NAVRH else "", self.soustredeni) | ||||
| 
 | ||||
| 
 | ||||
| CHOICES_OBTIZNOST = ( | ||||
| 				(1, 'Lehká'), | ||||
| 				(2, 'Střední'), | ||||
| 				(3, 'Těžká'), | ||||
| 				) | ||||
| 
 | ||||
| CHOICES_BODY = ( | ||||
| 		(-1, '-1'), | ||||
| 		(0, '0'), | ||||
| 		(1, '1'), | ||||
| 		) | ||||
| 					if self.stav == Seznam.Stav.NAVRH else "", self.soustredeni) | ||||
| 
 | ||||
| class Prednaska(models.Model): | ||||
| 	class Meta: | ||||
|  | @ -49,12 +31,17 @@ class Prednaska(models.Model): | |||
| 		verbose_name_plural = 'Přednášky' | ||||
| 		ordering = ['org', 'nazev'] | ||||
| 
 | ||||
| 	class Obtiznost(models.IntegerChoices): | ||||
| 		LEHKA = 1, "Lehká" | ||||
| 		STREDNI = 2, "Střední" | ||||
| 		TEZKA = 3, "Těžká" | ||||
| 
 | ||||
| 	id = models.AutoField(primary_key = True)  | ||||
| 	nazev = models.CharField('Název', max_length = 300) | ||||
| 	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') | ||||
| 	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') | ||||
| 	klicova = models.CharField('Klíčová slova', max_length = 200, null = True, blank = True) | ||||
| 	seznamy = models.ManyToManyField(Seznam) | ||||
|  | @ -96,9 +83,15 @@ class Hlasovani(models.Model): | |||
| 		verbose_name = 'Hlasování' | ||||
| 		verbose_name_plural = 'Hlasování' | ||||
| 		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)  | ||||
| 	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) | ||||
| 	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.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 personalni.models import Osoba | ||||
| 
 | ||||
| def newPrednaska(request): | ||||
| 	# hlasovani se vztahuje k nejnovejsimu soustredeni | ||||
| 	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: | ||||
| 		return render(request, 'universal.html', { | ||||
| 			'title': "Nelze hlasovat", | ||||
|  | @ -87,7 +87,7 @@ class SeznamListView(generic.ListView): | |||
| 
 | ||||
| 		# hlasovani se vztahuje k nejnovejsimu soustredeni | ||||
| 		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: | ||||
| 			hlasovani_set = obj.hlasovani_set.filter(seznam=seznam).only('body') | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue