Merge remote branch 'remotes/jwandborg/issue_363'
Conflicts: setup.py
This commit is contained in:
commit
0692c01e4c
@ -73,7 +73,8 @@ class MediaEntry(Document):
|
|||||||
'title': unicode,
|
'title': unicode,
|
||||||
'slug': unicode,
|
'slug': unicode,
|
||||||
'created': datetime.datetime,
|
'created': datetime.datetime,
|
||||||
'description': unicode,
|
'description': unicode, # May contain markdown/up
|
||||||
|
'description_html': unicode, # May contain plaintext, or HTML
|
||||||
'media_type': unicode,
|
'media_type': unicode,
|
||||||
'media_data': dict, # extra data relevant to this media_type
|
'media_data': dict, # extra data relevant to this media_type
|
||||||
'plugin_data': dict, # plugins can dump stuff here.
|
'plugin_data': dict, # plugins can dump stuff here.
|
||||||
|
@ -17,11 +17,13 @@
|
|||||||
|
|
||||||
from webob import exc
|
from webob import exc
|
||||||
|
|
||||||
from mediagoblin.util import render_to_response, redirect
|
from mediagoblin.util import render_to_response, redirect, clean_html
|
||||||
from mediagoblin.edit import forms
|
from mediagoblin.edit import forms
|
||||||
from mediagoblin.edit.lib import may_edit_media
|
from mediagoblin.edit.lib import may_edit_media
|
||||||
from mediagoblin.decorators import require_active_login, get_user_media_entry
|
from mediagoblin.decorators import require_active_login, get_user_media_entry
|
||||||
|
|
||||||
|
import markdown
|
||||||
|
|
||||||
|
|
||||||
@get_user_media_entry
|
@get_user_media_entry
|
||||||
@require_active_login
|
@require_active_login
|
||||||
@ -47,7 +49,14 @@ def edit_media(request, media):
|
|||||||
u'An entry with that slug already exists for this user.')
|
u'An entry with that slug already exists for this user.')
|
||||||
else:
|
else:
|
||||||
media['title'] = request.POST['title']
|
media['title'] = request.POST['title']
|
||||||
media['description'] = request.POST['description']
|
media['description'] = request.POST.get('description')
|
||||||
|
|
||||||
|
md = markdown.Markdown(
|
||||||
|
safe_mode = 'escape')
|
||||||
|
media['description_html'] = clean_html(
|
||||||
|
md.convert(
|
||||||
|
media['description']))
|
||||||
|
|
||||||
media['slug'] = request.POST['slug']
|
media['slug'] = request.POST['slug']
|
||||||
media.save()
|
media.save()
|
||||||
|
|
||||||
|
@ -19,11 +19,13 @@ from cgi import FieldStorage
|
|||||||
|
|
||||||
from werkzeug.utils import secure_filename
|
from werkzeug.utils import secure_filename
|
||||||
|
|
||||||
from mediagoblin.util import render_to_response, redirect
|
from mediagoblin.util import render_to_response, redirect, clean_html
|
||||||
from mediagoblin.decorators import require_active_login
|
from mediagoblin.decorators import require_active_login
|
||||||
from mediagoblin.submit import forms as submit_forms, security
|
from mediagoblin.submit import forms as submit_forms, security
|
||||||
from mediagoblin.process_media import process_media_initial
|
from mediagoblin.process_media import process_media_initial
|
||||||
|
|
||||||
|
import markdown
|
||||||
|
|
||||||
|
|
||||||
@require_active_login
|
@require_active_login
|
||||||
def submit_start(request):
|
def submit_start(request):
|
||||||
@ -48,6 +50,13 @@ def submit_start(request):
|
|||||||
entry = request.db.MediaEntry()
|
entry = request.db.MediaEntry()
|
||||||
entry['title'] = request.POST['title'] or unicode(splitext(filename)[0])
|
entry['title'] = request.POST['title'] or unicode(splitext(filename)[0])
|
||||||
entry['description'] = request.POST.get('description')
|
entry['description'] = request.POST.get('description')
|
||||||
|
|
||||||
|
md = markdown.Markdown(
|
||||||
|
safe_mode = 'escape')
|
||||||
|
entry['description_html'] = clean_html(
|
||||||
|
md.convert(
|
||||||
|
entry['description']))
|
||||||
|
|
||||||
entry['media_type'] = u'image' # heh
|
entry['media_type'] = u'image' # heh
|
||||||
entry['uploader'] = request.user['_id']
|
entry['uploader'] = request.user['_id']
|
||||||
|
|
||||||
|
@ -25,7 +25,9 @@
|
|||||||
</h1>
|
</h1>
|
||||||
<img class="media_image" src="{{ request.app.public_store.file_url(
|
<img class="media_image" src="{{ request.app.public_store.file_url(
|
||||||
media.media_files.main) }}" />
|
media.media_files.main) }}" />
|
||||||
<p>{{ media.description }}</p>
|
{% autoescape False %}
|
||||||
|
<p>{{ media.description_html }}</p>
|
||||||
|
{% endautoescape %}
|
||||||
<p>Uploaded on
|
<p>Uploaded on
|
||||||
{{ "%4d-%02d-%02d"|format(media.created.year,
|
{{ "%4d-%02d-%02d"|format(media.created.year,
|
||||||
media.created.month, media.created.day) }}
|
media.created.month, media.created.day) }}
|
||||||
|
@ -108,10 +108,10 @@ def atom_feed(request):
|
|||||||
feed = AtomFeed(request.matchdict['user'],
|
feed = AtomFeed(request.matchdict['user'],
|
||||||
feed_url=request.url,
|
feed_url=request.url,
|
||||||
url=request.host_url)
|
url=request.host_url)
|
||||||
|
|
||||||
for entry in cursor:
|
for entry in cursor:
|
||||||
feed.add(entry.get('title'),
|
feed.add(entry.get('title'),
|
||||||
entry.get('description'),
|
entry.get('description_html'),
|
||||||
content_type='html',
|
content_type='html',
|
||||||
author=request.matchdict['user'],
|
author=request.matchdict['user'],
|
||||||
updated=entry.get('created'),
|
updated=entry.get('created'),
|
||||||
|
@ -33,7 +33,6 @@ from lxml.html.clean import Cleaner
|
|||||||
from mediagoblin import mg_globals
|
from mediagoblin import mg_globals
|
||||||
from mediagoblin.db.util import ObjectId
|
from mediagoblin.db.util import ObjectId
|
||||||
|
|
||||||
|
|
||||||
TESTS_ENABLED = False
|
TESTS_ENABLED = False
|
||||||
def _activate_testing():
|
def _activate_testing():
|
||||||
"""
|
"""
|
||||||
@ -98,7 +97,7 @@ def get_jinja_env(template_loader, locale):
|
|||||||
|
|
||||||
template_env = jinja2.Environment(
|
template_env = jinja2.Environment(
|
||||||
loader=template_loader, autoescape=True,
|
loader=template_loader, autoescape=True,
|
||||||
extensions=['jinja2.ext.i18n'])
|
extensions=['jinja2.ext.i18n', 'jinja2.ext.autoescape'])
|
||||||
|
|
||||||
template_env.install_gettext_callables(
|
template_env.install_gettext_callables(
|
||||||
mg_globals.translations.gettext,
|
mg_globals.translations.gettext,
|
||||||
|
1
setup.py
1
setup.py
@ -43,6 +43,7 @@ setup(
|
|||||||
'argparse',
|
'argparse',
|
||||||
'webtest',
|
'webtest',
|
||||||
'ConfigObj',
|
'ConfigObj',
|
||||||
|
'Markdown',
|
||||||
## For now we're expecting that users will install this from
|
## For now we're expecting that users will install this from
|
||||||
## their package managers.
|
## their package managers.
|
||||||
# 'lxml',
|
# 'lxml',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user