from django import forms
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.template.loader import render_to_string
from django.forms.widgets import media_property
from feincms.module.page.models import Page
from feincms.content.richtext.models import RichTextContent
from feincms.content.medialibrary.models import MediaFileContent
from tinymce.models import HTMLField
# content = HTMLField()
from markdown2 import markdown
class MarkdownPageContent(models.Model):
content = models.TextField()
class Meta:
abstract = True
def render(self, **kwargs):
return markdown(self.content)
Page.create_content_type(MarkdownPageContent)
def authenticated_request_processor(page, request):
if not request.user.is_authenticated():
raise django.core.exceptions.PermissionDenied
Page.register_request_processor(authenticated_request_processor)
def set_random_header_response_processor(page, request, response):
response['X-Random-Number'] = 42
Page.register_response_processor(set_random_header_response_processor)
Page.register_extensions(
'feincms.module.extensions.datepublisher',
'feincms.module.extensions.translations'
)
Page.register_templates({
'title': _('General FeinCMS Template Example'),
'path': 'template_1.html',
'regions': (
('header', _('Page header.')),
('main', _('Main content area.')),
('sidebar', _('Sidebar'), 'inherited'),
('footer', _('Page footer.')),
),
})
register_regions(('main', 'header', 'sidebar', 'footer'),)
Page.register_templates({
'title': _('Standard template'),
'path': 'base.html',
'regions': (
('main', _('Main content area')),
('sidebar', _('Sidebar'), 'inherited'),
),
})
Page.create_content_type(RichTextContent)
Page.create_content_type(RichTextContent)
Page.create_content_type(MediaFileContent, TYPE_CHOICES=(
('default', _('default')),
('lightbox', _('lightbox')),
))
class MediaUsingContentType(models.Model):
class Media:
js = ('whizbang.js',)
MediaUsingContentType.media = media_property(MediaUsingContentType)