36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
# Copyright The IETF Trust 2012-2019, All Rights Reserved
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
|
from __future__ import absolute_import, print_function, unicode_literals
|
|
|
|
from django import forms
|
|
from django.core.exceptions import ValidationError
|
|
from django.template import Context
|
|
|
|
from ietf.dbtemplate.models import DBTemplate
|
|
from ietf.dbtemplate.template import PlainTemplate, RSTTemplate, DjangoTemplate
|
|
|
|
import debug # pyflakes:ignore
|
|
|
|
class DBTemplateForm(forms.ModelForm):
|
|
|
|
def clean_content(self):
|
|
try:
|
|
content = self.cleaned_data['content']
|
|
if self.instance.type.slug == 'rst':
|
|
RSTTemplate(content).render(Context({}))
|
|
elif self.instance.type.slug == 'django':
|
|
DjangoTemplate(content).render(Context({}))
|
|
elif self.instance.type.slug == 'plain':
|
|
PlainTemplate(content).render(Context({}))
|
|
else:
|
|
raise ValidationError("Unexpected DBTemplate.type.slug: %s" % self.type.slug)
|
|
except Exception as e:
|
|
raise ValidationError(e)
|
|
return content
|
|
|
|
class Meta:
|
|
model = DBTemplate
|
|
fields = ('content', )
|