72 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from django.contrib import admin
 | |
| from reversion.admin import VersionAdmin
 | |
| from korektury.models import KorekturovanePDF, Oprava, KorekturaTag
 | |
| 
 | |
| from django.core.mail import EmailMessage
 | |
| from django.urls import reverse
 | |
| 
 | |
| class KorekturovanePDFAdmin(VersionAdmin):
 | |
| 	"""
 | |
| 	nastaví čas vložení (:attr:`~koretkury.models.KorekturovanePDF.cas`) a počet
 | |
| 	stran (:attr:`~koretkury.models.KorekturovanePDF.stran`) jako readonly =
 | |
| 	neměnitelný
 | |
| 
 | |
| 	Při prvním uložení pošle e-mail.
 | |
| 	"""
 | |
| 
 | |
| 	readonly_fields = ['cas', 'stran']
 | |
| 
 | |
| 	def get_readonly_fields(self, request, obj=None):
 | |
| 		""" Když pdf existuje, tak nedovolím měnit ani pdf."""
 | |
| 		if obj:
 | |
| 			return self.readonly_fields + ['pdf']
 | |
| 		return self.readonly_fields
 | |
| 
 | |
| 	fieldsets = [
 | |
| 			(None,
 | |
| 				{'fields':
 | |
| 					['pdf', 'cas', 'stran', 'nazev', 'orgove', 'komentar', 'poslat_mail']}),
 | |
| 			# (u'PDF',       {'fields': ['pdf']}),
 | |
| 				]
 | |
| 	list_display = ['nazev', 'cas', 'stran']
 | |
| 	list_filter = []
 | |
| 	search_fields = []
 | |
| 	autocomplete_fields = ['orgove']
 | |
| 
 | |
| 	def save_model(self, request, obj, form, change):
 | |
| 		"""
 | |
| 			Pokud je soubor nový a má se poslat e-mail, tak pošle e-mail o novém pdf.
 | |
| 		"""
 | |
| 		super().save_model(request, obj, form, change)
 | |
| 		if not change and obj.poslat_mail: # Je nový a má se poslat mail
 | |
| 			odkaz = request.build_absolute_uri(reverse('korektury', kwargs={'pdf': obj.id}))
 | |
| 			odesilatel = 'korekturovatko-nove-pdf@mam.mff.cuni.cz'
 | |
| 			prijemce = 'org@mam.mff.cuni.cz'
 | |
| 			predmet = f'Nové korektury: {obj.nazev}'
 | |
| 			text = f'''\
 | |
| V korekturovátku se objevil nový soubor: {obj.nazev}
 | |
| {odkaz}
 | |
| 
 | |
| Popis souboru:
 | |
| {obj.komentar}
 | |
| 
 | |
| ---
 | |
| S pozdravem a korekturám zdar!
 | |
| Korekturovátko
 | |
| '''
 | |
| 			EmailMessage(
 | |
| 				subject=predmet,
 | |
| 				body=text,
 | |
| 				from_email=odesilatel,
 | |
| 				to=[prijemce],
 | |
| 			).send()
 | |
| 
 | |
| admin.site.register(KorekturovanePDF, KorekturovanePDFAdmin)
 | |
| 
 | |
| 
 | |
| class OpravaAdmin(admin.ModelAdmin):
 | |
| 	model = Oprava
 | |
| 	filter_horizontal = ("informovani_orgove", "tagy",)
 | |
| 
 | |
| admin.site.register(Oprava, OpravaAdmin)
 | |
| admin.site.register(KorekturaTag)
 |