From 6f2e4585cc7475362205a9ddb0e69d6da2b6dc85 Mon Sep 17 00:00:00 2001 From: Caleb Forbes Davis V Date: Tue, 12 Jul 2011 22:26:10 -0500 Subject: [PATCH] uses standard functions instead of form filters and fixes taglist default - seems simpler to use the same tag field processing procedures on media submit and edit, so now processing with a regular function instead of a form filter. Filters run on form load and post by default. - moved tags to sidebar - taglist defaults to [] instead of None - adds case sensitivity toggle --- mediagoblin/edit/forms.py | 2 -- mediagoblin/edit/views.py | 7 ++++--- mediagoblin/submit/forms.py | 4 +--- mediagoblin/submit/views.py | 5 +++-- .../templates/mediagoblin/user_pages/media.html | 9 +++++---- mediagoblin/util.py | 11 ++++++++--- 6 files changed, 21 insertions(+), 17 deletions(-) diff --git a/mediagoblin/edit/forms.py b/mediagoblin/edit/forms.py index e13cfaa9..21c8509a 100644 --- a/mediagoblin/edit/forms.py +++ b/mediagoblin/edit/forms.py @@ -17,8 +17,6 @@ import wtforms -from mediagoblin.util import convert_to_tag_list - class EditForm(wtforms.Form): title = wtforms.TextField( diff --git a/mediagoblin/edit/views.py b/mediagoblin/edit/views.py index 0c4fd735..0432024e 100644 --- a/mediagoblin/edit/views.py +++ b/mediagoblin/edit/views.py @@ -19,8 +19,9 @@ from webob import exc from string import split from mediagoblin import messages -from mediagoblin.util import render_to_response, redirect, clean_html, \ - TAGS_DELIMITER +from mediagoblin.util import ( + render_to_response, redirect, clean_html, TAGS_DELIMITER, \ + convert_to_tag_list) from mediagoblin.edit import forms from mediagoblin.edit.lib import may_edit_media from mediagoblin.decorators import require_active_login, get_user_media_entry @@ -62,7 +63,7 @@ def edit_media(request, media): media['description'])) media['slug'] = request.POST['slug'] - media['tags'] = request.POST['tags'].split(TAGS_DELIMITER) + media['tags'] = convert_to_tag_list(request.POST['tags']) media.save() return redirect(request, "mediagoblin.user_pages.media_home", diff --git a/mediagoblin/submit/forms.py b/mediagoblin/submit/forms.py index e13d5425..0e0fd086 100644 --- a/mediagoblin/submit/forms.py +++ b/mediagoblin/submit/forms.py @@ -17,8 +17,6 @@ import wtforms -from mediagoblin.util import convert_to_tag_list - class SubmitStartForm(wtforms.Form): title = wtforms.TextField( @@ -26,4 +24,4 @@ class SubmitStartForm(wtforms.Form): [wtforms.validators.Length(min=0, max=500)]) description = wtforms.TextAreaField('Description of this work') file = wtforms.FileField('File') - tags = wtforms.TextField('Tags', filters=[convert_to_tag_list]) + tags = wtforms.TextField('Tags') diff --git a/mediagoblin/submit/views.py b/mediagoblin/submit/views.py index cdd58786..46ec4cea 100644 --- a/mediagoblin/submit/views.py +++ b/mediagoblin/submit/views.py @@ -21,7 +21,8 @@ from string import split from werkzeug.utils import secure_filename from mediagoblin.util import ( - render_to_response, redirect, cleaned_markdown_conversion) + render_to_response, redirect, cleaned_markdown_conversion, \ + convert_to_tag_list) from mediagoblin.decorators import require_active_login from mediagoblin.submit import forms as submit_forms, security from mediagoblin.process_media import process_media_initial @@ -59,7 +60,7 @@ def submit_start(request): entry['media_type'] = u'image' # heh entry['uploader'] = request.user['_id'] - entry['tags'] = split(request.POST.get('tags')) + entry['tags'] = convert_to_tag_list(request.POST.get('tags')) # Save, just so we can get the entry id for the sake of using # it to generate the file path diff --git a/mediagoblin/templates/mediagoblin/user_pages/media.html b/mediagoblin/templates/mediagoblin/user_pages/media.html index 1c263880..47d5db35 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/media.html +++ b/mediagoblin/templates/mediagoblin/user_pages/media.html @@ -48,10 +48,6 @@ user= media.uploader().username) }}"> {{- media.uploader().username }}

- -

- {{ ' '.join(media.tags) }} -


Comments

@@ -114,6 +110,11 @@

{% endif %}

+ {% if media.tags %} +

+ {{ ' '.join(media.tags) }} +

+ {% endif %} {% else %}

Sorry, no such media found.

diff --git a/mediagoblin/util.py b/mediagoblin/util.py index 4421bec4..f2a2793b 100644 --- a/mediagoblin/util.py +++ b/mediagoblin/util.py @@ -371,6 +371,7 @@ def clean_html(html): TAGS_DELIMITER = u' ' +TAGS_CASE_SENSITIVE = False def convert_to_tag_list(tag_string): """ @@ -379,12 +380,16 @@ def convert_to_tag_list(tag_string): Strips trailing, leading, and internal whitespace, and also converts the user input into an array of tags """ + taglist = [] if tag_string: - taglist = [] stripped_tag_string = u' '.join(tag_string.strip().split()) for tag in stripped_tag_string.split(TAGS_DELIMITER): - if tag.strip(): taglist.append(tag.strip()) - return taglist + if tag.strip(): + if TAGS_CASE_SENSITIVE: + taglist.append(tag.strip()) + else: + taglist.append(tag.strip().lower()) + return taglist MARKDOWN_INSTANCE = markdown.Markdown(safe_mode='escape') -- 2.25.1