2
by Carl Meyer
first working version |
1 |
"""
|
2 |
widgets for django-markitup
|
|
3 |
||
3
by Carl Meyer
docs, customizability of preview filter |
4 |
Time-stamp: <2009-03-18 11:50:47 carljm widgets.py>
|
2
by Carl Meyer
first working version |
5 |
|
6 |
"""
|
|
7 |
from django import forms |
|
8 |
from django.utils.safestring import mark_safe |
|
9 |
||
3
by Carl Meyer
docs, customizability of preview filter |
10 |
from markitup.settings import MARKITUP_SET, MARKITUP_SKIN, JQUERY_URL |
11 |
||
2
by Carl Meyer
first working version |
12 |
class MarkItUpWidget(forms.Textarea): |
13 |
"""
|
|
14 |
Widget for a MarkItUp editor textarea.
|
|
15 |
||
16 |
Takes two additional optional keyword arguments:
|
|
17 |
||
3
by Carl Meyer
docs, customizability of preview filter |
18 |
``markitup_set``
|
2
by Carl Meyer
first working version |
19 |
URL path (absolute or relative to MEDIA_URL) to MarkItUp
|
3
by Carl Meyer
docs, customizability of preview filter |
20 |
button set directory. Default: value of MARKITUP_SET setting.
|
2
by Carl Meyer
first working version |
21 |
|
3
by Carl Meyer
docs, customizability of preview filter |
22 |
``markitup_skin``
|
2
by Carl Meyer
first working version |
23 |
URL path (absolute or relative to MEDIA_URL) to MarkItUp skin
|
3
by Carl Meyer
docs, customizability of preview filter |
24 |
directory. Default: value of MARKITUP_SKIN setting.
|
2
by Carl Meyer
first working version |
25 |
|
26 |
"""
|
|
27 |
def __init__(self, attrs=None, |
|
3
by Carl Meyer
docs, customizability of preview filter |
28 |
markitup_set=None, |
29 |
markitup_skin=None): |
|
30 |
self.miu_set = markitup_set or MARKITUP_SET |
|
31 |
self.miu_skin = markitup_skin or MARKITUP_SKIN |
|
2
by Carl Meyer
first working version |
32 |
super(MarkItUpWidget, self).__init__(attrs) |
33 |
||
34 |
def _media(self): |
|
35 |
return forms.Media(css={'screen': ('%s/style.css' % self.miu_skin, |
|
36 |
'%s/style.css' % self.miu_set)}, |
|
3
by Carl Meyer
docs, customizability of preview filter |
37 |
js=(JQUERY_URL, |
2
by Carl Meyer
first working version |
38 |
'markitup/jquery.markitup.js', |
39 |
'%s/set.js' % self.miu_set)) |
|
40 |
media = property(_media) |
|
41 |
||
42 |
def render(self, name, value, attrs=None): |
|
43 |
html = super(MarkItUpWidget, self).render(name, value, attrs) |
|
44 |
html += ('<script type="text/javascript">' |
|
45 |
'$(document).ready(function() {'
|
|
46 |
' $("#%s").markItUp(mySettings);' |
|
47 |
'});'
|
|
48 |
'</script>' % attrs['id']) |
|
49 |
return mark_safe(html) |
|
50 |