70 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import os
 | |
| 
 | |
| from django.db import models
 | |
| from django.core.files.storage import FileSystemStorage
 | |
| from django.urls import reverse
 | |
| 
 | |
| from reversion import revisions as reversion
 | |
| from solo.models import SingletonModel
 | |
| 
 | |
| 
 | |
| @reversion.register(ignore_duplicates=True)
 | |
| class Nastaveni(SingletonModel):
 | |
| 
 | |
| 	class Meta:
 | |
| 		db_table = 'seminar_nastaveni'
 | |
| 		verbose_name = 'Nastavení semináře'
 | |
| 
 | |
| #	aktualni_rocnik = models.ForeignKey("tvorba.Rocnik", verbose_name='aktuální ročník',
 | |
| #		null=False, on_delete=models.PROTECT)
 | |
| 
 | |
| 	aktualni_cislo = models.ForeignKey("tvorba.Cislo", verbose_name='Aktuální číslo',
 | |
| 		null=True, blank=False, on_delete=models.PROTECT,
 | |
| 		)
 | |
| 
 | |
| 	cena_sous = models.IntegerField(null=False,
 | |
| 									verbose_name="Účastnický poplatek za soustředění",
 | |
| 									default=1000)
 | |
| 
 | |
| 	aktualni_sous = models.ForeignKey(
 | |
| 		"soustredeni.Soustredeni", verbose_name='Aktuálně připravovaný sous',
 | |
| 		null=True, blank=True, on_delete=models.PROTECT,
 | |
| 	)
 | |
| 
 | |
| 	@property
 | |
| 	def aktualni_rocnik(self):
 | |
| 		return self.aktualni_cislo.rocnik
 | |
| 
 | |
| 	def __str__(self):
 | |
| 		return 'Nastavení semináře'
 | |
| 
 | |
| 	def admin_url(self):
 | |
| 		return reverse('admin:various_nastaveni_change', args=(self.id, ))
 | |
| 	
 | |
| 	def verejne(self):
 | |
| 		return False
 | |
| 
 | |
| 
 | |
| class OverwriteStorage(FileSystemStorage):
 | |
| 	""" Varianta FileSystemStorage, která v případě, že soubor cílového
 | |
| 	jména již existuje, ho smaže a místo něj uloží soubor nový"""
 | |
| 	def get_available_name(self,name, max_length=None):
 | |
| 		if self.exists(name):
 | |
| 			os.remove(os.path.join(self.location,name))
 | |
| 		return super().get_available_name(name,max_length)
 | |
| 
 | |
| 
 | |
| class SeminarModelBase(models.Model):
 | |
| 	class Meta:
 | |
| 		abstract = True
 | |
| 
 | |
| 	def verejne(self):
 | |
| 		return False
 | |
| 
 | |
| 	# def get_absolute_url(self):
 | |
| 	# 	return "https://" + str(get_current_site(None)) + self.verejne_url()
 | |
| 
 | |
| 	def admin_url(self):
 | |
| 		app_name = self._meta.app_label
 | |
| 		model_name = self._meta.model_name
 | |
| 		return reverse('admin:{}_{}_change'.format(app_name, model_name), args=(self.id, ))
 |