query with lowercase tags + use dashes in tags
authorAndrew Engelbrecht <sudoman@ninthfloor.org>
Wed, 8 Mar 2017 17:57:13 +0000 (12:57 -0500)
committerAndrew Engelbrecht <sudoman@ninthfloor.org>
Wed, 8 Mar 2017 17:57:13 +0000 (12:57 -0500)
i don't recall where exactly i was seeing an issue with tag case before,
but if one queries with exclusively lowercase tags, then uppercase tags
will be included too. note that the reverse is not true.

mediagoblin_libreplanet/__init__.py
mediagoblin_libreplanet/lp_helper.py [deleted file]
mediagoblin_libreplanet/views.py

index d363dcd..d9c8716 100644 (file)
@@ -21,7 +21,6 @@ from mediagoblin import mg_globals
 from mediagoblin.tools.pluginapi import get_config, register_template_path, register_routes
 from mediagoblin.db.models import MediaEntry
 from mediagoblin.db.util import media_entries_for_tag_slug
-from lp_helper import media_entries_for_tag_slug_case_insensitive
 from mediagoblin.tools.pagination import Pagination
 from mediagoblin.tools.response import render_to_response
 from mediagoblin.tools.licenses import SORTED_LICENSES, SUPPORTED_LICENSES, License
@@ -40,8 +39,11 @@ MAX_HOME_ITEMS = 20
 MAX_HOME_FEATURED_ITEMS = 10
 MAX_HOME_LP_ITEMS = 10
 
+# make tags lowercase and use dashes in place of spaces.
+# uppercase tags will be included by the lowercase form.
 FEATURED_TAG = "featured"
-LATEST_LP_VIDEO_TAG = "LibrePlanet 2016 video"
+LATEST_LP_VIDEO_TAG = "libreplanet-2016-video"
+
 
 _log = logging.getLogger(__name__)
 
@@ -57,8 +59,6 @@ def lp_media_for_type(db, type, tag=None, max_items=MAX_HOME_ITEMS):
     if (tag == None):
         cursor = MediaEntry.query
     else:
-        ## case insensitive tag search is not working yet -- sudoman
-        #cursor = media_entries_for_tag_slug_case_insensitive(db, tag)
         cursor = media_entries_for_tag_slug(db, tag)
 
     return cursor.\
diff --git a/mediagoblin_libreplanet/lp_helper.py b/mediagoblin_libreplanet/lp_helper.py
deleted file mode 100644 (file)
index 63d1304..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-# MediaGoblin for LibrePlanet
-#
-# Based on code from MediaGoblin
-# Copyright (C) 2011, 2012 MediaGoblin contributors.  See AUTHORS.
-# Copyright (C) 2017 Andrew Engelbrecht <andrew@fsf.org>
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-from mediagoblin.db.models import MediaEntry, Tag, MediaTag
-
-def media_entries_for_tag_slug_case_insensitive(dummy_db, tag_slug):
-    return MediaEntry.query \
-        .join(MediaEntry.tags_helper) \
-        .join(MediaTag.tag_helper) \
-        .filter(
-            (MediaEntry.state == u'processed')
-            & (Tag.slug.lower() == tag_slug.lower())) # Tag.slug.lower() currently doesn't work.
-
index b9cbe7c..4163f8e 100644 (file)
@@ -17,7 +17,6 @@
 from mediagoblin import mg_globals
 from mediagoblin.db.models import MediaEntry
 from mediagoblin.db.util import media_entries_for_tag_slug
-from lp_helper import media_entries_for_tag_slug_case_insensitive
 from mediagoblin.tools.pagination import Pagination
 from mediagoblin.tools.response import render_to_response
 from mediagoblin.decorators import uses_pagination
@@ -26,8 +25,6 @@ def type_listing(media_type, title, request, page, tag=None):
     if (tag == None):
         cursor = MediaEntry.query
     else:
-        ## case insensitive tag search is not working yet -- sudoman
-        #cursor = media_entries_for_tag_slug_case_insensitive(request.db, tag)
         cursor = media_entries_for_tag_slug(request.db, tag)
 
     cursor = cursor.\