models.py: OneToOneFieldy do komentářů, zalámání textu
This commit is contained in:
		
							parent
							
								
									f89e696fe3
								
							
						
					
					
						commit
						4f2e56ce06
					
				
					 1 changed files with 37 additions and 3 deletions
				
			
		|  | @ -115,6 +115,11 @@ class Osoba(SeminarModelBase): | |||
| 			], | ||||
| 			options={'quality': 95}) | ||||
| 
 | ||||
| 	# má OneToOneField nejvýše s: | ||||
| 	# Resitel | ||||
| 	# Prijemce | ||||
| 	# Organizator | ||||
| 
 | ||||
| 	def plne_jmeno(self): | ||||
| 		return '{} {}'.format(self.jmeno, self.prijmeni) | ||||
| 
 | ||||
|  | @ -314,7 +319,11 @@ class Rocnik(SeminarModelBase): | |||
| 	rocnik = models.IntegerField('číslo ročníku', db_index=True, unique=True) | ||||
| 
 | ||||
| 	exportovat = models.BooleanField('export do AESOPa', db_column='exportovat', default=False, | ||||
| 			help_text='Exportuje se jen podle tohoto flagu (ne veřejnosti), a to jen čísla s veřejnou výsledkovkou') | ||||
| 			help_text='Exportuje se jen podle tohoto flagu (ne veřejnosti),' | ||||
| 			' a to jen čísla s veřejnou výsledkovkou') | ||||
| 
 | ||||
| 	# má OneToOneField s: | ||||
| 	# RocnikNode | ||||
| 
 | ||||
| 	def __str__(self): | ||||
| 		return '{} ({}/{})'.format(self.rocnik, self.prvni_rok, self.prvni_rok+1) | ||||
|  | @ -409,6 +418,8 @@ class Cislo(SeminarModelBase): | |||
| 	pdf = models.FileField('pdf', upload_to=cislo_pdf_filename, null=True, blank=True, | ||||
| 		help_text='Pdf čísla, které si mohou řešitelé stáhnout') | ||||
| 
 | ||||
| 	# má OneToOneField s: | ||||
| 	# CisloNode | ||||
| 
 | ||||
| 	def kod(self): | ||||
| 		return '%s.%s' % (self.rocnik.rocnik, self.cislo) | ||||
|  | @ -560,7 +571,10 @@ class Problem(SeminarModelBase): | |||
| 
 | ||||
| 	class Meta: | ||||
| 		# Není abstraktní, protože se na něj jinak nedají dělat ForeignKeys. | ||||
| 		# TODO: Udělat to polymorfní (pomocí django-polymorphic), abychom dostali po těch vazbách přímo tu úlohu/témátko vč. fieldů, které nejsou součástí modelu Problem? | ||||
| 		# TODO: Udělat to polymorfní (pomocí django-polymorphic), abychom dostali  | ||||
| 		# po těch vazbách přímo tu úlohu/témátko vč. fieldů, které nejsou součástí  | ||||
| 		# modelu Problem? | ||||
| 
 | ||||
| 		#abstract = True | ||||
| 		db_table = 'seminar_problemy' | ||||
| 		verbose_name = 'Problém' | ||||
|  | @ -678,6 +692,10 @@ class Clanek(Problem): | |||
| 		verbose_name_plural = 'Články' | ||||
| 	 | ||||
| 	cislo = models.ForeignKey(Cislo, verbose_name='číslo', blank=True, null=True) | ||||
| 
 | ||||
| 	# má OneToOneField s: | ||||
| 	# ClanekNode | ||||
| 
 | ||||
| 	def kod_v_rocniku(self): | ||||
| 		if self.stav == 'zadany': | ||||
| # Nemělo by být potřeba | ||||
|  | @ -698,8 +716,12 @@ class Text(SeminarModelBase): | |||
| 	do_cisla = models.TextField('text do čísla', blank=True, | ||||
| 		help_text='Text ke zveřejnění v čísle') | ||||
| 	 | ||||
| 	# má OneToOneField s: | ||||
| 	# Reseni (je u něj jako reseni_cele) | ||||
| 	 | ||||
| 	# obrázky mají návaznost opačným směrem (vazba z druhé strany) | ||||
| 
 | ||||
| 
 | ||||
| 	 | ||||
| class Uloha(Problem): | ||||
| 	class Meta: | ||||
|  | @ -720,6 +742,10 @@ class Uloha(Problem): | |||
| 	max_body = models.DecimalField(max_digits=8, decimal_places=1, verbose_name='maximum bodů',  | ||||
| 		blank=True, null=True) | ||||
| 
 | ||||
| 	# má OneToOneField s: | ||||
| 	# UlohaZadaniNode | ||||
| 	# UlohaVzorakNode | ||||
| 
 | ||||
| 	def kod_v_rocniku(self): | ||||
| 		if self.stav == 'zadany': | ||||
| 			name="{}.u{}".format(self.cislo_zadani.cislo,self.kod) | ||||
|  | @ -729,7 +755,6 @@ class Uloha(Problem): | |||
| 		return '<Není zadaný>' | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| @reversion.register(ignore_duplicates=True) | ||||
| class Reseni(SeminarModelBase): | ||||
| 
 | ||||
|  | @ -776,6 +801,9 @@ class Reseni(SeminarModelBase): | |||
| 	zverejneno = models.BooleanField('řešení zveřejněno', default=False,  | ||||
| 		help_text='Udává, zda je řešení zveřejněno') | ||||
| 
 | ||||
| 	# má OneToOneField s: | ||||
| 	# Konfera | ||||
| 
 | ||||
| 	def __str__(self): | ||||
| 		return "{}: {}".format(self.resitel.osoba.plne_jmeno(), self.problem.nazev) | ||||
| 		# NOTE: Potenciální DB HOG (bez select_related) | ||||
|  | @ -897,6 +925,9 @@ class Pohadka(SeminarModelBase): | |||
| 		editable=False | ||||
| 	) | ||||
| 
 | ||||
| 	# má OneToOneField s: | ||||
| 	# PohadkaNode | ||||
| 
 | ||||
| 	def __str__(self): | ||||
| 		uryvek = self.text if len(self.text) < 50 else self.text[:(50-3)]+"..." | ||||
| 		return uryvek | ||||
|  | @ -1001,6 +1032,9 @@ class Konfera(models.Model): | |||
| 			help_text = 'Další materiály ke konfeře zabalené do jednoho souboru',  | ||||
| 			upload_to = generate_filename_konfera, blank=True) | ||||
| 
 | ||||
| 	# má OneToOneField s: | ||||
| 	# KonferaNode | ||||
| 
 | ||||
| 	def __str__(self): | ||||
| 		return "{}: ({})".format(self.nazev, self.soustredeni) | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Anet
						Anet