1 3 5 18 24 25 30 32 33 34 35 36 37 38 39 40 44 46 49 50 51 52 53 54 58 62 63 64 65 66 67 68 70 72 75 76 78 79 80 81 82 87 89 90 91 92 93 94 95 97 100 102 105 108 111 112 113 114 115 116 117 118 119 123 125 126 129 130 131 132 133 134 135 137 138 143 145 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 168 170 171 174 175 176 177 179 180 181 182 183 184 186 187 188 189 190 191 193 195 196 199 200 201 202 204 205 206 207 208 209 211 212 213 214 215 216 218 219 221 224 225 226 228 229 230 231 232 233 235 236 237 238 239 240 241 242 244 246 251 253 254 255 256 257 258 259 260 262 263 265 267 269 270 271 272 274 276 277 278 279 280 282 283 284 285 286 287 288 289 291 292 293 294 295 297 298 299 300 301 302 303 304 305 306 307 308 309 |
# -*- coding: utf-8 -*- in the admin via a placeholder tag in your template."""
from filebrowser.fields import FileBrowseWidget class FileBrowseInput(FileBrowseWidget): """FileBrowseInput widget."""
def __init__(self, attrs={}): super(FileBrowseInput, self).__init__(attrs) register_widget(FileBrowseInput)
"""An autocompete widget""" 'javascript/jquery.js', 'javascript/jquery.bgiframe.min.js', 'javascript/jquery.ajaxQueue.js', 'javascript/jquery.autocomplete.min.js' )]
context = { 'name': name, 'tags': simplejson.dumps([tag.name for tag in page_tags], ensure_ascii=False), } return rendered + mark_safe(render_to_string( 'admin/pages/page/widgets/autocompletetaginput.html', context))
"""A RichTextarea widget.""" 'javascript/jquery.js', )] 'all': [join(PAGES_MEDIA_URL, path) for path in ( 'css/rte.css', )] }
rendered = super(RichTextarea, self).render(name, value, attrs) context = { 'name': name, 'PAGES_MEDIA_URL': PAGES_MEDIA_URL, } return rendered + mark_safe(render_to_string( 'admin/pages/page/widgets/richtextarea.html', context))
"""TinyMCE widget."""
'mode': "exact", 'theme': "advanced", 'width': 640, 'height': 400, 'theme_advanced_toolbar_location': "top", 'theme_advanced_toolbar_align': "left" }) # take into account the default settings, don't allow # the above hard coded ones overriding them
"""WYMEditor widget."""
'javascript/jquery.js', 'javascript/jquery.ui.js', 'javascript/jquery.ui.resizable.js', 'wymeditor/jquery.wymeditor.js', 'wymeditor/plugins/resizable/jquery.wymeditor.resizable.js', )]
js.append(join(PAGES_MEDIA_URL, 'wymeditor/plugins/filebrowser/jquery.wymeditor.filebrowser.js'))
self.attrs.update(attrs)
rendered = super(WYMEditor, self).render(name, value, attrs) context = { 'name': name, 'lang': self.language[:2], 'language': self.language, 'PAGES_MEDIA_URL': PAGES_MEDIA_URL, } context['page_link_wymeditor'] = 0 #if [editor for editor in PAGE_LINK_EDITOR if editor.endswith('WYMEditor')]: # let's enable that by default context['page_link_wymeditor'] = 1 context['page_list'] = Page.objects.all().order_by('tree_id','lft')
context['filebrowser'] = 0 if "filebrowser" in getattr(settings, 'INSTALLED_APPS', []): context['filebrowser'] = 1
return rendered + mark_safe(render_to_string( 'admin/pages/page/widgets/wymeditor.html', context))
"""markItUpMarkdown widget."""
'javascript/jquery.js', 'markitup/jquery.markitup.js', 'markitup/sets/markdown/set.js', )] 'all': [join(PAGES_MEDIA_URL, path) for path in ( 'markitup/skins/simple/style.css', 'markitup/sets/markdown/style.css', )] }
rendered = super(markItUpMarkdown, self).render(name, value, attrs) context = { 'name': name, } return rendered + mark_safe(render_to_string( 'admin/pages/page/widgets/markitupmarkdown.html', context))
"""markItUpHTML widget."""
'javascript/jquery.js', 'markitup/jquery.markitup.js', 'markitup/sets/default/set.js', )] 'all': [join(PAGES_MEDIA_URL, path) for path in ( 'markitup/skins/simple/style.css', 'markitup/sets/default/style.css', )] }
rendered = super(markItUpHTML, self).render(name, value, attrs) context = { 'name': name, } return rendered + mark_safe(render_to_string( 'admin/pages/page/widgets/markituphtml.html', context))
"""EditArea is a html syntax coloured widget.""" 'edit_area/edit_area_full.js', )]
self.language = language self.attrs = {'class': 'editarea',} if attrs: self.attrs.update(attrs) super(EditArea, self).__init__(attrs)
rendered = super(EditArea, self).render(name, value, attrs) context = { 'name': name, 'language': self.language, 'PAGES_MEDIA_URL': PAGES_MEDIA_URL, } return rendered + mark_safe(render_to_string( 'admin/pages/page/widgets/editarea.html', context))
if not self.page: field_content = _('Please save the page to show the image field') else: field_content = '' if value: field_content = _('Current file: %s<br/>') % value field_content += super(ImageInput, self).render(name, attrs) return mark_safe(field_content)
'''A youtube `Widget` for the admin.''' video_url=None, weight=None, height=None): TextInput(attrs=attrs), TextInput(attrs=attrs), TextInput(attrs=attrs) ]
# backslashes are forbidden in URLs if value: return value.split('\\') return (None, None, None)
value = [u'',u'',u''] for d in filter(lambda x: x.startswith(name), data): index = int(d[len(name)+1:]) value[index] = data[d] if value[0] == value[1] == value[2] == u'': return None return u'%s\\%s\\%s' % tuple(value)
"""Need to be reimplemented to be correct.""" if data == initial: return False return bool(initial) != bool(data)
""" Given a list of rendered widgets (as strings), it inserts an HTML linebreak between them.
Returns a Unicode string representing the HTML for the whole lot. """ return u"""<table> <tr><td>url</td><td>%s</td></tr> <tr><td>width</td><td>%s</td></tr> <tr><td>weight</td><td>%s</td></tr> </table>""" % tuple(rendered_widgets)
|